[hotfix] Add chromium-efl headers 09/168709/4
authorYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 30 Jan 2018 08:09:52 +0000 (17:09 +0900)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 30 Jan 2018 09:23:12 +0000 (18:23 +0900)
The chromium-efl has been rebased with the latest code.
So, this updates corresponding chromium-efl headers
because the electron-efl has referred to them in its own source tree.

Note that this will be moved to chromium-efl devel package.

Change-Id: Ic23291b04a08c3189917a92decb46d516fe64c66
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
520 files changed:
vendor/brightray/vendor/libchromiumcontent/src/base/base_switches.h
vendor/brightray/vendor/libchromiumcontent/src/base/files/file_util.h
vendor/brightray/vendor/libchromiumcontent/src/base/memory/discardable_shared_memory.h
vendor/brightray/vendor/libchromiumcontent/src/base/nacl_logging.h
vendor/brightray/vendor/libchromiumcontent/src/base/path_service.h
vendor/brightray/vendor/libchromiumcontent/src/base/time/time.h
vendor/brightray/vendor/libchromiumcontent/src/base/trace_event/category_registry.h
vendor/brightray/vendor/libchromiumcontent/src/base/trace_event/trace_event.h
vendor/brightray/vendor/libchromiumcontent/src/buildtools/third_party/libc++/trunk/src/support/solaris/mbsnrtowcs.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/buildtools/third_party/libc++/trunk/src/support/solaris/wcsnrtombs.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/cc/blink/web_external_texture_layer_impl.h
vendor/brightray/vendor/libchromiumcontent/src/cc/ipc/render_pass_struct_traits.h
vendor/brightray/vendor/libchromiumcontent/src/cc/layers/texture_layer.h
vendor/brightray/vendor/libchromiumcontent/src/cc/layers/texture_layer_client.h
vendor/brightray/vendor/libchromiumcontent/src/cc/layers/texture_layer_impl.h
vendor/brightray/vendor/libchromiumcontent/src/cc/output/direct_renderer.h
vendor/brightray/vendor/libchromiumcontent/src/cc/quads/render_pass.h
vendor/brightray/vendor/libchromiumcontent/src/cc/scheduler/scheduler.h
vendor/brightray/vendor/libchromiumcontent/src/cc/scheduler/scheduler_state_machine.h
vendor/brightray/vendor/libchromiumcontent/src/cc/tiles/tile_manager.h
vendor/brightray/vendor/libchromiumcontent/src/cc/trees/layer_tree_host_impl.h
vendor/brightray/vendor/libchromiumcontent/src/cc/trees/layer_tree_settings.h
vendor/brightray/vendor/libchromiumcontent/src/cc/trees/proxy_impl.h
vendor/brightray/vendor/libchromiumcontent/src/components/autofill/core/browser/autofill_client.h
vendor/brightray/vendor/libchromiumcontent/src/components/autofill/core/browser/autofill_data_util.h
vendor/brightray/vendor/libchromiumcontent/src/components/autofill/core/browser/personal_data_manager.h
vendor/brightray/vendor/libchromiumcontent/src/components/autofill/core/common/autofill_switches.h
vendor/brightray/vendor/libchromiumcontent/src/components/discardable_memory/client/client_discardable_shared_memory_manager.h
vendor/brightray/vendor/libchromiumcontent/src/components/discardable_memory/common/discardable_shared_memory_heap.h
vendor/brightray/vendor/libchromiumcontent/src/components/nacl/renderer/plugin/plugin.h
vendor/brightray/vendor/libchromiumcontent/src/components/payments/autofill_payment_instrument.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/components/payments/basic_card_response.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_address.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_instrument.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request.h
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_data_util.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_delegate.h
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_spec.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_state.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/components/payments/payments_validators.h
vendor/brightray/vendor/libchromiumcontent/src/components/plugins/renderer/webview_plugin.h
vendor/brightray/vendor/libchromiumcontent/src/content/browser/devtools/devtools_http_handler.h
vendor/brightray/vendor/libchromiumcontent/src/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.h
vendor/brightray/vendor/libchromiumcontent/src/content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.h
vendor/brightray/vendor/libchromiumcontent/src/content/browser/renderer_host/render_view_host_impl.h
vendor/brightray/vendor/libchromiumcontent/src/content/browser/renderer_host/render_widget_host_view_base.h
vendor/brightray/vendor/libchromiumcontent/src/content/browser/web_contents/web_contents_impl.h
vendor/brightray/vendor/libchromiumcontent/src/content/common/media/media_stream_messages.h
vendor/brightray/vendor/libchromiumcontent/src/content/common/media/media_stream_options.h
vendor/brightray/vendor/libchromiumcontent/src/content/common/view_messages.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/browser/javascript_dialog_manager.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/browser/web_contents.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/browser/web_contents_delegate.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/common/common_param_traits_macros.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/common/content_switches.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/common/url_constants.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/common/web_preferences.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/renderer/content_renderer_client.h
vendor/brightray/vendor/libchromiumcontent/src/content/public/renderer/render_view_observer.h
vendor/brightray/vendor/libchromiumcontent/src/content/renderer/pepper/pepper_audio_input_host.h
vendor/brightray/vendor/libchromiumcontent/src/content/renderer/pepper/pepper_compositor_host.h
vendor/brightray/vendor/libchromiumcontent/src/content/renderer/pepper/pepper_platform_audio_output.h
vendor/brightray/vendor/libchromiumcontent/src/content/renderer/pepper/pepper_video_decoder_host.h
vendor/brightray/vendor/libchromiumcontent/src/content/renderer/render_frame_impl.h
vendor/brightray/vendor/libchromiumcontent/src/content/renderer/render_view_impl.h
vendor/brightray/vendor/libchromiumcontent/src/content/renderer/renderer_blink_platform_impl.h
vendor/brightray/vendor/libchromiumcontent/src/device/gamepad/gamepad_pad_state_provider.h
vendor/brightray/vendor/libchromiumcontent/src/device/gamepad/gamepad_platform_data_fetcher.h
vendor/brightray/vendor/libchromiumcontent/src/gen/TizenUserAgentStyleSheets.h
vendor/brightray/vendor/libchromiumcontent/src/gen/base/generated_build_date.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8MediaSyncPara.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8RegisterTimelineEvent.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8RegisterTimelineEventInit.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8StringChangeEvent.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8StringChangeEventInit.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8SyncTimelineEvent.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8SyncTimelineEventInit.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/CSSValueKeywords.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/EventHeaders.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/EventNames.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/EventTypeNames.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/RegisterTimelineEventInit.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/StringChangeEventInit.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/SyncTimelineEventInit.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/testing/InternalRuntimeFlags.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/modules/mediastream/MediaStreamConstraints.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/platform/RuntimeEnabledFeatures.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/public/resources/grit/blink_image_resources.h
vendor/brightray/vendor/libchromiumcontent/src/gen/blink/public/resources/grit/blink_resources.h
vendor/brightray/vendor/libchromiumcontent/src/gen/cc/ipc/render_pass.mojom-blink.h
vendor/brightray/vendor/libchromiumcontent/src/gen/cc/ipc/render_pass.mojom-shared-internal.h
vendor/brightray/vendor/libchromiumcontent/src/gen/cc/ipc/render_pass.mojom-shared.h
vendor/brightray/vendor/libchromiumcontent/src/gen/cc/ipc/render_pass.mojom.h
vendor/brightray/vendor/libchromiumcontent/src/gen/components/strings/grit/components_strings.h
vendor/brightray/vendor/libchromiumcontent/src/gen/components/version_info/version_info_values.h
vendor/brightray/vendor/libchromiumcontent/src/gen/content/app/strings/grit/content_strings.h
vendor/brightray/vendor/libchromiumcontent/src/gen/ui/accessibility/ax_enums.h
vendor/brightray/vendor/libchromiumcontent/src/gen/ui/resources/grit/webui_resources_tizen.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/gpu/command_buffer/client/direct_canvas_gles2_interface.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/command_buffer/common/gles2_cmd_utils.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/command_buffer/service/feature_info.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/command_buffer/service/texture_manager.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/ipc/client/command_buffer_proxy_impl.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/ipc/common/gpu_command_buffer_traits_multi.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/ipc/in_process_command_buffer.h
vendor/brightray/vendor/libchromiumcontent/src/gpu/ipc/service/gpu_channel.h
vendor/brightray/vendor/libchromiumcontent/src/ipc/ipc_message_start.h
vendor/brightray/vendor/libchromiumcontent/src/media/audio/audio_manager_base.h
vendor/brightray/vendor/libchromiumcontent/src/media/base/audio_parameters.h
vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_rgb_to_yuv_ssse3.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_yuv_to_rgb_mmx.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_yuva_to_argb_mmx.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/linear_scale_yuv_to_rgb_mmx.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/scale_yuv_to_rgb_mmx.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/media/base/video_frame.h
vendor/brightray/vendor/libchromiumcontent/src/media/blink/video_frame_compositor.h
vendor/brightray/vendor/libchromiumcontent/src/media/filters/chunk_demuxer.h
vendor/brightray/vendor/libchromiumcontent/src/native_client/src/public/linux_syscalls/sys/socket.h
vendor/brightray/vendor/libchromiumcontent/src/native_client/src/public/linux_syscalls/sys/syscall.h
vendor/brightray/vendor/libchromiumcontent/src/native_client/src/trusted/debug_stub/target.h
vendor/brightray/vendor/libchromiumcontent/src/native_client/tools/hermetic_cygwin/make_installer.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/net/base/load_flags_list.h
vendor/brightray/vendor/libchromiumcontent/src/net/cert/cert_verify_proc_blacklist.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/net/cookies/cookie_monster.h
vendor/brightray/vendor/libchromiumcontent/src/net/http/http_stream_factory_impl_job_controller.h
vendor/brightray/vendor/libchromiumcontent/src/net/http/transport_security_state_ct_policies.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_2a.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_2b.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_3a.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_3b.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/net/socket/udp_socket_posix.h
vendor/brightray/vendor/libchromiumcontent/src/net/ssl/client_cert_store_unittest-inl.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/ppb_file_io.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/ppb_udp_socket.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/pp_media_player_samsung.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/ppb_audio_config_samsung.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/ppb_media_player_samsung.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/ppb_udp_socket_extension_samsung.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/file_io.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/samsung/audio_config_samsung.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/samsung/media_player_samsung.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/samsung/udp_socket_extension_samsung.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/audio_input_resource.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/media_player/elementary_stream_resource.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/media_player/media_player_resource.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/ppapi_messages.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/ppapi_param_traits.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/ppb_audio_proxy.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/resource_creation_proxy.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/resource_message_params.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/serialized_handle.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/tcp_socket_resource_base.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/udp_socket_io.h [deleted file]
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/udp_socket_resource.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/udp_socket_resource_base.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/shared_impl/media_player/es_packet.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/shared_impl/media_player/serialized_es_packet.h [deleted file]
vendor/brightray/vendor/libchromiumcontent/src/ppapi/shared_impl/ppb_audio_config_shared.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/shared_impl/ppb_tcp_socket_shared.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/shared_impl/private/net_address_private_impl.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/thunk/interfaces_ppb_public_dev.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/thunk/interfaces_ppb_samsung.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/thunk/ppb_audio_config_api.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/thunk/ppb_media_player_api.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/thunk/ppb_udp_socket_api.h
vendor/brightray/vendor/libchromiumcontent/src/ppapi/thunk/resource_creation_api.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/bindings/core/v8/ScriptSourceCode.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/bindings/core/v8/V8Binding.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/bindings/core/v8/V8StringResource.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/bindings/core/v8/V8ValueCache.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/dom/ActiveDOMObject.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/dom/ContextLifecycleNotifier.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/dom/Document.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/dom/Element.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/dom/ExecutionContext.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/dom/Node.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/Frame.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/FrameView.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/History.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/LocalFrame.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/RemoteFrame.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/Screen.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/Settings.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/UseCounter.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/frame/VisualViewport.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/HTMLCanvasElement.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/HTMLMediaElement.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/HTMLVideoElement.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/MediaSyncPara.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/RegisterTimelineEvent.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/StringChangeEvent.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/SyncTimelineEvent.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/shadow/MediaControlElementTypes.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/shadow/MediaControlElements.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/shadow/MediaControls.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/track/TextTrack.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/track/TextTrackList.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/input/EventHandler.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/layout/HitTestResult.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/layout/LayoutBlock.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/loader/FrameLoaderClient.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/loader/resource/ScriptResource.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/page/ChromeClient.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/page/Page.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/page/scrolling/ScrollLayerAnimationController.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/paint/MediaControlsPainter.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/paint/ThemePainter.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/paint/ThemePainterDefault.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/modules/accessibility/AXObject.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/modules/webaudio/AudioBuffer.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/modules/webaudio/AudioBufferSourceNode.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/modules/webaudio/AudioParam.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/modules/webaudio/AudioScheduledSourceNode.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/CrossThreadCopier.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/KeyboardCodes.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/Language.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/LifecycleNotifier.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/ThemeTypes.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/WindowsKeyboardCodes.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/graphics/ImageBuffer.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/heap/HeapTerminatedArray.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/network/ResourceRequest.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/web/ChromeClientImpl.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/web/FrameLoaderClientImpl.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/web/WebSettingsImpl.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/web/WebViewFrameWidget.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/web/WebViewImpl.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/wtf/TerminatedArray.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/wtf/WTFThreadData.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/wtf/allocator/Partitions.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/wtf/text/CompressibleString.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/platform/Platform.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/platform/WebExternalTextureLayer.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/platform/WebMediaPlayer.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/platform/WebMediaPlayerClient.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/platform/WebURLRequest.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/web/WebFrameClient.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/web/WebMemoryStatistics.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/web/WebSettings.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/web/WebView.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/web/WebViewClient.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/public/web/WebWidget.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/ced/src/compact_enc_det/detail_head_string.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/ffmpeg/libavfilter/all_channel_layouts.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/libudev/libudev0.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/libudev/libudev1.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/mesa/src/src/gallium/state_trackers/d3d1x/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/include/core/SkPath.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/include/core/SkXfermode.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/animator/SkCondensedDebug.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/animator/SkCondensedRelease.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/core/SkTraceEvent.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/utils/SkWhitelistChecksums.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/BigPathBench.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_index.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_monospace.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_sans_serif.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_serif.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/webrtc/base/trace_event.h
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/tasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/yasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/libyasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/libyasm/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/m4/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/lc3b/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/lc3b/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/gas32/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/gas64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/codeview/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/pass32/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/pass64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/passwin64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/null/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/stabs/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/stabs/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/listfmts/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/listfmts/nasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/tests/multisect/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/coff/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/coff/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/dbg/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/amd64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/gas32/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/gas64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/gas32/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/gas64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/nasm32/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/nasm64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/rdf/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/rdf/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/tests/gas/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/tests/gas/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/xdf/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/xdf/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/tests/bin/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/tests/worphan/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/tests/exe/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/cpp/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/nasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/nasm/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/raw/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/raw/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/genmacro/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/genperf/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/python-yasm/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/python-yasm/tests/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/re2c/Makefile.inc [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/Ecore_Wl2.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/external_device/external_input_device_controller_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/logging_cache.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/memory_sampler/memory_sampler.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/message_loop/message_pump_ecore.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/static_map.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/system_brightness/system_settings_brightness_tizen.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/system_volume/system_volume_control_tizen.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/accessibility/browser_accessibility_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/accessibility/browser_accessibility_manager_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/compositor/evasgl_context_provider.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/compositor/evasgl_delegated_frame_host.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/compositor/evasgl_output_surface_client.h [deleted file]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/media/tizen/browser_demuxer_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/media/tizen/browser_media_player_manager_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/media/tizen/browser_media_recorder_handler.h [moved from vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/media/tizen/browser_media_capture_handler.h with 64% similarity]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/media/tizen/media_web_contents_observer_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/event_resampler.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.h [changed mode: 0755->0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/pepper_elementary_stream_host.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/pepper_elementary_stream_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/pepper_media_player_host.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/pepper_media_player_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/elementary_stream_listener_private_wrapper.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_elementary_stream_private_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_es_data_source_private_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_media_player_private_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_mmplayer_adapter.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_player_adapter_base.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_player_adapter_interface.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_smplayer_adapter.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_tizen_drm_session.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/pepper/media_player/tizen/pepper_video_elementary_stream_private_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/speech/speech_recognizer_impl_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/speech/tts_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/gpu/media/tizen_omx_video_decode_accelerator.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/media/media_param_traits_efl.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/media/media_player_messages_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/media/media_recorder_messages_efl.h [moved from vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/media/media_capture_messages_efl.h with 69% similarity]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/message_generator_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/public/browser/web_contents_view_efl_delegate.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/renderer/media/tizen/media_source_delegate_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/renderer/media/tizen/renderer_demuxer_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/renderer/media/tizen/renderer_media_player_manager_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/renderer/media/tizen/renderer_media_recorder_handler.h [moved from vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/renderer/media/tizen/renderer_media_capture_handler.h with 80% similarity]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/renderer/media/tizen/webmediaplayer_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/renderer/pepper/pepper_media_player_renderer_host.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/gpu/command_buffer/client/gles2_implementation_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_evasgl_context.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/gpu/ipc/service/direct_canvas_command_buffer_stub.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/gpu/ipc/service/direct_canvas_gpu_channel.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/audio/tizen/mm_player_audio_output.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/demuxer_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/longest_conflict_strategy.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/media_capabilities.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/media_capability_manager.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/media_player_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/media_player_interface_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/media_player_manager_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/suspending_media_player.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/video_playback_mem_opt.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/capture/video/tizen/camera_device_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/filters/libav_video_decoder_tizen.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl_wayland.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/browsing_data_remover_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/favicon/favicon_database_p.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/gamepad/gamepad_platform_data_fetcher_tizen_tv.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/gamepad/oci_gamepad_item.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/input_picker/input_picker.h [changed mode: 0755->0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/javascript_dialog_manager_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/javascript_interface/gin_native_bound_object.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/net/predictor_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/payments/payment_data.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/payments/payment_request_delegate_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/payments/payment_request_dialog_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/resource_throttle_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/select_picker/form_navigable_picker.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/select_picker/select_picker.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/select_picker/select_picker_base.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/select_picker/select_picker_tv.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/select_picker/select_picker_util.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/select_picker/select_picker_wearable.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/webui/version_ui_efl.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/webui/web_ui_controller_factory_efl.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser_context_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/command_line_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/common/content_client_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/common/content_switches_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/common/render_messages_ewk.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/common/trusted_pepper_plugin_info_cache.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/common/version_info.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/common/web_preferences_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/cookie_manager.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/dvb_protocol_handler.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/eweb_accessibility_util.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/eweb_context.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/eweb_view.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/eweb_view_callbacks.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/permission_popup.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_autofill_credit_card_private.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_credit_card_private.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_context_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_custom_handlers_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_error_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_favicon_database_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_main_private.h [deleted file]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_notification_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_settings_private.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_text_style_private.h [deleted file]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_autofill_credit_card_internal.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_context.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_context_internal.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_context_menu.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_main_internal.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info_product.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_settings_product.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_user_media_internal.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_view.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_view_internal.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_view_product.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/renderer/content_settings_client_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/renderer/plugins/plugin_placeholder_avplayer.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/renderer/plugins/plugin_placeholder_hole.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/renderer/render_view_observer_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/url_request_context_getter_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/url_request_interceptor_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/url_request_job_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/wrt/wrt_file_protocol_handler.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/wrt/wrt_widget_host.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/ubrowser/browser.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/ubrowser/window.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/ubrowser/window_ui.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_api_result_locked.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_base.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_context_form_autofill_credit_card_utils.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_context_form_autofill_profile_utils.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_hit_test_request_base.h
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_intercept_request_get_base.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_intercept_request_response_base.h [new file with mode: 0644]
vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_notification_test_base.h
vendor/brightray/vendor/libchromiumcontent/src/ui/base/clipboard/clipboard.h
vendor/brightray/vendor/libchromiumcontent/src/ui/events/keycodes/dom/dom_key_data.inc
vendor/brightray/vendor/libchromiumcontent/src/ui/events/keycodes/keyboard_codes_posix.h
vendor/brightray/vendor/libchromiumcontent/src/ui/gfx/gpu_memory_buffer.h
vendor/brightray/vendor/libchromiumcontent/src/ui/gfx/native_widget_types.h
vendor/brightray/vendor/libchromiumcontent/src/ui/gl/egl_util.h
vendor/brightray/vendor/libchromiumcontent/src/url/url_util.h
vendor/brightray/vendor/libchromiumcontent/src/v8/include/v8.h
vendor/brightray/vendor/libchromiumcontent/src/v8/src/base/atomicops_internals_portable.h
vendor/brightray/vendor/libchromiumcontent/src/v8/src/base/platform/time.h
vendor/brightray/vendor/libchromiumcontent/src/v8/src/objects.h
vendor/brightray/vendor/libchromiumcontent/src/v8/src/tracing/trace-event.h
vendor/brightray/vendor/libchromiumcontent/src/v8/src/wasm/decoder.h

index 5fd572a..6caf868 100644 (file)
@@ -45,6 +45,11 @@ extern const char kEnableLimitWebDiscardableMemory[];
 extern const char kDisableLimitWebDiscardableMemory[];
 #endif
 
+#if defined(ENABLE_STRING_COMPRESSION)
+extern const char kEnableStringCompression[];
+extern const char kDisableStringCompression[];
+#endif
+
 #if defined(OS_POSIX)
 extern const char kEnableCrashReporterForTesting[];
 #endif
index b2ebfe9..77a87e7 100644 (file)
@@ -361,12 +361,6 @@ BASE_EXPORT int GetUniquePathNumber(const FilePath& path,
 BASE_EXPORT bool SetNonBlocking(int fd);
 
 #if defined(OS_POSIX)
-
-// Sets the given |fd| to blocking mode.
-// Returns true if it was able to set it in the blocking mode, otherwise
-// false.
-BASE_EXPORT bool SetBlocking(int fd);
-
 // Creates a non-blocking, close-on-exec pipe.
 // This creates a non-blocking pipe that is not intended to be shared with any
 // child process. This will be done atomically if the operating system supports
index b391ef1..aaabf41 100644 (file)
@@ -133,6 +133,9 @@ class BASE_EXPORT DiscardableSharedMemory {
     return shared_memory_.ShareToProcess(process_handle, new_handle);
   }
 
+  // Returns the locked page count for DiscardableSharedMemory object.
+  size_t locked_page_count() const { return locked_page_count_; }
+
  private:
   // Virtual for tests.
   virtual Time Now() const;
index a80edee..c325090 100644 (file)
@@ -12,6 +12,7 @@
 namespace logging {
 
 #if !defined(OS_NACL)
+void SetNaClLoggingEnabled(bool enabled);
 void InitializeNaClLogging(NaClApp* nap);
 #elif !defined(OS_NACL_NONSFI)
 bool NaClLogMessageHandler(int severity, const std::string&);
index 184bd5b..87b095a 100644 (file)
@@ -79,10 +79,8 @@ class BASE_EXPORT PathService {
   // Disable internal cache.
   static void DisableCache();
 
-#if defined(OS_TIZEN_TV_PRODUCT)
   // Clear all cached paths.
   static void Clear();
-#endif
 
  private:
   friend class ScopedPathOverride;
index cd31244..1bacd5e 100644 (file)
@@ -623,10 +623,12 @@ class BASE_EXPORT Time : public time_internal::TimeBase<Time> {
   // midnight on that day.
   Time LocalMidnight() const;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
   // Gets time offset
   static double TimeOffset();
   // Sets time offset
   static void SetTimeOffset(double time_offset);
+#endif
 
  private:
   friend class time_internal::TimeBase<Time>;
index da99899..80e7cb2 100644 (file)
@@ -18,10 +18,12 @@ struct TraceCategory;
 class TraceCategoryTest;
 class TraceLog;
 
-// Keeps track of the state of all tracing categories. The reason why this
-// is a fully static class with global state is to allow to statically define
-// known categories as global linker-initialized structs, without requiring
-// static initializers.
+// Allows fast and thread-safe acces to the state of all tracing categories.
+// All the methods in this class can be concurrently called on multiple threads,
+// unless otherwise noted (e.g., GetOrCreateCategoryLocked).
+// The reason why this is a fully static class with global state is to allow to
+// statically define known categories as global linker-initialized structs,
+// without requiring static initializers.
 class BASE_EXPORT CategoryRegistry {
  public:
   // Allows for-each iterations over a slice of the categories array.
@@ -52,11 +54,18 @@ class BASE_EXPORT CategoryRegistry {
   static const TraceCategory* GetCategoryByStatePtr(
       const uint8_t* category_state);
 
+  // Returns a category from its name or nullptr if not found.
+  // The output |category| argument is an undefinitely lived pointer to the
+  // TraceCategory owned by the registry. TRACE_EVENTx macros will cache this
+  // pointer and use it for checks in their fast-paths.
+  static TraceCategory* GetCategoryByName(const char* category_name);
+
   static bool IsBuiltinCategory(const TraceCategory*);
 
  private:
   friend class TraceCategoryTest;
   friend class TraceLog;
+  using CategoryInitializerFn = void (*)(TraceCategory*);
 
   // Only for debugging/testing purposes, is a no-op on release builds.
   static void Initialize();
@@ -64,13 +73,14 @@ class BASE_EXPORT CategoryRegistry {
   // Resets the state of all categories, to clear up the state between tests.
   static void ResetForTesting();
 
-  // The output |category| argument is an undefinitely lived pointer to the
-  // TraceCategory owned by the registry. TRACE_EVENTx macros will cache this
-  // pointer and use it for checks in their fast-paths.
-  // Returns false if the category was already present, true if the category
-  // has just been added and hence requires initialization.
-  static bool GetOrCreateCategoryByName(const char* category_name,
-                                        TraceCategory** category);
+  // Used to get/create a category in the slow-path. If the category exists
+  // already, this has the same effect of GetCategoryByName and returns false.
+  // If not, a new category is created and the CategoryInitializerFn is invoked
+  // before retuning true. The caller must guarantee serialization: either call
+  // this method from a single thread or hold a lock when calling this.
+  static bool GetOrCreateCategoryLocked(const char* category_name,
+                                        CategoryInitializerFn,
+                                        TraceCategory**);
 
   // Allows to iterate over the valid categories in a for-each loop.
   // This includes builtin categories such as __metadata.
index ff049b3..f1a577f 100644 (file)
   TRACE_HEAP_PROFILER_API_SCOPED_TASK_EXECUTION INTERNAL_TRACE_EVENT_UID( \
       task_event)((task).posted_from.file_name());
 
+#if !defined(ENABLE_TRACE_EVENT)
+#if defined(DISABLE_DEVTOOL_TIMELINE)
+// Remove all macro function to add a trace event. the devtool timeline is also
+// disabled.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#else
+// Remove only the no parameter macro functions to support the RWI timeline.
+#undef TRACE_EVENT0
+#define TRACE_EVENT0(...)
+#undef TRACE_EVENT_INSTANT0
+#define TRACE_EVENT_INSTANT0(...)
+#undef TRACE_EVENT_WITH_FLOW0
+#define TRACE_EVENT_WITH_FLOW0(...)
+#endif
+#endif
+
 namespace trace_event_internal {
 
 // Specify these values when the corresponding argument of AddTraceEvent is not
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/buildtools/third_party/libc++/trunk/src/support/solaris/mbsnrtowcs.inc b/vendor/brightray/vendor/libchromiumcontent/src/buildtools/third_party/libc++/trunk/src/support/solaris/mbsnrtowcs.inc
new file mode 100644 (file)
index 0000000..0740452
--- /dev/null
@@ -0,0 +1,76 @@
+
+
+/*-
+ * As noted in the source, some portions of this implementation are copied from
+ * FreeBSD libc.  These are covered by the following copyright:
+ *
+ * Copyright (c) 2002-2004 Tim J. Robbins.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+size_t
+mbsnrtowcs_l(wchar_t * __restrict dst, const char ** __restrict src,
+    size_t nms, size_t len, mbstate_t * __restrict ps, locale_t loc)
+{
+  const char *s;
+  size_t nchr;
+  wchar_t wc;
+  size_t nb;
+  FIX_LOCALE(loc);
+
+  s = *src;
+  nchr = 0;
+
+  if (dst == NULL) {
+    for (;;) {
+      if ((nb = mbrtowc_l(&wc, s, nms, ps, loc)) == (size_t)-1)
+        /* Invalid sequence - mbrtowc() sets errno. */
+        return ((size_t)-1);
+      else if (nb == 0 || nb == (size_t)-2)
+        return (nchr);
+      s += nb;
+      nms -= nb;
+      nchr++;
+    }
+    /*NOTREACHED*/
+  }
+
+  while (len-- > 0) {
+    if ((nb = mbrtowc_l(dst, s, nms, ps, loc)) == (size_t)-1) {
+      *src = s;
+      return ((size_t)-1);
+    } else if (nb == (size_t)-2) {
+      *src = s + nms;
+      return (nchr);
+    } else if (nb == 0) {
+      *src = NULL;
+      return (nchr);
+    }
+    s += nb;
+    nms -= nb;
+    nchr++;
+    dst++;
+  }
+  *src = s;
+  return (nchr);
+}
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/buildtools/third_party/libc++/trunk/src/support/solaris/wcsnrtombs.inc b/vendor/brightray/vendor/libchromiumcontent/src/buildtools/third_party/libc++/trunk/src/support/solaris/wcsnrtombs.inc
new file mode 100644 (file)
index 0000000..67e7078
--- /dev/null
@@ -0,0 +1,93 @@
+/*-
+ * Copyright (c) 2002-2004 Tim J. Robbins.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+size_t
+wcsnrtombs_l(char * __restrict dst, const wchar_t ** __restrict src,
+    size_t nwc, size_t len, mbstate_t * __restrict ps, locale_t loc)
+{
+  FIX_LOCALE(loc);
+  mbstate_t mbsbak;
+  char buf[MB_CUR_MAX_L(loc)];
+  const wchar_t *s;
+  size_t nbytes;
+  size_t nb;
+
+  s = *src;
+  nbytes = 0;
+
+  if (dst == NULL) {
+    while (nwc-- > 0) {
+      if ((nb = wcrtomb_l(buf, *s, ps, loc)) == (size_t)-1)
+        /* Invalid character - wcrtomb() sets errno. */
+        return ((size_t)-1);
+      else if (*s == L'\0')
+        return (nbytes + nb - 1);
+      s++;
+      nbytes += nb;
+    }
+    return (nbytes);
+  }
+
+  while (len > 0 && nwc-- > 0) {
+    if (len > (size_t)MB_CUR_MAX_L(loc)) {
+      /* Enough space to translate in-place. */
+      if ((nb = wcrtomb_l(dst, *s, ps, loc)) == (size_t)-1) {
+        *src = s;
+        return ((size_t)-1);
+      }
+    } else {
+      /*
+       * May not be enough space; use temp. buffer.
+       *
+       * We need to save a copy of the conversion state
+       * here so we can restore it if the multibyte
+       * character is too long for the buffer.
+       */
+      mbsbak = *ps;
+      if ((nb = wcrtomb_l(buf, *s, ps, loc)) == (size_t)-1) {
+        *src = s;
+        return ((size_t)-1);
+      }
+      if (nb > (int)len) {
+        /* MB sequence for character won't fit. */
+        *ps = mbsbak;
+        break;
+      }
+      memcpy(dst, buf, nb);
+    }
+    if (*s == L'\0') {
+      *src = NULL;
+      return (nbytes + nb - 1);
+    }
+    s++;
+    dst += nb;
+    len -= nb;
+    nbytes += nb;
+  }
+  *src = s;
+  return (nbytes);
+}
+
index 1df62cf..66b090d 100644 (file)
@@ -30,6 +30,9 @@ class WebExternalTextureLayerImpl : public blink::WebExternalTextureLayer {
   void setPremultipliedAlpha(bool premultiplied) override;
   void setBlendBackgroundColor(bool blend) override;
   void setNearestNeighbor(bool nearest_neighbor) override;
+#if defined(TIZEN_CANVAS_HOLE)
+  void setTextureHole(bool) override;
+#endif
 
  private:
   std::unique_ptr<WebLayerImpl> layer_;
index e89dd84..b6d24cc 100644 (file)
@@ -41,6 +41,10 @@ struct StructTraits<cc::mojom::RenderPassDataView,
     return input->has_transparent_background;
   }
 
+  static bool has_canvas_hole(const std::unique_ptr<cc::RenderPass>& input) {
+    return input->has_canvas_hole;
+  }
+
   static const cc::QuadList& quad_list(
       const std::unique_ptr<cc::RenderPass>& input) {
     return input->quad_list;
index 1b42e97..c021237 100644 (file)
@@ -128,6 +128,12 @@ class CC_EXPORT TextureLayer : public Layer {
   // at draw time. Defaults to false.
   void SetBlendBackgroundColor(bool blend);
 
+#if defined(TIZEN_CANVAS_HOLE)
+  void SetTextureHole(bool);
+  void NotifyTextureRectChangedOnImplThread(const gfx::Rect&);
+  void NotifyTextureRectChangedOnMainThread(const gfx::Rect&);
+#endif
+
   // Code path for plugins which supply their own mailbox.
   void SetTextureMailbox(
       const TextureMailbox& mailbox,
@@ -162,6 +168,9 @@ class CC_EXPORT TextureLayer : public Layer {
   float vertex_opacity_[4];
   bool premultiplied_alpha_;
   bool blend_background_color_;
+#if defined(TIZEN_CANVAS_HOLE)
+  bool texture_hole_;
+#endif
 
   std::unique_ptr<TextureMailboxHolder::MainThreadReference> holder_ref_;
   bool needs_set_mailbox_;
index 475309a..144dab4 100644 (file)
@@ -7,6 +7,12 @@
 
 #include "cc/resources/single_release_callback.h"
 
+#if defined(TIZEN_CANVAS_HOLE)
+namespace gfx {
+class Rect;
+}
+#endif
+
 namespace cc {
 class ResourceUpdateQueue;
 class TextureMailbox;
@@ -20,6 +26,10 @@ class TextureLayerClient {
       TextureMailbox* mailbox,
       std::unique_ptr<SingleReleaseCallback>* release_callback) = 0;
 
+#if defined(TIZEN_CANVAS_HOLE)
+  virtual void NotifyTextureRectChanged(const gfx::Rect&) {}
+#endif
+
  protected:
   virtual ~TextureLayerClient() {}
 };
index bb7bc4c..8424f7a 100644 (file)
@@ -61,6 +61,10 @@ class CC_EXPORT TextureLayerImpl : public LayerImpl {
   LayerType GetLayerType() const override { return LAYER_TYPE_TEXTURE; }
 #endif
 
+#if defined(TIZEN_CANVAS_HOLE)
+ void SetTextureHole(bool, const base::Callback<void(const gfx::Rect&)>&);
+#endif
+
  private:
   TextureLayerImpl(LayerTreeImpl* tree_impl, int id);
 
@@ -81,6 +85,11 @@ class CC_EXPORT TextureLayerImpl : public LayerImpl {
   TextureMailbox texture_mailbox_;
   std::unique_ptr<SingleReleaseCallbackImpl> release_callback_;
   bool own_mailbox_;
+#if defined(TIZEN_CANVAS_HOLE)
+  bool texture_hole_;
+  gfx::Rect previous_texture_rect_;
+  base::Callback<void(const gfx::Rect&)> texture_rect_changed_cb_;
+#endif
   bool valid_texture_copy_;
 
   DISALLOW_COPY_AND_ASSIGN(TextureLayerImpl);
index dbef2e9..299bd2f 100644 (file)
@@ -93,6 +93,10 @@ class CC_EXPORT DirectRenderer {
 
     OverlayCandidateList overlay_list;
     CALayerOverlayList ca_layer_overlay_list;
+#if defined(TIZEN_CANVAS_HOLE)
+    bool has_canvas_hole;
+    RenderPassId canvas_hole_render_pass;
+#endif
   };
 
  protected:
index a82e9d8..4636eef 100644 (file)
@@ -84,7 +84,8 @@ class CC_EXPORT RenderPass {
               const gfx::Rect& output_rect,
               const gfx::Rect& damage_rect,
               const gfx::Transform& transform_to_root_target,
-              bool has_transparent_background);
+              bool has_transparent_background,
+              bool has_canvas_hole = false);
 
   void AsValueInto(base::trace_event::TracedValue* dict) const;
 
@@ -116,6 +117,9 @@ class CC_EXPORT RenderPass {
   // If false, the pixels in the render pass' texture are all opaque.
   bool has_transparent_background;
 
+  // If true, disable blend when draw render pass quad
+  bool has_canvas_hole;
+
   // If non-empty, the renderer should produce a copy of the render pass'
   // contents as a bitmap, and give a copy of the bitmap to each callback in
   // this list. This property should not be serialized between compositors, as
index a375622..3839487 100644 (file)
@@ -47,6 +47,10 @@ class SchedulerClient {
   virtual void ScheduledActionInvalidateCompositorFrameSink() = 0;
   virtual void DidFinishImplFrame() = 0;
   virtual void SendBeginMainFrameNotExpectedSoon() = 0;
+#if defined(OS_TIZEN)
+  virtual bool NeedsResetFrameSourceTimeOnFrameAck() { return false; }
+  virtual bool NeedsResetFrameSourceTimePerFrame() { return false; }
+#endif
 
  protected:
   virtual ~SchedulerClient() {}
@@ -144,10 +148,12 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
 
 #if defined(OS_TIZEN)
   void ForceDeadlineModeAsImmediate(bool enable);
-  bool force_deadline_mode_as_immediate() {
+  bool force_deadline_mode_as_immediate() const {
     return state_machine_.force_deadline_mode_as_immediate();
   }
   void ResetFrameSourceTime();
+  bool defer_commits() const { return state_machine_.defer_commits(); }
+  bool has_pending_tree() const { return state_machine_.has_pending_tree(); }
 #endif
 
  protected:
index 5cb6ef5..03fac53 100644 (file)
@@ -272,9 +272,10 @@ class CC_EXPORT SchedulerStateMachine {
 
 #if defined(OS_TIZEN)
   void ForceDeadlineModeAsImmediate(bool enable);
-  bool force_deadline_mode_as_immediate() {
+  bool force_deadline_mode_as_immediate() const {
     return force_deadline_mode_as_immediate_;
   }
+  bool defer_commits() const { return defer_commits_; }
 #endif
 
  protected:
index 6d236db..dc6c358 100644 (file)
@@ -82,6 +82,7 @@ class CC_EXPORT TileManagerClient {
 
 #if defined(OS_TIZEN)
   virtual bool UseBackgroundRasterThread() { return false; }
+  virtual bool RequiresReadyToActivate() { return false; }
 #endif
 
  protected:
@@ -218,10 +219,9 @@ class CC_EXPORT TileManager {
 
 #if defined(OS_TIZEN)
   void SetClearTilesOnHide(bool enable);
-  void SetDisturbRasterizingTask(bool disturb) {
-    disturb_rasterizing_task_ = disturb;
-  }
+  void SetDisturbRasterizingTask(bool disturb);
   bool RasterizingTaskDisturbed() const { return disturb_rasterizing_task_; }
+  void ForceScheduleRasterTaskIfNeeded();
 #endif
 
   void OnRasterTaskCompleted(std::unique_ptr<RasterBuffer> raster_buffer,
@@ -368,6 +368,7 @@ class CC_EXPORT TileManager {
   bool visibility_;
   bool hide_enabled_;
   bool disturb_rasterizing_task_;
+  size_t default_raster_task_limit_;
 #endif
 
   std::unordered_map<Tile::Id, std::vector<DrawImage>> scheduled_draw_images_;
index 9b9fb30..aa2be16 100644 (file)
@@ -132,6 +132,7 @@ class LayerTreeHostImplClient {
   virtual void ForceDeadlineModeAsImmediate(bool enable) {}
   virtual bool IsDeadlineModeImmediate() { return false; }
   virtual void ResetFrameSourceTime() {}
+  virtual bool RequiresReadyToActivate() { return false; }
 #endif
 
  protected:
@@ -356,6 +357,7 @@ class CC_EXPORT LayerTreeHostImpl
   gfx::ColorSpace GetTileColorSpace() const override;
 #if defined(OS_TIZEN)
   bool UseBackgroundRasterThread() override;
+  bool RequiresReadyToActivate() override;
 #endif
 
   // ScrollbarAnimationControllerClient implementation.
@@ -468,6 +470,11 @@ class CC_EXPORT LayerTreeHostImpl
   void SetNeedsRedraw();
 #if defined(OS_TIZEN)
   void SetClearTilesOnHide(bool enable);
+  bool NeedsResetFrameSourceTimeOnFrameAck();
+  bool NeedsResetFrameSourceTimePerFrame();
+  void ForceScheduleRasterTaskIfNeeded() {
+    tile_manager_.ForceScheduleRasterTaskIfNeeded();
+  }
 #endif
 
   ManagedMemoryPolicy ActualManagedMemoryPolicy() const;
@@ -708,6 +715,7 @@ class CC_EXPORT LayerTreeHostImpl
 
 #if defined(OS_TIZEN)
   void SetDisturbRasterizingTasks(bool disturb);
+  void ForceDeferCommit(bool defer_commits);
   void StartDisturbRasterizingTaskIfNeeded(float timeout);
   bool CheckDisturbRasterizingTaskTimeout();
   bool CanSkipFlush() const;
index fc61327..75c8440 100644 (file)
@@ -109,7 +109,10 @@ class CC_EXPORT LayerTreeSettings {
 #if defined(OS_TIZEN)
   bool enable_begin_main_frame_throttle = false;
   bool enable_disturb_rasterizing_tasks = false;
+  bool enable_defer_commit_during_gesture = false;
   bool enable_use_background_rasterizing_thread = false;
+
+  int default_tile_round_up = 64;
 #endif
 
   LayerTreeDebugState initial_debug_state;
index 3bdbdcc..7276854 100644 (file)
@@ -99,6 +99,7 @@ class CC_EXPORT ProxyImpl : public NON_EXPORTED_BASE(LayerTreeHostImplClient),
   void ForceDeadlineModeAsImmediate(bool enable) override;
   bool IsDeadlineModeImmediate() override;
   void ResetFrameSourceTime() override;
+  bool RequiresReadyToActivate() override;
 #endif
 
   // SchedulerClient implementation
@@ -113,6 +114,10 @@ class CC_EXPORT ProxyImpl : public NON_EXPORTED_BASE(LayerTreeHostImplClient),
   void ScheduledActionPrepareTiles() override;
   void ScheduledActionInvalidateCompositorFrameSink() override;
   void SendBeginMainFrameNotExpectedSoon() override;
+#if defined(OS_TIZEN)
+  bool NeedsResetFrameSourceTimeOnFrameAck() override;
+  bool NeedsResetFrameSourceTimePerFrame() override;
+#endif
 
   DrawResult DrawInternal(bool forced_draw);
 
index 174b07a..5a8a4c3 100644 (file)
@@ -45,9 +45,9 @@ class AutofillPopupDelegate;
 class AutofillWebDataService;
 class CardUnmaskDelegate;
 class CreditCard;
-class FormFieldData;
 class FormStructure;
 class PersonalDataManager;
+struct FormFieldData;
 struct FormData;
 struct Suggestion;
 
index d398e47..c958461 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "base/strings/string16.h"
 #include "components/autofill/core/browser/autofill_profile.h"
-#include "grit/components_scaled_resources.h"
+#include "components/grit/components_scaled_resources.h"
 
 namespace autofill {
 namespace data_util {
index 89508f3..09b3b49 100644 (file)
@@ -135,11 +135,17 @@ class PersonalDataManager : public KeyedService,
   // Removes the profile or credit card represented by |guid|.
   virtual void RemoveByGUID(const std::string& guid);
 
-  // Returns the profile with the specified |guid|, or NULL if there is no
+  // Returns the profile with the specified |guid|, or nullptr if there is no
   // profile with the specified |guid|. Both web and auxiliary profiles may
   // be returned.
   AutofillProfile* GetProfileByGUID(const std::string& guid);
 
+  // Returns the profile with the specified |guid| from the given |profiles|, or
+  // nullptr if there is no profile with the specified |guid|.
+  static AutofillProfile* GetProfileFromProfilesByGUID(
+      const std::string& guid,
+      const std::vector<AutofillProfile*>& profiles);
+
   // Adds |credit_card| to the web database.
   void AddCreditCard(const CreditCard& credit_card);
 
@@ -167,7 +173,7 @@ class PersonalDataManager : public KeyedService,
   // Sets a server credit card for test.
   void AddServerCreditCardForTest(std::unique_ptr<CreditCard> credit_card);
 
-  // Returns the credit card with the specified |guid|, or NULL if there is
+  // Returns the credit card with the specified |guid|, or nullptr if there is
   // no credit card with the specified |guid|.
   virtual CreditCard* GetCreditCardByGUID(const std::string& guid);
 
@@ -455,7 +461,7 @@ class PersonalDataManager : public KeyedService,
   // Functionally equivalent to GetProfiles(), but also records metrics if
   // |record_metrics| is true. Metrics should be recorded when the returned
   // profiles will be used to populate the fields shown in an Autofill popup.
-  const std::vector<AutofillProfile*>& GetProfiles(
+  virtual const std::vector<AutofillProfile*>& GetProfiles(
       bool record_metrics) const;
 
   // Returns credit card suggestions based on the |cards_to_suggest| and the
index e423cca..2a92b23 100644 (file)
@@ -26,6 +26,13 @@ extern const char kLocalHeuristicsOnlyForPasswordGeneration[];
 extern const char kShowAutofillTypePredictions[];
 extern const char kWalletServiceUseSandbox[];
 
+// As of today TIZEN_AUTOFILL_SUPPORT is restricted to
+// tizen_src/ewk/efl_integration only. Move this switch under
+// TIZEN_AUTOFILL_SUPPORT when possible.
+#if defined(USE_EFL)
+extern const char kDisableAutofill[];
+#endif
+
 #if defined(OS_ANDROID)
 extern const char kDisableAccessorySuggestionView[];
 extern const char kEnableAccessorySuggestionView[];
index 76215bc..46d705a 100644 (file)
@@ -75,9 +75,16 @@ class DISCARDABLE_MEMORY_EXPORT ClientDiscardableSharedMemoryManager
   void MemoryUsageChanged(size_t new_bytes_allocated,
                           size_t new_bytes_free) const;
 
+  // Release expired unlocked discardable memory
+  void ReleaseExpiredMemory();
+  void ScheduleReleaseExpiredMemory();
+
   mutable base::Lock lock_;
   DiscardableSharedMemoryHeap heap_;
   Delegate* const delegate_;
+  bool release_unlocked_memory_pending_;
+  const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+  base::WeakPtrFactory<ClientDiscardableSharedMemoryManager> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(ClientDiscardableSharedMemoryManager);
 };
index e49ed14..a64f9e0 100644 (file)
@@ -20,6 +20,7 @@
 
 namespace base {
 class DiscardableSharedMemory;
+class Time;
 }
 
 namespace discardable_memory {
@@ -87,6 +88,9 @@ class DISCARDABLE_MEMORY_EXPORT DiscardableSharedMemoryHeap {
   // Release shared memory segments that have been purged.
   void ReleasePurgedMemory();
 
+  // Release shared memory segments that have been expired.
+  bool ReleaseExpiredMemory(base::Time& expired_time);
+
   // Returns total bytes of memory in heap.
   size_t GetSize() const;
 
@@ -123,6 +127,8 @@ class DISCARDABLE_MEMORY_EXPORT DiscardableSharedMemoryHeap {
     bool IsUsed() const;
     bool IsResident() const;
 
+    bool IsExpired(const base::Time& expired_time, bool* is_unlocked) const;
+
     bool ContainsSpan(Span* span) const;
 
     base::trace_event::MemoryAllocatorDump* CreateMemoryAllocatorDump(
index c0fe1e7..5866e32 100644 (file)
@@ -132,8 +132,6 @@ class Plugin : public pp::Instance {
 
   std::unique_ptr<PnaclCoordinator> pnacl_coordinator_;
 
-  int exit_status_;
-
   PP_NaClFileInfo nexe_file_info_;
 
   pp::UMAPrivate uma_interface_;
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/components/payments/autofill_payment_instrument.h b/vendor/brightray/vendor/libchromiumcontent/src/components/payments/autofill_payment_instrument.h
new file mode 100644 (file)
index 0000000..08e536c
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PAYMENTS_AUTOFILL_PAYMENT_INSTRUMENT_H_
+#define COMPONENTS_PAYMENTS_AUTOFILL_PAYMENT_INSTRUMENT_H_
+
+#include <set>
+#include <string>
+#include <vector>
+
+#include "base/macros.h"
+#include "components/autofill/core/browser/credit_card.h"
+#include "components/payments/payment_instrument.h"
+
+namespace autofill {
+class AutofillProfile;
+}
+
+namespace payments {
+
+// Represents an Autofill/Payments credit card form of payment in Payment
+// Request.
+class AutofillPaymentInstrument : public PaymentInstrument {
+ public:
+  // |billing_profiles| is owned by the caller and should outlive this object.
+  AutofillPaymentInstrument(
+      const std::string& method_name,
+      const autofill::CreditCard& credit_card,
+      const std::vector<autofill::AutofillProfile*>& billing_profiles,
+      const std::string& app_locale);
+  ~AutofillPaymentInstrument() override;
+
+  // PaymentInstrument:
+  void InvokePaymentApp(PaymentInstrument::Delegate* delegate) override;
+
+ private:
+  const autofill::CreditCard credit_card_;
+  const std::vector<autofill::AutofillProfile*>& billing_profiles_;
+  const std::string app_locale_;
+
+  DISALLOW_COPY_AND_ASSIGN(AutofillPaymentInstrument);
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_AUTOFILL_PAYMENT_INSTRUMENT_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/components/payments/basic_card_response.h b/vendor/brightray/vendor/libchromiumcontent/src/components/payments/basic_card_response.h
new file mode 100644 (file)
index 0000000..f8e4029
--- /dev/null
@@ -0,0 +1,55 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PAYMENTS_BASIC_CARD_RESPONSE_H_
+#define COMPONENTS_PAYMENTS_BASIC_CARD_RESPONSE_H_
+
+#include <memory>
+
+#include "base/strings/string16.h"
+#include "components/payments/payment_address.h"
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace payments {
+
+// Contains the response from the PaymentRequest API when a user accepts
+// payment with a Basic Payment Card payment method.
+struct BasicCardResponse {
+ public:
+  BasicCardResponse();
+  BasicCardResponse(const BasicCardResponse& other);
+  ~BasicCardResponse();
+
+  bool operator==(const BasicCardResponse& other) const;
+  bool operator!=(const BasicCardResponse& other) const;
+
+  // Populates |value| with the properties of this BasicCardResponse.
+  std::unique_ptr<base::DictionaryValue> ToDictionaryValue() const;
+
+  // The cardholder's name as it appears on the card.
+  base::string16 cardholder_name;
+
+  // The primary account number (PAN) for the payment card.
+  base::string16 card_number;
+
+  // A two-digit string for the expiry month of the card in the range 01 to 12.
+  base::string16 expiry_month;
+
+  // A two-digit string for the expiry year of the card in the range 00 to 99.
+  base::string16 expiry_year;
+
+  // A three or four digit string for the security code of the card (sometimes
+  // known as the CVV, CVC, CVN, CVE or CID).
+  base::string16 card_security_code;
+
+  // The billing address information associated with the payment card.
+  PaymentAddress billing_address;
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_BASIC_CARD_RESPONSE_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_address.h b/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_address.h
new file mode 100644 (file)
index 0000000..29e16f7
--- /dev/null
@@ -0,0 +1,78 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PAYMENTS_PAYMENT_ADDRESS_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_ADDRESS_H_
+
+#include <memory>
+#include <vector>
+
+#include "base/strings/string16.h"
+
+// C++ bindings for the PaymentRequest API PaymentAddress. Conforms to the
+// following spec:
+// https://w3c.github.io/browser-payment-api/#paymentaddress-interface
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace payments {
+
+// A shipping or billing address.
+struct PaymentAddress {
+ public:
+  PaymentAddress();
+  PaymentAddress(const PaymentAddress& other);
+  ~PaymentAddress();
+
+  bool operator==(const PaymentAddress& other) const;
+  bool operator!=(const PaymentAddress& other) const;
+
+  // Populates |value| with the properties of this PaymentAddress.
+  std::unique_ptr<base::DictionaryValue> ToDictionaryValue() const;
+
+  // The CLDR (Common Locale Data Repository) region code. For example, US, GB,
+  // CN, or JP.
+  base::string16 country;
+
+  // The most specific part of the address. It can include, for example, a
+  // street name, a house number, apartment number, a rural delivery route,
+  // descriptive instructions, or a post office box number.
+  std::vector<base::string16> address_line;
+
+  // The top level administrative subdivision of the country. For example, this
+  // can be a state, a province, an oblast, or a prefecture.
+  base::string16 region;
+
+  // The city/town portion of the address.
+  base::string16 city;
+
+  // The dependent locality or sublocality within a city. For example, used for
+  // neighborhoods, boroughs, districts, or UK dependent localities.
+  base::string16 dependent_locality;
+
+  // The postal code or ZIP code, also known as PIN code in India.
+  base::string16 postal_code;
+
+  // The sorting code as used in, for example, France.
+  base::string16 sorting_code;
+
+  // The BCP-47 language code for the address. It's used to determine the field
+  // separators and the order of fields when formatting the address for display.
+  base::string16 language_code;
+
+  // The organization, firm, company, or institution at this address.
+  base::string16 organization;
+
+  // The name of the recipient or contact person.
+  base::string16 recipient;
+
+  // The phone number of the recipient or contact person.
+  base::string16 phone;
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_PAYMENT_ADDRESS_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_instrument.h b/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_instrument.h
new file mode 100644 (file)
index 0000000..fe87721
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PAYMENTS_PAYMENT_INSTRUMENT_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_INSTRUMENT_H_
+
+#include <set>
+#include <string>
+
+#include "base/macros.h"
+
+namespace payments {
+
+// Base class which represents a form of payment in Payment Request.
+class PaymentInstrument {
+ public:
+  class Delegate {
+   public:
+    virtual ~Delegate() {}
+
+    // Should be called with method name (e.g., "visa") and json-serialized
+    // stringified details.
+    virtual void OnInstrumentDetailsReady(
+        const std::string& method_name,
+        const std::string& stringified_details) = 0;
+
+    virtual void OnInstrumentDetailsError() = 0;
+  };
+
+  virtual ~PaymentInstrument() {}
+
+  // Will call into the |delegate| (can't be null) on success or error.
+  virtual void InvokePaymentApp(Delegate* delegate) = 0;
+
+  const std::string& method_name() { return method_name_; }
+
+ protected:
+  explicit PaymentInstrument(const std::string& method_name)
+      : method_name_(method_name) {}
+
+ private:
+  const std::string method_name_;
+
+  DISALLOW_COPY_AND_ASSIGN(PaymentInstrument);
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_PAYMENT_INSTRUMENT_H_
index 0207c6b..17c4ec4 100644 (file)
@@ -13,6 +13,8 @@
 #include "components/payments/currency_formatter.h"
 #include "components/payments/payment_request.mojom.h"
 #include "components/payments/payment_request_delegate.h"
+#include "components/payments/payment_request_spec.h"
+#include "components/payments/payment_request_state.h"
 #include "mojo/public/cpp/bindings/binding.h"
 
 namespace autofill {
@@ -28,7 +30,15 @@ namespace payments {
 
 class PaymentRequestWebContentsManager;
 
-class PaymentRequest : payments::mojom::PaymentRequest {
+// This class manages the interaction between the renderer (through the
+// PaymentRequestClient and Mojo stub implementation) and the UI (through the
+// PaymentRequestDelegate). The API user (merchant) specification (supported
+// payment methods, required information, order details) is stored in
+// PaymentRequestSpec, and the current user selection state (and related data)
+// is stored in PaymentRequestSpec.
+class PaymentRequest : public mojom::PaymentRequest,
+                       public PaymentRequestSpec::Observer,
+                       public PaymentRequestState::Delegate {
  public:
   PaymentRequest(
       content::WebContents* web_contents,
@@ -45,14 +55,25 @@ class PaymentRequest : payments::mojom::PaymentRequest {
   void Show() override;
   void UpdateWith(payments::mojom::PaymentDetailsPtr details) override {}
   void Abort() override;
-  void Complete(payments::mojom::PaymentComplete result) override {}
-  void CanMakePayment() override {}
+  void Complete(payments::mojom::PaymentComplete result) override;
+  void CanMakePayment() override;
+
+  // PaymentRequestSpec::Observer:
+  void OnInvalidSpecProvided() override;
+
+  // PaymentRequestState::Delegate:
+  const std::string& GetApplicationLocale() override;
+  autofill::PersonalDataManager* GetPersonalDataManager() override;
+  void OnPaymentResponseAvailable(mojom::PaymentResponsePtr response) override;
 
   // Called when the user explicitely cancelled the flow. Will send a message
   // to the renderer which will indirectly destroy this object (through
   // OnConnectionTerminated).
   void UserCancelled();
 
+  // Called when the user clicks on the "Pay" button.
+  void Pay();
+
   // As a result of a browser-side error or renderer-initiated mojo channel
   // closure (e.g. there was an error on the renderer side, or payment was
   // successful), this method is called. It is responsible for cleaning up,
@@ -68,83 +89,30 @@ class PaymentRequest : payments::mojom::PaymentRequest {
       const std::string& currency_system,
       const std::string& locale_name);
 
-  // Returns the appropriate Autofill Profiles for this user. On the first
-  // invocation of either getter, the profiles are fetched from the
-  // PersonalDataManager; on subsequent invocations, a cached version is
-  // returned. The profiles returned are owned by the request object.
-  const std::vector<autofill::AutofillProfile*>& shipping_profiles();
-  const std::vector<autofill::AutofillProfile*>& contact_profiles();
-
-  // Gets/sets the Autofill Profile representing the shipping address or contact
-  // information currently selected for this PaymentRequest flow. Can return
-  // null.
-  autofill::AutofillProfile* selected_shipping_profile() const {
-    return selected_shipping_profile_;
-  }
-  void set_selected_shipping_profile(autofill::AutofillProfile* profile) {
-    selected_shipping_profile_ = profile;
-  }
-  autofill::AutofillProfile* selected_contact_profile() const {
-    return selected_contact_profile_;
-  }
-  void set_selected_contact_profile(autofill::AutofillProfile* profile) {
-    selected_contact_profile_ = profile;
-  }
-
-  const std::vector<autofill::CreditCard*>& credit_cards() {
-    return credit_cards_;
-  }
-
-  // Returns the currently selected credit card for this PaymentRequest flow.
-  // It's not guaranteed to be complete. Returns nullptr if there is no selected
-  // card.
-  autofill::CreditCard* selected_credit_card() { return selected_credit_card_; }
-
-  autofill::PersonalDataManager* personal_data_manager() {
-    return delegate_->GetPersonalDataManager();
-  }
-
-  payments::mojom::PaymentDetails* details() { return details_.get(); }
-  const std::vector<std::string>& supported_card_networks() {
-    return supported_card_networks_;
-  }
-  content::WebContents* web_contents() { return web_contents_; }
+  // Uses CurrencyFormatter to format |amount| with the currency symbol for this
+  // request's currency.
+  base::string16 GetFormattedCurrencyAmount(const std::string& amount);
 
- private:
-  // Fetches the Autofill Profiles for this user from the PersonalDataManager,
-  // and stores copies of them, owned by this Request, in profile_cache_.
-  void PopulateProfileCache();
+  // Uses CurrencyFormatter to get the formatted currency code for this
+  // request's currency.
+  std::string GetFormattedCurrencyCode();
 
-  // Sets the default values for the selected Shipping and Contact profiles, as
-  // well as the selected Credit Card.
-  void SetDefaultProfileSelections();
+  content::WebContents* web_contents() { return web_contents_; }
 
-  // Validates the |method_data| and fills |supported_card_networks_|.
-  void PopulateValidatedMethodData(
-      const std::vector<payments::mojom::PaymentMethodDataPtr>& method_data);
+  PaymentRequestSpec* spec() { return spec_.get(); }
+  PaymentRequestState* state() { return state_.get(); }
 
+ private:
   content::WebContents* web_contents_;
   std::unique_ptr<PaymentRequestDelegate> delegate_;
   // |manager_| owns this PaymentRequest.
   PaymentRequestWebContentsManager* manager_;
   mojo::Binding<payments::mojom::PaymentRequest> binding_;
   payments::mojom::PaymentRequestClientPtr client_;
-  payments::mojom::PaymentDetailsPtr details_;
   std::unique_ptr<CurrencyFormatter> currency_formatter_;
-  // A set of supported basic card networks.
-  std::vector<std::string> supported_card_networks_;
-
-  // Profiles may change due to (e.g.) sync events, so profiles are cached after
-  // loading and owned here. They are populated once only, and ordered by
-  // frecency.
-  std::vector<std::unique_ptr<autofill::AutofillProfile>> profile_cache_;
-  std::vector<autofill::AutofillProfile*> shipping_profiles_;
-  std::vector<autofill::AutofillProfile*> contact_profiles_;
-  autofill::AutofillProfile* selected_shipping_profile_;
-  autofill::AutofillProfile* selected_contact_profile_;
-  std::vector<std::unique_ptr<autofill::CreditCard>> card_cache_;
-  std::vector<autofill::CreditCard*> credit_cards_;
-  autofill::CreditCard* selected_credit_card_;
+
+  std::unique_ptr<PaymentRequestSpec> spec_;
+  std::unique_ptr<PaymentRequestState> state_;
 
   DISALLOW_COPY_AND_ASSIGN(PaymentRequest);
 };
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_data_util.h b/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_data_util.h
new file mode 100644 (file)
index 0000000..28a395a
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DATA_UTIL_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DATA_UTIL_H_
+
+#include <string>
+#include <vector>
+
+#include "base/strings/string16.h"
+
+namespace autofill {
+class AutofillProfile;
+class CreditCard;
+}  // namespace autofill
+
+namespace payments {
+
+struct BasicCardResponse;
+struct PaymentAddress;
+
+namespace data_util {
+
+// Helper function to get an instance of web::PaymentAddress from an autofill
+// profile.
+PaymentAddress GetPaymentAddressFromAutofillProfile(
+    const autofill::AutofillProfile& profile,
+    const std::string& app_locale);
+
+// Helper function to get an instance of web::BasicCardResponse from an autofill
+// credit card.
+BasicCardResponse GetBasicCardResponseFromAutofillCreditCard(
+    const autofill::CreditCard& card,
+    const base::string16& cvc,
+    const std::vector<autofill::AutofillProfile*>& billing_profiles,
+    const std::string& app_locale);
+
+// Formats the given number |phone_number| to
+// i18n::phonenumbers::PhoneNumberUtil::PhoneNumberFormat::E164 format by using
+// i18n::phonenumbers::PhoneNumberUtil::Format, as defined in the Payment
+// Request spec
+// (https://w3c.github.io/browser-payment-api/#paymentrequest-updated-algorithm)
+std::string FormatPhoneForResponse(const std::string& phone_number,
+                                   const std::string& country_code);
+
+}  // namespace data_util
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DATA_UTIL_H_
index 65e56af..852087f 100644 (file)
@@ -5,6 +5,8 @@
 #ifndef COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DELEGATE_H_
 #define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_DELEGATE_H_
 
+#include <string>
+
 namespace autofill {
 class PersonalDataManager;
 }
@@ -27,6 +29,8 @@ class PaymentRequestDelegate {
   // Gets the PersonalDataManager associated with this PaymentRequest flow.
   // Cannot be null.
   virtual autofill::PersonalDataManager* GetPersonalDataManager() = 0;
+
+  virtual const std::string& GetApplicationLocale() const = 0;
 };
 
 }  // namespace payments
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_spec.h b/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_spec.h
new file mode 100644 (file)
index 0000000..cb19ccd
--- /dev/null
@@ -0,0 +1,76 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PAYMENTS_PAYMENT_REQUEST_SPEC_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_SPEC_H_
+
+#include <string>
+#include <vector>
+
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "components/payments/payment_request.mojom.h"
+
+namespace payments {
+
+// The spec contains all the options that the merchant has specified about this
+// Payment Request. It's a (mostly) read-only view, which can be updated in
+// certain occasions by the merchant (see API).
+class PaymentRequestSpec {
+ public:
+  // Any class call add itself as Observer via AddObserver() and receive
+  // notification about spec events.
+  class Observer {
+   public:
+    // Called when the provided spec (details, options, method_data) is invalid.
+    virtual void OnInvalidSpecProvided() = 0;
+
+   protected:
+    virtual ~Observer() {}
+  };
+
+  PaymentRequestSpec(mojom::PaymentOptionsPtr options,
+                     mojom::PaymentDetailsPtr details,
+                     std::vector<mojom::PaymentMethodDataPtr> method_data,
+                     PaymentRequestSpec::Observer* observer);
+  ~PaymentRequestSpec();
+
+  void AddObserver(Observer* observer);
+  void RemoveObserver(Observer* observer);
+
+  bool request_shipping() const { return options_->request_shipping; }
+  bool request_payer_name() const { return options_->request_payer_name; }
+  bool request_payer_phone() const { return options_->request_payer_phone; }
+  bool request_payer_email() const { return options_->request_payer_email; }
+
+  const std::vector<std::string>& supported_card_networks() {
+    return supported_card_networks_;
+  }
+
+  const mojom::PaymentDetails& details() const { return *details_.get(); }
+  const mojom::PaymentOptions& options() const { return *options_.get(); }
+
+ private:
+  // Validates the |method_data| and fills |supported_card_networks_|.
+  void PopulateValidatedMethodData(
+      const std::vector<mojom::PaymentMethodDataPtr>& method_data);
+
+  // Will notify all observers that the spec is invalid.
+  void NotifyOnInvalidSpecProvided();
+
+  mojom::PaymentOptionsPtr options_;
+  mojom::PaymentDetailsPtr details_;
+
+  // A list of supported basic card networks, in order that they were specified
+  // by the merchant.
+  std::vector<std::string> supported_card_networks_;
+
+  base::ObserverList<Observer> observers_;
+
+  DISALLOW_COPY_AND_ASSIGN(PaymentRequestSpec);
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_SPEC_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_state.h b/vendor/brightray/vendor/libchromiumcontent/src/components/payments/payment_request_state.h
new file mode 100644 (file)
index 0000000..ce5e906
--- /dev/null
@@ -0,0 +1,178 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_PAYMENTS_PAYMENT_REQUEST_STATE_H_
+#define COMPONENTS_PAYMENTS_PAYMENT_REQUEST_STATE_H_
+
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "components/autofill/core/browser/personal_data_manager.h"
+#include "components/payments/payment_request.mojom.h"
+#include "components/payments/payment_instrument.h"
+
+namespace autofill {
+class AutofillProfile;
+class CreditCard;
+}  // namespace autofill
+
+namespace payments {
+
+class PaymentRequestSpec;
+
+// Keeps track of the information currently selected by the user and whether the
+// user is ready to pay. Uses information from the PaymentRequestSpec, which is
+// what the merchant has specified, as input into the "is ready to pay"
+// computation.
+class PaymentRequestState : public PaymentInstrument::Delegate {
+ public:
+  // Any class call add itself as Observer via AddObserver() and receive
+  // notification about the state changing.
+  class Observer {
+   public:
+    // Called when the information (payment method, address/contact info,
+    // shipping option) changes.
+    virtual void OnSelectedInformationChanged() = 0;
+
+   protected:
+    virtual ~Observer() {}
+  };
+
+  class Delegate {
+   public:
+    virtual const std::string& GetApplicationLocale() = 0;
+    // Used to get the user's data.
+    virtual autofill::PersonalDataManager* GetPersonalDataManager() = 0;
+    // Called when the PaymentResponse is available.
+    virtual void OnPaymentResponseAvailable(
+        mojom::PaymentResponsePtr response) = 0;
+
+   protected:
+    virtual ~Delegate() {}
+  };
+
+  PaymentRequestState(PaymentRequestSpec* spec, Delegate* delegate);
+  ~PaymentRequestState() override;
+
+  void AddObserver(Observer* observer);
+  void RemoveObserver(Observer* observer);
+
+  // PaymentInstrument::Delegate:
+  void OnInstrumentDetailsReady(
+      const std::string& method_name,
+      const std::string& stringified_details) override;
+  void OnInstrumentDetailsError() override {}
+
+  // Initiates the generation of the PaymentResponse. Callers should check
+  // |is_ready_to_pay|, which is inexpensive.
+  void GeneratePaymentResponse();
+
+  // Gets the Autofill Profile representing the shipping address or contact
+  // information currently selected for this PaymentRequest flow. Can return
+  // null.
+  autofill::AutofillProfile* selected_shipping_profile() const {
+    return selected_shipping_profile_;
+  }
+  autofill::AutofillProfile* selected_contact_profile() const {
+    return selected_contact_profile_;
+  }
+  // Returns the currently selected credit card for this PaymentRequest flow.
+  // It's not guaranteed to be complete. Returns nullptr if there is no selected
+  // card.
+  autofill::CreditCard* selected_credit_card() const {
+    return selected_credit_card_;
+  }
+  const std::string& selected_shipping_option() {
+    return selected_shipping_option_;
+  }
+
+  // Returns the appropriate Autofill Profiles for this user. The profiles
+  // returned are owned by the PaymentRequestState.
+  const std::vector<autofill::AutofillProfile*>& shipping_profiles() {
+    return shipping_profiles_;
+  }
+  const std::vector<autofill::AutofillProfile*>& contact_profiles() {
+    return contact_profiles_;
+  }
+  const std::vector<autofill::CreditCard*>& credit_cards() {
+    return credit_cards_;
+  }
+
+  // Setters to change the selected information. Will have the side effect of
+  // recomputing "is ready to pay" and notify observers.
+  void SetSelectedShippingProfile(autofill::AutofillProfile* profile);
+  void SetSelectedContactProfile(autofill::AutofillProfile* profile);
+  void SetSelectedCreditCard(autofill::CreditCard* card);
+  void SetSelectedShippingOption(const std::string& id);
+
+  bool is_ready_to_pay() { return is_ready_to_pay_; }
+
+  // Returns a new mojo PaymentAddress based on the specified
+  // |profile| and |app_locale|.
+  static mojom::PaymentAddressPtr GetMojomPaymentAddressFromAutofillProfile(
+      const autofill::AutofillProfile& profile,
+      const std::string& app_locale);
+
+ private:
+  // Fetches the Autofill Profiles for this user from the PersonalDataManager,
+  // and stores copies of them, owned by this PaymentRequestState, in
+  // profile_cache_.
+  void PopulateProfileCache();
+
+  // Sets the initial selections for credit card and profiles, and notifies
+  // observers.
+  void SetDefaultProfileSelections();
+
+  // Uses the user-selected information as well as the merchant spec to update
+  // |is_ready_to_pay_| with the current state, by validating that all the
+  // required information is available. Will notify observers.
+  void UpdateIsReadyToPayAndNotifyObservers();
+
+  // Notifies all observers that selected information has changed.
+  void NotifyOnSelectedInformationChanged();
+
+  // Returns whether the selected data satisfies the PaymentDetails requirements
+  // (payment methods).
+  bool ArePaymentDetailsSatisfied();
+  // Returns whether the selected data satisfies the PaymentOptions requirements
+  // (contact info, shipping address).
+  bool ArePaymentOptionsSatisfied();
+
+  // Updates the selected_shipping_option based on the data passed to this
+  // payment request by the website. This will set selected_shipping_option_ to
+  // the last option marked selected in the options array.
+  void UpdateSelectedShippingOption();
+
+  bool is_ready_to_pay_;
+  const std::string& app_locale_;
+
+  // Not owned. Never null. Both outlive this object.
+  PaymentRequestSpec* spec_;
+  Delegate* delegate_;
+
+  autofill::AutofillProfile* selected_shipping_profile_;
+  autofill::AutofillProfile* selected_contact_profile_;
+  autofill::CreditCard* selected_credit_card_;
+  // The shipping options (and thus this pointer) are owned by |spec_| which
+  // outlives this object.
+  std::string selected_shipping_option_;
+
+  std::unique_ptr<PaymentInstrument> selected_payment_instrument_;
+
+  // Profiles may change due to (e.g.) sync events, so profiles are cached after
+  // loading and owned here. They are populated once only, and ordered by
+  // frecency.
+  std::vector<std::unique_ptr<autofill::AutofillProfile>> profile_cache_;
+  std::vector<autofill::AutofillProfile*> shipping_profiles_;
+  std::vector<autofill::AutofillProfile*> contact_profiles_;
+  std::vector<std::unique_ptr<autofill::CreditCard>> card_cache_;
+  std::vector<autofill::CreditCard*> credit_cards_;
+
+  base::ObserverList<Observer> observers_;
+
+  DISALLOW_COPY_AND_ASSIGN(PaymentRequestState);
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_PAYMENT_REQUEST_STATE_H_
index 133eecb..ce0199a 100644 (file)
@@ -41,6 +41,11 @@ class PaymentsValidators {
   static bool isValidScriptCodeFormat(const std::string& code,
                                       std::string* optionalErrorMessage);
 
+  // Splits BCP-57 |tag| into |language_code| and |script_code|.
+  static void SplitLanguageTag(const std::string& tag,
+                               std::string* language_code,
+                               std::string* script_code);
+
   // Returns true if the payment address is valid:
   //  - Has a valid region code
   //  - Has a valid language code, if any.
index fdb1cf9..e484cab 100644 (file)
@@ -59,6 +59,10 @@ class WebViewPlugin : public blink::WebPlugin,
     // loaded but idle. Doesn't work for blocked plugins, which is not loaded.
     virtual v8::Local<v8::Object> GetV8ScriptableObject(v8::Isolate*) const = 0;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+    virtual bool PluginIsAvplayer() { return false; }
+#endif
+
     // Called when the unobscured rect of the plugin is updated.
     virtual void OnUnobscuredRectUpdate(const gfx::Rect& unobscured_rect) {}
   };
index 8c2daea..6354fef 100644 (file)
 #include "content/public/browser/devtools_agent_host.h"
 #include "net/http/http_status_code.h"
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "net/url_request/view_cache_helper.h"
+#endif
+
 namespace base {
 class DictionaryValue;
 class Thread;
@@ -29,6 +33,10 @@ class DevToolsSocketFactory;
 namespace net {
 class IPEndPoint;
 class HttpServerRequestInfo;
+#if defined(OS_TIZEN_TV_PRODUCT)
+class ViewCacheHelper;
+class URLRequestContextGetter;
+#endif
 }
 
 namespace content {
@@ -61,6 +69,8 @@ class DevToolsHttpHandler {
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   void ReleasePort();
+  void setContextGetter(net::URLRequestContextGetter* getter);
+  void SendCacheResponse( int connection_id_, std::string& data, int result);
 #endif
 
  private:
@@ -74,6 +84,10 @@ class DevToolsHttpHandler {
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   void OnTerminateSocket(int connection_id);
+  void OnHttpCacheRequest(int connection_id,
+      const net::HttpServerRequestInfo& info);
+  std::unique_ptr<base::DictionaryValue> SerializeDescriptorHttpCache(
+      const std::string& host);
 #endif
 
   void OnJsonRequest(int connection_id,
@@ -133,6 +147,10 @@ class DevToolsHttpHandler {
       std::map<std::string, scoped_refptr<DevToolsAgentHost>>;
   DescriptorMap agent_host_map_;
   base::WeakPtrFactory<DevToolsHttpHandler> weak_factory_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  net::ViewCacheHelper cache_helper_;
+  net::URLRequestContextGetter* context_getter_;
+#endif
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsHttpHandler);
 };
index 056c6fd..dab9dde 100644 (file)
@@ -110,7 +110,7 @@ class CONTENT_EXPORT PepperTCPSocketMessageFilter
   int32_t OnMsgRead(const ppapi::host::HostMessageContext* context,
                     int32_t bytes_to_read);
   int32_t OnMsgWrite(const ppapi::host::HostMessageContext* context,
-                     const std::string& data);
+                     const ppapi::DataView& data);
   int32_t OnMsgListen(const ppapi::host::HostMessageContext* context,
                       int32_t backlog);
   int32_t OnMsgAccept(const ppapi::host::HostMessageContext* context);
@@ -171,7 +171,7 @@ class CONTENT_EXPORT PepperTCPSocketMessageFilter
                              int32_t pp_result);
   void SendReadReply(const ppapi::host::ReplyMessageContext& context,
                      int32_t pp_result,
-                     const std::string& data);
+                     const ppapi::DataView& data);
   void SendReadError(const ppapi::host::ReplyMessageContext& context,
                      int32_t pp_error);
   void SendWriteReply(const ppapi::host::ReplyMessageContext& context,
index c92f1b3..540118a 100644 (file)
@@ -46,12 +46,6 @@ class SocketOptionData;
 namespace host {
 struct ReplyMessageContext;
 }
-
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-namespace proxy {
-struct SerializedHandle;
-}
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
 }
 
 namespace content {
@@ -116,6 +110,10 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter
                          const PP_NetAddress_Private& addr);
   int32_t OnMsgLeaveGroup(const ppapi::host::HostMessageContext* context,
                           const PP_NetAddress_Private& addr);
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  int32_t OnMsgGetOption(const ppapi::host::HostMessageContext* context,
+                         const PP_UDPSocket_Option& name);
+#endif
 
   void DoBind(const ppapi::host::ReplyMessageContext& context,
               const PP_NetAddress_Private& addr);
@@ -141,9 +139,6 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter
 
   void SendBindReply(const ppapi::host::ReplyMessageContext& context,
                      int32_t result,
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-                     const ppapi::proxy::SerializedHandle& handle,
-#endif
                      const PP_NetAddress_Private& addr);
   void SendRecvFromResult(int32_t result,
                           const std::string& data,
@@ -158,6 +153,12 @@ class CONTENT_EXPORT PepperUDPSocketMessageFilter
   void SendSendToError(const ppapi::host::ReplyMessageContext& context,
                        int32_t result);
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  void SendGetOptionReply(const ppapi::host::ReplyMessageContext& context,
+                          int32_t result,
+                          const ppapi::SocketOptionData& value);
+#endif
+
   int32_t CanUseMulticastAPI(const PP_NetAddress_Private& addr);
 
   // Bitwise-or of SocketOption flags. This stores the state about whether
index ec9f2ad..9b03c50 100644 (file)
@@ -35,7 +35,7 @@
 #include "ui/base/window_open_disposition.h"
 
 class SkBitmap;
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
 struct ViewHostMsg_FocusedNodeChanged_Params;
 #endif
 
@@ -287,7 +287,7 @@ class CONTENT_EXPORT RenderViewHostImpl : public RenderViewHost,
                             const gfx::Rect& node_bounds_in_viewport,
                             bool is_select_node,
                             base::string16 node_id
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
                             ,
                             const ViewHostMsg_FocusedNodeChanged_Params& params
 #endif
@@ -305,7 +305,7 @@ class CONTENT_EXPORT RenderViewHostImpl : public RenderViewHost,
 
   //SBROWSER_FORM_NAVIGATION
   //FIXME: FORM Navigation Features to be re-implemented for m39
-  //Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=324 
+  //Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=324
 
   //virtual void moveToPrevInput() override;
   //virtual void moveToNextInput() override;
index 957a307..9c22934 100644 (file)
@@ -203,19 +203,26 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView,
   virtual gfx::AcceleratedWidget AccessibilityGetAcceleratedWidget();
   virtual gfx::NativeViewAccessible AccessibilityGetNativeViewAccessible();
 
+#if defined(USE_EFL)
+  virtual bool IsFirstVisuallyNonEmptyPaint() const;
+#endif
+
   // Informs that the focused DOM node has changed.
 #if defined(OS_ANDROID)
   virtual void FocusedNodeChanged(bool is_editable_node,
                                   const gfx::Rect& node_bounds_in_screen,
                                   bool is_select_node,
                                   base::string16 node_id) {}
-#elif defined(OS_TIZEN_TV_PRODUCT)
-  virtual void FocusedNodeChanged(bool is_editable_node,
-                                  const gfx::Rect& node_bounds_in_screen,
-                                  bool is_radio_or_checkbox) {}
 #else
   virtual void FocusedNodeChanged(bool is_editable_node,
-                                  const gfx::Rect& node_bounds_in_screen) {}
+                                  const gfx::Rect& node_bounds_in_screen
+#if defined(OS_TIZEN_TV_PRODUCT)
+                                  , bool is_radio_or_checkbox
+#endif
+#if defined(USE_WAYLAND)
+                                  , bool is_content_editable
+#endif
+                                  ) {}
 #endif
 
   virtual void OnSwapCompositorFrame(uint32_t compositor_frame_sink_id,
index bcd6bda..4f06501 100644 (file)
@@ -327,6 +327,10 @@ class CONTENT_EXPORT WebContentsImpl
   int GetCrashedErrorCode() const override;
   bool IsBeingDestroyed() const override;
   void NotifyNavigationStateChanged(InvalidateTypes changed_flags) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void SetUserInputURLNeedNotify(bool is_url_need_notify) override;
+  bool GetUserInputURLNeedNotify() const override;
+#endif
   void OnAudioStateChanged(bool is_audio_playing) override;
   base::TimeTicks GetLastActiveTime() const override;
   void SetLastActiveTime(base::TimeTicks last_active_time) override;
@@ -815,6 +819,11 @@ class CONTENT_EXPORT WebContentsImpl
                                  const std::vector<gfx::RectF>& rects,
                                  const gfx::RectF& active_rect);
 #endif
+  void OnNotifyUrlForPlayingVideo(const GURL& url);
+
+  bool did_first_visually_non_empty_paint() const {
+    return did_first_visually_non_empty_paint_;
+  }
 
  private:
   friend class WebContentsObserver;
@@ -1240,6 +1249,10 @@ class CONTENT_EXPORT WebContentsImpl
   // See ResumeLoadingCreatedWebContents.
   bool is_resume_pending_;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool is_url_need_notify_;
+#endif
+
   // Data for current page -----------------------------------------------------
 
   // When a title cannot be taken from any entry, this title will be used.
index bdcc42f..a01c891 100644 (file)
@@ -38,6 +38,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::StreamControls)
   IPC_STRUCT_TRAITS_MEMBER(video)
   IPC_STRUCT_TRAITS_MEMBER(hotword_enabled)
   IPC_STRUCT_TRAITS_MEMBER(disable_local_echo)
+  IPC_STRUCT_TRAITS_MEMBER(video_facing)
 IPC_STRUCT_TRAITS_END()
 
 IPC_STRUCT_TRAITS_BEGIN(content::StreamDeviceInfo)
index 2eb5628..0b6cb1c 100644 (file)
@@ -58,6 +58,8 @@ struct CONTENT_EXPORT StreamControls {
   // See crbug.com/564574 for discussion on possibly #ifdef'ing this out.
   bool hotword_enabled;  // kMediaStreamAudioHotword = "googHotword";
   bool disable_local_echo;
+  // The facing mode for video capture device.
+  int video_facing;
 };
 
 // StreamDeviceInfo describes information about a device.
index 0760afc..73bd746 100644 (file)
@@ -784,6 +784,11 @@ IPC_MESSAGE_ROUTED2(ViewHostMsg_ShowWidget,
 IPC_MESSAGE_ROUTED1(ViewHostMsg_ShowFullscreenWidget,
                     int /* route_id */)
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+// Message to request canvas to be shown in full-screen.
+IPC_MESSAGE_ROUTED(ViewMsg_RequestCanvasFullscreen)
+#endif
+
 // Sent by the renderer process to request that the browser close the view.
 // This corresponds to the window.close() API, and the browser may ignore
 // this message.  Otherwise, the browser will generates a ViewMsg_Close
@@ -835,9 +840,14 @@ IPC_MESSAGE_ROUTED0(ViewHostMsg_Focus)
 // webpage. The first parameter says whether the newly focused element needs
 // keyboard input (true for textfields, text areas and content editable divs).
 // The second parameter is the node bounds relative to RenderWidgetHostView.
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
 IPC_STRUCT_BEGIN(ViewHostMsg_FocusedNodeChanged_Params)
+#if defined(OS_TIZEN_TV_PRODUCT)
   IPC_STRUCT_MEMBER(bool, is_radio_or_checkbox_input_node)
+#endif
+#if defined(USE_WAYLAND)
+  IPC_STRUCT_MEMBER(bool, is_content_editable)
+#endif
 IPC_STRUCT_END()
 
 IPC_MESSAGE_ROUTED5(ViewHostMsg_FocusedNodeChanged,
@@ -848,7 +858,7 @@ IPC_MESSAGE_ROUTED4(ViewHostMsg_FocusedNodeChanged,
                     gfx::Rect /* node_bounds */,
                     bool /* is_select_node */,
                     base::string16 /* node_id */
-#if defined(OS_TIZEN_TV_PRODUCT)
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(USE_WAYLAND)
                     ,
                     ViewHostMsg_FocusedNodeChanged_Params /* params */
 #endif
@@ -958,6 +968,8 @@ IPC_MESSAGE_ROUTED2(ViewHostMsg_EnumerateDirectory,
                     int /* request_id */,
                     base::FilePath /* file_path */)
 
+IPC_MESSAGE_ROUTED1(ViewHostMsg_NotifyUrlForPlayingVideo, GURL /* url */)
+
 // Tells the browser to move the focus to the next (previous if reverse is
 // true) focusable element.
 IPC_MESSAGE_ROUTED1(ViewHostMsg_TakeFocus,
index fb1fbd1..3aaee2b 100644 (file)
@@ -58,6 +58,10 @@ class CONTENT_EXPORT JavaScriptDialogManager {
                              bool suppress_callbacks,
                              bool reset_state) = 0;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void OnDialogClosed(WebContents* web_contents) {}
+#endif
+
   virtual ~JavaScriptDialogManager() {}
 };
 
index 11fd30f..c7b8bd9 100644 (file)
@@ -408,6 +408,11 @@ class WebContents : public PageNavigator,
   // change.
   virtual void NotifyNavigationStateChanged(InvalidateTypes changed_flags) = 0;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void SetUserInputURLNeedNotify(bool is_url_need_notify) = 0;
+  virtual bool GetUserInputURLNeedNotify() const = 0;
+#endif
+
   // Notifies the WebContents that audio started or stopped being audible.
   virtual void OnAudioStateChanged(bool is_audio_playing) = 0;
 
index f7ea1b0..8451bf8 100644 (file)
@@ -449,6 +449,8 @@ class CONTENT_EXPORT WebContentsDelegate {
   virtual void WillImePanelShow() {}
 #endif
 
+  virtual void SetTooltipText(const base::string16& text) {}
+
 #if defined(OS_ANDROID)
   // Provides the rects of the current find-in-page matches.
   // Sent as a reply to RequestFindMatchRects.
@@ -466,7 +468,7 @@ class CONTENT_EXPORT WebContentsDelegate {
                                               const int request_id) {}
   virtual void OnRecognizeArticleResult(bool is_article,
                                 const base::string16& page_url) {}
-
+  virtual void NotifyUrlForPlayingVideo(const GURL& url) {}
   // Invoked when the preferred size of the contents has been changed.
   virtual void UpdatePreferredSize(WebContents* web_contents,
                                    const gfx::Size& pref_size) {}
@@ -584,12 +586,23 @@ class CONTENT_EXPORT WebContentsDelegate {
   // Requests the app banner. This method is called from the DevTools.
   virtual void RequestAppBannerFromDevTools(content::WebContents* web_contents);
 #if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void NotifySubtitleState(int state, double time_stamp = 0.0) {}
+  virtual void NotifySubtitlePlay(int active_track_id,
+                                  const std::string& url,
+                                  const std::string& lang) {}
+  virtual void NotifySubtitleData(int track_id,
+                                  double time_stamp,
+                                  const uint8_t* data,
+                                  unsigned size) {}
+  virtual void UpdateCurrentTime(double current_time) {}
   virtual void NotifyPlaybackState(int state,
                                    const std::string& url,
                                    const std::string& mimeType,
                                    bool* mediaResourceAcquired,
                                    std::string* translatedURL,
                                    std::string* drmInfo) {}
+  virtual bool GetMarlinEnable() { return false; }
+  virtual bool IsHighBitRate() { return false; }
 #endif
  protected:
   virtual ~WebContentsDelegate();
index d99eb7c..238da82 100644 (file)
@@ -222,6 +222,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
   IPC_STRUCT_TRAITS_MEMBER(use_scrollbar_thumb_focus_notifications)
   IPC_STRUCT_TRAITS_MEMBER(use_arrow_scroll)
   IPC_STRUCT_TRAITS_MEMBER(allow_file_access_from_external_urls)
+  IPC_STRUCT_TRAITS_MEMBER(media_subtitle_notification_enabled)
 #endif
   IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop)
   IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled)
index e514245..15a4adf 100644 (file)
@@ -330,7 +330,11 @@ CONTENT_EXPORT extern const char kTraceExportEventsToETW[];
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+CONTENT_EXPORT extern const char kEnableMediaSubtitleNotification[];
 CONTENT_EXPORT extern const char kEnableMediaPlaybackNotification[];
+#if defined(TIZEN_TBM_SUPPORT)
+CONTENT_EXPORT extern const char kDisableOverlayByWebGL[];
+#endif  // defined(TIZEN_TBM_SUPPORT)
 #endif
 
 #if defined(OS_TIZEN)
index 9e51257..edae4c0 100644 (file)
@@ -45,6 +45,7 @@ CONTENT_EXPORT extern const char kChromeUIResourcesHost[];
 CONTENT_EXPORT extern const char kChromeUIServiceWorkerInternalsHost[];
 CONTENT_EXPORT extern const char kChromeUITracingHost[];
 CONTENT_EXPORT extern const char kChromeUIUberHost[];
+CONTENT_EXPORT extern const char kChromeUIVersionHost[];
 CONTENT_EXPORT extern const char kChromeUIWebRTCInternalsHost[];
 
 // Full about URLs (including schemes).
@@ -64,6 +65,7 @@ CONTENT_EXPORT extern const char kChromeUINetworkErrorsListingURL[];
 CONTENT_EXPORT extern const char kChromeUINetworkErrorURL[];
 CONTENT_EXPORT extern const char kChromeUIPpapiFlashCrashURL[];
 CONTENT_EXPORT extern const char kChromeUIPpapiFlashHangURL[];
+CONTENT_EXPORT extern const char kChromeUIVersion[];
 
 // Special URL used to start a navigation to an error page.
 CONTENT_EXPORT extern const char kUnreachableWebDataURL[];
index 6d26a0a..687ee80 100644 (file)
@@ -313,6 +313,7 @@ struct CONTENT_EXPORT WebPreferences {
   } tizen_version;
 #endif
 #if defined(OS_TIZEN_TV_PRODUCT)
+  bool media_subtitle_notification_enabled;
   bool media_playback_notification_enabled;
 
   // hosted app need to get local access privilege when they use tv device api
index 4f8c95b..1167d3e 100644 (file)
@@ -267,6 +267,8 @@ class CONTENT_EXPORT ContentRendererClient {
                                GURL* new_url,
                                bool& is_decrypted_file);
 #if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void RenderViewDestroyed() { };
+
   virtual bool GetFileDecryptedDataBuffer(const GURL& url,
                                           std::vector<char>* data);
 
index 70852dd..15316a2 100644 (file)
@@ -80,6 +80,10 @@ class CONTENT_EXPORT RenderViewObserver : public IPC::Listener,
   // Handle scale factor change notification.
   virtual void DidChangePageScaleFactor() {}
 
+#if defined(OS_TIZEN)
+  virtual void PlayLinkEffect() {}
+#endif
+
   // IPC::Listener implementation.
   bool OnMessageReceived(const IPC::Message& message) override;
 
index 084ce33..0fe9b18 100644 (file)
@@ -39,6 +39,7 @@ class PepperAudioInputHost : public ppapi::host::ResourceHost {
   // Called when the stream is created.
   void StreamCreated(base::SharedMemoryHandle shared_memory_handle,
                      size_t shared_memory_size,
+                     uint32_t shared_memory_segment_count,
                      base::SyncSocket::Handle socket);
   void StreamCreationFailed();
 
@@ -53,6 +54,7 @@ class PepperAudioInputHost : public ppapi::host::ResourceHost {
   void OnOpenComplete(int32_t result,
                       base::SharedMemoryHandle shared_memory_handle,
                       size_t shared_memory_size,
+                      uint32_t shared_memory_segment_count,
                       base::SyncSocket::Handle socket_handle);
 
   int32_t GetRemoteHandles(
@@ -63,7 +65,7 @@ class PepperAudioInputHost : public ppapi::host::ResourceHost {
 
   void Close();
 
-  void SendOpenReply(int32_t result);
+  void SendOpenReply(int32_t result, uint32_t shared_memory_segment_count);
 
   // Non-owning pointer.
   RendererPpapiHostImpl* renderer_ppapi_host_;
index 7c38709..84da89b 100644 (file)
@@ -113,7 +113,7 @@ class PepperCompositorHost : public ppapi::host::ResourceHost {
 #if defined(TIZEN_PEPPER_EXTENSIONS)
   void UpdateHole();
   // Compositor Callbacks:
-  void OnDrawableContentRectChanged(gfx::Rect rect);
+  void OnDrawableContentRectChanged(gfx::Rect rect, bool);
   void OnOpacityChanged(bool opaque);
 
   RendererPpapiHost* renderer_ppapi_host_;
index ad21883..6f67e7c 100644 (file)
 #include "base/memory/ref_counted.h"
 #include "media/audio/audio_output_ipc.h"
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#endif
+
 namespace media {
 class AudioParameters;
 }
@@ -28,10 +32,14 @@ class PepperPlatformAudioOutput
  public:
   // Factory function, returns NULL on failure. StreamCreated() will be called
   // when the stream is created.
-  static PepperPlatformAudioOutput* Create(int sample_rate,
-                                           int frames_per_buffer,
-                                           int source_render_frame_id,
-                                           AudioHelper* client);
+  static PepperPlatformAudioOutput* Create(
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+      PP_AudioMode audio_mode,
+#endif
+      int sample_rate,
+      int frames_per_buffer,
+      int source_render_frame_id,
+      AudioHelper* client);
 
   // The following three methods are all called on main thread.
 
@@ -69,10 +77,14 @@ class PepperPlatformAudioOutput
 
   PepperPlatformAudioOutput();
 
-  bool Initialize(int sample_rate,
-                  int frames_per_buffer,
-                  int source_render_frame_id,
-                  AudioHelper* client);
+  bool Initialize(
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+      PP_AudioMode audio_mode,
+#endif
+      int sample_rate,
+      int frames_per_buffer,
+      int source_render_frame_id,
+      AudioHelper* client);
 
   // I/O thread backends to above functions.
   void InitializeOnIOThread(const media::AudioParameters& params);
index a3e1b8a..75f01f8 100644 (file)
@@ -125,7 +125,7 @@ class CONTENT_EXPORT PepperVideoDecoderHost
   // Non-owning pointer.
   RendererPpapiHost* renderer_ppapi_host_;
 
-  media::VideoCodecProfile profile_;
+  media::VideoCodecProfile profile_ = media::VIDEO_CODEC_PROFILE_UNKNOWN;
 
   std::unique_ptr<media::VideoDecodeAccelerator> decoder_;
 
@@ -141,7 +141,7 @@ class CONTENT_EXPORT PepperVideoDecoderHost
   // This is parallel to |shm_buffers_|.
   std::vector<uint8_t> shm_buffer_busy_;
 
-  uint32_t min_picture_count_;
+  uint32_t min_picture_count_ = 0;
   typedef std::map<uint32_t, PictureBufferState> PictureBufferMap;
   PictureBufferMap picture_buffer_map_;
 
index acbcfa0..cc061ba 100644 (file)
@@ -466,7 +466,7 @@ class CONTENT_EXPORT RenderFrameImpl
       blink::WebContentDecryptionModule* initial_cdm,
       const blink::WebString& sink_id) override;
 #if defined(ENABLE_TIZEN_MEDIA_RECORDER)
-  blink::WebMediaRecorderHandler* createMediaCaptureHandler() override;
+  blink::WebMediaRecorderHandler* createMediaRecorderHandler() override;
 #endif
   blink::WebApplicationCacheHost* createApplicationCacheHost(
       blink::WebApplicationCacheHostClient* client) override;
@@ -672,15 +672,14 @@ class CONTENT_EXPORT RenderFrameImpl
   blink::InterfaceRegistry* interfaceRegistry() override;
   blink::WebPageVisibilityState visibilityState() const override;
 
-#if defined(TIZEN_VIDEO_HOLE)
-  void setPresetDisableVideoHole(bool disable) override;
-#endif
-
 #if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
   void requestRotateWebMediaPlayer(
       blink::WebMediaPlayerRotate rotate) override;
 #endif
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void checkHLSSupport(const blink::WebString&, bool&) override;
+#endif
   // WebFrameSerializerClient implementation:
   void didSerializeDataForFrame(
       const blink::WebCString& data,
@@ -1074,7 +1073,7 @@ class CONTENT_EXPORT RenderFrameImpl
   RendererMediaPlayerManager* GetMediaPlayerManager();
 #endif
 #if defined(ENABLE_TIZEN_MEDIA_RECORDER)
-  RenderFrameObserver* GetMediaCaptureManager();
+  RenderFrameObserver* GetMediaRecorderManager();
 #endif
 
   bool AreSecureCodecsSupported();
@@ -1283,7 +1282,7 @@ class CONTENT_EXPORT RenderFrameImpl
 #endif
 
 #if defined(ENABLE_TIZEN_MEDIA_RECORDER)
-  RenderFrameObserver* media_capture_manager_;
+  RenderFrameObserver* media_recorder_manager_;
 #endif
 
   // The CDM and decoder factory attached to this frame, lazily initialized.
index 6ba4ed5..54ccfcf 100644 (file)
@@ -384,6 +384,10 @@ class CONTENT_EXPORT RenderViewImpl
 
   void didChangePageScaleFactor() override;
 
+#if defined(OS_TIZEN)
+  void playLinkEffect() override;
+#endif
+
   // RenderView implementation -------------------------------------------------
 
   bool Send(IPC::Message* message) override;
@@ -431,7 +435,7 @@ class CONTENT_EXPORT RenderViewImpl
   void DidCompletePageScaleAnimation() override;
   void OnDeviceScaleFactorChanged() override;
   void ResizeWebWidget() override;
-
+  void notifyUrlForPlayingVideo(const blink::WebURL& url) override;
   void OnCaptureRendererContentSnapShot(const gfx::Rect& src_subrect,
                                         const float page_scale_factor,
                                         const int request_id);
@@ -620,7 +624,11 @@ class CONTENT_EXPORT RenderViewImpl
 #endif
 
 #if defined(USE_EFL)
-    void OnRequestSelectionRect();
+  void OnRequestSelectionRect();
+#endif
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void OnRequestCanvasFullscreen();
 #endif
 
   void OnRecognizeArticle(int mode);
index eae1afe..1a9763a 100644 (file)
@@ -148,6 +148,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
 #if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
   bool getSystemAutoRotationSetting() override;
 #endif
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+  bool IsKantm2() override { return is_kantm2_; }
+#endif
 
   blink::WebDatabaseObserver* databaseObserver() override;
 
@@ -272,6 +275,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
   class SandboxSupport;
   std::unique_ptr<SandboxSupport> sandbox_support_;
 #endif
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+  bool is_kantm2_;
+#endif
 
   // This counter keeps track of the number of times sudden termination is
   // enabled or disabled. It starts at 0 (enabled) and for every disable
@@ -314,6 +320,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
 
   mojom::URLLoaderFactoryAssociatedPtr url_loader_factory_;
 
+
   DISALLOW_COPY_AND_ASSIGN(RendererBlinkPlatformImpl);
 };
 
index cef4a85..eeed452 100644 (file)
@@ -25,6 +25,8 @@
 #include "device/gamepad/game_controller_data_fetcher_mac.h"
 #include "device/gamepad/gamepad_platform_data_fetcher_mac.h"
 #include "device/gamepad/xbox_data_fetcher_mac.h"
+#elif defined(OS_TIZEN_TV_PRODUCT) && defined(USE_TIZEN_TV_ACCESSORY)
+#include "tizen_src/ewk/efl_integration/browser/gamepad/gamepad_platform_data_fetcher_tizen_tv.h"
 #elif defined(OS_LINUX)
 #include "device/gamepad/gamepad_platform_data_fetcher_linux.h"
 #endif
@@ -47,6 +49,9 @@ void AddGamepadPlatformDataFetchers(GamepadDataFetcherManager* manager) {
   manager->AddFactory(new GamepadPlatformDataFetcherMac::Factory());
   manager->AddFactory(new XboxDataFetcher::Factory());
 
+#elif defined(OS_TIZEN_TV_PRODUCT) && defined(USE_TIZEN_TV_ACCESSORY)
+  manager->AddFactory(new GamepadPlatformDataFetcherTizenTV::Factory());
+
 #elif defined(OS_LINUX) && defined(USE_UDEV)
 
   manager->AddFactory(new GamepadPlatformDataFetcherLinux::Factory());
index cf41105..a4132a8 100644 (file)
@@ -1,5 +1,6 @@
 namespace blink {
-extern const char mediaControlsMobileCss[4220];
+extern const char mediaControlsMobileCss[6083];
+extern const char mediaControlsTVCss[6000];
 extern const char mediaControlsWearableCss[1616];
 extern const char themeChromiumTizenCss[598];
 extern const char themeChromiumTizenMobileCss[122];
index b204be5..b381251 100644 (file)
@@ -1,4 +1,4 @@
 // Generated by //build/write_build_date_header.py
 #ifndef BUILD_DATE
-#define BUILD_DATE "Oct 01 2017 05:00:00"
+#define BUILD_DATE "Jan 15 2018 05:00:00"
 #endif // BUILD_DATE
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8MediaSyncPara.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8MediaSyncPara.h
new file mode 100644 (file)
index 0000000..1d9c380
--- /dev/null
@@ -0,0 +1,51 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8MediaSyncPara_h
+#define V8MediaSyncPara_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/MediaSyncPara.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8MediaSyncPara {
+  STATIC_ONLY(V8MediaSyncPara);
+ public:
+  CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+  static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+  CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+  static MediaSyncPara* toImpl(v8::Local<v8::Object> object) {
+    return toScriptWrappable(object)->toImpl<MediaSyncPara>();
+  }
+  CORE_EXPORT static MediaSyncPara* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+  CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+  template<typename VisitorDispatcher>
+  static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+    visitor->trace(scriptWrappable->toImpl<MediaSyncPara>());
+  }
+  static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+    visitor->traceWrappers(scriptWrappable->toImpl<MediaSyncPara>());
+  }
+  static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<MediaSyncPara> {
+  typedef V8MediaSyncPara Type;
+};
+
+}  // namespace blink
+
+#endif  // V8MediaSyncPara_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8RegisterTimelineEvent.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8RegisterTimelineEvent.h
new file mode 100644 (file)
index 0000000..35b91e4
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8RegisterTimelineEvent_h
+#define V8RegisterTimelineEvent_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/V8Event.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/RegisterTimelineEvent.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8RegisterTimelineEvent {
+  STATIC_ONLY(V8RegisterTimelineEvent);
+ public:
+  CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+  static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+  CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+  static RegisterTimelineEvent* toImpl(v8::Local<v8::Object> object) {
+    return toScriptWrappable(object)->toImpl<RegisterTimelineEvent>();
+  }
+  CORE_EXPORT static RegisterTimelineEvent* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+  CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+  template<typename VisitorDispatcher>
+  static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+    visitor->trace(scriptWrappable->toImpl<RegisterTimelineEvent>());
+  }
+  static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+    visitor->traceWrappers(scriptWrappable->toImpl<RegisterTimelineEvent>());
+  }
+  static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
+  static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<RegisterTimelineEvent> {
+  typedef V8RegisterTimelineEvent Type;
+};
+
+}  // namespace blink
+
+#endif  // V8RegisterTimelineEvent_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8RegisterTimelineEventInit.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8RegisterTimelineEventInit.h
new file mode 100644 (file)
index 0000000..74e0ced
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8RegisterTimelineEventInit_h
+#define V8RegisterTimelineEventInit_h
+
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "core/CoreExport.h"
+#include "core/html/RegisterTimelineEventInit.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class ExceptionState;
+
+class V8RegisterTimelineEventInit {
+ public:
+  CORE_EXPORT static void toImpl(v8::Isolate*, v8::Local<v8::Value>, RegisterTimelineEventInit&, ExceptionState&);
+};
+
+CORE_EXPORT bool toV8RegisterTimelineEventInit(const RegisterTimelineEventInit&, v8::Local<v8::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate*);
+
+template<class CallbackInfo>
+inline void v8SetReturnValue(const CallbackInfo& callbackInfo, RegisterTimelineEventInit& impl) {
+  v8SetReturnValue(callbackInfo, toV8(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()));
+}
+
+template <>
+struct NativeValueTraits<RegisterTimelineEventInit> {
+  static RegisterTimelineEventInit nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
+};
+
+template <>
+struct V8TypeOf<RegisterTimelineEventInit> {
+  typedef V8RegisterTimelineEventInit Type;
+};
+
+}  // namespace blink
+
+#endif  // V8RegisterTimelineEventInit_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8StringChangeEvent.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8StringChangeEvent.h
new file mode 100644 (file)
index 0000000..8837882
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8StringChangeEvent_h
+#define V8StringChangeEvent_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/V8Event.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/StringChangeEvent.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8StringChangeEvent {
+  STATIC_ONLY(V8StringChangeEvent);
+ public:
+  CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+  static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+  CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+  static StringChangeEvent* toImpl(v8::Local<v8::Object> object) {
+    return toScriptWrappable(object)->toImpl<StringChangeEvent>();
+  }
+  CORE_EXPORT static StringChangeEvent* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+  CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+  template<typename VisitorDispatcher>
+  static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+    visitor->trace(scriptWrappable->toImpl<StringChangeEvent>());
+  }
+  static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+    visitor->traceWrappers(scriptWrappable->toImpl<StringChangeEvent>());
+  }
+  static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
+  static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<StringChangeEvent> {
+  typedef V8StringChangeEvent Type;
+};
+
+}  // namespace blink
+
+#endif  // V8StringChangeEvent_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8StringChangeEventInit.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8StringChangeEventInit.h
new file mode 100644 (file)
index 0000000..8930e4f
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8StringChangeEventInit_h
+#define V8StringChangeEventInit_h
+
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "core/CoreExport.h"
+#include "core/html/StringChangeEventInit.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class ExceptionState;
+
+class V8StringChangeEventInit {
+ public:
+  CORE_EXPORT static void toImpl(v8::Isolate*, v8::Local<v8::Value>, StringChangeEventInit&, ExceptionState&);
+};
+
+CORE_EXPORT bool toV8StringChangeEventInit(const StringChangeEventInit&, v8::Local<v8::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate*);
+
+template<class CallbackInfo>
+inline void v8SetReturnValue(const CallbackInfo& callbackInfo, StringChangeEventInit& impl) {
+  v8SetReturnValue(callbackInfo, toV8(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()));
+}
+
+template <>
+struct NativeValueTraits<StringChangeEventInit> {
+  static StringChangeEventInit nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
+};
+
+template <>
+struct V8TypeOf<StringChangeEventInit> {
+  typedef V8StringChangeEventInit Type;
+};
+
+}  // namespace blink
+
+#endif  // V8StringChangeEventInit_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8SyncTimelineEvent.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8SyncTimelineEvent.h
new file mode 100644 (file)
index 0000000..e9c48d5
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8SyncTimelineEvent_h
+#define V8SyncTimelineEvent_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "bindings/core/v8/V8DOMWrapper.h"
+#include "bindings/core/v8/V8Event.h"
+#include "bindings/core/v8/WrapperTypeInfo.h"
+#include "core/CoreExport.h"
+#include "core/html/SyncTimelineEvent.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class V8SyncTimelineEvent {
+  STATIC_ONLY(V8SyncTimelineEvent);
+ public:
+  CORE_EXPORT static bool hasInstance(v8::Local<v8::Value>, v8::Isolate*);
+  static v8::Local<v8::Object> findInstanceInPrototypeChain(v8::Local<v8::Value>, v8::Isolate*);
+  CORE_EXPORT static v8::Local<v8::FunctionTemplate> domTemplate(v8::Isolate*, const DOMWrapperWorld&);
+  static SyncTimelineEvent* toImpl(v8::Local<v8::Object> object) {
+    return toScriptWrappable(object)->toImpl<SyncTimelineEvent>();
+  }
+  CORE_EXPORT static SyncTimelineEvent* toImplWithTypeCheck(v8::Isolate*, v8::Local<v8::Value>);
+  CORE_EXPORT static const WrapperTypeInfo wrapperTypeInfo;
+  template<typename VisitorDispatcher>
+  static void trace(VisitorDispatcher visitor, ScriptWrappable* scriptWrappable) {
+    visitor->trace(scriptWrappable->toImpl<SyncTimelineEvent>());
+  }
+  static void traceWrappers(WrapperVisitor* visitor, ScriptWrappable* scriptWrappable) {
+    visitor->traceWrappers(scriptWrappable->toImpl<SyncTimelineEvent>());
+  }
+  static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&);
+  static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
+};
+
+template <>
+struct V8TypeOf<SyncTimelineEvent> {
+  typedef V8SyncTimelineEvent Type;
+};
+
+}  // namespace blink
+
+#endif  // V8SyncTimelineEvent_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8SyncTimelineEventInit.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/bindings/core/v8/V8SyncTimelineEventInit.h
new file mode 100644 (file)
index 0000000..ca52f97
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef V8SyncTimelineEventInit_h
+#define V8SyncTimelineEventInit_h
+
+#include "bindings/core/v8/ToV8.h"
+#include "bindings/core/v8/V8Binding.h"
+#include "core/CoreExport.h"
+#include "core/html/SyncTimelineEventInit.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class ExceptionState;
+
+class V8SyncTimelineEventInit {
+ public:
+  CORE_EXPORT static void toImpl(v8::Isolate*, v8::Local<v8::Value>, SyncTimelineEventInit&, ExceptionState&);
+};
+
+CORE_EXPORT bool toV8SyncTimelineEventInit(const SyncTimelineEventInit&, v8::Local<v8::Object> dictionary, v8::Local<v8::Object> creationContext, v8::Isolate*);
+
+template<class CallbackInfo>
+inline void v8SetReturnValue(const CallbackInfo& callbackInfo, SyncTimelineEventInit& impl) {
+  v8SetReturnValue(callbackInfo, toV8(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()));
+}
+
+template <>
+struct NativeValueTraits<SyncTimelineEventInit> {
+  static SyncTimelineEventInit nativeValue(v8::Isolate*, v8::Local<v8::Value>, ExceptionState&);
+};
+
+template <>
+struct V8TypeOf<SyncTimelineEventInit> {
+  typedef V8SyncTimelineEventInit Type;
+};
+
+}  // namespace blink
+
+#endif  // V8SyncTimelineEventInit_h
index 32de811..e74c965 100644 (file)
@@ -429,425 +429,426 @@ enum CSSValueID {
     CSSValueMediaExitFullscreenButton = 414,
     CSSValueMediaFullscreenVolumeSlider = 415,
     CSSValueMediaFullscreenVolumeSliderThumb = 416,
-    CSSValueMediaMuteButton = 417,
-    CSSValueMediaPlayButton = 418,
-    CSSValueMediaSeekBackButton = 419,
-    CSSValueMediaSeekForwardButton = 420,
-    CSSValueMediaOverlayPlayButton = 421,
-    CSSValueMediaRotateButton = 422,
-    CSSValueMediaOverlaySpinner = 423,
-    CSSValueMediaToggleClosedCaptionsButton = 424,
-    CSSValueMediaSlider = 425,
-    CSSValueMediaSliderthumb = 426,
-    CSSValueMediaVolumeSliderContainer = 427,
-    CSSValueMediaVolumeSlider = 428,
-    CSSValueMediaVolumeSliderthumb = 429,
-    CSSValueMediaControlsBackground = 430,
-    CSSValueMediaControlsFullscreenBackground = 431,
-    CSSValueMediaCurrentTimeDisplay = 432,
-    CSSValueMediaTimeRemainingDisplay = 433,
-    CSSValueInternalMediaCastOffButton = 434,
-    CSSValueInternalMediaOverlayCastOffButton = 435,
-    CSSValueInternalMediaTrackSelectionCheckmark = 436,
-    CSSValueInternalMediaClosedCaptionsIcon = 437,
-    CSSValueInternalMediaSubtitlesIcon = 438,
-    CSSValueInternalMediaOverflowButton = 439,
-    CSSValueInternalMediaDownloadButton = 440,
-    CSSValueMenulist = 441,
-    CSSValueMenulistButton = 442,
-    CSSValueMenulistText = 443,
-    CSSValueMenulistTextfield = 444,
-    CSSValueMeter = 445,
-    CSSValueProgressBar = 446,
-    CSSValueProgressBarValue = 447,
-    CSSValueSliderHorizontal = 448,
-    CSSValueSliderVertical = 449,
-    CSSValueSliderthumbHorizontal = 450,
-    CSSValueSliderthumbVertical = 451,
-    CSSValueCaret = 452,
-    CSSValueSearchfield = 453,
-    CSSValueSearchfieldCancelButton = 454,
-    CSSValueTextfield = 455,
-    CSSValueTextarea = 456,
-    CSSValueCapsLockIndicator = 457,
-    CSSValueRound = 458,
-    CSSValueBorder = 459,
-    CSSValueBorderBox = 460,
-    CSSValueContent = 461,
-    CSSValueContentBox = 462,
-    CSSValuePadding = 463,
-    CSSValuePaddingBox = 464,
-    CSSValueCurrent = 465,
-    CSSValueRoot = 466,
-    CSSValueMarginBox = 467,
-    CSSValueContain = 468,
-    CSSValueCover = 469,
-    CSSValueLogical = 470,
-    CSSValueVisual = 471,
-    CSSValueAlternate = 472,
-    CSSValueAlternateReverse = 473,
-    CSSValueForwards = 474,
-    CSSValueBackwards = 475,
-    CSSValueInfinite = 476,
-    CSSValueRunning = 477,
-    CSSValuePaused = 478,
-    CSSValueFlat = 479,
-    CSSValuePreserve3d = 480,
-    CSSValueEase = 481,
-    CSSValueLinear = 482,
-    CSSValueEaseIn = 483,
-    CSSValueEaseOut = 484,
-    CSSValueEaseInOut = 485,
-    CSSValueStepStart = 486,
-    CSSValueStepMiddle = 487,
-    CSSValueStepEnd = 488,
-    CSSValueSteps = 489,
-    CSSValueCubicBezier = 490,
-    CSSValueDocument = 491,
-    CSSValueReset = 492,
-    CSSValueZoom = 493,
-    CSSValueVisiblePainted = 494,
-    CSSValueVisibleFill = 495,
-    CSSValueVisibleStroke = 496,
-    CSSValuePainted = 497,
-    CSSValueFill = 498,
-    CSSValueStroke = 499,
-    CSSValueBoundingBox = 500,
-    CSSValueSpellOut = 501,
-    CSSValueDigits = 502,
-    CSSValueLiteralPunctuation = 503,
-    CSSValueNoPunctuation = 504,
-    CSSValueAntialiased = 505,
-    CSSValueSubpixelAntialiased = 506,
-    CSSValueOptimizeSpeed = 507,
-    CSSValueOptimizeLegibility = 508,
-    CSSValueGeometricPrecision = 509,
-    CSSValueEconomy = 510,
-    CSSValueExact = 511,
-    CSSValueLr = 512,
-    CSSValueRl = 513,
-    CSSValueTb = 514,
-    CSSValueLrTb = 515,
-    CSSValueRlTb = 516,
-    CSSValueTbRl = 517,
-    CSSValueHorizontalTb = 518,
-    CSSValueVerticalRl = 519,
-    CSSValueVerticalLr = 520,
-    CSSValueAfter = 521,
-    CSSValueBefore = 522,
-    CSSValueOver = 523,
-    CSSValueUnder = 524,
-    CSSValueFilled = 525,
-    CSSValueOpen = 526,
-    CSSValueDot = 527,
-    CSSValueDoubleCircle = 528,
-    CSSValueTriangle = 529,
-    CSSValueSesame = 530,
-    CSSValueEllipse = 531,
-    CSSValueClosestSide = 532,
-    CSSValueClosestCorner = 533,
-    CSSValueFarthestSide = 534,
-    CSSValueFarthestCorner = 535,
-    CSSValueMixed = 536,
-    CSSValueSideways = 537,
-    CSSValueSidewaysRight = 538,
-    CSSValueUpright = 539,
-    CSSValueVerticalRight = 540,
-    CSSValueOn = 541,
-    CSSValueOff = 542,
-    CSSValueOptimizeQuality = 543,
-    CSSValuePixelated = 544,
-    CSSValueWebkitOptimizeContrast = 545,
-    CSSValueNonzero = 546,
-    CSSValueEvenodd = 547,
-    CSSValueAt = 548,
-    CSSValueAlphabetic = 549,
-    CSSValueFullscreen = 550,
-    CSSValueStandalone = 551,
-    CSSValueMinimalUi = 552,
-    CSSValueBrowser = 553,
-    CSSValueSticky = 554,
-    CSSValueCoarse = 555,
-    CSSValueFine = 556,
-    CSSValueOnDemand = 557,
-    CSSValueHover = 558,
-    CSSValueMultiply = 559,
-    CSSValueScreen = 560,
-    CSSValueDarken = 561,
-    CSSValueLighten = 562,
-    CSSValueColorDodge = 563,
-    CSSValueColorBurn = 564,
-    CSSValueHardLight = 565,
-    CSSValueSoftLight = 566,
-    CSSValueDifference = 567,
-    CSSValueExclusion = 568,
-    CSSValueHue = 569,
-    CSSValueSaturation = 570,
-    CSSValueColor = 571,
-    CSSValueLuminosity = 572,
-    CSSValueScaleDown = 573,
-    CSSValueBalance = 574,
-    CSSValueWebkitPagedX = 575,
-    CSSValueWebkitPagedY = 576,
-    CSSValueDrag = 577,
-    CSSValueNoDrag = 578,
-    CSSValueSpan = 579,
-    CSSValueMinmax = 580,
-    CSSValueEachLine = 581,
-    CSSValueRectangle = 582,
-    CSSValueProgressive = 583,
-    CSSValueInterlace = 584,
-    CSSValueWindowed = 585,
-    CSSValueMarkers = 586,
-    CSSValueInternalExtendToZoom = 587,
-    CSSValuePanX = 588,
-    CSSValuePanY = 589,
-    CSSValuePanLeft = 590,
-    CSSValuePanRight = 591,
-    CSSValuePanUp = 592,
-    CSSValuePanDown = 593,
-    CSSValueManipulation = 594,
-    CSSValuePinchZoom = 595,
-    CSSValueLastBaseline = 596,
-    CSSValueSelfStart = 597,
-    CSSValueSelfEnd = 598,
-    CSSValueLegacy = 599,
-    CSSValueSmooth = 600,
-    CSSValueScrollPosition = 601,
-    CSSValueRevert = 602,
-    CSSValueUnset = 603,
-    CSSValueLinearGradient = 604,
-    CSSValueRadialGradient = 605,
-    CSSValueRepeatingLinearGradient = 606,
-    CSSValueRepeatingRadialGradient = 607,
-    CSSValuePaint = 608,
-    CSSValueWebkitCrossFade = 609,
-    CSSValueWebkitGradient = 610,
-    CSSValueWebkitLinearGradient = 611,
-    CSSValueWebkitRadialGradient = 612,
-    CSSValueWebkitRepeatingLinearGradient = 613,
-    CSSValueWebkitRepeatingRadialGradient = 614,
-    CSSValueWebkitImageSet = 615,
-    CSSValueFrom = 616,
-    CSSValueTo = 617,
-    CSSValueColorStop = 618,
-    CSSValueRadial = 619,
-    CSSValueAttr = 620,
-    CSSValueCounter = 621,
-    CSSValueCounters = 622,
-    CSSValueRect = 623,
-    CSSValuePolygon = 624,
-    CSSValueFormat = 625,
-    CSSValueInvert = 626,
-    CSSValueGrayscale = 627,
-    CSSValueSepia = 628,
-    CSSValueSaturate = 629,
-    CSSValueHueRotate = 630,
-    CSSValueOpacity = 631,
-    CSSValueBrightness = 632,
-    CSSValueContrast = 633,
-    CSSValueBlur = 634,
-    CSSValueDropShadow = 635,
-    CSSValueUrl = 636,
-    CSSValueRgb = 637,
-    CSSValueRgba = 638,
-    CSSValueHsl = 639,
-    CSSValueHsla = 640,
-    CSSValueMatrix = 641,
-    CSSValueMatrix3d = 642,
-    CSSValuePerspective = 643,
-    CSSValueRotate = 644,
-    CSSValueRotateX = 645,
-    CSSValueRotateY = 646,
-    CSSValueRotateZ = 647,
-    CSSValueRotate3d = 648,
-    CSSValueScale = 649,
-    CSSValueScaleX = 650,
-    CSSValueScaleY = 651,
-    CSSValueScaleZ = 652,
-    CSSValueScale3d = 653,
-    CSSValueSkew = 654,
-    CSSValueSkewX = 655,
-    CSSValueSkewY = 656,
-    CSSValueTranslate = 657,
-    CSSValueTranslateX = 658,
-    CSSValueTranslateY = 659,
-    CSSValueTranslateZ = 660,
-    CSSValueTranslate3d = 661,
-    CSSValuePath = 662,
-    CSSValueCalc = 663,
-    CSSValueWebkitCalc = 664,
-    CSSValueMandatory = 665,
-    CSSValueProximity = 666,
-    CSSValueFromImage = 667,
-    CSSValueStyle = 668,
-    CSSValueLayout = 669,
-    CSSValueSize = 670,
-    CSSValueAutoFill = 671,
-    CSSValueAutoFit = 672,
-    CSSValueVar = 673,
-    CSSValueInternalVariableValue = 674,
-    CSSValueAvoidPage = 675,
-    CSSValuePage = 676,
-    CSSValueRecto = 677,
-    CSSValueVerso = 678,
-    CSSValueAvoidColumn = 679,
-    CSSValueAliceblue = 680,
-    CSSValueAntiquewhite = 681,
-    CSSValueAquamarine = 682,
-    CSSValueAzure = 683,
-    CSSValueBeige = 684,
-    CSSValueBisque = 685,
-    CSSValueBlanchedalmond = 686,
-    CSSValueBlueviolet = 687,
-    CSSValueBrown = 688,
-    CSSValueBurlywood = 689,
-    CSSValueCadetblue = 690,
-    CSSValueChartreuse = 691,
-    CSSValueChocolate = 692,
-    CSSValueCoral = 693,
-    CSSValueCornflowerblue = 694,
-    CSSValueCornsilk = 695,
-    CSSValueCrimson = 696,
-    CSSValueCyan = 697,
-    CSSValueDarkblue = 698,
-    CSSValueDarkcyan = 699,
-    CSSValueDarkgoldenrod = 700,
-    CSSValueDarkgray = 701,
-    CSSValueDarkgreen = 702,
-    CSSValueDarkgrey = 703,
-    CSSValueDarkkhaki = 704,
-    CSSValueDarkmagenta = 705,
-    CSSValueDarkolivegreen = 706,
-    CSSValueDarkorange = 707,
-    CSSValueDarkorchid = 708,
-    CSSValueDarkred = 709,
-    CSSValueDarksalmon = 710,
-    CSSValueDarkseagreen = 711,
-    CSSValueDarkslateblue = 712,
-    CSSValueDarkslategray = 713,
-    CSSValueDarkslategrey = 714,
-    CSSValueDarkturquoise = 715,
-    CSSValueDarkviolet = 716,
-    CSSValueDeeppink = 717,
-    CSSValueDeepskyblue = 718,
-    CSSValueDimgray = 719,
-    CSSValueDimgrey = 720,
-    CSSValueDodgerblue = 721,
-    CSSValueFirebrick = 722,
-    CSSValueFloralwhite = 723,
-    CSSValueForestgreen = 724,
-    CSSValueGainsboro = 725,
-    CSSValueGhostwhite = 726,
-    CSSValueGold = 727,
-    CSSValueGoldenrod = 728,
-    CSSValueGreenyellow = 729,
-    CSSValueHoneydew = 730,
-    CSSValueHotpink = 731,
-    CSSValueIndianred = 732,
-    CSSValueIndigo = 733,
-    CSSValueIvory = 734,
-    CSSValueKhaki = 735,
-    CSSValueLavender = 736,
-    CSSValueLavenderblush = 737,
-    CSSValueLawngreen = 738,
-    CSSValueLemonchiffon = 739,
-    CSSValueLightblue = 740,
-    CSSValueLightcoral = 741,
-    CSSValueLightcyan = 742,
-    CSSValueLightgoldenrodyellow = 743,
-    CSSValueLightgray = 744,
-    CSSValueLightgreen = 745,
-    CSSValueLightgrey = 746,
-    CSSValueLightpink = 747,
-    CSSValueLightsalmon = 748,
-    CSSValueLightseagreen = 749,
-    CSSValueLightskyblue = 750,
-    CSSValueLightslategray = 751,
-    CSSValueLightslategrey = 752,
-    CSSValueLightsteelblue = 753,
-    CSSValueLightyellow = 754,
-    CSSValueLimegreen = 755,
-    CSSValueLinen = 756,
-    CSSValueMagenta = 757,
-    CSSValueMediumaquamarine = 758,
-    CSSValueMediumblue = 759,
-    CSSValueMediumorchid = 760,
-    CSSValueMediumpurple = 761,
-    CSSValueMediumseagreen = 762,
-    CSSValueMediumslateblue = 763,
-    CSSValueMediumspringgreen = 764,
-    CSSValueMediumturquoise = 765,
-    CSSValueMediumvioletred = 766,
-    CSSValueMidnightblue = 767,
-    CSSValueMintcream = 768,
-    CSSValueMistyrose = 769,
-    CSSValueMoccasin = 770,
-    CSSValueNavajowhite = 771,
-    CSSValueOldlace = 772,
-    CSSValueOlivedrab = 773,
-    CSSValueOrangered = 774,
-    CSSValueOrchid = 775,
-    CSSValuePalegoldenrod = 776,
-    CSSValuePalegreen = 777,
-    CSSValuePaleturquoise = 778,
-    CSSValuePalevioletred = 779,
-    CSSValuePapayawhip = 780,
-    CSSValuePeachpuff = 781,
-    CSSValuePeru = 782,
-    CSSValuePink = 783,
-    CSSValuePlum = 784,
-    CSSValuePowderblue = 785,
-    CSSValueRebeccapurple = 786,
-    CSSValueRosybrown = 787,
-    CSSValueRoyalblue = 788,
-    CSSValueSaddlebrown = 789,
-    CSSValueSalmon = 790,
-    CSSValueSandybrown = 791,
-    CSSValueSeagreen = 792,
-    CSSValueSeashell = 793,
-    CSSValueSienna = 794,
-    CSSValueSkyblue = 795,
-    CSSValueSlateblue = 796,
-    CSSValueSlategray = 797,
-    CSSValueSlategrey = 798,
-    CSSValueSnow = 799,
-    CSSValueSpringgreen = 800,
-    CSSValueSteelblue = 801,
-    CSSValueTan = 802,
-    CSSValueThistle = 803,
-    CSSValueTomato = 804,
-    CSSValueTurquoise = 805,
-    CSSValueViolet = 806,
-    CSSValueWheat = 807,
-    CSSValueWhitesmoke = 808,
-    CSSValueYellowgreen = 809,
-    CSSValueAlpha = 810,
-    CSSValueLuminance = 811,
-    CSSValueAccumulate = 812,
-    CSSValueNew = 813,
-    CSSValueSRGB = 814,
-    CSSValueLinearRGB = 815,
-    CSSValueCrispEdges = 816,
-    CSSValueButt = 817,
-    CSSValueMiter = 818,
-    CSSValueBevel = 819,
-    CSSValueBeforeEdge = 820,
-    CSSValueAfterEdge = 821,
-    CSSValueCentral = 822,
-    CSSValueTextBeforeEdge = 823,
-    CSSValueTextAfterEdge = 824,
-    CSSValueIdeographic = 825,
-    CSSValueHanging = 826,
-    CSSValueMathematical = 827,
-    CSSValueUseScript = 828,
-    CSSValueNoChange = 829,
-    CSSValueResetSize = 830,
-    CSSValueDynamic = 831,
-    CSSValueNonScalingStroke = 832,
+    CSSValueMediaBrightnessButton = 417,
+    CSSValueMediaMuteButton = 418,
+    CSSValueMediaPlayButton = 419,
+    CSSValueMediaSeekBackButton = 420,
+    CSSValueMediaSeekForwardButton = 421,
+    CSSValueMediaOverlayPlayButton = 422,
+    CSSValueMediaRotateButton = 423,
+    CSSValueMediaOverlaySpinner = 424,
+    CSSValueMediaToggleClosedCaptionsButton = 425,
+    CSSValueMediaSlider = 426,
+    CSSValueMediaSliderthumb = 427,
+    CSSValueMediaVolumeSliderContainer = 428,
+    CSSValueMediaVolumeSlider = 429,
+    CSSValueMediaVolumeSliderthumb = 430,
+    CSSValueMediaControlsBackground = 431,
+    CSSValueMediaControlsFullscreenBackground = 432,
+    CSSValueMediaCurrentTimeDisplay = 433,
+    CSSValueMediaTimeRemainingDisplay = 434,
+    CSSValueInternalMediaCastOffButton = 435,
+    CSSValueInternalMediaOverlayCastOffButton = 436,
+    CSSValueInternalMediaTrackSelectionCheckmark = 437,
+    CSSValueInternalMediaClosedCaptionsIcon = 438,
+    CSSValueInternalMediaSubtitlesIcon = 439,
+    CSSValueInternalMediaOverflowButton = 440,
+    CSSValueInternalMediaDownloadButton = 441,
+    CSSValueMenulist = 442,
+    CSSValueMenulistButton = 443,
+    CSSValueMenulistText = 444,
+    CSSValueMenulistTextfield = 445,
+    CSSValueMeter = 446,
+    CSSValueProgressBar = 447,
+    CSSValueProgressBarValue = 448,
+    CSSValueSliderHorizontal = 449,
+    CSSValueSliderVertical = 450,
+    CSSValueSliderthumbHorizontal = 451,
+    CSSValueSliderthumbVertical = 452,
+    CSSValueCaret = 453,
+    CSSValueSearchfield = 454,
+    CSSValueSearchfieldCancelButton = 455,
+    CSSValueTextfield = 456,
+    CSSValueTextarea = 457,
+    CSSValueCapsLockIndicator = 458,
+    CSSValueRound = 459,
+    CSSValueBorder = 460,
+    CSSValueBorderBox = 461,
+    CSSValueContent = 462,
+    CSSValueContentBox = 463,
+    CSSValuePadding = 464,
+    CSSValuePaddingBox = 465,
+    CSSValueCurrent = 466,
+    CSSValueRoot = 467,
+    CSSValueMarginBox = 468,
+    CSSValueContain = 469,
+    CSSValueCover = 470,
+    CSSValueLogical = 471,
+    CSSValueVisual = 472,
+    CSSValueAlternate = 473,
+    CSSValueAlternateReverse = 474,
+    CSSValueForwards = 475,
+    CSSValueBackwards = 476,
+    CSSValueInfinite = 477,
+    CSSValueRunning = 478,
+    CSSValuePaused = 479,
+    CSSValueFlat = 480,
+    CSSValuePreserve3d = 481,
+    CSSValueEase = 482,
+    CSSValueLinear = 483,
+    CSSValueEaseIn = 484,
+    CSSValueEaseOut = 485,
+    CSSValueEaseInOut = 486,
+    CSSValueStepStart = 487,
+    CSSValueStepMiddle = 488,
+    CSSValueStepEnd = 489,
+    CSSValueSteps = 490,
+    CSSValueCubicBezier = 491,
+    CSSValueDocument = 492,
+    CSSValueReset = 493,
+    CSSValueZoom = 494,
+    CSSValueVisiblePainted = 495,
+    CSSValueVisibleFill = 496,
+    CSSValueVisibleStroke = 497,
+    CSSValuePainted = 498,
+    CSSValueFill = 499,
+    CSSValueStroke = 500,
+    CSSValueBoundingBox = 501,
+    CSSValueSpellOut = 502,
+    CSSValueDigits = 503,
+    CSSValueLiteralPunctuation = 504,
+    CSSValueNoPunctuation = 505,
+    CSSValueAntialiased = 506,
+    CSSValueSubpixelAntialiased = 507,
+    CSSValueOptimizeSpeed = 508,
+    CSSValueOptimizeLegibility = 509,
+    CSSValueGeometricPrecision = 510,
+    CSSValueEconomy = 511,
+    CSSValueExact = 512,
+    CSSValueLr = 513,
+    CSSValueRl = 514,
+    CSSValueTb = 515,
+    CSSValueLrTb = 516,
+    CSSValueRlTb = 517,
+    CSSValueTbRl = 518,
+    CSSValueHorizontalTb = 519,
+    CSSValueVerticalRl = 520,
+    CSSValueVerticalLr = 521,
+    CSSValueAfter = 522,
+    CSSValueBefore = 523,
+    CSSValueOver = 524,
+    CSSValueUnder = 525,
+    CSSValueFilled = 526,
+    CSSValueOpen = 527,
+    CSSValueDot = 528,
+    CSSValueDoubleCircle = 529,
+    CSSValueTriangle = 530,
+    CSSValueSesame = 531,
+    CSSValueEllipse = 532,
+    CSSValueClosestSide = 533,
+    CSSValueClosestCorner = 534,
+    CSSValueFarthestSide = 535,
+    CSSValueFarthestCorner = 536,
+    CSSValueMixed = 537,
+    CSSValueSideways = 538,
+    CSSValueSidewaysRight = 539,
+    CSSValueUpright = 540,
+    CSSValueVerticalRight = 541,
+    CSSValueOn = 542,
+    CSSValueOff = 543,
+    CSSValueOptimizeQuality = 544,
+    CSSValuePixelated = 545,
+    CSSValueWebkitOptimizeContrast = 546,
+    CSSValueNonzero = 547,
+    CSSValueEvenodd = 548,
+    CSSValueAt = 549,
+    CSSValueAlphabetic = 550,
+    CSSValueFullscreen = 551,
+    CSSValueStandalone = 552,
+    CSSValueMinimalUi = 553,
+    CSSValueBrowser = 554,
+    CSSValueSticky = 555,
+    CSSValueCoarse = 556,
+    CSSValueFine = 557,
+    CSSValueOnDemand = 558,
+    CSSValueHover = 559,
+    CSSValueMultiply = 560,
+    CSSValueScreen = 561,
+    CSSValueDarken = 562,
+    CSSValueLighten = 563,
+    CSSValueColorDodge = 564,
+    CSSValueColorBurn = 565,
+    CSSValueHardLight = 566,
+    CSSValueSoftLight = 567,
+    CSSValueDifference = 568,
+    CSSValueExclusion = 569,
+    CSSValueHue = 570,
+    CSSValueSaturation = 571,
+    CSSValueColor = 572,
+    CSSValueLuminosity = 573,
+    CSSValueScaleDown = 574,
+    CSSValueBalance = 575,
+    CSSValueWebkitPagedX = 576,
+    CSSValueWebkitPagedY = 577,
+    CSSValueDrag = 578,
+    CSSValueNoDrag = 579,
+    CSSValueSpan = 580,
+    CSSValueMinmax = 581,
+    CSSValueEachLine = 582,
+    CSSValueRectangle = 583,
+    CSSValueProgressive = 584,
+    CSSValueInterlace = 585,
+    CSSValueWindowed = 586,
+    CSSValueMarkers = 587,
+    CSSValueInternalExtendToZoom = 588,
+    CSSValuePanX = 589,
+    CSSValuePanY = 590,
+    CSSValuePanLeft = 591,
+    CSSValuePanRight = 592,
+    CSSValuePanUp = 593,
+    CSSValuePanDown = 594,
+    CSSValueManipulation = 595,
+    CSSValuePinchZoom = 596,
+    CSSValueLastBaseline = 597,
+    CSSValueSelfStart = 598,
+    CSSValueSelfEnd = 599,
+    CSSValueLegacy = 600,
+    CSSValueSmooth = 601,
+    CSSValueScrollPosition = 602,
+    CSSValueRevert = 603,
+    CSSValueUnset = 604,
+    CSSValueLinearGradient = 605,
+    CSSValueRadialGradient = 606,
+    CSSValueRepeatingLinearGradient = 607,
+    CSSValueRepeatingRadialGradient = 608,
+    CSSValuePaint = 609,
+    CSSValueWebkitCrossFade = 610,
+    CSSValueWebkitGradient = 611,
+    CSSValueWebkitLinearGradient = 612,
+    CSSValueWebkitRadialGradient = 613,
+    CSSValueWebkitRepeatingLinearGradient = 614,
+    CSSValueWebkitRepeatingRadialGradient = 615,
+    CSSValueWebkitImageSet = 616,
+    CSSValueFrom = 617,
+    CSSValueTo = 618,
+    CSSValueColorStop = 619,
+    CSSValueRadial = 620,
+    CSSValueAttr = 621,
+    CSSValueCounter = 622,
+    CSSValueCounters = 623,
+    CSSValueRect = 624,
+    CSSValuePolygon = 625,
+    CSSValueFormat = 626,
+    CSSValueInvert = 627,
+    CSSValueGrayscale = 628,
+    CSSValueSepia = 629,
+    CSSValueSaturate = 630,
+    CSSValueHueRotate = 631,
+    CSSValueOpacity = 632,
+    CSSValueBrightness = 633,
+    CSSValueContrast = 634,
+    CSSValueBlur = 635,
+    CSSValueDropShadow = 636,
+    CSSValueUrl = 637,
+    CSSValueRgb = 638,
+    CSSValueRgba = 639,
+    CSSValueHsl = 640,
+    CSSValueHsla = 641,
+    CSSValueMatrix = 642,
+    CSSValueMatrix3d = 643,
+    CSSValuePerspective = 644,
+    CSSValueRotate = 645,
+    CSSValueRotateX = 646,
+    CSSValueRotateY = 647,
+    CSSValueRotateZ = 648,
+    CSSValueRotate3d = 649,
+    CSSValueScale = 650,
+    CSSValueScaleX = 651,
+    CSSValueScaleY = 652,
+    CSSValueScaleZ = 653,
+    CSSValueScale3d = 654,
+    CSSValueSkew = 655,
+    CSSValueSkewX = 656,
+    CSSValueSkewY = 657,
+    CSSValueTranslate = 658,
+    CSSValueTranslateX = 659,
+    CSSValueTranslateY = 660,
+    CSSValueTranslateZ = 661,
+    CSSValueTranslate3d = 662,
+    CSSValuePath = 663,
+    CSSValueCalc = 664,
+    CSSValueWebkitCalc = 665,
+    CSSValueMandatory = 666,
+    CSSValueProximity = 667,
+    CSSValueFromImage = 668,
+    CSSValueStyle = 669,
+    CSSValueLayout = 670,
+    CSSValueSize = 671,
+    CSSValueAutoFill = 672,
+    CSSValueAutoFit = 673,
+    CSSValueVar = 674,
+    CSSValueInternalVariableValue = 675,
+    CSSValueAvoidPage = 676,
+    CSSValuePage = 677,
+    CSSValueRecto = 678,
+    CSSValueVerso = 679,
+    CSSValueAvoidColumn = 680,
+    CSSValueAliceblue = 681,
+    CSSValueAntiquewhite = 682,
+    CSSValueAquamarine = 683,
+    CSSValueAzure = 684,
+    CSSValueBeige = 685,
+    CSSValueBisque = 686,
+    CSSValueBlanchedalmond = 687,
+    CSSValueBlueviolet = 688,
+    CSSValueBrown = 689,
+    CSSValueBurlywood = 690,
+    CSSValueCadetblue = 691,
+    CSSValueChartreuse = 692,
+    CSSValueChocolate = 693,
+    CSSValueCoral = 694,
+    CSSValueCornflowerblue = 695,
+    CSSValueCornsilk = 696,
+    CSSValueCrimson = 697,
+    CSSValueCyan = 698,
+    CSSValueDarkblue = 699,
+    CSSValueDarkcyan = 700,
+    CSSValueDarkgoldenrod = 701,
+    CSSValueDarkgray = 702,
+    CSSValueDarkgreen = 703,
+    CSSValueDarkgrey = 704,
+    CSSValueDarkkhaki = 705,
+    CSSValueDarkmagenta = 706,
+    CSSValueDarkolivegreen = 707,
+    CSSValueDarkorange = 708,
+    CSSValueDarkorchid = 709,
+    CSSValueDarkred = 710,
+    CSSValueDarksalmon = 711,
+    CSSValueDarkseagreen = 712,
+    CSSValueDarkslateblue = 713,
+    CSSValueDarkslategray = 714,
+    CSSValueDarkslategrey = 715,
+    CSSValueDarkturquoise = 716,
+    CSSValueDarkviolet = 717,
+    CSSValueDeeppink = 718,
+    CSSValueDeepskyblue = 719,
+    CSSValueDimgray = 720,
+    CSSValueDimgrey = 721,
+    CSSValueDodgerblue = 722,
+    CSSValueFirebrick = 723,
+    CSSValueFloralwhite = 724,
+    CSSValueForestgreen = 725,
+    CSSValueGainsboro = 726,
+    CSSValueGhostwhite = 727,
+    CSSValueGold = 728,
+    CSSValueGoldenrod = 729,
+    CSSValueGreenyellow = 730,
+    CSSValueHoneydew = 731,
+    CSSValueHotpink = 732,
+    CSSValueIndianred = 733,
+    CSSValueIndigo = 734,
+    CSSValueIvory = 735,
+    CSSValueKhaki = 736,
+    CSSValueLavender = 737,
+    CSSValueLavenderblush = 738,
+    CSSValueLawngreen = 739,
+    CSSValueLemonchiffon = 740,
+    CSSValueLightblue = 741,
+    CSSValueLightcoral = 742,
+    CSSValueLightcyan = 743,
+    CSSValueLightgoldenrodyellow = 744,
+    CSSValueLightgray = 745,
+    CSSValueLightgreen = 746,
+    CSSValueLightgrey = 747,
+    CSSValueLightpink = 748,
+    CSSValueLightsalmon = 749,
+    CSSValueLightseagreen = 750,
+    CSSValueLightskyblue = 751,
+    CSSValueLightslategray = 752,
+    CSSValueLightslategrey = 753,
+    CSSValueLightsteelblue = 754,
+    CSSValueLightyellow = 755,
+    CSSValueLimegreen = 756,
+    CSSValueLinen = 757,
+    CSSValueMagenta = 758,
+    CSSValueMediumaquamarine = 759,
+    CSSValueMediumblue = 760,
+    CSSValueMediumorchid = 761,
+    CSSValueMediumpurple = 762,
+    CSSValueMediumseagreen = 763,
+    CSSValueMediumslateblue = 764,
+    CSSValueMediumspringgreen = 765,
+    CSSValueMediumturquoise = 766,
+    CSSValueMediumvioletred = 767,
+    CSSValueMidnightblue = 768,
+    CSSValueMintcream = 769,
+    CSSValueMistyrose = 770,
+    CSSValueMoccasin = 771,
+    CSSValueNavajowhite = 772,
+    CSSValueOldlace = 773,
+    CSSValueOlivedrab = 774,
+    CSSValueOrangered = 775,
+    CSSValueOrchid = 776,
+    CSSValuePalegoldenrod = 777,
+    CSSValuePalegreen = 778,
+    CSSValuePaleturquoise = 779,
+    CSSValuePalevioletred = 780,
+    CSSValuePapayawhip = 781,
+    CSSValuePeachpuff = 782,
+    CSSValuePeru = 783,
+    CSSValuePink = 784,
+    CSSValuePlum = 785,
+    CSSValuePowderblue = 786,
+    CSSValueRebeccapurple = 787,
+    CSSValueRosybrown = 788,
+    CSSValueRoyalblue = 789,
+    CSSValueSaddlebrown = 790,
+    CSSValueSalmon = 791,
+    CSSValueSandybrown = 792,
+    CSSValueSeagreen = 793,
+    CSSValueSeashell = 794,
+    CSSValueSienna = 795,
+    CSSValueSkyblue = 796,
+    CSSValueSlateblue = 797,
+    CSSValueSlategray = 798,
+    CSSValueSlategrey = 799,
+    CSSValueSnow = 800,
+    CSSValueSpringgreen = 801,
+    CSSValueSteelblue = 802,
+    CSSValueTan = 803,
+    CSSValueThistle = 804,
+    CSSValueTomato = 805,
+    CSSValueTurquoise = 806,
+    CSSValueViolet = 807,
+    CSSValueWheat = 808,
+    CSSValueWhitesmoke = 809,
+    CSSValueYellowgreen = 810,
+    CSSValueAlpha = 811,
+    CSSValueLuminance = 812,
+    CSSValueAccumulate = 813,
+    CSSValueNew = 814,
+    CSSValueSRGB = 815,
+    CSSValueLinearRGB = 816,
+    CSSValueCrispEdges = 817,
+    CSSValueButt = 818,
+    CSSValueMiter = 819,
+    CSSValueBevel = 820,
+    CSSValueBeforeEdge = 821,
+    CSSValueAfterEdge = 822,
+    CSSValueCentral = 823,
+    CSSValueTextBeforeEdge = 824,
+    CSSValueTextAfterEdge = 825,
+    CSSValueIdeographic = 826,
+    CSSValueHanging = 827,
+    CSSValueMathematical = 828,
+    CSSValueUseScript = 829,
+    CSSValueNoChange = 830,
+    CSSValueResetSize = 831,
+    CSSValueDynamic = 832,
+    CSSValueNonScalingStroke = 833,
 };
 
-const int numCSSValueKeywords = 833;
+const int numCSSValueKeywords = 834;
 const size_t maxCSSValueKeywordLength = 42;
 
 const char* getValueName(CSSValueID);
index 2f30ad1..6b1db55 100644 (file)
@@ -13,6 +13,8 @@
 #include "bindings/core/v8/V8ApplicationCacheErrorEvent.h"
 #include "core/events/UIEvent.h"
 #include "bindings/core/v8/V8UIEvent.h"
+#include "core/html/StringChangeEvent.h"
+#include "bindings/core/v8/V8StringChangeEvent.h"
 #include "core/events/ClipboardEvent.h"
 #include "bindings/core/v8/V8ClipboardEvent.h"
 #include "core/events/ProgressEvent.h"
@@ -37,6 +39,8 @@
 #include "bindings/core/v8/V8DragEvent.h"
 #include "core/events/PointerEvent.h"
 #include "bindings/core/v8/V8PointerEvent.h"
+#include "core/html/RegisterTimelineEvent.h"
+#include "bindings/core/v8/V8RegisterTimelineEvent.h"
 #include "core/events/InputEvent.h"
 #include "bindings/core/v8/V8InputEvent.h"
 #include "core/events/SecurityPolicyViolationEvent.h"
@@ -63,6 +67,8 @@
 #include "bindings/core/v8/V8WheelEvent.h"
 #include "core/events/AnimationPlaybackEvent.h"
 #include "bindings/core/v8/V8AnimationPlaybackEvent.h"
+#include "core/html/SyncTimelineEvent.h"
+#include "bindings/core/v8/V8SyncTimelineEvent.h"
 #include "core/events/BeforeUnloadEvent.h"
 #include "bindings/core/v8/V8BeforeUnloadEvent.h"
 #include "core/events/CompositionEvent.h"
index ed89938..24e7ab8 100644 (file)
@@ -42,13 +42,16 @@ CORE_EXPORT extern const WTF::AtomicString& TouchEvent;
 CORE_EXPORT extern const WTF::AtomicString& TransitionEvent;
 CORE_EXPORT extern const WTF::AtomicString& UIEvent;
 CORE_EXPORT extern const WTF::AtomicString& WheelEvent;
+CORE_EXPORT extern const WTF::AtomicString& RegisterTimelineEvent;
+CORE_EXPORT extern const WTF::AtomicString& StringChangeEvent;
+CORE_EXPORT extern const WTF::AtomicString& SyncTimelineEvent;
 CORE_EXPORT extern const WTF::AtomicString& TrackEvent;
 CORE_EXPORT extern const WTF::AtomicString& RelatedEvent;
 CORE_EXPORT extern const WTF::AtomicString& InputEvent;
 CORE_EXPORT extern const WTF::AtomicString& PointerEvent;
 CORE_EXPORT extern const WTF::AtomicString& AnimationPlaybackEvent;
 
-const unsigned EventNamesCount = 33;
+const unsigned EventNamesCount = 36;
 
 CORE_EXPORT void init();
 
index 443f614..e581224 100644 (file)
@@ -67,6 +67,7 @@ CORE_EXPORT extern const WTF::AtomicString& compositionupdate;
 CORE_EXPORT extern const WTF::AtomicString& connect;
 CORE_EXPORT extern const WTF::AtomicString& connecting;
 CORE_EXPORT extern const WTF::AtomicString& connectionavailable;
+CORE_EXPORT extern const WTF::AtomicString& contentidchange;
 CORE_EXPORT extern const WTF::AtomicString& contextlost;
 CORE_EXPORT extern const WTF::AtomicString& contextmenu;
 CORE_EXPORT extern const WTF::AtomicString& contextrestored;
@@ -161,6 +162,7 @@ CORE_EXPORT extern const WTF::AtomicString& mouseout;
 CORE_EXPORT extern const WTF::AtomicString& mouseover;
 CORE_EXPORT extern const WTF::AtomicString& mouseup;
 CORE_EXPORT extern const WTF::AtomicString& mousewheel;
+CORE_EXPORT extern const WTF::AtomicString& mrsurlchange;
 CORE_EXPORT extern const WTF::AtomicString& mute;
 CORE_EXPORT extern const WTF::AtomicString& negotiationneeded;
 CORE_EXPORT extern const WTF::AtomicString& nexttrack;
@@ -199,6 +201,7 @@ CORE_EXPORT extern const WTF::AtomicString& progress;
 CORE_EXPORT extern const WTF::AtomicString& push;
 CORE_EXPORT extern const WTF::AtomicString& ratechange;
 CORE_EXPORT extern const WTF::AtomicString& readystatechange;
+CORE_EXPORT extern const WTF::AtomicString& registertimeline;
 CORE_EXPORT extern const WTF::AtomicString& rejectionhandled;
 CORE_EXPORT extern const WTF::AtomicString& removesourcebuffer;
 CORE_EXPORT extern const WTF::AtomicString& removestream;
@@ -240,6 +243,7 @@ CORE_EXPORT extern const WTF::AtomicString& submit;
 CORE_EXPORT extern const WTF::AtomicString& success;
 CORE_EXPORT extern const WTF::AtomicString& suspend;
 CORE_EXPORT extern const WTF::AtomicString& sync;
+CORE_EXPORT extern const WTF::AtomicString& synctimeline;
 CORE_EXPORT extern const WTF::AtomicString& terminate;
 CORE_EXPORT extern const WTF::AtomicString& textInput;
 CORE_EXPORT extern const WTF::AtomicString& timeout;
@@ -298,7 +302,7 @@ CORE_EXPORT extern const WTF::AtomicString& writeend;
 CORE_EXPORT extern const WTF::AtomicString& writestart;
 CORE_EXPORT extern const WTF::AtomicString& zoom;
 
-const unsigned EventTypeNamesCount = 283;
+const unsigned EventTypeNamesCount = 287;
 
 CORE_EXPORT void init();
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/RegisterTimelineEventInit.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/RegisterTimelineEventInit.h
new file mode 100644 (file)
index 0000000..c72d437
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef RegisterTimelineEventInit_h
+#define RegisterTimelineEventInit_h
+
+#include "core/CoreExport.h"
+#include "core/events/EventInit.h"
+#include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+class CORE_EXPORT RegisterTimelineEventInit : public EventInit {
+  DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
+ public:
+  RegisterTimelineEventInit();
+  virtual ~RegisterTimelineEventInit();
+  RegisterTimelineEventInit(const RegisterTimelineEventInit&);
+  RegisterTimelineEventInit& operator=(const RegisterTimelineEventInit&);
+
+  bool hasContentTime() const;
+  unsigned long long contentTime() const;
+  void setContentTime(unsigned long long);
+
+  bool hasTimelineSelector() const;
+  String timelineSelector() const;
+  void setTimelineSelector(String);
+
+  bool hasTimelineState() const;
+  unsigned timelineState() const;
+  void setTimelineState(unsigned);
+
+  bool hasUnitsPerSecond() const;
+  unsigned unitsPerSecond() const;
+  void setUnitsPerSecond(unsigned);
+
+  bool hasUnitsPerTick() const;
+  unsigned unitsPerTick() const;
+  void setUnitsPerTick(unsigned);
+
+  v8::Local<v8::Value> toV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override;
+  DECLARE_VIRTUAL_TRACE();
+
+ private:
+  bool m_hasContentTime = false;
+  unsigned long long m_contentTime;
+  String m_timelineSelector;
+  bool m_hasTimelineState = false;
+  unsigned m_timelineState;
+  bool m_hasUnitsPerSecond = false;
+  unsigned m_unitsPerSecond;
+  bool m_hasUnitsPerTick = false;
+  unsigned m_unitsPerTick;
+
+  friend class V8RegisterTimelineEventInit;
+};
+
+}  // namespace blink
+
+#endif  // RegisterTimelineEventInit_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/StringChangeEventInit.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/StringChangeEventInit.h
new file mode 100644 (file)
index 0000000..ae87b28
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef StringChangeEventInit_h
+#define StringChangeEventInit_h
+
+#include "core/CoreExport.h"
+#include "core/events/EventInit.h"
+#include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+class CORE_EXPORT StringChangeEventInit : public EventInit {
+  DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
+ public:
+  StringChangeEventInit();
+  virtual ~StringChangeEventInit();
+  StringChangeEventInit(const StringChangeEventInit&);
+  StringChangeEventInit& operator=(const StringChangeEventInit&);
+
+  bool hasStr() const;
+  String str() const;
+  void setStr(String);
+
+  v8::Local<v8::Value> toV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override;
+  DECLARE_VIRTUAL_TRACE();
+
+ private:
+  String m_str;
+
+  friend class V8StringChangeEventInit;
+};
+
+}  // namespace blink
+
+#endif  // StringChangeEventInit_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/SyncTimelineEventInit.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/blink/core/html/SyncTimelineEventInit.h
new file mode 100644 (file)
index 0000000..a92cc76
--- /dev/null
@@ -0,0 +1,48 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file has been auto-generated by code_generator_v8.py.
+// DO NOT MODIFY!
+
+// clang-format off
+#ifndef SyncTimelineEventInit_h
+#define SyncTimelineEventInit_h
+
+#include "core/CoreExport.h"
+#include "core/events/EventInit.h"
+#include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
+
+namespace blink {
+
+class CORE_EXPORT SyncTimelineEventInit : public EventInit {
+  DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
+ public:
+  SyncTimelineEventInit();
+  virtual ~SyncTimelineEventInit();
+  SyncTimelineEventInit(const SyncTimelineEventInit&);
+  SyncTimelineEventInit& operator=(const SyncTimelineEventInit&);
+
+  bool hasSync() const;
+  unsigned sync() const;
+  void setSync(unsigned);
+
+  bool hasTimelineSelector() const;
+  String timelineSelector() const;
+  void setTimelineSelector(String);
+
+  v8::Local<v8::Value> toV8Impl(v8::Local<v8::Object>, v8::Isolate*) const override;
+  DECLARE_VIRTUAL_TRACE();
+
+ private:
+  bool m_hasSync = false;
+  unsigned m_sync;
+  String m_timelineSelector;
+
+  friend class V8SyncTimelineEventInit;
+};
+
+}  // namespace blink
+
+#endif  // SyncTimelineEventInit_h
index bbf5d3a..2eb7bcd 100644 (file)
@@ -626,6 +626,9 @@ class InternalRuntimeFlags :
   bool timerThrottlingForHiddenFramesEnabled() {
     return RuntimeEnabledFeatures::timerThrottlingForHiddenFramesEnabled();
   }
+  bool tizenCompatibilityModeEnabled() {
+    return RuntimeEnabledFeatures::tizenCompatibilityModeEnabled();
+  }
   bool touchEnabled() {
     return RuntimeEnabledFeatures::touchEnabled();
   }
index eb7ca4b..4045874 100644 (file)
@@ -14,6 +14,7 @@
 #include "modules/ModulesExport.h"
 #include "modules/mediastream/MediaTrackConstraints.h"
 #include "platform/heap/Handle.h"
+#include "wtf/text/WTFString.h"
 
 namespace blink {
 
@@ -29,6 +30,10 @@ class MODULES_EXPORT MediaStreamConstraints : public IDLDictionaryBase {
   const BooleanOrMediaTrackConstraints& audio() const;
   void setAudio(const BooleanOrMediaTrackConstraints&);
 
+  bool hasFacingMode() const;
+  String facingMode() const;
+  void setFacingMode(String);
+
   bool hasVideo() const;
   const BooleanOrMediaTrackConstraints& video() const;
   void setVideo(const BooleanOrMediaTrackConstraints&);
@@ -38,6 +43,7 @@ class MODULES_EXPORT MediaStreamConstraints : public IDLDictionaryBase {
 
  private:
   BooleanOrMediaTrackConstraints m_audio;
+  String m_facingMode;
   BooleanOrMediaTrackConstraints m_video;
 
   friend class V8MediaStreamConstraints;
index e064d51..0ed6139 100644 (file)
@@ -214,6 +214,7 @@ class PLATFORM_EXPORT RuntimeEnabledFeatures {
     bool m_suborigins;
     bool m_timerThrottlingForBackgroundTabs;
     bool m_timerThrottlingForHiddenFrames;
+    bool m_tizenCompatibilityMode;
     bool m_touch;
     bool m_traceWrappables;
     bool m_trustedEventsDefaultAction;
@@ -823,6 +824,9 @@ class PLATFORM_EXPORT RuntimeEnabledFeatures {
   static void setTimerThrottlingForHiddenFramesEnabled(bool isEnabled) { isTimerThrottlingForHiddenFramesEnabled = isEnabled; }
   static bool timerThrottlingForHiddenFramesEnabled() { return isTimerThrottlingForHiddenFramesEnabled; }
 
+  static void setTizenCompatibilityModeEnabled(bool isEnabled) { isTizenCompatibilityModeEnabled = isEnabled; }
+  static bool tizenCompatibilityModeEnabled() { return isTizenCompatibilityModeEnabled; }
+
   static void setTouchEnabled(bool isEnabled) { isTouchEnabled = isEnabled; }
   static bool touchEnabled() { return isTouchEnabled; }
 
@@ -1116,6 +1120,7 @@ class PLATFORM_EXPORT RuntimeEnabledFeatures {
   static bool isSuboriginsEnabled;
   static bool isTimerThrottlingForBackgroundTabsEnabled;
   static bool isTimerThrottlingForHiddenFramesEnabled;
+  static bool isTizenCompatibilityModeEnabled;
   static bool isTouchEnabled;
   static bool isTraceWrappablesEnabled;
   static bool isTrustedEventsDefaultActionEnabled;
index e525016..4b2e6e3 100644 (file)
@@ -7,68 +7,84 @@
 #define IDR_MEDIAPLAYER_PLAY_BUTTON 25302
 #define IDR_MEDIAPLAYER_SOUND_NOT_MUTED_BUTTON 25303
 #define IDR_MEDIAPLAYER_SOUND_MUTED_BUTTON 25304
-#define IDR_MEDIAPLAYER_OVERLAY_360_PLAY_BUTTON 25305
-#define IDR_MEDIAPLAYER_SLIDER_THUMB 25306
-#define IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB 25307
-#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON 25308
-#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON_DISABLED 25309
-#define IDR_MEDIAPLAYER_ENTER_FULLSCREEN_BUTTON 25310
-#define IDR_MEDIAPLAYER_EXIT_FULLSCREEN_BUTTON 25311
-#define IDR_MEDIAPLAYER_CAST_BUTTON_OFF 25312
-#define IDR_MEDIAPLAYER_CAST_BUTTON_ON 25313
-#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_OFF 25314
-#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_ON 25315
-#define IDR_MEDIAPLAYER_OVERLAY_PLAY_BUTTON 25316
-#define IDR_MEDIA_PLAYER_ROTATE 25317
-#define IDR_MEDIAPLAYER_TRACKSELECTION_CHECKMARK 25318
-#define IDR_MEDIAPLAYER_CLOSEDCAPTIONS_ICON 25319
-#define IDR_MEDIAPLAYER_OVERFLOW_MENU_ICON 25320
-#define IDR_MEDIAPLAYER_DOWNLOAD_ICON 25321
-#define IDR_MEDIAPLAYER_SUBTITLES_ICON 25322
-#define IDR_MEDIAPLAYER_SPINNER_1 25323
-#define IDR_MEDIAPLAYER_SPINNER_2 25324
-#define IDR_MEDIAPLAYER_SPINNER_3 25325
-#define IDR_MEDIAPLAYER_SPINNER_4 25326
-#define IDR_MEDIAPLAYER_SPINNER_5 25327
-#define IDR_MEDIAPLAYER_SPINNER_6 25328
-#define IDR_MEDIAPLAYER_SPINNER_7 25329
-#define IDR_MEDIAPLAYER_SPINNER_8 25330
-#define IDR_MEDIAPLAYER_SPINNER_9 25331
-#define IDR_MEDIAPLAYER_SPINNER_10 25332
-#define IDR_MEDIAPLAYER_SPINNER_11 25333
-#define IDR_MEDIAPLAYER_SPINNER_12 25334
-#define IDR_MEDIAPLAYER_SPINNER_13 25335
-#define IDR_MEDIAPLAYER_SPINNER_14 25336
-#define IDR_MEDIAPLAYER_SPINNER_15 25337
-#define IDR_MEDIAPLAYER_SPINNER_16 25338
-#define IDR_MEDIAPLAYER_SPINNER_17 25339
-#define IDR_MEDIAPLAYER_SPINNER_18 25340
-#define IDR_MEDIAPLAYER_SPINNER_19 25341
-#define IDR_MEDIAPLAYER_SPINNER_20 25342
-#define IDR_MEDIAPLAYER_SPINNER_21 25343
-#define IDR_MEDIAPLAYER_SPINNER_22 25344
-#define IDR_MEDIAPLAYER_SPINNER_23 25345
-#define IDR_MEDIAPLAYER_SPINNER_24 25346
-#define IDR_MEDIAPLAYER_SPINNER_25 25347
-#define IDR_MEDIAPLAYER_SPINNER_26 25348
-#define IDR_MEDIAPLAYER_SPINNER_27 25349
-#define IDR_MEDIAPLAYER_SPINNER_28 25350
-#define IDR_MEDIAPLAYER_SPINNER_29 25351
-#define IDR_MEDIAPLAYER_SPINNER_30 25352
-#define IDR_SEARCH_CANCEL 25353
-#define IDR_SEARCH_CANCEL_PRESSED 25354
-#define IDR_TEXTAREA_RESIZER 25355
-#define IDR_PASSWORD_GENERATION_ICON 25356
-#define IDR_PASSWORD_GENERATION_ICON_HOVER 25357
-#define IDR_MEDIAPLAYER_WEARABLE_PLAY_BUTTON 25358
-#define IDR_MEDIAPLAYER_WEARABLE_PAUSE_BUTTON 25359
-#define IDR_MEDIAPLAYER_WEARABLE_VOLUME_BUTTON 25360
-#define IDR_MEDIAPLAYER_WEARABLE_MUTE_BUTTON 25361
-#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON 25362
-#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON_DISABLED 25363
-#define IDR_MEDIAPLAYER_MOBILE_PAUSE_BUTTON 25364
-#define IDR_MEDIAPLAYER_MOBILE_SLIDER_THUMB 25365
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON 25366
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON_DISABLED 25367
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON 25368
-#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON_DISABLED 25369
+#define IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON 25305
+#define IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON 25306
+#define IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON 25307
+#define IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON 25308
+#define IDR_MEDIAPLAYER_OVERLAY_360_PLAY_BUTTON 25309
+#define IDR_MEDIAPLAYER_SLIDER_THUMB 25310
+#define IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB 25311
+#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON 25312
+#define IDR_MEDIAPLAYER_CLOSEDCAPTION_BUTTON_DISABLED 25313
+#define IDR_MEDIAPLAYER_ENTER_FULLSCREEN_BUTTON 25314
+#define IDR_MEDIAPLAYER_EXIT_FULLSCREEN_BUTTON 25315
+#define IDR_MEDIAPLAYER_CAST_BUTTON_OFF 25316
+#define IDR_MEDIAPLAYER_CAST_BUTTON_ON 25317
+#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_OFF 25318
+#define IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_ON 25319
+#define IDR_MEDIAPLAYER_OVERLAY_PLAY_BUTTON 25320
+#define IDR_MEDIA_PLAYER_ROTATE 25321
+#define IDR_MEDIAPLAYER_TRACKSELECTION_CHECKMARK 25322
+#define IDR_MEDIAPLAYER_CLOSEDCAPTIONS_ICON 25323
+#define IDR_MEDIAPLAYER_OVERFLOW_MENU_ICON 25324
+#define IDR_MEDIAPLAYER_DOWNLOAD_ICON 25325
+#define IDR_MEDIAPLAYER_SUBTITLES_ICON 25326
+#define IDR_MEDIAPLAYER_SPINNER_1 25327
+#define IDR_MEDIAPLAYER_SPINNER_2 25328
+#define IDR_MEDIAPLAYER_SPINNER_3 25329
+#define IDR_MEDIAPLAYER_SPINNER_4 25330
+#define IDR_MEDIAPLAYER_SPINNER_5 25331
+#define IDR_MEDIAPLAYER_SPINNER_6 25332
+#define IDR_MEDIAPLAYER_SPINNER_7 25333
+#define IDR_MEDIAPLAYER_SPINNER_8 25334
+#define IDR_MEDIAPLAYER_SPINNER_9 25335
+#define IDR_MEDIAPLAYER_SPINNER_10 25336
+#define IDR_MEDIAPLAYER_SPINNER_11 25337
+#define IDR_MEDIAPLAYER_SPINNER_12 25338
+#define IDR_MEDIAPLAYER_SPINNER_13 25339
+#define IDR_MEDIAPLAYER_SPINNER_14 25340
+#define IDR_MEDIAPLAYER_SPINNER_15 25341
+#define IDR_MEDIAPLAYER_SPINNER_16 25342
+#define IDR_MEDIAPLAYER_SPINNER_17 25343
+#define IDR_MEDIAPLAYER_SPINNER_18 25344
+#define IDR_MEDIAPLAYER_SPINNER_19 25345
+#define IDR_MEDIAPLAYER_SPINNER_20 25346
+#define IDR_MEDIAPLAYER_SPINNER_21 25347
+#define IDR_MEDIAPLAYER_SPINNER_22 25348
+#define IDR_MEDIAPLAYER_SPINNER_23 25349
+#define IDR_MEDIAPLAYER_SPINNER_24 25350
+#define IDR_MEDIAPLAYER_SPINNER_25 25351
+#define IDR_MEDIAPLAYER_SPINNER_26 25352
+#define IDR_MEDIAPLAYER_SPINNER_27 25353
+#define IDR_MEDIAPLAYER_SPINNER_28 25354
+#define IDR_MEDIAPLAYER_SPINNER_29 25355
+#define IDR_MEDIAPLAYER_SPINNER_30 25356
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON0 25357
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON1 25358
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON2 25359
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON3 25360
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON4 25361
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON5 25362
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON6 25363
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON7 25364
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON8 25365
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON9 25366
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON10 25367
+#define IDR_MEDIAPLAYER_BRIGHTNESS_BUTTON11 25368
+#define IDR_SEARCH_CANCEL 25369
+#define IDR_SEARCH_CANCEL_PRESSED 25370
+#define IDR_TEXTAREA_RESIZER 25371
+#define IDR_PASSWORD_GENERATION_ICON 25372
+#define IDR_PASSWORD_GENERATION_ICON_HOVER 25373
+#define IDR_MEDIAPLAYER_WEARABLE_PLAY_BUTTON 25374
+#define IDR_MEDIAPLAYER_WEARABLE_PAUSE_BUTTON 25375
+#define IDR_MEDIAPLAYER_WEARABLE_VOLUME_BUTTON 25376
+#define IDR_MEDIAPLAYER_WEARABLE_MUTE_BUTTON 25377
+#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON 25378
+#define IDR_MEDIAPLAYER_MOBILE_PLAY_BUTTON_DISABLED 25379
+#define IDR_MEDIAPLAYER_MOBILE_PAUSE_BUTTON 25380
+#define IDR_MEDIAPLAYER_MOBILE_SLIDER_THUMB 25381
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON 25382
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_BACK_BUTTON_DISABLED 25383
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON 25384
+#define IDR_MEDIAPLAYER_MOBILE_SEEK_FORWARD_BUTTON_DISABLED 25385
index 84b0b3f..5a4449a 100644 (file)
 #define IDR_UASTYLE_MATHML_CSS 25412
 #define IDR_UASTYLE_MEDIA_CONTROLS_CSS 25413
 #define IDR_UASTYLE_FULLSCREEN_CSS 25414
-#define IDR_UASTYLE_XHTMLMP_CSS 25415
-#define IDR_UASTYLE_VIEWPORT_ANDROID_CSS 25416
-#define IDR_UASTYLE_VIEWPORT_TELEVISION_CSS 25417
-#define IDR_INSPECTOR_OVERLAY_PAGE_HTML 25418
-#define IDR_PRIVATE_SCRIPT_DOCUMENTEXECCOMMAND_JS 25419
-#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_CSS 25420
-#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_JS 25421
-#define IDR_PRIVATE_SCRIPT_HTMLMARQUEEELEMENT_JS 25422
-#define IDR_PRIVATE_SCRIPT_PRIVATESCRIPTRUNNER_JS 25423
-#define IDR_PICKER_COMMON_JS 25424
-#define IDR_PICKER_COMMON_CSS 25425
-#define IDR_CALENDAR_PICKER_CSS 25426
-#define IDR_CALENDAR_PICKER_JS 25427
-#define IDR_PICKER_BUTTON_CSS 25428
-#define IDR_SUGGESTION_PICKER_CSS 25429
-#define IDR_SUGGESTION_PICKER_JS 25430
-#define IDR_COLOR_SUGGESTION_PICKER_CSS 25431
-#define IDR_COLOR_SUGGESTION_PICKER_JS 25432
-#define IDR_LIST_PICKER_CSS 25433
-#define IDR_LIST_PICKER_JS 25434
-#define IDR_AUDIO_SPATIALIZATION_COMPOSITE 25435
+#define IDR_UASTYLE_FULLSCREEN_CANVAS_CSS 25415
+#define IDR_UASTYLE_XHTMLMP_CSS 25416
+#define IDR_UASTYLE_VIEWPORT_ANDROID_CSS 25417
+#define IDR_UASTYLE_VIEWPORT_TELEVISION_CSS 25418
+#define IDR_INSPECTOR_OVERLAY_PAGE_HTML 25419
+#define IDR_PRIVATE_SCRIPT_DOCUMENTEXECCOMMAND_JS 25420
+#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_CSS 25421
+#define IDR_PRIVATE_SCRIPT_DOCUMENTXMLTREEVIEWER_JS 25422
+#define IDR_PRIVATE_SCRIPT_HTMLMARQUEEELEMENT_JS 25423
+#define IDR_PRIVATE_SCRIPT_PRIVATESCRIPTRUNNER_JS 25424
+#define IDR_PICKER_COMMON_JS 25425
+#define IDR_PICKER_COMMON_CSS 25426
+#define IDR_CALENDAR_PICKER_CSS 25427
+#define IDR_CALENDAR_PICKER_JS 25428
+#define IDR_PICKER_BUTTON_CSS 25429
+#define IDR_SUGGESTION_PICKER_CSS 25430
+#define IDR_SUGGESTION_PICKER_JS 25431
+#define IDR_COLOR_SUGGESTION_PICKER_CSS 25432
+#define IDR_COLOR_SUGGESTION_PICKER_JS 25433
+#define IDR_LIST_PICKER_CSS 25434
+#define IDR_LIST_PICKER_JS 25435
+#define IDR_AUDIO_SPATIALIZATION_COMPOSITE 25436
index e5e3205..56bcf80 100644 (file)
@@ -114,6 +114,7 @@ class  RenderPass {
   ::gfx::mojom::blink::RectPtr damage_rect;
   ::gfx::mojom::blink::TransformPtr transform_to_root_target;
   bool has_transparent_background;
+  bool has_canvas_hole;
   WTF::Vector<::cc::mojom::blink::DrawQuadPtr> quad_list;
  private:
   DISALLOW_COPY_AND_ASSIGN(RenderPass);
@@ -130,6 +131,7 @@ RenderPassPtr RenderPass::Clone() const {
   rv->damage_rect = mojo::internal::Clone(damage_rect);
   rv->transform_to_root_target = mojo::internal::Clone(transform_to_root_target);
   rv->has_transparent_background = mojo::internal::Clone(has_transparent_background);
+  rv->has_canvas_hole = mojo::internal::Clone(has_canvas_hole);
   rv->quad_list = mojo::internal::Clone(quad_list);
   return rv;
 }
@@ -148,6 +150,8 @@ bool RenderPass::Equals(const T& other) const {
     return false;
   if (!mojo::internal::Equals(this->has_transparent_background, other.has_transparent_background))
     return false;
+  if (!mojo::internal::Equals(this->has_canvas_hole, other.has_canvas_hole))
+    return false;
   if (!mojo::internal::Equals(this->quad_list, other.quad_list))
     return false;
   return true;
@@ -192,6 +196,11 @@ struct  StructTraits<::cc::mojom::blink::RenderPass::DataView,
     return input->has_transparent_background;
   }
 
+  static decltype(::cc::mojom::blink::RenderPass::has_canvas_hole) has_canvas_hole(
+      const ::cc::mojom::blink::RenderPassPtr& input) {
+    return input->has_canvas_hole;
+  }
+
   static const decltype(::cc::mojom::blink::RenderPass::quad_list)& quad_list(
       const ::cc::mojom::blink::RenderPassPtr& input) {
     return input->quad_list;
index 7a6abcf..0d6f51e 100644 (file)
@@ -44,7 +44,8 @@ class RenderPass_Data {
   mojo::internal::Pointer<::gfx::mojom::internal::Rect_Data> damage_rect;
   mojo::internal::Pointer<::gfx::mojom::internal::Transform_Data> transform_to_root_target;
   uint8_t has_transparent_background : 1;
-  uint8_t pad4_[7];
+  uint8_t has_canvas_hole : 1;
+  uint8_t pad5_[7];
   mojo::internal::Pointer<mojo::internal::Array_Data<mojo::internal::Pointer<::cc::mojom::internal::DrawQuad_Data>>> quad_list;
 
  private:
index 2d3d8e6..53d376d 100644 (file)
@@ -103,6 +103,9 @@ class RenderPassDataView {
   bool has_transparent_background() const {
     return data_->has_transparent_background;
   }
+  bool has_canvas_hole() const {
+    return data_->has_canvas_hole;
+  }
   inline void GetQuadListDataView(
       mojo::ArrayDataView<::cc::mojom::DrawQuadDataView>* output);
 
@@ -214,6 +217,7 @@ struct Serializer<::cc::mojom::RenderPassDataView, MaybeConstUserType> {
         mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
         "null transform_to_root_target in RenderPass struct");
     result->has_transparent_background = CallWithContext(Traits::has_transparent_background, input, custom_context);
+    result->has_canvas_hole = CallWithContext(Traits::has_canvas_hole, input, custom_context);
     decltype(CallWithContext(Traits::quad_list, input, custom_context)) in_quad_list = CallWithContext(Traits::quad_list, input, custom_context);
     typename decltype(result->quad_list)::BaseType* quad_list_ptr;
     const mojo::internal::ContainerValidateParams quad_list_validate_params(
index a39cb42..dd1823d 100644 (file)
@@ -150,6 +150,7 @@ class  RenderPass {
   gfx::Rect damage_rect;
   gfx::Transform transform_to_root_target;
   bool has_transparent_background;
+  bool has_canvas_hole;
   std::vector<::cc::mojom::DrawQuadPtr> quad_list;
  private:
   DISALLOW_COPY_AND_ASSIGN(RenderPass);
@@ -166,6 +167,7 @@ RenderPassPtr RenderPass::Clone() const {
   rv->damage_rect = mojo::internal::Clone(damage_rect);
   rv->transform_to_root_target = mojo::internal::Clone(transform_to_root_target);
   rv->has_transparent_background = mojo::internal::Clone(has_transparent_background);
+  rv->has_canvas_hole = mojo::internal::Clone(has_canvas_hole);
   rv->quad_list = mojo::internal::Clone(quad_list);
   return rv;
 }
@@ -184,6 +186,8 @@ bool RenderPass::Equals(const T& other) const {
     return false;
   if (!mojo::internal::Equals(this->has_transparent_background, other.has_transparent_background))
     return false;
+  if (!mojo::internal::Equals(this->has_canvas_hole, other.has_canvas_hole))
+    return false;
   if (!mojo::internal::Equals(this->quad_list, other.quad_list))
     return false;
   return true;
@@ -227,6 +231,11 @@ struct  StructTraits<::cc::mojom::RenderPass::DataView,
     return input->has_transparent_background;
   }
 
+  static decltype(::cc::mojom::RenderPass::has_canvas_hole) has_canvas_hole(
+      const ::cc::mojom::RenderPassPtr& input) {
+    return input->has_canvas_hole;
+  }
+
   static const decltype(::cc::mojom::RenderPass::quad_list)& quad_list(
       const ::cc::mojom::RenderPassPtr& input) {
     return input->quad_list;
index 9c5b160..b9f679b 100644 (file)
@@ -15,7 +15,6 @@
 #define IDS_BEFORERELOAD_MESSAGEBOX_OK_BUTTON_LABEL 15050
 #define IDS_BEFORERELOAD_MESSAGEBOX_CANCEL_BUTTON_LABEL 15051
 #define IDS_AUTOFILL_CLEAR_FORM_MENU_ITEM 15052
-#define IDS_AUTOFILL_CLEAR_LOCAL_COPY_BUTTON 15053
 #define IDS_AUTOFILL_WARNING_FORM_DISABLED 15054
 #define IDS_AUTOFILL_WARNING_INSECURE_CONNECTION 15055
 #define IDS_AUTOFILL_CREDIT_CARD_HTTP_WARNING_MESSAGE 15056
 #define IDS_AUTOFILL_SCAN_CREDIT_CARD 15092
 #define IDS_AUTOFILL_PASSWORD_FIELD_SUGGESTIONS_TITLE 15093
 #define IDS_AUTOFILL_PASSWORD_HTTP_WARNING_MESSAGE 15094
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_ACCEPT 15098
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_LOCAL 15099
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_TO_CLOUD 15100
-#define IDS_AUTOFILL_SAVE_CARD_PROMPT_UPLOAD_EXPLANATION 15101
 #define IDS_AUTOFILL_CREDIT_CARD_EXPIRATION_DATE_ABBR 15102
 #define IDS_AUTOFILL_CARD_UNMASK_PROMPT_ERROR_TRY_AGAIN 15103
 #define IDS_AUTOFILL_CARD_UNMASK_PROMPT_ERROR_TRY_AGAIN_WITH_EXPIRATION 15104
 #define IDS_AUTOFILL_CARD_UNMASK_PROMPT_TITLE 15107
 #define IDS_AUTOFILL_CARD_UNMASK_PROMPT_UPDATE_TITLE 15108
 #define IDS_AUTOFILL_CARD_UNMASK_PROMPT_INSTRUCTIONS 15109
-#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_STORAGE_CHECKBOX 15111
-#define IDS_AUTOFILL_CARD_UNMASK_PROMPT_STORAGE_TOOLTIP 15112
 #define IDS_AUTOFILL_CARD_UNMASK_CONFIRM_BUTTON 15113
-#define IDS_AUTOFILL_CARD_UNMASK_VERIFICATION_IN_PROGRESS 15114
-#define IDS_AUTOFILL_CARD_UNMASK_VERIFICATION_SUCCESS 15115
-#define IDS_AUTOFILL_CARD_UNMASK_INVALID_EXPIRATION_DATE 15116
-#define IDS_AUTOFILL_CARD_UNMASK_EXPIRATION_DATE_SEPARATOR 15117
-#define IDS_AUTOFILL_CARD_UNMASK_NEW_CARD_LINK 15118
-#define IDS_AUTOFILL_DIALOG_PLACEHOLDER_CVC 15119
 #define IDS_BOOKMARK_BAR_FOLDER_NAME 15120
 #define IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME 15121
 #define IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME 15122
 #define IDS_BOOKMARK_BAR_MANAGED_FOLDER_DOMAIN_NAME 15123
 #define IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME 15124
 #define IDS_BOOKMARK_BAR_SUPERVISED_FOLDER_DEFAULT_NAME 15125
-#define IDS_BOOKMARK_BUBBLE_REMOVE_BOOKMARK 15126
-#define IDS_BOOKMARK_EDITOR_NEW_FOLDER_NAME 15127
-#define IDS_BOOKMARK_EDITOR_TITLE 15128
-#define IDS_BOOKMARK_MANAGER_NAME_INPUT_PLACE_HOLDER 15129
-#define IDS_BOOKMARK_MANAGER_URL_INPUT_PLACE_HOLDER 15130
-#define IDS_TOOLTIP_STAR 15138
-#define IDS_SYNC_TIME_NEVER 15139
-#define IDS_SYNC_TIME_JUST_NOW 15140
-#define IDS_CLEAR_BROWSING_DATA_CALCULATING 15141
-#define IDS_CLEAR_BROWSING_DATA_UNKNOWN_SIZE 15142
-#define IDS_CLEAR_BROWSING_DATA_UNKNOWN_AMOUNT 15143
-#define IDS_DEL_BROWSING_HISTORY_COUNTER 15144
-#define IDS_DEL_BROWSING_HISTORY_COUNTER_SYNCED 15145
-#define IDS_DEL_CACHE_COUNTER_UPPER_ESTIMATE 15146
-#define IDS_DEL_CACHE_COUNTER_ALMOST_EMPTY 15147
-#define IDS_DEL_PASSWORDS_COUNTER 15148
-#define IDS_DEL_AUTOFILL_COUNTER_EMPTY 15149
-#define IDS_DEL_AUTOFILL_COUNTER_CREDIT_CARDS 15150
-#define IDS_DEL_AUTOFILL_COUNTER_ADDRESSES 15151
-#define IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS 15152
-#define IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_LONG 15153
-#define IDS_DEL_AUTOFILL_COUNTER_SUGGESTIONS_SHORT 15154
-#define IDS_DEL_AUTOFILL_COUNTER_TWO_TYPES 15155
-#define IDS_DEL_AUTOFILL_COUNTER_THREE_TYPES 15156
-#define IDS_DEL_COOKIES_COUNTER 15157
-#define IDS_DEL_DOWNLOADS_COUNTER 15158
-#define IDS_DEL_HOSTED_APPS_COUNTER 15159
-#define IDS_DEL_HOSTED_APPS_COUNTER_AND_X_MORE 15160
-#define IDS_DEL_MEDIA_LICENSES_COUNTER_GENERAL_COMMENT 15161
-#define IDS_DEL_MEDIA_LICENSES_COUNTER_SITE_COMMENT 15162
-#define IDS_SETTINGS_TITLE 15163
-#define IDS_SETTINGS_HIDE_ADVANCED_SETTINGS 15164
-#define IDS_SETTINGS_SHOW_ADVANCED_SETTINGS 15165
-#define IDS_NETWORK_PREDICTION_ENABLED_DESCRIPTION 15166
-#define IDS_OPTIONS_PROXIES_CONFIGURE_BUTTON 15167
-#define IDS_CRASH_TITLE 15168
-#define IDS_CRASH_CRASH_COUNT_BANNER_FORMAT 15169
-#define IDS_CRASH_CRASH_HEADER_FORMAT 15170
-#define IDS_CRASH_CRASH_HEADER_FORMAT_LOCAL_ONLY 15171
-#define IDS_CRASH_CRASH_TIME_FORMAT 15172
-#define IDS_CRASH_CRASH_NOT_UPLOADED 15173
-#define IDS_CRASH_CRASH_PENDING 15174
-#define IDS_CRASH_CRASH_USER_REQUESTED 15175
-#define IDS_CRASH_BUG_LINK_LABEL 15176
-#define IDS_CRASH_NO_CRASHES_MESSAGE 15177
-#define IDS_CRASH_DISABLED_HEADER 15178
-#define IDS_CRASH_UPLOAD_MESSAGE 15179
-#define IDS_CRASH_UPLOAD_NOW_LINK_TEXT 15180
-#define IDS_CRASH_SIZE_MESSAGE 15181
-#define IDS_HTTP_POST_WARNING_TITLE 15182
-#define IDS_HTTP_POST_WARNING 15183
-#define IDS_HTTP_POST_WARNING_RESEND 15184
 #define IDS_DOM_DISTILLER_JAVASCRIPT_DISABLED_CONTENT 15185
 #define IDS_DOM_DISTILLER_WEBUI_ENTRY_URL 15186
 #define IDS_DOM_DISTILLER_WEBUI_ENTRY_ADD 15187
 #define IDS_DOM_DISTILLER_QUALITY_ANSWER_YES 15200
 #define IDS_DOM_DISTILLER_QUALITY_ANSWER_NO 15201
 #define IDS_DOM_DISTILLER_WEBUI_TITLE 15202
-#define IDS_ERRORPAGE_NET_BUTTON_DETAILS 15203
-#define IDS_ERRORPAGE_NET_BUTTON_HIDE_DETAILS 15204
-#define IDS_ERRORPAGES_BUTTON_MORE 15205
-#define IDS_ERRORPAGES_BUTTON_LESS 15206
-#define IDS_ERRORPAGES_BUTTON_RELOAD 15207
-#define IDS_ERRORPAGES_BUTTON_SHOW_SAVED_COPY 15208
-#define IDS_ERRORPAGES_BUTTON_SHOW_SAVED_COPY_HELP 15209
-#define IDS_ERRORPAGE_FUN_DISABLED 15210
 #define IDS_ERRORPAGES_SUGGESTION_VISIT_GOOGLE_CACHE 15214
 #define IDS_ERRORPAGES_SUGGESTION_CORRECTED_URL 15215
 #define IDS_ERRORPAGES_SUGGESTION_ALTERNATE_URL 15216
-#define IDS_ERRORPAGES_SUGGESTION_RELOAD_REPOST_SUMMARY 15217
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_HEADER 15218
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_BODY 15219
-#define IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG_HEADER 15220
-#define IDS_ERRORPAGES_SUGGESTION_DNS_CONFIG_BODY 15221
-#define IDS_ERRORPAGES_SUGGESTION_NETWORK_PREDICTION_HEADER 15222
-#define IDS_ERRORPAGES_SUGGESTION_FIREWALL_CONFIG_BODY 15223
-#define IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG_HEADER 15224
-#define IDS_ERRORPAGES_SUGGESTION_PROXY_CONFIG_BODY 15225
-#define IDS_ERRORPAGES_SUGGESTION_VIEW_POLICIES_HEADER 15227
-#define IDS_ERRORPAGES_SUGGESTION_VIEW_POLICIES_BODY 15228
-#define IDS_ERRORPAGES_SUGGESTION_UNSUPPORTED_CIPHER_HEADER 15229
-#define IDS_ERRORPAGES_SUGGESTION_UNSUPPORTED_CIPHER_BODY 15230
-#define IDS_ERRORPAGES_HEADING_NOT_AVAILABLE 15231
-#define IDS_ERRORPAGES_HEADING_NETWORK_ACCESS_DENIED 15232
-#define IDS_ERRORPAGES_HEADING_INTERNET_DISCONNECTED 15233
-#define IDS_ERRORPAGES_HEADING_CACHE_READ_FAILURE 15234
-#define IDS_ERRORPAGES_HEADING_CONNECTION_INTERRUPTED 15235
-#define IDS_ERRORPAGES_HEADING_NOT_FOUND 15236
-#define IDS_ERRORPAGES_HEADING_FILE_NOT_FOUND 15237
-#define IDS_ERRORPAGES_HEADING_TOO_MANY_REDIRECTS 15238
-#define IDS_ERRORPAGES_HEADING_EMPTY_RESPONSE 15239
-#define IDS_ERRORPAGES_HEADING_BLOCKED 15240
-#define IDS_ERRORPAGES_SUMMARY_NOT_AVAILABLE 15241
-#define IDS_ERRORPAGES_SUMMARY_TIMED_OUT 15242
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_RESET 15243
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_CLOSED 15244
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_FAILED 15245
-#define IDS_ERRORPAGES_SUMMARY_NETWORK_CHANGED 15246
-#define IDS_ERRORPAGES_SUMMARY_CONNECTION_REFUSED 15247
-#define IDS_ERRORPAGES_SUMMARY_NAME_NOT_RESOLVED 15248
-#define IDS_ERRORPAGES_SUMMARY_DNS_DEFINITION 15249
-#define IDS_ERRORPAGES_SUMMARY_ICANN_NAME_COLLISION 15250
-#define IDS_ERRORPAGES_SUMMARY_ADDRESS_UNREACHABLE 15251
-#define IDS_ERRORPAGES_SUMMARY_FILE_ACCESS_DENIED 15252
-#define IDS_ERRORPAGES_SUMMARY_NETWORK_ACCESS_DENIED 15253
-#define IDS_ERRORPAGES_SUMMARY_PROXY_CONNECTION_FAILED 15254
-#define IDS_ERRORPAGES_SUMMARY_CACHE_READ_FAILURE 15255
-#define IDS_ERRORPAGES_SUMMARY_NETWORK_IO_SUSPENDED 15256
-#define IDS_ERRORPAGES_SUMMARY_NOT_FOUND 15257
-#define IDS_ERRORPAGES_SUMMARY_FILE_NOT_FOUND 15258
-#define IDS_ERRORPAGES_SUMMARY_TOO_MANY_REDIRECTS 15259
-#define IDS_ERRORPAGES_SUMMARY_EMPTY_RESPONSE 15260
-#define IDS_ERRORPAGES_SUMMARY_INVALID_RESPONSE 15261
-#define IDS_ERRORPAGES_SUMMARY_DNS_PROBE_RUNNING 15262
-#define IDS_ERRORPAGES_HEADING_ACCESS_DENIED 15263
-#define IDS_ERRORPAGES_HEADING_FILE_ACCESS_DENIED 15264
-#define IDS_ERRORPAGES_SUMMARY_FORBIDDEN 15265
-#define IDS_ERRORPAGES_SUMMARY_GONE 15266
-#define IDS_ERRORPAGES_HEADING_PAGE_NOT_WORKING 15267
-#define IDS_ERRORPAGES_SUMMARY_WEBSITE_CANNOT_HANDLE_REQUEST 15268
-#define IDS_ERRORPAGES_SUMMARY_SERVICE_UNAVAILABLE 15269
-#define IDS_ERRORPAGES_SUMMARY_GATEWAY_TIMEOUT 15270
-#define IDS_ERRORPAGES_SUMMARY_SSL_SECURITY_ERROR 15271
-#define IDS_ERRORPAGES_SUMMARY_SSL_VERSION_OR_CIPHER_MISMATCH 15272
-#define IDS_ERRORPAGES_SUMMARY_PINNING_FAILURE_DETAILS 15273
-#define IDS_ERRORPAGES_HEADING_INSECURE_CONNECTION 15274
-#define IDS_ERRORPAGES_SUMMARY_BAD_SSL_CLIENT_AUTH_CERT 15275
-#define IDS_ERRORPAGES_SUMMARY_BLOCKED_BY_EXTENSION 15276
-#define IDS_ERRORPAGES_SUMMARY_BLOCKED_BY_ADMINISTRATOR 15277
-#define IDS_ERRORPAGES_HTTP_POST_WARNING 15278
-#define IDS_ERRORPAGES_SUGGESTION_LIST_HEADER 15279
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_CONNECTION_SUMMARY 15280
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_PROXY_FIREWALL_DNS_SUMMARY 15281
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_FIREWALL_ANTIVIRUS_SUMMARY 15282
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_PROXY_FIREWALL_SUMMARY 15283
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_PROXY_ADDRESS_SUMMARY 15284
-#define IDS_ERRORPAGES_SUGGESTION_CONTACT_ADMIN_SUMMARY 15285
-#define IDS_ERRORPAGES_SUGGESTION_CONTACT_ADMIN_SUMMARY_STANDALONE 15286
-#define IDS_ERRORPAGES_SUGGESTION_LEARNMORE_SUMMARY 15287
-#define IDS_ERRORPAGES_SUGGESTION_LEARNMORE_SUMMARY_STANDALONE 15288
-#define IDS_ERRORPAGES_SUGGESTION_CLEAR_COOKIES_SUMMARY 15289
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_HARDWARE_SUMMARY 15293
-#define IDS_ERRORPAGES_SUGGESTION_CHECK_WIFI_SUMMARY 15294
-#define IDS_ERRORPAGES_SUGGESTION_DIAGNOSE_CONNECTION_SUMMARY 15295
-#define IDS_ERRORPAGES_SUGGESTION_COMPLETE_SETUP_SUMMARY 15296
-#define IDS_ERRORPAGES_SUGGESTION_DISABLE_EXTENSION_SUMMARY 15297
-#define IDS_ERRORPAGES_SUGGESTION_GOOGLE_SEARCH_SUMMARY 15298
-#define IDS_FIND_IN_PAGE_COUNT 15302
-#define IDS_FIND_IN_PAGE_PREVIOUS_TOOLTIP 15303
-#define IDS_FIND_IN_PAGE_NEXT_TOOLTIP 15304
-#define IDS_FIND_IN_PAGE_CLOSE_TOOLTIP 15305
 #define IDS_FLAGS_UI_LONG_TITLE 15306
 #define IDS_FLAGS_UI_TABLE_TITLE 15307
 #define IDS_FLAGS_UI_WARNING_HEADER 15308
 #define IDS_FLAGS_UI_NOT_AVAILABLE 15316
 #define IDS_FLAGS_UI_ENABLE_NACL_NAME 15317
 #define IDS_FLAGS_UI_RELAUNCH_BUTTON 15318
-#define IDS_GENERIC_EXPERIMENT_CHOICE_AUTOMATIC 15320
-#define IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT 15321
-#define IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED 15322
-#define IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED 15323
-#define IDS_HISTORY_ACTION_MENU_DESCRIPTION 15326
-#define IDS_HISTORY_BLOCKED_VISIT_TEXT 15327
-#define IDS_HISTORY_BROWSERESULTS 15328
-#define IDS_HISTORY_CANCEL_EDITING_BUTTON 15329
-#define IDS_HISTORY_CONTINUED 15330
-#define IDS_HISTORY_DATE_WITH_RELATIVE_TIME 15331
-#define IDS_HISTORY_DELETE_PRIOR_VISITS_CONFIRM_BUTTON 15332
-#define IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING 15333
-#define IDS_HISTORY_DELETE_PRIOR_VISITS_WARNING_NO_INCOGNITO 15334
-#define IDS_HISTORY_DELETE_SELECTED_ENTRIES_BUTTON 15335
-#define IDS_HISTORY_ENTRY_ACCESSIBILITY_DELETE 15336
-#define IDS_HISTORY_ENTRY_ACCESSIBILITY_LABEL 15337
-#define IDS_HISTORY_ENTRY_BOOKMARKED 15338
-#define IDS_HISTORY_ENTRY_SUMMARY 15339
-#define IDS_HISTORY_FILTER_BLOCKED 15340
-#define IDS_HISTORY_FOUND_SEARCH_RESULTS 15341
-#define IDS_HISTORY_HAS_SYNCED_RESULTS 15342
-#define IDS_HISTORY_OTHER_FORMS_OF_HISTORY 15343
-#define IDS_HISTORY_INTERVAL 15344
-#define IDS_HISTORY_LOADING 15345
-#define IDS_HISTORY_MORE_FROM_SITE 15346
-#define IDS_HISTORY_NEWER 15347
-#define IDS_HISTORY_NEWEST 15348
-#define IDS_HISTORY_NO_RESULTS 15349
-#define IDS_HISTORY_NO_SEARCH_RESULTS 15350
-#define IDS_HISTORY_NO_SYNCED_RESULTS 15351
-#define IDS_HISTORY_NUMBER_VISITS 15352
-#define IDS_HISTORY_OLDER 15353
-#define IDS_HISTORY_OPEN_CLEAR_BROWSING_DATA_DIALOG 15354
-#define IDS_HISTORY_OTHER_DEVICES_X_MORE 15355
-#define IDS_HISTORY_OTHER_SESSIONS_COLLAPSE_SESSION 15356
-#define IDS_HISTORY_OTHER_SESSIONS_EXPAND_SESSION 15357
-#define IDS_HISTORY_OTHER_SESSIONS_HIDE_FOR_NOW 15358
-#define IDS_HISTORY_OTHER_SESSIONS_OPEN_ALL 15359
-#define IDS_HISTORY_RANGE_ALL_TIME 15360
-#define IDS_HISTORY_RANGE_LABEL 15361
-#define IDS_HISTORY_RANGE_MONTH 15362
-#define IDS_HISTORY_RANGE_NEXT 15363
-#define IDS_HISTORY_RANGE_PREVIOUS 15364
-#define IDS_HISTORY_RANGE_TODAY 15365
-#define IDS_HISTORY_RANGE_WEEK 15366
-#define IDS_HISTORY_REMOVE_BOOKMARK 15367
-#define IDS_HISTORY_REMOVE_PAGE 15368
-#define IDS_HISTORY_REMOVE_SELECTED_ITEMS 15369
-#define IDS_HISTORY_SEARCH_BUTTON 15370
-#define IDS_HISTORY_SEARCH_RESULT 15371
-#define IDS_HISTORY_SEARCH_RESULTS 15372
-#define IDS_HISTORY_SEARCHRESULTSFOR 15373
-#define IDS_HISTORY_SHOW_HISTORY 15374
-#define IDS_HISTORY_SHOWFULLHISTORY_LINK 15375
-#define IDS_HISTORY_START_EDITING_BUTTON 15376
-#define IDS_HISTORY_TITLE 15377
-#define IDS_HISTORY_UNKNOWN_DEVICE 15378
-#define IDS_LOGIN_DIALOG_TITLE 15379
-#define IDS_LOGIN_DIALOG_AUTHORITY 15380
-#define IDS_LOGIN_DIALOG_PROXY_AUTHORITY 15381
-#define IDS_LOGIN_DIALOG_USERNAME_FIELD 15382
-#define IDS_LOGIN_DIALOG_PASSWORD_FIELD 15383
-#define IDS_LOGIN_DIALOG_OK_BUTTON_LABEL 15384
-#define IDS_DEFAULT_TAB_TITLE 15385
-#define IDS_SAD_TAB_TITLE 15386
-#define IDS_SAD_TAB_MESSAGE 15387
-#define IDS_SAD_TAB_OOM_MESSAGE 15388
-#define IDS_SAD_TAB_HELP_MESSAGE 15389
-#define IDS_SAD_TAB_HELP_LINK 15390
-#define IDS_SAD_TAB_RELOAD_LABEL 15391
-#define IDS_NEW_TAB_TITLE 15392
-#define IDS_NEW_TAB_OTR_HEADING 15393
-#define IDS_NEW_TAB_OTR_DESCRIPTION 15394
-#define IDS_NEW_TAB_OTR_LEARN_MORE_LINK 15395
-#define IDS_NEW_TAB_OTR_MESSAGE_WARNING 15396
-#define IDS_NEW_TAB_UNDO_THUMBNAIL_REMOVE 15397
-#define IDS_NTP_ARTICLE_SUGGESTIONS_SECTION_HEADER 15401
-#define IDS_NTP_ARTICLE_SUGGESTIONS_SECTION_EMPTY 15402
-#define IDS_NTP_RECENT_TAB_SUGGESTIONS_SECTION_HEADER 15403
-#define IDS_NTP_BOOKMARK_SUGGESTIONS_SECTION_HEADER 15404
-#define IDS_NTP_BOOKMARK_SUGGESTIONS_SECTION_EMPTY 15405
-#define IDS_NTP_FOREIGN_SESSIONS_SUGGESTIONS_SECTION_HEADER 15406
-#define IDS_NTP_FOREIGN_SESSIONS_SUGGESTIONS_SECTION_EMPTY 15407
-#define IDS_NTP_SUGGESTIONS_SECTION_EMPTY 15408
 #define IDS_AUTOCOMPLETE_SEARCH_DESCRIPTION 15409
 #define IDS_EMPTY_KEYWORD_VALUE 15410
 #define IDS_LINK_FROM_CLIPBOARD 15411
-#define IDS_SECURE_CONNECTION_EV 15412
-#define IDS_SECURE_VERBOSE_STATE 15413
-#define IDS_NOT_SECURE_VERBOSE_STATE 15414
-#define IDS_DANGEROUS_VERBOSE_STATE 15415
-#define IDS_PHYSICAL_WEB_OVERFLOW_DESCRIPTION 15417
-#define IDS_PHYSICAL_WEB_OVERFLOW 15418
-#define IDS_PHYSICAL_WEB_OVERFLOW_EMPTY_TITLE 15419
-#define IDS_PAGE_INFO_HELP_CENTER_LINK 15420
-#define IDS_PAGE_INFO_SECURITY_TAB_DEPRECATED_SIGNATURE_ALGORITHM_MINOR 15421
-#define IDS_PAGE_INFO_SECURITY_TAB_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR 15422
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_CONNECTION_TEXT 15423
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_ERROR 15424
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_WARNING 15425
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_SENTENCE_LINK 15426
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS 15427
-#define IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS_AEAD 15428
-#define IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY 15429
-#define IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME 15430
-#define IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT 15431
-#define IDS_PAGE_INFO_SECURITY_TAB_NO_REVOCATION_MECHANISM 15432
-#define IDS_PAGE_INFO_SECURITY_TAB_RENEGOTIATION_MESSAGE 15433
-#define IDS_PAGE_INFO_SECURITY_TAB_SSL_VERSION 15434
-#define IDS_PAGE_INFO_SECURITY_TAB_UNABLE_TO_CHECK_REVOCATION 15435
-#define IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY 15436
-#define IDS_PAGE_INFO_SECURITY_TAB_WEAK_ENCRYPTION_CONNECTION_TEXT 15437
-#define IDS_PAGE_INFO_EXTENSION_PAGE 15438
-#define IDS_PAGE_INFO_VIEW_SOURCE_PAGE 15439
-#define IDS_PAGEINFO_CERT_INFO_BUTTON 15440
 #define IDS_PASSWORD_MANAGER_EMPTY_LOGIN 15441
-#define IDS_PASSWORD_MANAGER_EXCEPTIONS_TAB_TITLE 15442
-#define IDS_PASSWORD_MANAGER_SHOW_PASSWORDS_TAB_TITLE 15443
-#define IDS_PASSWORD_MANAGER_SMART_LOCK 15444
 #define IDS_PAYMENTS_NAME_FIELD_IN_CONTACT_DETAILS 15445
 #define IDS_PAYMENTS_SAVE_CARD_TO_DEVICE_CHECKBOX 15446
 #define IDS_PAYMENTS_ACCEPTED_CARDS_LABEL 15447
 #define IDS_PDF_TOOLTIP_ZOOM_OUT 15534
 #define IDS_PDF_LABEL_PAGE_NUMBER 15535
 #define IDS_PDF_PAGE_INDEX 15536
-#define IDS_PHYSICAL_WEB_UI_TITLE 15537
 #define IDS_POLICY_DM_STATUS_SUCCESS 15538
 #define IDS_POLICY_DM_STATUS_REQUEST_INVALID 15539
 #define IDS_POLICY_DM_STATUS_REQUEST_FAILED 15540
 #define IDS_POLICY_TITLE 15610
 #define IDS_POLICY_FILTER_PLACEHOLDER 15611
 #define IDS_POLICY_RELOAD_POLICIES 15612
-#define IDS_POLICY_CHROME_FOR_WORK 15613
 #define IDS_POLICY_STATUS 15614
 #define IDS_POLICY_STATUS_DEVICE 15615
 #define IDS_POLICY_STATUS_USER 15616
 #define IDS_POLICY_SOURCE_ENTERPRISE_DEFAULT 15643
 #define IDS_POLICY_SOURCE_CLOUD 15644
 #define IDS_POLICY_SOURCE_PLATFORM 15645
-#define IDS_POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE 15646
-#define IDS_POLICY_RISK_TAG_FULL_ADMIN_ACCESS 15647
-#define IDS_POLICY_RISK_TAG_SYSTEM_SECURITY 15648
-#define IDS_POLICY_RISK_TAG_WEBSITE_SHARING 15649
-#define IDS_POLICY_RISK_TAG_ADMIN_SHARING 15650
-#define IDS_POLICY_RISK_TAG_FILTERING 15651
-#define IDS_POLICY_RISK_TAG_LOCAL_DATA_ACCESS 15652
-#define IDS_POLICY_RISK_TAG_GOOGLE_SHARING 15653
 #define IDS_SSL_OPEN_DETAILS_BUTTON 15654
 #define IDS_SSL_CLOSE_DETAILS_BUTTON 15655
 #define IDS_CLOCK_ERROR_TITLE 15656
 #define IDS_CLOCK_ERROR_UPDATE_DATE_AND_TIME 15659
 #define IDS_CLOCK_ERROR_PRIMARY_PARAGRAPH 15660
 #define IDS_CLOCK_ERROR_EXPLANATION 15661
-#define IDS_SAFE_BROWSING_PRIVACY_POLICY_URL 15662
-#define IDS_SAFE_BROWSING_WHITEPAPER_URL 15663
-#define IDS_SSL_V2_TITLE 15664
-#define IDS_SSL_V2_HEADING 15665
-#define IDS_SSL_V2_PRIMARY_PARAGRAPH 15666
-#define IDS_SSL_OVERRIDABLE_SAFETY_BUTTON 15667
-#define IDS_SSL_OVERRIDABLE_PROCEED_PARAGRAPH 15668
-#define IDS_SSL_RELOAD 15669
-#define IDS_SSL_NONOVERRIDABLE_PINNED 15670
-#define IDS_SSL_NONOVERRIDABLE_HSTS 15671
-#define IDS_SSL_NONOVERRIDABLE_REVOKED 15672
-#define IDS_SSL_NONOVERRIDABLE_MORE 15673
-#define IDS_SSL_NONOVERRIDABLE_INVALID 15674
-#define IDS_PRIVATE_USER_DATA_INPUT 15675
-#define IDS_MAJOR_SHA1 15676
-#define IDS_MAJOR_SHA1_DESCRIPTION 15677
-#define IDS_MINOR_SHA1 15678
-#define IDS_MINOR_SHA1_DESCRIPTION 15679
-#define IDS_CERTIFICATE_CHAIN_ERROR 15680
-#define IDS_CERTIFICATE_CHAIN_ERROR_DESCRIPTION_FORMAT 15681
-#define IDS_VALID_SERVER_CERTIFICATE 15682
-#define IDS_VALID_SERVER_CERTIFICATE_DESCRIPTION 15683
-#define IDS_STRONG_SSL_SUMMARY 15684
-#define IDS_STRONG_SSL_DESCRIPTION 15685
-#define IDS_OBSOLETE_SSL_SUMMARY 15686
-#define IDS_OBSOLETE_SSL_DESCRIPTION 15687
-#define IDS_CIPHER_WITH_MAC 15688
-#define IDS_SSL_AN_OBSOLETE_PROTOCOL 15689
-#define IDS_SSL_A_STRONG_PROTOCOL 15690
-#define IDS_SSL_AN_OBSOLETE_KEY_EXCHANGE 15691
-#define IDS_SSL_A_STRONG_KEY_EXCHANGE 15692
-#define IDS_SSL_AN_OBSOLETE_CIPHER 15693
-#define IDS_SSL_A_STRONG_CIPHER 15694
-#define IDS_SSL_KEY_EXCHANGE_WITH_GROUP 15695
 #define IDS_CERT_ERROR_COMMON_NAME_INVALID_DETAILS 15696
 #define IDS_CERT_ERROR_COMMON_NAME_INVALID_DESCRIPTION 15697
 #define IDS_CERT_ERROR_EXPIRED_DETAILS 15698
 #define IDS_CERT_ERROR_UNKNOWN_ERROR_DESCRIPTION 15726
 #define IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DETAILS 15727
 #define IDS_CERT_ERROR_SUMMARY_PINNING_FAILURE_DESCRIPTION 15728
-#define IDS_CERT_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED_DETAILS 15729
-#define IDS_CERT_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED_DESCRIPTION 15730
 #define IDS_CERT_ERROR_AUTHORITY_INVALID_DETAILS 15731
-#define IDS_BLOCK_INTERSTITIAL_TITLE 15732
-#define IDS_BLOCK_INTERSTITIAL_HEADER 15733
-#define IDS_CHILD_BLOCK_INTERSTITIAL_HEADER 15734
-#define IDS_BLOCK_INTERSTITIAL_HEADER_ACCESS_REQUESTS_DISABLED 15735
-#define IDS_CHILD_BLOCK_INTERSTITIAL_MESSAGE 15736
-#define IDS_BACK_BUTTON 15737
-#define IDS_BLOCK_INTERSTITIAL_REQUEST_ACCESS_BUTTON 15738
-#define IDS_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE 15739
-#define IDS_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE 15740
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE_SINGLE_PARENT 15741
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_SENT_MESSAGE_MULTI_PARENT 15742
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE_SINGLE_PARENT 15743
-#define IDS_CHILD_BLOCK_INTERSTITIAL_REQUEST_FAILED_MESSAGE_MULTI_PARENT 15744
-#define IDS_BLOCK_INTERSTITIAL_SEND_FEEDBACK 15745
-#define IDS_BLOCK_INTERSTITIAL_SHOW_DETAILS 15746
-#define IDS_BLOCK_INTERSTITIAL_HIDE_DETAILS 15747
-#define IDS_SUPERVISED_USER_BLOCK_HEADER 15748
-#define IDS_CHILD_BLOCK_MESSAGE_DEFAULT_SINGLE_PARENT 15749
-#define IDS_CHILD_BLOCK_MESSAGE_DEFAULT_MULTI_PARENT 15750
-#define IDS_SUPERVISED_USER_BLOCK_MESSAGE_DEFAULT 15751
-#define IDS_SUPERVISED_USER_BLOCK_MESSAGE_SAFE_SITES 15752
-#define IDS_CHILD_BLOCK_MESSAGE_MANUAL_SINGLE_PARENT 15753
-#define IDS_CHILD_BLOCK_MESSAGE_MANUAL_MULTI_PARENT 15754
-#define IDS_SUPERVISED_USER_BLOCK_MESSAGE_MANUAL 15755
-#define IDS_SYNC_BASIC_ENCRYPTION_DATA 15756
-#define IDS_SYNC_CONFIGURE_ENCRYPTION 15757
-#define IDS_SYNC_DATATYPE_AUTOFILL 15758
-#define IDS_SYNC_DATATYPE_BOOKMARKS 15759
-#define IDS_SYNC_DATATYPE_PASSWORDS 15760
-#define IDS_SYNC_DATATYPE_PREFERENCES 15761
-#define IDS_SYNC_DATATYPE_TABS 15762
-#define IDS_SYNC_DATATYPE_TYPED_URLS 15763
-#define IDS_SYNC_EMPTY_PASSPHRASE_ERROR 15764
-#define IDS_SYNC_ENCRYPTION_SECTION_TITLE 15765
-#define IDS_SYNC_ENTER_GOOGLE_PASSPHRASE_BODY 15766
-#define IDS_SYNC_FULL_ENCRYPTION_DATA 15767
-#define IDS_SYNC_LOGIN_SETTING_UP 15768
-#define IDS_SYNC_PASSPHRASE_LABEL 15769
-#define IDS_SYNC_PASSPHRASE_MISMATCH_ERROR 15770
-#define IDS_SYNC_SERVICE_UNAVAILABLE 15771
-#define IDS_SYNC_ENTER_PASSPHRASE_BODY_WITH_DATE 15772
-#define IDS_SYNC_ENTER_PASSPHRASE_BODY 15773
 #define IDS_TRANSLATE_INFOBAR_OPTIONS 15774
 #define IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_LANG 15775
 #define IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_SITE 15776
 #define IDS_BOOKMARK_BAR_REDO_MOVE 15808
 #define IDS_BOOKMARK_BAR_UNDO_REORDER 15809
 #define IDS_BOOKMARK_BAR_REDO_REORDER 15810
-#define IDS_VERSION_UI_TITLE 15811
-#define IDS_VERSION_UI_OFFICIAL 15812
 #define IDS_VERSION_UI_UNOFFICIAL 15813
-#define IDS_VERSION_UI_32BIT 15814
-#define IDS_VERSION_UI_64BIT 15815
-#define IDS_VERSION_UI_REVISION 15816
-#define IDS_VERSION_UI_OS 15817
-#define IDS_VERSION_UI_USER_AGENT 15818
-#define IDS_VERSION_UI_COMMAND_LINE 15819
-#define IDS_VERSION_UI_EXECUTABLE_PATH 15821
-#define IDS_VERSION_UI_PROFILE_PATH 15822
-#define IDS_VERSION_UI_PATH_NOTFOUND 15823
-#define IDS_VERSION_UI_VARIATIONS 15824
-#define IDS_COLOR_PICKER_BUTTON_MORE 15825
-#define IDS_COLOR_PICKER_HUE 15826
-#define IDS_COLOR_PICKER_SATURATION 15827
-#define IDS_COLOR_PICKER_VALUE 15828
-#define IDS_COLOR_PICKER_BUTTON_SET 15829
-#define IDS_COLOR_PICKER_BUTTON_CANCEL 15830
-#define IDS_COLOR_PICKER_DIALOG_TITLE 15831
-#define IDS_COLOR_PICKER_BUTTON_RED 15832
-#define IDS_COLOR_PICKER_BUTTON_CYAN 15833
-#define IDS_COLOR_PICKER_BUTTON_BLUE 15834
-#define IDS_COLOR_PICKER_BUTTON_GREEN 15835
-#define IDS_COLOR_PICKER_BUTTON_MAGENTA 15836
-#define IDS_COLOR_PICKER_BUTTON_YELLOW 15837
-#define IDS_COLOR_PICKER_BUTTON_BLACK 15838
-#define IDS_COLOR_PICKER_BUTTON_WHITE 15839
-#define IDS_CANCEL 15840
-#define IDS_CLOSE 15841
-#define IDS_DONE 15842
 #define IDS_LEARN_MORE 15843
-#define IDS_OK 15844
-#define IDS_NO_THANKS 15845
-#define IDS_NOT_NOW 15846
-#define IDS_PLUGIN_NOT_SUPPORTED 15847
-#define IDS_PRINT 15848
-#define IDS_RECENTLY_CLOSED 15849
-#define IDS_ACCNAME_BACK 15850
-#define IDS_ACCNAME_FORWARD 15851
-#define IDS_ACCNAME_CLOSE 15852
-#define IDS_ACCNAME_LOCATION 15853
 #define IDS_UTILITY_PROCESS_JSON_PARSER_NAME 15854
-#define IDS_SESSION_CRASHED_VIEW_RESTORE_BUTTON 15855
-#define IDS_WEBSITE_SETTINGS_NON_SECURE_TRANSPORT 15856
-#define IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY 15857
index 3b64efc..4e29db7 100644 (file)
@@ -8,6 +8,6 @@
 #define PRODUCT_NAME "Chromium"
 #define PRODUCT_VERSION "56.0.2924.0"
 #define LAST_CHANGE "bc2c1b21208e397db57763e1d2e93e363db80866"
-#define IS_OFFICIAL_BUILD 0
+#define IS_OFFICIAL_BUILD 1
 
 #endif  // COMPONENTS_VERSION_INFO_VERSION_INFO_VALUES_H_
index 80bc377..372b681 100644 (file)
 #define IDS_AX_ROLE_BANNER 20135
 #define IDS_AX_ROLE_COMPLEMENTARY 20136
 #define IDS_AX_ROLE_CHECK_BOX 20137
-#define IDS_AX_ROLE_CONTENT_INFO 20138
-#define IDS_AX_ROLE_DEFINITION 20139
 #define IDS_AX_ROLE_DESCRIPTION_LIST 20140
 #define IDS_AX_ROLE_DESCRIPTION_TERM 20141
 #define IDS_AX_ROLE_FIGURE 20142
 #define IDS_AX_ROLE_FORM 20143
-#define IDS_AX_ROLE_FOOTER 20144
-#define IDS_AX_ROLE_TOGGLE_BUTTON 20146
 #define IDS_AX_ROLE_HEADING 20147
 #define IDS_AX_ROLE_IMAGE_MAP 20148
 #define IDS_AX_ROLE_LINK 20149
index ed8aaee..b2ade78 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2017 The Chromium Authors. All rights reserved.
+// Copyright (c) 2018 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/gen/ui/resources/grit/webui_resources_tizen.h b/vendor/brightray/vendor/libchromiumcontent/src/gen/ui/resources/grit/webui_resources_tizen.h
new file mode 100644 (file)
index 0000000..0c105b6
--- /dev/null
@@ -0,0 +1,22 @@
+// This file is automatically generated by GRIT. Do not edit.
+
+#pragma once
+
+#define IDR_VERSION_UI_EFL_HTML 31100
+#define IDR_VERSION_UI_EFL_JS 31101
+#define IDR_VERSION_UI_EFL_CSS 31102
+#define IDS_ABOUT_VERSION_TITLE 31200
+#define IDS_ABOUT_VERSION_OFFICIAL 31201
+#define IDS_ABOUT_VERSION_32BIT 31202
+#define IDS_ABOUT_VERSION_64BIT 31203
+#define IDS_ABOUT_VERSION_REVISION 31204
+#define IDS_ABOUT_VERSION_OS 31205
+#define IDS_ABOUT_VERSION_USER_AGENT 31206
+#define IDS_ABOUT_VERSION_COMMAND_LINE 31207
+#define IDS_ABOUT_VERSION_EXECUTABLE_PATH 31208
+#define IDS_ABOUT_VERSION_PROFILE_PATH 31209
+#define IDS_ABOUT_VERSION_PATH_NOTFOUND 31210
+#define IDS_ABOUT_VERSION_VARIATIONS 31211
+#define IDS_PRODUCT_NAME 31212
+#define IDS_ABOUT_VERSION_COPYRIGHT 31213
+#define IDS_ABOUT_VERSION_COMPANY_NAME 31214
index 9851330..088bfb9 100644 (file)
@@ -32,6 +32,16 @@ class DirectCanvasGLES2Interface
 
   void SwapBuffers() override;
 
+  void TexImage2D(GLenum target,
+                  GLint level,
+                  GLint internalformat,
+                  GLsizei width,
+                  GLsizei height,
+                  GLint border,
+                  GLenum format,
+                  GLenum type,
+                  const void* pixels) override;
+
  private:
   GLES2Interface* gl_;
 };
index b513c49..ae27df7 100644 (file)
@@ -139,6 +139,7 @@ class GLES2_UTILS_EXPORT GLES2Util {
   // function is called. If 0 is returned the id is invalid.
   int GLGetNumValuesReturned(int id) const;
 
+  static int ElementsPerGroup(int format, int type);
   // Computes the size of a single group of elements from a format and type pair
   static uint32_t ComputeImageGroupSize(int format, int type);
 
index d72dfc1..f41eb85 100644 (file)
@@ -98,6 +98,7 @@ class GPU_EXPORT FeatureInfo : public base::RefCounted<FeatureInfo> {
     bool khr_debug = false;
     bool chromium_bind_generates_resource = false;
     bool angle_webgl_compatibility = false;
+    bool ext_srgb = false;
   };
 
   FeatureInfo();
index dd70532..bb3ff30 100644 (file)
@@ -18,6 +18,28 @@ namespace gles2 {
 
 class GLES2Decoder;
 
+enum CopyTextureMethod {
+  // Use CopyTex{Sub}Image2D to copy from the source to the destination.
+  DIRECT_COPY,
+  // Draw from the source to the destination texture.
+  DIRECT_DRAW,
+  // Draw to an intermediate texture, and then copy to the destination texture.
+  DRAW_AND_COPY,
+  // CopyTexture isn't available.
+  NOT_COPYABLE
+};
+
+// TODOs(qiankun.miao@intel.com):
+// 1. Add readback path for RGB9_E5 and float formats (if extension isn't
+// available and they are not color-renderable).
+// 2. Support faces of cube map texture as valid dest target. The cube map
+// texture may be incomplete currently.
+// 3. Add support for levels other than 0.
+// 4. Support ALPHA, LUMINANCE and LUMINANCE_ALPHA formats on core profile.
+// 5. Update the extension doc after the whole work is done
+// in gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt. We probably
+// will need a ES2 version and a ES3 version.
+
 // This class encapsulates the resources required to implement the
 // GL_CHROMIUM_copy_texture extension.  The copy operation is performed
 // via glCopyTexImage2D() or a blit to a framebuffer object.
@@ -42,7 +64,8 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
                      GLsizei height,
                      bool flip_y,
                      bool premultiply_alpha,
-                     bool unpremultiply_alpha);
+                     bool unpremultiply_alpha,
+                     CopyTextureMethod method);
 
   void DoCopySubTexture(const gles2::GLES2Decoder* decoder,
                         GLenum source_target,
@@ -63,7 +86,8 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
                         GLsizei source_height,
                         bool flip_y,
                         bool premultiply_alpha,
-                        bool unpremultiply_alpha);
+                        bool unpremultiply_alpha,
+                        CopyTextureMethod method);
 
   void DoCopySubTextureWithTransform(const gles2::GLES2Decoder* decoder,
                                      GLenum source_target,
@@ -94,8 +118,10 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
   void DoCopyTextureWithTransform(const gles2::GLES2Decoder* decoder,
                                   GLenum source_target,
                                   GLuint source_id,
+                                  GLenum source_format,
                                   GLenum dest_target,
                                   GLuint dest_id,
+                                  GLenum dest_format,
                                   GLsizei width,
                                   GLsizei height,
                                   bool flip_y,
@@ -136,8 +162,10 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
   void DoCopyTextureInternal(const gles2::GLES2Decoder* decoder,
                              GLenum source_target,
                              GLuint source_id,
+                             GLenum source_format,
                              GLenum dest_target,
                              GLuint dest_id,
+                             GLenum dest_format,
                              GLint xoffset,
                              GLint yoffset,
                              GLint x,
@@ -156,7 +184,7 @@ class GPU_EXPORT CopyTextureCHROMIUMResourceManager {
   bool initialized_;
   bool nv_egl_stream_consumer_external_;
   typedef std::vector<GLuint> ShaderVector;
-  GLuint vertex_shader_;
+  ShaderVector vertex_shaders_;
   ShaderVector fragment_shaders_;
   typedef int ProgramMapKey;
   typedef base::hash_map<ProgramMapKey, ProgramInfo> ProgramMap;
index 11c8b63..4151e6e 100644 (file)
@@ -322,6 +322,10 @@ class GPU_EXPORT Texture final : public TextureBase {
 
   bool EmulatingRGB();
 
+  static bool ColorRenderable(const FeatureInfo* feature_info,
+                              GLenum internal_format,
+                              bool immutable);
+
  private:
   friend class MailboxManagerImpl;
   friend class MailboxManagerSync;
@@ -499,10 +503,6 @@ class GPU_EXPORT Texture final : public TextureBase {
                                  GLenum format,
                                  GLenum type);
 
-  static bool ColorRenderable(const FeatureInfo* feature_info,
-                              GLenum internal_format,
-                              bool immutable);
-
   static bool TextureFilterable(const FeatureInfo* feature_info,
                                 GLenum internal_format,
                                 GLenum type,
index ef97913..1b09e42 100644 (file)
@@ -276,6 +276,7 @@ class GPU_EXPORT CommandBufferProxyImpl
   const gpu::CommandBufferId command_buffer_id_;
   const int32_t route_id_;
   const int32_t stream_id_;
+  const bool use_direct_canvas_;
   uint32_t flush_count_;
   int32_t last_put_offset_;
   int32_t last_barrier_put_offset_;
index 90bb616..2705edc 100644 (file)
@@ -139,6 +139,9 @@ IPC_STRUCT_TRAITS_BEGIN(gpu::gles2::ContextCreationAttribHelper)
   IPC_STRUCT_TRAITS_MEMBER(stencil_size)
   IPC_STRUCT_TRAITS_MEMBER(samples)
   IPC_STRUCT_TRAITS_MEMBER(sample_buffers)
+#if defined(OS_TIZEN_TV_PRODUCT)
+  IPC_STRUCT_TRAITS_MEMBER(texture_samples)
+#endif
   IPC_STRUCT_TRAITS_MEMBER(buffer_preserved)
   IPC_STRUCT_TRAITS_MEMBER(bind_generates_resource)
   IPC_STRUCT_TRAITS_MEMBER(fail_if_major_perf_caveat)
index d7edd9b..f3cfb03 100644 (file)
@@ -335,6 +335,9 @@ class GPU_EXPORT InProcessGpuService {
   static void SetMainThread(scoped_refptr<base::SingleThreadTaskRunner> task_runner);
   static const scoped_refptr<base::SingleThreadTaskRunner>& GetMainThread();
 
+  static void SetDirectCanvasEnabled();
+  static bool GetDirectCanvasEnabled();
+
   static void ReleaseGpuService();
 };
 
index 47c1ba6..0db284a 100644 (file)
@@ -140,6 +140,8 @@ class GPU_EXPORT GpuChannel
 
   void AddFilter(IPC::MessageFilter* filter);
   void RemoveFilter(IPC::MessageFilter* filter);
+  void AddFilterOnGpuThread(IPC::MessageFilter* filter);
+  void RemoveFilterOnGpuThread(IPC::MessageFilter* filter);
 
   uint64_t GetMemoryUsage();
 
@@ -333,6 +335,7 @@ class GPU_EXPORT GpuChannelMessageFilter : public IPC::MessageFilter {
 
   IPC::Channel* channel_;
   base::ProcessId peer_pid_;
+  base::Lock filters_lock_;
   std::vector<scoped_refptr<IPC::MessageFilter>> channel_filters_;
 
   DISALLOW_COPY_AND_ASSIGN(GpuChannelMessageFilter);
index 4adf683..5609a03 100644 (file)
@@ -63,7 +63,7 @@ enum IPCMessageStart {
   AndroidWebViewMsgStart,
   MetroViewerMsgStart,
   CCMsgStart,
-  MediaCaptureMsgStart,
+  MediaRecorderMsgStart,
   MediaPlayerMsgStart,
   TracingMsgStart,
   PeerConnectionTrackerMsgStart,
index f8f5260..0a7a793 100644 (file)
@@ -93,6 +93,16 @@ class MEDIA_EXPORT AudioManagerBase : public AudioManager {
       const std::string& device_id,
       const LogCallback& log_callback) = 0;
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  // Creates the output stream for the |AUDIO_PCM_LOW_LATENCY_PPAPI| format.
+  virtual AudioOutputStream* MakeLowLatencyOutputStreamPPAPI(
+      const AudioParameters& params,
+      const std::string& device_id,
+      const LogCallback& log_callback) {
+    return nullptr;
+  }
+#endif
+
   std::string GetGroupIDOutput(const std::string& output_device_id) override;
   std::string GetGroupIDInput(const std::string& input_device_id) override;
 
index 2cb28c6..4a2277c 100644 (file)
@@ -72,6 +72,9 @@ class MEDIA_EXPORT AudioParameters {
   enum Format {
     AUDIO_PCM_LINEAR = 0,            // PCM is 'raw' amplitude samples.
     AUDIO_PCM_LOW_LATENCY,           // Linear PCM, low latency requested.
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+    AUDIO_PCM_LOW_LATENCY_PPAPI,
+#endif
     AUDIO_FAKE,                      // Creates a fake AudioOutputStream object.
     AUDIO_FORMAT_LAST = AUDIO_FAKE,  // Only used for validation of format.
   };
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_rgb_to_yuv_ssse3.inc b/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_rgb_to_yuv_ssse3.inc
new file mode 100644 (file)
index 0000000..5217c69
--- /dev/null
@@ -0,0 +1,200 @@
+; Copyright (c) 2011 The Chromium Authors. All rights reserved.
+; Use of this source code is governed by a BSD-style license that can be
+; found in the LICENSE file.
+
+;
+; void SYMBOL(const uint8_t* argb, uint8_t* y, uint8_t* u, uint8_t* v, int width);
+;
+; The main code that converts RGB pixels to YUV pixels. This function roughly
+; consists of three parts: converting one ARGB pixel to YUV pixels, converting
+; two ARGB pixels to YUV pixels, and converting four ARGB pixels to YUV pixels.
+; To write the structure of this function in C, it becomes the snippet listed
+; below.
+;
+;   if (width & 1) {
+;     --width;
+;     // Convert one ARGB pixel to one Y pixel, one U pixel, and one V pixel.
+;   }
+;
+;   if (width & 2) {
+;     width -= 2;
+;     // Convert two ARGB pixels to two Y pixels, one U pixel, and one V pixel.
+;   }
+;
+;   while (width) {
+;     width -= 4;
+;     // Convert four ARGB pixels to four Y pixels, two U pixels, and two V
+;     // pixels.
+;   }
+;
+  EXPORT    SYMBOL
+  align     function_align
+
+mangle(SYMBOL):
+  %assign stack_offset 0
+  PROLOGUE 5, 6, 8, ARGB, Y, U, V, WIDTH, TEMP
+
+  ; Initialize constants used in this function. (We use immediates to avoid
+  ; dependency onto GOT.)
+  LOAD_XMM  XMM_CONST_Y0, 0x00420219
+  LOAD_XMM  XMM_CONST_Y1, 0x00007F00
+  LOAD_XMM  XMM_CONST_U, 0x00DAB670
+  LOAD_XMM  XMM_CONST_V, 0x0070A2EE
+  LOAD_XMM  XMM_CONST_128, 0x00800080
+
+.convert_one_pixel:
+  ; Divide the input width by two so it represents the offsets for u[] and v[].
+  ; When the width is odd, We read the rightmost ARGB pixel and convert its
+  ; colorspace to YUV. This code stores one Y pixel, one U pixel, and one V
+  ; pixel.
+  sar       WIDTHq, 1
+  jnc       .convert_two_pixels
+
+  ; Read one ARGB (or RGB) pixel.
+  READ_ARGB xmm0, 1
+
+  ; Calculate y[0] from one RGB pixel read above.
+  CALC_Y    xmm1, xmm0
+  movd      TEMPd, xmm1
+  mov       BYTE [Yq + WIDTHq * 2], TEMPb
+
+  ; Calculate u[0] from one RGB pixel read above. If this is an odd line, the
+  ; output pixel contains the U value calculated in the previous call. We also
+  ; read this pixel and calculate their average.
+  INIT_UV   TEMPd, Uq, 4
+  CALC_UV   xmm1, xmm0, XMM_CONST_U, TEMPd
+  movd      TEMPd, xmm1
+  mov       BYTE [Uq + WIDTHq], TEMPb
+
+  ; Calculate v[0] from one RGB pixel. Same as u[0], we read the result of the
+  ; previous call and get their average.
+  INIT_UV   TEMPd, Uq, 4
+  CALC_UV   xmm1, xmm0, XMM_CONST_V, TEMPd
+  movd      TEMPd, xmm1
+  mov       BYTE [Vq + WIDTHq], TEMPb
+
+.convert_two_pixels:
+  ; If the input width is not a multiple of four, read the rightmost two ARGB
+  ; pixels and convert their colorspace to YUV. This code stores two Y pixels,
+  ; one U pixel, and one V pixel.
+  test      WIDTHb, 2 / 2
+  jz        .convert_four_pixels
+  sub       WIDTHb, 2 / 2
+
+  ; Read two ARGB (or RGB) pixels.
+  READ_ARGB xmm0, 2
+
+  ; Calculate r[0] and r[1] from two RGB pixels read above.
+  CALC_Y    xmm1, xmm0
+  movd      TEMPd, xmm1
+  mov       WORD [Yq + WIDTHq * 2], TEMPw
+
+  ; Skip calculating u and v if the output buffer is NULL.
+  test      Uq, Uq
+  jz        .convert_four_pixels
+
+  ; Calculate u[0] from two RGB pixels read above. (For details, read the above
+  ; comment in .convert_one_pixel).
+  INIT_UV   TEMPd, Uq, 2
+  CALC_UV   xmm1, xmm0, XMM_CONST_U, TEMPd
+  movd      TEMPd, xmm1
+  mov       BYTE [Uq + WIDTHq], TEMPb
+
+  ; Calculate v[0] from two RGB pixels read above.
+  INIT_UV   TEMPd, Vq, 2
+  CALC_UV   xmm1, xmm0, XMM_CONST_V, TEMPd
+  movd      TEMPd, xmm1
+  mov       BYTE [Vq + WIDTHq], TEMPb
+
+.convert_four_pixels:
+  ; Read four ARGB pixels and convert their colorspace to YUV. This code stores
+  ; four Y pixels, two U pixels, and two V pixels.
+  test      WIDTHq, WIDTHq
+  jz        .convert_finish
+
+%if PIXELSIZE == 4
+  ; Check if the input buffer is aligned to a 16-byte boundary and use movdqa
+  ; for reading the ARGB pixels.
+  test      ARGBw, 15
+  jnz       .convert_four_pixels_unaligned
+
+.convert_four_pixels_aligned:
+  sub       WIDTHq, 4 / 2
+
+  ; Read four ARGB pixels. (We can use movdqa here since we have checked if the
+  ; source address is aligned.)
+  movdqa    xmm0, DQWORD [ARGBq + WIDTHq * 4 * 2]
+
+  ; Calculate y[0], y[1], y[2],and, y[3] from the input ARGB pixels.
+  CALC_Y    xmm1, xmm0
+  movd      DWORD [Yq + WIDTHq * 2], xmm1
+
+%if SUBSAMPLING == 0
+  ; Skip calculating u and v if the output buffer is NULL, which means we are
+  ; converting an odd line. (When we enable subsampling, these buffers must
+  ; contain the u and v values for the previous call, i.e. these variables must
+  ; not be NULL.)
+  test      Uq, Uq
+  jz        .convert_four_pixels_aligned_next
+%endif
+
+  ; Calculate u[0] and u[1] from four ARGB pixels read above.
+  INIT_UV   TEMPd, Uq, 4
+  CALC_UV   xmm1, xmm0, XMM_CONST_U, TEMPd
+  movd      TEMPd, xmm1
+  mov       WORD [Uq + WIDTHq], TEMPw
+
+  ; Calculate v[0] and v[1] from four ARGB pixels read above.
+  INIT_UV   TEMPd, Vq, 4
+  CALC_UV   xmm1, xmm0, XMM_CONST_V, TEMPd
+  movd      TEMPd, xmm1
+  mov       WORD [Vq + WIDTHq], TEMPw
+
+%if SUBSAMPLING == 0
+.convert_four_pixels_aligned_next:
+%endif
+
+  test      WIDTHq, WIDTHq
+  jnz       .convert_four_pixels_aligned
+
+  jmp       .convert_finish
+%endif
+
+.convert_four_pixels_unaligned:
+  sub       WIDTHq, 4 / 2
+
+  ; Read four ARGB (or RGB) pixels.
+  READ_ARGB xmm0, 4
+
+  ; Calculate y[0], y[1], y[2],and, y[3] from the input ARGB pixels.
+  CALC_Y    xmm1, xmm0
+  movd      DWORD [Yq + WIDTHq * 2], xmm1
+
+%if SUBSAMPLING == 0
+  ; Skip calculating u and v if the output buffer is NULL.
+  test      Uq, Uq
+  jz        .convert_four_pixels_unaligned_next
+%endif
+
+  ; Calculate u[0] and u[1] from the input ARGB pixels.
+  INIT_UV   TEMPd, Uq, 4
+  CALC_UV   xmm1, xmm0, XMM_CONST_U, TEMPd
+  movd      TEMPd, xmm1
+  mov       WORD [Uq + WIDTHq], TEMPw
+
+  ; Calculate v[0] and v[1] from the input ARGB pixels.
+  INIT_UV   TEMPd, Vq, 4
+  CALC_UV   xmm1, xmm0, XMM_CONST_V, TEMPd
+  movd      TEMPd, xmm1
+  mov       WORD [Vq + WIDTHq], TEMPw
+
+%if SUBSAMPLING == 0
+.convert_four_pixels_unaligned_next:
+%endif
+
+  test      WIDTHq, WIDTHq
+  jnz       .convert_four_pixels_unaligned
+
+.convert_finish:
+  ; Just exit this function since this is a void function.
+  RET
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_yuv_to_rgb_mmx.inc b/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_yuv_to_rgb_mmx.inc
new file mode 100644 (file)
index 0000000..4b69d1b
--- /dev/null
@@ -0,0 +1,63 @@
+; Copyright (c) 2011 The Chromium Authors. All rights reserved.
+; Use of this source code is governed by a BSD-style license that can be
+; found in the LICENSE file.
+
+%include "media/base/simd/media_export.asm"
+
+  EXPORT    SYMBOL
+  align     function_align
+
+mangle(SYMBOL):
+  %assign   stack_offset 0
+  PROLOGUE  6, 7, 3, Y, U, V, ARGB, WIDTH, TABLE, TEMP
+
+  jmp       .convertend
+
+.convertloop:
+  movzx     TEMPd, BYTE [Uq]
+  movq      mm0, [TABLEq + 2048 + 8 * TEMPq]
+  add       Uq, 1
+
+  movzx     TEMPd, BYTE [Vq]
+  paddsw    mm0, [TABLEq + 4096 + 8 * TEMPq]
+  add       Vq, 1
+
+  movzx     TEMPd, BYTE [Yq]
+  movq      mm1, [TABLEq + 8 * TEMPq]
+
+  movzx     TEMPd, BYTE [Yq + 1]
+  movq      mm2, [TABLEq + 8 * TEMPq]
+  add       Yq, 2
+
+  ; Add UV components to Y component.
+  paddsw    mm1, mm0
+  paddsw    mm2, mm0
+
+  ; Down shift and then pack.
+  psraw     mm1, 6
+  psraw     mm2, 6
+  packuswb  mm1, mm2
+  MOVQ      [ARGBq], mm1
+  add       ARGBq, 8
+
+.convertend:
+  sub       WIDTHq, 2
+  jns       .convertloop
+
+  ; If number of pixels is odd then compute it.
+  and       WIDTHq, 1
+  jz        .convertdone
+
+  movzx     TEMPd, BYTE [Uq]
+  movq      mm0, [TABLEq + 2048 + 8 * TEMPq]
+  movzx     TEMPd, BYTE [Vq]
+  paddsw    mm0, [TABLEq + 4096 + 8 * TEMPq]
+  movzx     TEMPd, BYTE [Yq]
+  movq      mm1, [TABLEq + 8 * TEMPq]
+  paddsw    mm1, mm0
+  psraw     mm1, 6
+  packuswb  mm1, mm1
+  movd      [ARGBq], mm1
+
+.convertdone:
+  RET
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_yuva_to_argb_mmx.inc b/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/convert_yuva_to_argb_mmx.inc
new file mode 100644 (file)
index 0000000..d493383
--- /dev/null
@@ -0,0 +1,114 @@
+; Copyright (c) 2011 The Chromium Authors. All rights reserved.
+; Use of this source code is governed by a BSD-style license that can be
+; found in the LICENSE file.
+
+%include "media/base/simd/media_export.asm"
+
+  EXPORT    SYMBOL
+  align     function_align
+
+mangle(SYMBOL):
+  %assign   stack_offset 0
+  PROLOGUE  7, 7, 3, Y, U, V, A, ARGB, WIDTH, TABLE
+  PUSH      WIDTHq
+  DEFINE_ARGS Y, U, V, A, ARGB, TABLE, TEMP
+  mov       TABLEq, TEMPq
+  jmp       .convertend
+
+.convertloop:
+  movzx     TEMPd, BYTE [Uq]
+  movq      mm0, [TABLEq + 2048 + 8 * TEMPq]
+  add       Uq, 1
+
+  movzx     TEMPd, BYTE [Vq]
+  paddsw    mm0, [TABLEq + 4096 + 8 * TEMPq]
+  add       Vq, 1
+
+  movzx     TEMPd, BYTE [Yq]
+  movq      mm1, [TABLEq + 8 * TEMPq]
+
+  movzx     TEMPd, BYTE [Yq + 1]
+  movq      mm2, [TABLEq + 8 * TEMPq]
+  add       Yq, 2
+
+  ; Add UV components to Y component.
+  paddsw    mm1, mm0
+  paddsw    mm2, mm0
+
+  ; Down shift and then pack.
+  psraw     mm1, 6
+  psraw     mm2, 6
+  packuswb  mm1, mm2
+
+  ; Unpack
+  movq      mm0, mm1
+  pxor      mm2, mm2
+  punpcklbw mm0, mm2
+  punpckhbw mm1, mm2
+
+  ; Add one to our alpha values, this is a somewhat unfortunate hack; while
+  ; the pack/unpack above handle saturating any negative numbers to 0, they also
+  ; truncate the alpha value to 255. The math ahead wants to produce the same
+  ; ARGB alpha value as the source pixel in YUVA, but this depends on the alpha
+  ; value in |mm0| and |mm1| being 256, (let A be the source image alpha,
+  ; 256 * A >> 8 == A, whereas 255 * A >> 8 is off by one except at 0).
+  mov       TEMPq, 0x00010000
+  movd      mm2, TEMPd
+  psllq     mm2, 32
+  paddsw    mm0, mm2
+  paddsw    mm1, mm2
+
+  ; Multiply by alpha value, then repack high bytes of words.
+  movzx     TEMPd, BYTE [Aq]
+  movq      mm2, [TABLEq + 6144 + 8 * TEMPq]
+  pmullw    mm0, mm2
+  psrlw     mm0, 8
+  movzx     TEMPd, BYTE [Aq + 1]
+  movq      mm2, [TABLEq + 6144 + 8 * TEMPq]
+  add       Aq, 2
+  pmullw    mm1, mm2
+  psrlw     mm1, 8
+  packuswb  mm0, mm1
+
+  MOVQ      [ARGBq], mm0
+  add       ARGBq, 8
+
+.convertend:
+  sub       dword [rsp], 2
+  jns       .convertloop
+
+  ; If number of pixels is odd then compute it.
+  and       dword [rsp], 1
+  jz        .convertdone
+
+  movzx     TEMPd, BYTE [Uq]
+  movq      mm0, [TABLEq + 2048 + 8 * TEMPq]
+  movzx     TEMPd, BYTE [Vq]
+  paddsw    mm0, [TABLEq + 4096 + 8 * TEMPq]
+  movzx     TEMPd, BYTE [Yq]
+  movq      mm1, [TABLEq + 8 * TEMPq]
+  paddsw    mm1, mm0
+  psraw     mm1, 6
+  packuswb  mm1, mm1
+
+  ; Multiply ARGB by alpha value.
+  pxor      mm0, mm0
+  punpcklbw mm1, mm0
+
+  ; See above note about this hack.
+  mov       TEMPq, 0x00010000
+  movd      mm0, TEMPd
+  psllq     mm0, 32
+  paddsw    mm1, mm0
+
+  movzx     TEMPd, BYTE [Aq]
+  movq      mm0, [TABLEq + 6144 + 8 * TEMPq]
+  pmullw    mm1, mm0
+  psrlw     mm1, 8
+  packuswb  mm1, mm1
+
+  movd      [ARGBq], mm1
+
+.convertdone:
+  POP       TABLEq
+  RET
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/linear_scale_yuv_to_rgb_mmx.inc b/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/linear_scale_yuv_to_rgb_mmx.inc
new file mode 100644 (file)
index 0000000..48f62ac
--- /dev/null
@@ -0,0 +1,135 @@
+; Copyright (c) 2011 The Chromium Authors. All rights reserved.
+; Use of this source code is governed by a BSD-style license that can be
+; found in the LICENSE file.
+
+%include "media/base/simd/media_export.asm"
+
+  EXPORT    SYMBOL
+  align     function_align
+
+mangle(SYMBOL):
+  %assign   stack_offset 0
+
+; Parameters are in the following order:
+; 1. Y plane
+; 2. U plane
+; 3. V plane
+; 4. ARGB frame
+; 5. Width
+; 6. Source dx
+; 7. Conversion lookup table
+
+PROLOGUE  7, 7, 3, Y, R0, R1, ARGB, R2, TEMP, R3
+
+%if gprsize == 8
+%define     WORD_SIZE   QWORD
+%else
+%define     WORD_SIZE   DWORD
+%endif
+
+; Define register aliases.
+%define     Xq                  R1q     ; Current X position
+%define     COMPLq              R2q     ; Component A value
+%define     COMPLd              R2d     ; Component A value
+%define     U_ARG_REGq          R0q     ; U plane address argument
+%define     V_ARG_REGq          R1q     ; V plane address argument
+%define     SOURCE_DX_ARG_REGq  TEMPq   ; Source dx argument
+%define     WIDTH_ARG_REGq      R2q     ; Width argument
+
+%define     COMPRq              R0q     ; Component B value
+%define     COMPRd              R0d     ; Component B value
+%define     Uq                  R0q     ; U plane address
+%define     Vq                  R0q     ; V plane address
+%define     U_PLANE             WORD_SIZE [rsp + 3 * gprsize]
+%define     TABLE               R3q     ; Address of the table
+
+; Defines for stack variables.
+%define     V_PLANE             WORD_SIZE [rsp + 2 * gprsize]
+%define     SOURCE_DX           WORD_SIZE [rsp + gprsize]
+%define     SOURCE_WIDTH        WORD_SIZE [rsp]
+
+; Define stack usage.
+  PUSH      U_ARG_REGq
+  PUSH      V_ARG_REGq
+  PUSH      SOURCE_DX_ARG_REGq
+  imul      WIDTH_ARG_REGq, SOURCE_DX_ARG_REGq  ; source_width = width * source_dx
+  PUSH      WIDTH_ARG_REGq
+
+%macro EPILOGUE 0
+  ADD       rsp, 4 * gprsize
+%endmacro
+
+  xor       Xq, Xq                       ; x = 0
+  cmp       SOURCE_DX_ARG_REGq, 0x20000
+  jl        .lscaleend
+  mov       Xq, 0x8000                   ; x = 0.5 for 1/2 or less
+  jmp       .lscaleend
+
+.lscaleloop:
+  mov       Uq, U_PLANE
+
+; Define macros for scaling YUV components since they are reused.
+%macro SCALEUV 1
+  mov       TEMPq, Xq
+  sar       TEMPq, 0x11
+  movzx     COMPLd, BYTE [%1 + TEMPq]
+  movzx     COMPRd, BYTE [%1 + TEMPq + 1]
+  mov       TEMPq, Xq
+  and       TEMPq, 0x1fffe
+  imul      COMPRq, TEMPq
+  xor       TEMPq, 0x1fffe
+  imul      COMPLq, TEMPq
+  add       COMPLq, COMPRq
+  shr       COMPLq, 17
+%endmacro
+  SCALEUV   Uq                           ; Use the above macro to scale U
+  movq      mm0, [TABLE + 2048 + 8 * COMPLq]
+
+  mov       Vq, V_PLANE                  ; Read V address from stack
+  SCALEUV   Vq                           ; Use the above macro to scale V
+  paddsw    mm0, [TABLE + 4096 + 8 * COMPLq]
+
+%macro SCALEY 0
+  mov       TEMPq, Xq
+  sar       TEMPq, 0x10
+  movzx     COMPLd, BYTE [Yq + TEMPq]
+  movzx     COMPRd, BYTE [Yq + TEMPq + 1]
+  mov       TEMPq, Xq
+  add       Xq, SOURCE_DX                 ; Add source_dx from stack
+  and       TEMPq, 0xffff
+  imul      COMPRq, TEMPq
+  xor       TEMPq, 0xffff
+  imul      COMPLq, TEMPq
+  add       COMPLq, COMPRq
+  shr       COMPLq, 16
+%endmacro
+  SCALEY                                  ; Use the above macro to scale Y1
+  movq      mm1, [TABLE + 8 * COMPLq]
+
+  cmp       Xq, SOURCE_WIDTH              ; Compare source_width from stack
+  jge       .lscalelastpixel
+
+  SCALEY                                  ; Use the above macro to sacle Y2
+  movq      mm2, [TABLE + 8 * COMPLq]
+
+  paddsw    mm1, mm0
+  paddsw    mm2, mm0
+  psraw     mm1, 0x6
+  psraw     mm2, 0x6
+  packuswb  mm1, mm2
+  MOVQ      [ARGBq], mm1
+  add       ARGBq, 0x8
+
+.lscaleend:
+  cmp       Xq, SOURCE_WIDTH     ; Compare source_width from stack
+  jl        .lscaleloop
+  EPILOGUE
+  RET
+
+.lscalelastpixel:
+  paddsw    mm1, mm0
+  psraw     mm1, 6
+  packuswb  mm1, mm1
+  movd      [ARGBq], mm1
+  EPILOGUE
+  RET
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/scale_yuv_to_rgb_mmx.inc b/vendor/brightray/vendor/libchromiumcontent/src/media/base/simd/scale_yuv_to_rgb_mmx.inc
new file mode 100644 (file)
index 0000000..42782cb
--- /dev/null
@@ -0,0 +1,98 @@
+; Copyright (c) 2011 The Chromium Authors. All rights reserved.
+; Use of this source code is governed by a BSD-style license that can be
+; found in the LICENSE file.
+
+%include "media/base/simd/media_export.asm"
+
+  EXPORT    SYMBOL
+  align     function_align
+
+mangle(SYMBOL):
+  %assign   stack_offset 0
+
+; Parameters are in the following order:
+; 1. Y plane
+; 2. U plane
+; 3. V plane
+; 4. ARGB frame
+; 5. Width
+; 6. Source dx
+; 7. Lookup table address
+
+PROLOGUE  7, 7, 3, Y, U, V, ARGB, R1, R2, TEMP
+
+%ifdef ARCH_X86_64
+%define     WORD_SIZE   QWORD
+%else
+%define     WORD_SIZE   DWORD
+%endif
+
+  PUSH      R1q  ; Width
+  PUSH      R2q  ; Source dx
+
+%define     SOURCE_DX   WORD_SIZE [rsp]
+
+  mov       R1q, TEMPq
+
+%define     WIDTH       WORD_SIZE [rsp + gprsize]
+%define     TABLE       R1q
+%define     Xq          R2q
+
+  ; Set Xq index to 0.
+  xor       Xq, Xq
+  jmp       .scaleend
+
+.scaleloop:
+  mov       TEMPq, Xq
+  sar       TEMPq, 17
+  movzx     TEMPd, BYTE [Uq + TEMPq]
+  movq      mm0, [TABLE + 2048 + 8 * TEMPq]
+  mov       TEMPq, Xq
+  sar       TEMPq, 17
+  movzx     TEMPd, BYTE [Vq + TEMPq]
+  paddsw    mm0, [TABLE + 4096 + 8 * TEMPq]
+  mov       TEMPq, Xq
+  add       Xq, SOURCE_DX
+  sar       TEMPq, 16
+  movzx     TEMPd, BYTE [Yq + TEMPq]
+  movq      mm1, [TABLE + 8 * TEMPq]
+  mov       TEMPq, Xq
+  add       Xq, SOURCE_DX
+  sar       TEMPq, 16
+  movzx     TEMPd, BYTE [Yq + TEMPq]
+  movq      mm2, [TABLE + 8 * TEMPq]
+  paddsw    mm1, mm0
+  paddsw    mm2, mm0
+  psraw     mm1, 6
+  psraw     mm2, 6
+  packuswb  mm1, mm2
+  MOVQ      QWORD [ARGBq], mm1
+  add       ARGBq, 8
+
+.scaleend:
+  sub       WIDTH, 2
+  jns       .scaleloop
+
+  and       WIDTH, 1             ; odd number of pixels?
+  jz        .scaledone
+
+  mov       TEMPq, Xq
+  sar       TEMPq, 17
+  movzx     TEMPd, BYTE [Uq + TEMPq]
+  movq      mm0, [TABLE + 2048 + 8 * TEMPq]
+  mov       TEMPq, Xq
+  sar       TEMPq, 17
+  movzx     TEMPd, BYTE [Vq + TEMPq]
+  paddsw    mm0, [TABLE + 4096 + 8 * TEMPq]
+  mov       TEMPq, Xq
+  sar       TEMPq, 16
+  movzx     TEMPd, BYTE [Yq + TEMPq]
+  movq      mm1, [TABLE + 8 * TEMPq]
+  paddsw    mm1, mm0
+  psraw     mm1, 6
+  packuswb  mm1, mm1
+  movd      DWORD [ARGBq], mm1
+
+.scaledone:
+  ADD       rsp, 2 * gprsize
+  RET
index 313463e..4b143bc 100644 (file)
@@ -261,6 +261,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> {
   }
   unsigned GetTbmTexture() { return texture_id_; }
   unsigned CreateTbmTextureIfNeeded(gpu::gles2::GLES2Interface* gl);
+  void ReleaseTbm();
   void GenTbmTextureMailbox();
 #if defined(OS_TIZEN_TV_PRODUCT)
   void SetMailBoxHolder(const gpu::MailboxHolder& mailbox_holder) {
@@ -274,6 +275,12 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> {
   gfx::TbmBufferHandle GetTbmBuffer() { return buffer_handle_; }
   unsigned GetImageID() { return image_id_; }
   void SetImageID(unsigned image) { image_id_ = image; }
+  int GetScalerPhysicalId() { return scaler_physical_id_; }
+  void SetScalerPhysicalId(int id) { scaler_physical_id_ = id; }
+  static bool getScalerIndex(uint32_t* scaler_value);
+  static bool getScalerNumber(uint32_t* scaler_value);
+  static bool lockScalerDuringNextFrame(uint32_t scaler_physical_id,
+                                        bool enable = true);
 #endif // defined(OS_TIZEN_TV_PRODUCT)
 #endif
 
@@ -592,6 +599,7 @@ class MEDIA_EXPORT VideoFrame : public base::RefCountedThreadSafe<VideoFrame> {
   gpu::gles2::GLES2Interface* gl_;
 #if defined(OS_TIZEN_TV_PRODUCT)
   unsigned image_id_;
+  unsigned scaler_physical_id_;
 #endif // defined(OS_TIZEN_TV_PRODUCT)
 #endif
 
index 49e5502..6e80d49 100644 (file)
@@ -65,7 +65,8 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor
   // though it may be constructed on any thread.
   explicit VideoFrameCompositor(
 #if defined(TIZEN_VIDEO_HOLE)
-      const base::Callback<void(gfx::Rect)>& drawable_content_rect_changed_cb,
+      const base::Callback<void(gfx::Rect, bool)>&
+          drawable_content_rect_changed_cb,
 #endif
       const scoped_refptr<base::SingleThreadTaskRunner>&
           compositor_task_runner);
@@ -156,7 +157,7 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor
                   bool background_rendering);
 
 #if defined(TIZEN_VIDEO_HOLE)
-  const base::Callback<void(gfx::Rect)> drawable_content_rect_changed_cb_;
+  const base::Callback<void(gfx::Rect, bool)> drawable_content_rect_changed_cb_;
 #endif
 
   scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
index 65a9e44..4c056ac 100644 (file)
@@ -166,6 +166,8 @@ class MEDIA_EXPORT ChunkDemuxerStream : public DemuxerStream {
   DISALLOW_IMPLICIT_CONSTRUCTORS(ChunkDemuxerStream);
 };
 
+using SeekCB = base::Callback<void(base::TimeDelta, PipelineStatus)>;
+
 // Demuxer implementation that allows chunks of media data to be passed
 // from JavaScript to the media stack.
 class MEDIA_EXPORT ChunkDemuxer : public Demuxer {
@@ -196,6 +198,7 @@ class MEDIA_EXPORT ChunkDemuxer : public Demuxer {
                   bool enable_text_tracks) override;
   void Stop() override;
   void Seek(base::TimeDelta time, const PipelineStatusCB& cb) override;
+  void Seek(base::TimeDelta time, const SeekCB& seek_cb);
   base::Time GetTimelineOffset() const override;
   DemuxerStream* GetStream(DemuxerStream::Type type) override;
   base::TimeDelta GetStartTime() const override;
index 6cdcbd4..caf1f53 100644 (file)
@@ -15,8 +15,6 @@ extern "C" {
 #endif
 
 #define AF_UNIX 1
-#define AF_INET 2
-#define AF_INET6 10
 #define SOCK_STREAM 1
 #define SOCK_DGRAM 2
 #define SOCK_SEQPACKET 5
@@ -35,8 +33,6 @@ extern "C" {
 #define MSG_NOSIGNAL 0x4000
 
 typedef uint32_t socklen_t;
-typedef uint16_t sa_family_t;
-typedef uint16_t in_port_t;
 
 struct iovec {
   void *iov_base;
@@ -62,37 +58,6 @@ struct cmsghdr {
   int cmsg_type;
 };
 
-struct in_addr {
-  uint32_t s_addr;
-};
-
-struct in6_addr {
-  uint8_t s6_addr[16];
-};
-
-struct sockaddr {
-  sa_family_t sa_family;
-  char sa_data[14];
-};
-
-struct sockaddr_in {
-  sa_family_t sin_family;
-  in_port_t sin_port;
-  struct in_addr sin_addr;
-
-  unsigned char sin_zero[sizeof(struct sockaddr) - sizeof(sa_family_t) -
-                         sizeof(in_port_t) -
-                         sizeof(struct in_addr)];
-};
-
-struct sockaddr_in6 {
-  sa_family_t sin6_family;
-  in_port_t sin6_port;
-  uint32_t sin6_flowinfo;
-  struct in6_addr sin6_addr;
-  uint32_t sin6_scope_id;
-};
-
 ssize_t recv(int sockfd, void *buf, size_t len, int flags);
 ssize_t send(int sockfd, const void *buf, size_t len, int flags);
 ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);
@@ -100,19 +65,6 @@ ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);
 int shutdown(int sockfd, int how);
 int socketpair(int domain, int type, int protocol, int sv[2]);
 
-ssize_t recvfrom(int sockfd,
-                 void* buf,
-                 size_t len,
-                 int flags,
-                 struct sockaddr* addr,
-                 socklen_t* addr_len);
-ssize_t sendto(int sockfd,
-               const void* buf,
-               size_t len,
-               int flags,
-               const struct sockaddr* addr,
-               socklen_t addr_len);
-
 #define CMSG_ALIGN(len) (((len) + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1))
 #define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
 #define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
index 44c1ce7..0cb0824 100644 (file)
@@ -141,8 +141,6 @@ int syscall(int number, ...);
 # define __NR_tgkill             268
 # define __NR_utimes             271
 # define __NR_socketpair         288
-# define __NR_sendto             290
-# define __NR_recvfrom           292
 # define __NR_shutdown           293
 # define __NR_sendmsg            296
 # define __NR_recvmsg            297
index 9e1bd4f..d05eede 100644 (file)
@@ -107,6 +107,7 @@ class Target {
   port::Thread *GetThread(uint32_t id);
 
   bool AddBreakpoint(uint32_t user_address);
+  bool IsUserBreakpoint(uint32_t user_address, uint32_t instruction);
   bool RemoveBreakpoint(uint32_t user_address);
   void CopyFaultSignalFromAppThread(port::Thread *thread);
   void RemoveInitialBreakpoint();
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/native_client/tools/hermetic_cygwin/make_installer.inc b/vendor/brightray/vendor/libchromiumcontent/src/native_client/tools/hermetic_cygwin/make_installer.inc
new file mode 100644 (file)
index 0000000..db2c6c6
--- /dev/null
@@ -0,0 +1,1065 @@
+# Copyright 2012, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# Information from setup.ini
+declare -A {s,l}desc category require{d,s} prefix version install source message
+# Contents of categories
+declare -A category_contents
+# Packagenames: in request order and in install order
+declare -A allinstpackages instpackages reqpackages sectionin seed
+declare -a allinstalledpackages
+# Filetype info
+declare -A filetype
+# Sanitized names cache
+declare -A sanitized_name
+# Default installation type - filled in download_addon_packages if there are options
+declare definsttype=1
+
+parse_setup_ini() {
+  if ((verbose)) ; then echo "Parsing setup.ini..." >&2 ; fi
+  local package line acceptmode=0 sdescmode=0 ldescmode=0 messagemode=0
+  while IFS= read -r line ; do
+    if [[ "${line:0:1}" = "@" ]] ; then
+      package="${line:2}"
+      acceptmode=1
+      sdescmode=0
+      ldescmode=0
+      messagemode=0
+      if ((verbose)) ; then echo "Package: \"$package\"..." >&2 ; fi
+    elif [[ "$line" = "[prev]" ]] || [[ "$line" = "[test]" ]] ; then
+      acceptmode=0
+    elif ((acceptmode)) ; then
+      if ((sdescmode)) ; then
+        sdesc["$package"]="${sdesc[$package]} $line"
+        if [[ "$line" = *\"* ]] ; then
+          sdescmode=0
+        fi
+      elif ((ldescmode)) ; then
+        ldesc["$package"]="${ldesc[$package]} $line"
+        if [[ "$line" = *\"* ]] ; then
+          ldescmode=0
+        fi
+      elif ((messagemode)) ; then
+        message["$package"]="${ldesc[$package]} $line"
+        if [[ "$line" = *\"* ]] ; then
+          messagemode=0
+        fi
+      elif [[ "${line:0:6}" = "sdesc:" ]] ; then
+        sdesc["$package"]="${line:7}"
+        if [[ "${line:7}" = *\"*\"* ]] ; then
+          sdescmode=0
+        else
+          sdescmode=1
+        fi
+        ldescmode=0
+        messagemode=0
+      elif [[ "${line:0:6}" = "ldesc:" ]] ; then
+        ldesc["$package"]="${line:7}"
+        sdescmode=0
+        if [[ "${line:7}" = *\"*\"* ]] ; then
+          ldescmode=0
+        else
+          ldescmode=1
+        fi
+        messagemode=0
+      elif [[ "${line:0:9}" = "category:" ]] ; then
+        category["$package"]="${line:10}"
+        for catname in ${category["$package"]} ; do
+          category_contents["$catname"]="${category_contents[$catname]} $package"
+        done
+        sdescmode=0
+        ldescmode=0
+        messagemode=0
+      elif [[ "${line:0:9}" = "requires:" ]] ; then
+        line="${line/ _autorebase/}"
+        requires["$package"]="${line:10}"
+        sdescmode=0
+        ldescmode=0
+        messagemode=0
+      elif [[ "${line:0:8}" = "version:" ]] ; then
+        version["$package"]="${line:9}"
+        sdescmode=0
+        ldescmode=0
+        messagemode=0
+      elif [[ "${line:0:8}" = "install:" ]] ; then
+        install["$package"]="${line:9}"
+        sdescmode=0
+        ldescmode=0
+        messagemode=0
+      elif [[ "${line:0:7}" = "source:" ]] ; then
+        source["$package"]="${line:8}"
+        sdescmode=0
+        ldescmode=0
+        messagemode=0
+      elif [[ "${line:0:8}" = "message:" ]] ; then
+        message["$package"]="${line:9}"
+        sdescmode=0
+        ldescmode=0
+        if [[ "${line:7}" = *\"*\"* ]] ; then
+          messagemode=0
+        else
+          messagemode=1
+        fi
+      elif [[ "$line" != "" ]] &&
+           [[ "$line" != "#"* ]] ; then
+        echo "Unknown tag in \"$line\"" >&2
+        exit 1
+      fi
+    fi
+  done < setup.ini
+}
+
+fix_setup_inf_info() {
+  sdesc["python-lxml"]="\"Python XML2/XSLT bindings\""
+  ldesc["python-lxml"]="\"lxml is a Pythonic binding for the libxml2 and libxslt libraries. It is unique in that it combines the speed and feature completeness of these libraries with the simplicity of a native Python API, mostly compatible but superior to the well-known ElementTree API.\""
+  category["python-lxml"]="Python"
+  category_contents["Python"]="${category_contents[Python]} python-lxml"
+  requires["python-lxml"]="libxml2 libxslt python python-beautifulsoup"
+  version["python-lxml"]="3.2.3-1"
+  install["python-lxml"]="x86/release/python-lxml/python-lxml-3.2.3-1.tar.bz2 705772 1be0ee09ad688ead386f61702db23ffe"
+  source["python-lxml"]="x86/release/python-lxml/python-lxml-3.2.3-1-src.tar.bz2 3353561 977cc672b83383e395b0e0900bc802e1"
+
+  sdesc["python3-lxml"]="\"Py3K XML2/XSLT bindings\""
+  ldesc["python3-lxml"]="\"lxml is a Pythonic binding for the libxml2 and libxslt libraries. It is unique in that it combines the speed and feature completeness of these libraries with the simplicity of a native Python API, mostly compatible but superior to the well-known ElementTree API.\""
+  category["python3-lxml"]="Python"
+  category_contents["Python"]="${category_contents[Python]} python3-lxml"
+  requires["python3-lxml"]="libxml2 libxslt python3"
+  version["python3-lxml"]="3.2.3-1"
+  install["python3-lxml"]="x86/release/python3-lxml/python3-lxml-3.2.3-1.tar.bz2 691721 4e9250266857afbe1cafc7024d42ad36"
+  source["python3-lxml"]="x86/release/python3-lxml/python3-lxml-3.2.3-1-src.tar.bz2 3353519 93e02ae23051cecdef3ff820f885de4b"
+
+  requires["coreutils"]="${requires[coreutils]} dash grep patch sed"
+  requires["cygwin"]="base-files ${requires[cygwin]} editrights ipc-utils run"
+  requires["dash"]="${requires[dash]} cygwin"
+  requires["gettext"]="${requires[gettext]} libiconv libiconv2"
+}
+
+download_package_dependences() {
+  # $1 = name of the package; function is recursive
+  # $2 - Section No
+  local instname="${install[$1]/.tar.bz2*/.tar.bz2}"
+  local srcname="${source[$1]/.tar.bz2*/.tar.bz2}"
+  if [[ "$instname" != "" ]] ; then
+    if ((verbose)) ; then ( echo ; echo -n "Package: \"$1\"..." ) >&2 ; fi
+    if [ ! -e packages/"`basename \"$instname\"`" ] ; then
+      # TODO(bradnelson): Check certs when this issue is resolved.
+      #     http://code.google.com/p/nativeclient/issues/detail?id=2931
+      if wget --no-check-certificate https://storage.googleapis.com/nativeclient-mirror/nacl/cygwin_mirror/packages/"`basename \"$instname\"`" -O packages/"`basename \"$instname\"`" ||
+         wget "$mirror_prefix/$instname" -O packages/"`basename \"$instname\"`" ; then
+        if ! [[ "${install[$1]}" = "${install[$1]/.tar.bz2*/.tar.bz2} `
+                stat -c "%s" packages/\"\`basename \\\"$instname\\\"\`\"` `
+                md5sum -b packages/\"\`basename \\\"$instname\\\"\`\" | cut -b -32`" ]] ; then
+          echo "Wrong file downloaded: expected ${install[$1]}" >&2
+          exit 1
+        fi
+      else
+        # Wget should have complained for us
+        exit $?
+      fi
+    fi
+    if [ ! -e packages.unpacked/"`basename \"$instname\"`" ] ; then
+      mkdir -p packages.unpacked/"`basename \"$instname\"`"
+      if ! tar xSvpf {packages,-Cpackages.unpacked}/"`basename \"$instname\"`" ; then
+        # Tar should have complained for us
+        exit $?
+      fi
+      if [[ "$1" = "base-files" ]] ; then
+        if ! patch -p0 --no-backup-if-mismatch <<END
+--- packages.unpacked/`basename "$instname"`/etc/postinstall/base-files-mketc.sh
++++ packages.unpacked/`basename "$instname"`/etc/postinstall/base-files-mketc.sh
+@@ -14,9 +14,14 @@
+ WINETC="\${WINSYS32HOME}\\\\drivers\\\\etc"
+ if [ ! -d "\${WINETC}" ]; then
+-  echo "Directory \${WINETC} does not exist; exiting" >&2
+-  echo "If directory name is garbage you need to update your cygwin package" >&2
+-  exit 1
++  # Vista64 is crazy: symlink is usable, but "-f" to the original is false!
++  if ln -s "\`/bin/cygpath -w -W\`\\\\sysnative\\\\drivers\\\\etc\\\\lmhosts.sam" /etc/lmhosts.sam && [ -f /etc/lmhosts.sam ] && rm /etc/lmhosts.sam ; then
++    WINETC="\`/bin/cygpath -w -W\`\\\\sysnative\\\\drivers\\\\etc"
++  else
++    echo "Directory \${WINETC} does not exist; exiting" >&2
++    echo "If directory name is garbage you need to update your cygwin package" >&2
++    exit 1
++  fi
+ fi
+ for mketc in \$FILES
+END
+        then
+          # Patch should have complained for us
+          exit $?
+        fi
+      elif [[ "$1" = "WindowMaker" ]] ; then
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/WindowMaker/Icons/{,tmp}defaultAppIcon.tiff
+        rm packages.unpacked/"`basename \"$instname\"`"/usr/share/WindowMaker/Icons/DefaultAppIcon.tiff 2> /dev/null
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/WindowMaker/Icons/{tmp,}defaultAppIcon.tiff
+      elif [[ "$1" = "lilypond-doc" ]] ; then
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/doc/lilypond/html/Documentation/user/lilypond-learning/{,tmp}Lilypond_002dbook-templates.de.html
+        rm packages.unpacked/"`basename \"$instname\"`"/usr/share/doc/lilypond/html/Documentation/user/lilypond-learning/lilypond_002dbook-templates.de.html
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/doc/lilypond/html/Documentation/user/lilypond-learning/{tmp,}Lilypond_002dbook-templates.de.html
+      elif [[ "$1" = "ruby" ]] ; then
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/Exception2MessageMapper/{,tmp}Fail-i.yaml
+        rm packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/Exception2MessageMapper/fail-i.yaml
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/Exception2MessageMapper/{tmp,}Fail-i.yaml
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/REXML/Parsers/XPathParser/{,tmp}Predicate-i.yaml
+        rm packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/REXML/Parsers/XPathParser/predicate-i.yaml
+        mv packages.unpacked/"`basename \"$instname\"`"/usr/share/ri/1.8/system/REXML/Parsers/XPathParser/{tmp,}tmpPredicate-i.yaml
+      fi
+      for file in packages.unpacked/"`basename \"$instname\"`"/etc/{postinstall,preremove}/*.sh ; do
+        if [ -e "$file" ] ; then
+          mv "$file" "$file".tmp
+          while IFS= read -r line ; do
+            if [[ "$line" != "while read f; do" ]] ; then
+              printf "%s\n" "$line"
+            else
+              echo "while read f; do if [ \"x\$f\" = \"x\" ] ; then break ; fi"
+            fi
+          done < "$file".tmp > "$file"
+          touch -r "$file".tmp "$file"
+          rm "$file".tmp
+        fi
+      done
+    fi
+    if [ ! -e setup/"$1".lst.gz ] ; then
+      if ! rm -f setup/"$1".lst ; then
+        # Rm should have complained for us
+        exit $?
+      fi
+      if ! tar tf {packages,-Cpackages.unpacked}/"`basename \"$instname\"`" > setup/"$1".lst ; then
+        # Tar should have complained for us
+        exit $?
+      fi
+      if ! gzip -9 setup/"$1".lst ; then
+        # Gzip should have complained for us
+        exit $?
+      fi
+    fi
+  fi
+  if [[ "$srcname" != "" ]] ; then
+    if [ ! -e packages.src/"`basename \"$srcname\"`" ] ; then
+      # TODO(bradnelson): Check certs when this issue is resolved.
+      #     http://code.google.com/p/nativeclient/issues/detail?id=2931
+      if wget --no-check-certificate https://storage.googleapis.com/nativeclient-mirror/nacl/cygwin_mirror/packages.src/"`basename \"$srcname\"`" -O packages.src/"`basename \"$srcname\"`" ||
+         wget "$mirror_prefix/$srcname" -O packages.src/"`basename \"$srcname\"`" ; then
+        if ! [[ "${source[$1]}" = "${source[$1]/.tar.bz2*/.tar.bz2} `
+                stat -c "%s" packages.src/\"\`basename \\\"$srcname\\\"\`\"` `
+                md5sum -b packages.src/\"\`basename \\\"$srcname\\\"\`\" | cut -b -32`" ]] ; then
+          echo "Wrong file downloaded: expected ${install[$1]}" >&2
+          exit 1
+        fi
+      else
+        # Wget should have complained for us
+        exit $?
+      fi
+    fi
+  fi
+  local pkgname
+  reqpackages["$1"]="present"
+  sectionin["$1"]="${sectionin[$1]} $2"
+  for pkgname in ${requires["$1"]} ; do
+    if [[ "${reqpackages[$pkgname]}" = "present" ]] ; then
+      if ((verbose)) ; then echo -n "." >&2 ; fi
+    else
+      download_package_dependences "$pkgname" "$2"
+    fi
+  done
+  if [[ "${allinstpackages[$1]}" != "present" ]] ; then
+    allinstpackages["$1"]="present"
+    allinstalledpackages=(${allinstalledpackages[@]} "$1")
+  fi
+}
+
+download_package() {
+  # $1 - Category name
+  # $2 - Section No
+  if ((verbose)) ; then echo -n "Downloading packages in \"$1\"..." >&2 ; fi
+  local pkgname
+  reqpackages=()
+  for pkgname in ${category_contents["$1"]} ; do
+    if [[ "${reqpackages[$pkgname]}" != "present" ]] ; then
+      download_package_dependences "$pkgname" "$2"
+    fi
+    seed["$pkgname"]="${seed[$pkgname]} $2"
+  done
+  if ((verbose)) ; then echo >&2 ; fi
+}
+
+download_all_packages() {
+  # $1 - Section No
+  local secname
+  for secname in "${!category_contents[@]}" ; do
+    if [ "$secname" != "_obsolete" ] ; then
+      download_package "$secname" "$1"
+    fi
+  done
+}
+
+download_addon_packages() {
+  # $1 - Start SectionN
+  local insttype pkgname sectionN="$1"
+  if ((verbose)) ; then echo -n "Downloading addon packages..." >&2 ; fi
+  if [[ "$defpackage" = "Full" ]] ; then
+    definsttype="$((sectionN-1))"
+  fi
+  local IFS=$'\n'
+  for insttype in `
+    for insttype in "${!packages[@]}" ; do
+      echo $insttype
+    done | sort
+  ` ; do
+    if [[ "$defpackage" = "$insttype" ]] ; then
+      definsttype="$sectionN"
+    fi
+    reqpackages=()
+    IFS=$' \t\n'
+    for pkgname in ${packages["$insttype"]} ; do
+      if [[ "${reqpackages[$pkgname]}" != "present" ]] ; then
+        download_package_dependences "$pkgname" "$sectionN"
+      fi
+      seed["$pkgname"]="${seed[$pkgname]} $sectionN"
+    done
+    ((sectionN++))
+  done
+  if [[ "$defpackage" = "Minimal" ]] ; then
+    definsttype="$sectionN"
+  fi
+  if ((verbose)) ; then echo >&2 ; fi
+}
+
+fill_required_packages() {
+  if ((verbose)) ; then echo "Calculating dependences..." >&2 ; fi
+  local pkgname subpkgname subsubpkgname check=1
+  while ((check)) ; do
+    check=0
+    for pkgname in "${allinstalledpackages[@]}" ; do
+      if ((verbose)) ; then echo "Package: \"$pkgname\"..." >&2 ; fi
+      for subpkgname in ${requires["$pkgname"]} ; do
+        for subsubpkgname in ${requires["$subpkgname"]} ; do
+          if ! [[ " ${requires[$pkgname]} " = *" $subsubpkgname "* ]] ; then
+            requires["$pkgname"]="${requires[$pkgname]} $subsubpkgname"
+            check=1
+          fi
+        done
+      done
+    done
+  done
+  for pkgname in "${allinstalledpackages[@]}" ; do
+    for subpkgname in ${requires["$pkgname"]} ; do
+      required["$subpkgname"]="${required[$subpkgname]} $pkgname"
+    done
+  done
+}
+
+fill_filetype_info() {
+  local IFS="
+"
+  # Corner cases: files created by post-install scripts, mistakes, etc
+  filetype=([Cygwin.ico]="file"
+            [bin]="directory"
+            [usr/bin]="directory"
+            [lib]="directory"
+            [usr/lib]="directory"
+            [bin/exim.exe]="file"
+            [bin/latex.exe]="file"
+            [lib/icu/current/Makefile.inc]="file"
+            [lib/rpm/rpmv.exe]="file"
+            [usr/sbin/sendmail]="file"
+            [usr/share/man/man1/gcc.1.gz]="file"
+            [usr/share/man/man1/g++.1.gz]="file"
+            [usr/share/man/man1/g77.1.gz]="file"
+            [usr/share/man/man1/mf.1]="file"
+            [usr/share/terminfo/E/Eterm]="file"
+            [usr/share/terminfo/N/NCR260VT300WPP0]="file")
+  if ((verbose)) ; then echo "Scanning filetypes..." >&2 ; fi
+  for name in `
+    for package in packages.unpacked/* ; do (
+      cd $package
+      if ((verbose)) ; then echo "Archive: \"${package#*/}\"..." >&2 ; fi
+      find -type f
+    ) done
+  ` ; do
+    if [[ "${name:0:10}" = "./usr/bin/" ]] ; then
+      filetype["bin/${name:10}"]="file"
+    elif [[ "${name:0:10}" = "./usr/lib/" ]] ; then
+      filetype["lib/${name:10}"]="file"
+    else
+      filetype["${name:2}"]="file"
+    fi
+  done
+  for name in `
+    for package in packages.unpacked/* ; do (
+      cd $package
+      if ((verbose)) ; then echo "Archive: \"${package#*/}\"..." >&2 ; fi
+      find -type d
+    ) done
+  ` ; do
+    if [[ "${name:0:10}" = "./usr/bin/" ]] ; then
+      if [[ "bin/${filetype[${name:10}]}" = "file" ]] ; then
+        echo "bin/${filetype[${name:10}]} - file and directory... oops?" >&2
+        exit 1
+      fi
+      filetype["bin/${name:10}"]="directory"
+    elif [[ "${name:0:10}" = "./usr/lib/" ]] ; then
+      if [[ "lib/${filetype[${name:10}]}" = "file" ]] ; then
+        echo "lib/${filetype[${name:10}]} - file and directory... oops?" >&2
+        exit 1
+      fi
+      filetype["lib/${name:10}"]="directory"
+    elif ((${#name}>1)) ; then
+      if [[ "${filetype[${name:2}]}" = "file" ]] ; then
+        echo "${filetype[${name:2}]} - file and directory... oops?" >&2
+        exit 1
+      fi
+      filetype["${name:2}"]="directory"
+    fi
+  done
+}
+
+sanitize_var_name() {
+  local varname="$1"
+  varname="${varname//-/_}"
+  varname="${varname//./_}"
+  varname="${varname//+/X}"
+  echo -n "$varname"
+}
+
+declare_nsis_variables() {
+  local outlist
+  local pkgname
+  if ((verbose)) ; then echo "Declare NSIS variables..." >&2 ; fi
+  if [[ "$defpackage" != "NONE" ]] ; then
+    echo "InstType \"Full\""
+    for pkgname in "${!packages[@]}" ; do
+      echo "InstType \"$pkgname\""
+    done | sort
+    cat <<END
+InstType "Minimal"
+
+Var SVV_CmdLineParameters
+Var SVV_InstType
+Var SVV_SelChangeInProgress
+
+!include "FileFunc.nsh"
+
+END
+  fi
+  for pkgname in "${allinstalledpackages[@]}" ; do
+    sanitized_name["$pkgname"]="`sanitize_var_name \"$pkgname\"`"
+    outlist="$outlist
+Var PKV_${sanitized_name[$pkgname]}"
+  done
+  echo "$outlist" | sort
+  local secname
+  for secname in "${!category_contents[@]}" ; do
+    echo "$secname"
+  done | sort |
+  while read -r secname ; do
+    local pkgname
+    for pkgname in ${category_contents["$secname"]} ; do
+      echo "$pkgname"
+    done | sort |
+    while read -r pkgname ; do
+      if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+        echo "Var sv_${secname}_${sanitized_name[$pkgname]}"
+      fi
+    done
+  done |
+  sort
+}
+
+generate_unpack_tarball_text() {
+  # $1 - package to unpack
+  echo "  SetOutPath \$INSTDIR"
+  local pkgname="$1"
+  if [[ "$pkgname" != "" ]] ; then
+    pkgname="`basename ${install[$pkgname]/.tar.bz2*/.tar.bz2}`"
+  fi
+  if [[ "$pkgname" != "" ]] ; then
+    local pkgcontent="`tar tSvpf packages/$pkgname\"\" --numeric-owner`"
+    local attrs uidgid size date time filename
+    local -A createddirs
+    createddirs[0]="done"
+    echo "$pkgcontent" | grep "^[dhl-]" |
+    while read -r attrs uidgid size date time filename ; do
+      if [[ "${attrs:0:1}" = "h" ]] ; then
+        filename="${filename%/* link to *}/"
+      elif [[ "${attrs:0:1}" = "l" ]] ; then
+        filename="${filename%/* -> *}/"
+      elif [[ "${attrs:0:1}" = "-" ]] ; then
+        if [[ "$filename" = */* ]] ; then
+          filename="${filename%/*}/"
+        else
+          filename=""
+        fi
+      fi
+      if [[ "$filename" = "usr/share/terminfo/e/" ]] ; then
+        filename="usr/share/terminfo/E/"
+      fi
+      if [[ "${filename:0:8}" = "usr/bin/" ]] ; then
+        filename="bin/${filename:8}"
+      elif [[ "${filename:0:8}" = "usr/lib/" ]] ; then
+        filename="lib/${filename:8}"
+      fi
+      if [[ "$filename" != "" ]] ; then
+        filename="${filename:0:$((${#filename}-1))}"
+        if [[ "${createddirs[$filename]}" != "done" ]] ; then
+          echo "  CreateDirectory \"\$INSTDIR\\${prefix[$1]}${filename//\//\\}\""
+          if [[ "$filename" == "bin" ]]; then
+            echo "  CreateDirectory \"\$INSTDIR\\${prefix[$1]}bin-unrebased\""
+          fi
+          createddirs["$filename"]="done"
+        fi
+      fi
+    done
+    if [[ "$1" = "libgcj-common" ]] ; then
+      echo "  CreateDirectory \"\$INSTDIR\\${prefix[$1]}lib\\security\""
+    fi
+    if [[ "$1" == "cygwin" ]] ; then
+      echo "  File \"/oname=${prefix[cygwin]}Cygwin.ico\" \"setup\\Cygwin.ico\""
+    fi
+    echo "$pkgcontent" | grep "^-" |
+    while read -r attrs uidgid size date time filename ; do
+      if [[ "$filename" != "usr/share/WindowMaker/Icons/DefaultAppIcon.tiff" ]] &&
+         [[ "$filename" != "usr/share/ri/1.8/system/Exception2MessageMapper/fail-i.yaml" ]] &&
+         [[ "$filename" != "usr/share/ri/1.8/system/REXML/Parsers/XPathParser/predicate-i.yaml" ]] ; then
+        local fname
+        if [[ "${filename:0:8}" = "usr/bin/" ]] ; then
+          fname="bin/${filename:8}"
+        elif [[ "${filename:0:8}" = "usr/lib/" ]] ; then
+          fname="lib/${filename:8}"
+        elif [[ "$filename" = "usr/share/terminfo/e/Eterm" ]] ; then
+          fname="usr/share/terminfo/E/Eterm"
+        else
+          fname="$filename"
+        fi
+        fname="${fname//\//\\}"
+        fname="${fname//\$/\$\$}"
+        filename="${filename//\//\\}"
+        echo "  File \"/oname=${prefix[$1]}$fname\" \"packages.unpacked\\$pkgname\\$filename\""
+        if [[ "$fname" = bin\\*.dll ]]; then
+          echo "  File \"/oname=${prefix[$1]}bin-unrebased\\${fname:3}\" \"packages.unpacked\\$pkgname\\$filename\""
+        fi
+      fi
+    done
+    echo "  File \"/oname=${prefix[coreutils]}etc\\setup\\$1.lst.gz\" \"setup\\$1.lst.gz\""
+    echo "$pkgcontent" | grep "^h" |
+    while read -r attrs uidgid size date time filename ; do
+      local linkname="${filename/ link to */}"
+      local linktargetname="${filename/* link to /}"
+      if [[ "${linkname:0:8}" = "usr/bin/" ]] ; then
+        linkname="bin/${linkname:8}"
+      elif [[ "${linkname:0:8}" = "usr/lib/" ]] ; then
+        linkname="lib/${linkname:8}"
+      fi
+      if [[ "${linktargetname:0:8}" = "usr/bin/" ]] ; then
+        linktargetname="bin/${linktargetname:8}"
+      elif [[ "${linktargetname:0:8}" = "usr/lib/" ]] ; then
+        linktargetname="lib/${linktargetname:8}"
+      fi
+      linkname="${linkname//\//\\}"
+      linkname="${linkname//\$/\$\$}"
+      linktargetname="${linktargetname//\//\\}"
+      linktargetname="${linktargetname//\$/\$\$}"
+      echo "  MkLink::Hard \"\$INSTDIR\\${prefix[$1]}$linkname\" \"\$INSTDIR\\${prefix[$1]}$linktargetname\""
+    done
+    echo "$pkgcontent" | grep "^l" |
+    while read -r attrs uidgid size date time filename ; do
+      local linkname="${filename/ -> */}"
+      local linktargetname="${filename/* -> /}"
+      if [[ "$linktargetname" = "/tmp/install/INSTALL/usr/share/doc/lynx/COPYHEADER" ]] ; then
+        linktargetname="/usr/share/doc/lynx/COPYHEADER"
+      elif [[ "$linktargetname" = "/tmp/install/INSTALL/usr/share/doc/lynx/COPYING" ]] ; then
+        linktargetname="/usr/share/doc/lynx/COPYING"
+      elif [[ "$linktargetname" = "../Cygwin/stunnel-4.29.README" ]] ; then
+        linktargetname="../Cygwin/stunnel.README"
+      elif [[ "$linktargetname" = "../../CHANGELOG" ]] &&
+           [[ "$linkname" = "usr/X11R6/share/tcm-2.20/help/CHANGELOG" ]] ; then
+        linktargetname="../../doc/tcm-2.20/CHANGELOG"
+      elif [[ "$linktargetname" = "../../COPYING" ]] &&
+           [[ "$linkname" = "usr/X11R6/share/tcm-2.20/help/COPYING" ]] ; then
+        linktargetname="../../doc/tcm-2.20/COPYING"
+      elif [[ "$linktargetname" = "mf-nowin.1" ]] &&
+           [[ "$linkname" = "usr/share/man/mf.1" ]] ; then
+        linkname="usr/share/man/man1/mf.1"
+        linktargetname="../../../X11R6/share/man/man1/mf.1"
+      elif [[ "$linktargetname" = "../N/NCR260VT300WPP0" ]] ; then
+         linktargetname="../N/NCR260VT300WPP0"
+      elif [[ "$linkname" = "usr/share/terminfo/e/Eterm-color" ]] ; then
+        linkname="usr/share/terminfo/E/Eterm-color"
+      elif [[ "$linktargetname" = "../../include/qt3" ]] &&
+           [[ "$linkname" = "usr/lib/qt3/include" ]] ; then
+        linktargetname= "../../usr/include/qt4"
+      elif [[ "$linktargetname" = "../../include/qt4" ]] &&
+           [[ "$linkname" = "usr/lib/qt4/include" ]] ; then
+        linktargetname= "../../usr/include/qt4"
+      elif [[ "${linktargetname:0:2}" = "./" ]] ; then
+        linktargetname="${linktargetname:2}"
+      elif [[ "${linkname:0:8}" = "usr/bin/" ]] ; then
+        linkname="bin/${linkname:8}"
+      elif [[ "${linkname:0:8}" = "usr/lib/" ]] ; then
+        linkname="lib/${linkname:8}"
+      fi
+      if [[ "${linkname%/*}/$linktargetname" = *//* ]] ; then
+        linktargetname="/${linkname%/*}/$linktargetname"
+        while [[ "$linktargetname" != //* ]] ; do
+          linktargetname="${linktargetname%/*//*}//../${linktargetname#*//}"
+        done
+        linktargetname="${linktargetname:2}"
+      fi
+      local linktargetfile="/${linkname%/*}/$linktargetname"
+      while [[ "$linktargetfile" = */../* ]] ; do
+        local linktargetprefix="${linktargetfile%%/../*}"
+        local linktargetsuffix="${linktargetfile#*/../}"
+        linktargetfile="${linktargetprefix%/*}/$linktargetsuffix"
+      done
+      if [[ "${linktargetfile:0:9}" = "/usr/bin/" ]] ; then
+        linktargetfile="bin/${linktargetfile:9}"
+      elif [[ "${linktargetfile:0:9}" = "/usr/lib/" ]] ; then
+        linktargetfile="lib/${linktargetfile:9}"
+      else
+        linktargetfile="${linktargetfile:1}"
+      fi
+      linkname="${linkname//\//\\}"
+      linkname="${linkname//\$/\$\$}"
+      if [[ "${filetype[$linktargetfile]}" = "file" ]] ; then
+        linktargetname="${linktargetname//\//\\}"
+        linktargetname="${linktargetname//\$/\$\$}"
+        if [[ "${linkname:$((${#linkname}-4))}" = ".exe" ]] ||
+           [[ "${linktargetfile:$((${#linktargetfile}-4))}" != ".exe" ]] ; then
+          echo "  MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+        else
+          echo "  MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname.exe\" \"$linktargetname\""
+        fi
+      elif [[ "${filetype[$linktargetfile.exe]}" = "file" ]] ; then
+        linktargetname="${linktargetname//\//\\}"
+        linktargetname="${linktargetname//\$/\$\$}"
+        if [[ "${linkname:$((${#linkname}-4))}" = ".exe" ]] ; then
+          echo "  MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname.exe\""
+        else
+          echo "  MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname.exe\" \"$linktargetname.exe\""
+        fi
+      elif [[ "${filetype[$linktargetfile]}" = "directory" ]] ; then
+        linktargetname="${linktargetname//\//\\}"
+        linktargetname="${linktargetname//\$/\$\$}"
+        echo "  MkLink::SoftD \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+      elif [ -f packages.unpacked/*/"$linktargetfile" ] ; then
+        linktargetname="${linktargetname//\//\\}"
+        linktargetname="${linktargetname//\$/\$\$}"
+        if [[ "${linkname:$((${#linkname}-4))}" = ".exe" ]] ||
+           [[ "${linktargetfile:$((${#linktargetfile}-4))}" != ".exe" ]] ; then
+          echo "  MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+        else
+          echo "  MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname.exe\" \"$linktargetname\""
+        fi
+      elif [ -d packages.unpacked/*/"$linktargetfile" ] ; then
+        linktargetname="${linktargetname//\//\\}"
+        linktargetname="${linktargetname//\$/\$\$}"
+        echo "  MkLink::SoftD \"\$INSTDIR\\${prefix[$1]}$linkname\" \"$linktargetname\""
+      elif [[ "$linktargetname" = "../share/webcheck/webcheck.py" ]] ; then
+        echo "  MkLink::SoftF \"\$INSTDIR\\${prefix[$1]}$linkname\" \"..\\share\\webcheck\\webcheck.py\""
+      else
+        echo "Can not determine the type of link \"$linktargetname\"" >&2
+        exit 1
+      fi
+    done
+    echo "$pkgcontent" |
+    grep "^-.............................................. etc/postinstall/.*\\.sh" |
+    while read -r attrs uidgid size date time filename ; do
+      cat <<END
+  FileOpen \$R0 \$INSTDIR\\postinstall.sh a
+  FileSeek \$R0 0 END
+  FileWrite \$R0 "/$filename\$\n"
+  FileClose \$R0
+END
+      # If we have a postinstall script we need coreutils to execute it!
+      if ! [[ " ${requires[$pkgname]} " = *" coreutils "* ]] ; then
+        requires["$pkgname"]="${requires[$pkgname]} coreutils"
+      fi
+      if ! [[ " ${required[coreutils]} " = *" $pkgname "* ]] ; then
+        required["coreutils"]="${requires[coreutils]} $pkgname"
+      fi
+    done
+    cat <<END
+  Push \$R0
+  FileOpen \$R0 \$INSTDIR\\etc\\setup\\installed.log a
+  FileSeek \$R0 0 END
+  FileWrite \$R0 "$1 $pkgname 0\$\n"
+  FileClose \$R0
+  Pop \$R0
+END
+  fi
+}
+
+generate_section_list() {
+  if ((verbose)) ; then echo "Declaring unpack sections..." >&2 ; fi
+  local secname
+  for secname in "${!category_contents[@]}" ; do
+    echo "$secname"
+  done | sort |
+  while read -r secname ; do
+    local pkgname groupprint=1
+    for pkgname in ${category_contents["$secname"]} ; do
+      echo "$pkgname"
+    done | sort |
+    { local groupprint=1
+      while read -r pkgname ; do
+        if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+          if ((groupprint)) ; then
+            if [[ "$secname" != "_PostInstallLast" ]] &&
+               [[ "$secname" != "_obsolete" ]] ; then
+              echo "SectionGroup \"$secname\" sec_$secname"
+              groupprint=0
+            fi
+          fi
+          local insttar="${install[$pkgname]/.tar.bz2*/}"
+          if [[ "$secname" = "_PostInstallLast" ]] ||
+             [[ "$secname" = "_obsolete" ]] ; then
+            echo -n "Section \"-${insttar/*\//}\" "
+          elif [[ " ${seed[$pkgname]} " == *" $definsttype "* ]] ; then
+            echo -n "Section \"!${insttar/*\//}\" "
+          else
+            echo -n "Section \"${insttar/*\//}\" "
+          fi
+          echo      "sec_${secname}_${sanitized_name[$pkgname]}"
+          echo "  SectionIn${sectionin[$pkgname]}"
+          echo "SectionEnd"
+        fi
+      done
+      if ((!groupprint)) ; then
+        echo "SectionGroupEnd"
+      fi
+    }
+  done
+  for secname in "${allinstalledpackages[@]}" ; do
+    if ((verbose)) ; then echo "Package "$secname"..." >&2 ; fi
+    echo "Section \"\" sec_PKG_${sanitized_name[$secname]}"
+    echo "  SectionIn${sectionin[$secname]}"
+    generate_unpack_tarball_text "$secname"
+    echo "SectionEnd"
+  done
+  echo "!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN"
+  for secname in "${!category_contents[@]}" ; do
+    echo "$secname"
+  done | sort |
+  while read -r secname ; do
+    local pkgname
+    for pkgname in ${category_contents["$secname"]} ; do
+      echo "$pkgname"
+    done | sort |
+    { local groupprint=1
+      while read -r pkgname ; do
+        if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+          if ((groupprint)) ; then
+            if [[ "$secname" != "_PostInstallLast" ]] &&
+               [[ "$secname" != "_obsolete" ]] ; then
+              echo "  !insertmacro MUI_DESCRIPTION_TEXT \${sec_$secname} \"\""
+              groupprint=0
+            fi
+          fi
+          echo -n "  !insertmacro MUI_DESCRIPTION_TEXT \${"
+          echo -n "sec_${secname}_${sanitized_name[$pkgname]}} "
+          # Modern UI does not like long descriptions
+          #if [ "${sdesc[$pkgname]}" != "" ] ; then
+            #echo "${ldesc[$pkgname]}"
+          #else
+            echo  "${sdesc[$pkgname]}"
+          #fi
+        fi
+      done
+    }
+  done
+  echo "!insertmacro MUI_FUNCTION_DESCRIPTION_END"
+}
+
+generate_init_function() {
+  # $1 - Section number for first options (others should follow)
+  if ((verbose)) ; then echo "Declaring .onInit function..." >&2 ; fi
+  echo "Function .onInit"
+  if [[ "$defpackage" != "NONE" ]] ; then
+    echo "  StrCpy \$SVV_InstType $(($definsttype-1))"
+    echo "  StrCpy \$SVV_SelChangeInProgress 0"
+  fi
+  local pkgname
+  for pkgname in "${allinstalledpackages[@]}" ; do
+    if [[ " ${seed[$pkgname]} " == *" $definsttype "* ]] ; then
+      echo "  StrCpy \$PKV_${sanitized_name[$pkgname]} 9"
+    elif [[ " ${sectionin[$pkgname]} " == *" $definsttype "* ]] ; then
+      echo "  StrCpy \$PKV_${sanitized_name[$pkgname]} 1"
+    else
+      echo "  StrCpy \$PKV_${sanitized_name[$pkgname]} 0"
+    fi
+  done
+  local secname
+  for secname in "${!category_contents[@]}" ; do
+    echo "$secname"
+  done | sort |
+  while read -r secname ; do
+    local pkgname
+    for pkgname in ${category_contents["$secname"]} ; do
+      echo "$pkgname"
+    done | sort |
+    while read -r pkgname ; do
+      if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+        if [[ " ${sectionin[$pkgname]} " == *" $definsttype "* ]] ; then
+          echo "  StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 1"
+        else
+          echo "  StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 0"
+        fi
+      fi
+    done
+  done
+  if [[ "$defpackage" != "NONE" ]] ; then
+    if ((definsttype!=1)) ; then
+      echo "  SetCurInstType $((definsttype-1))"
+    fi
+  fi
+  cat <<END
+  \${GetParameters} \$SVV_CmdLineParameters
+  Push \$R0
+  ClearErrors
+  \${GetOptions} \$cmdLineParams "/?" \$R0
+  IfErrors +1 HelpMessage
+  \${GetOptions} \$cmdLineParams "--help" \$R0
+  IfErrors +3 +1
+HelpMessage:
+END
+  echo -n "  MessageBox MB_OK \"Recognized common options:"
+  echo -n "\$\\n  /D=InstDir - use InstDir as target instead of usual \$INSTDIR"
+  echo -n "\$\\n  /NCRC - disables the CRC check"
+  echo -n "\$\\n  /S - Silent install"
+  if [[ "$defpackage" != "NONE" ]] ; then
+    local insttype line
+    echo -n "\$\\nRecognized install type options:"
+    echo -n "\$\\n  /FULL - Install all availabile packages"
+    for insttype in "${!packages[@]}" ; do
+      echo "\$\\n  /`echo \"$insttype\" | tr 'a-z' 'A-Z'` - ${description[$insttype]}"
+    done | sort |
+    while IFS= read -r line ; do
+      printf "%s" "$line"
+    done
+    echo -n "\$\\n  /MINIMAL - Install only packages from \$\\\"Base\$\\\" category"
+  fi
+  echo "\""
+  echo "  Abort"
+  if [[ "$defpackage" != "NONE" ]] ; then
+    local sectionN="$(($1-1))"
+    local IFS=$'\n'
+    for insttype in `
+      echo "Full"
+      for insttype in "${!packages[@]}" ; do
+        echo $insttype
+      done | sort
+      echo "Minimal"
+    ` ; do
+      echo "  \${GetOptions} \$cmdLineParams \"/`echo \"$insttype\" | tr 'a-z' 'A-Z'`\" \$R0"
+      echo "  IfErrors No_$insttype +1"
+      echo "  StrCpy \$SVV_InstType $((sectionN-1))"
+      for pkgname in "${allinstalledpackages[@]}" ; do
+        if [[ " ${seed[$pkgname]} " == *" $sectionN "* ]] ; then
+          echo "  StrCpy \$PKV_${sanitized_name[$pkgname]} 9"
+        elif [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+          echo "  StrCpy \$PKV_${sanitized_name[$pkgname]} 1"
+        else
+          echo "  StrCpy \$PKV_${sanitized_name[$pkgname]} 0"
+        fi
+      done
+      for secname in "${!category_contents[@]}" ; do
+        echo "$secname"
+      done | sort |
+      while read -r secname ; do
+        local pkgname
+        for pkgname in ${category_contents["$secname"]} ; do
+          echo "$pkgname"
+        done | sort |
+        while read -r pkgname ; do
+          if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+            if [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+              echo "  StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 1"
+            else
+              echo "  StrCpy \$sv_${secname}_${sanitized_name[$pkgname]} 0"
+            fi
+          fi
+        done
+      done
+      for pkgname in "${allinstalledpackages[@]}" ; do
+        if [[ " ${seed[$pkgname]} " == *" $sectionN "* ]] ; then
+          echo "  SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} 9"
+        elif [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+          echo "  SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} 1"
+        else
+          echo "  SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} 0"
+        fi
+      done
+      for secname in "${!category_contents[@]}" ; do
+        echo "$secname"
+      done | sort |
+      while read -r secname ; do
+        local pkgname
+        for pkgname in ${category_contents["$secname"]} ; do
+          echo "$pkgname"
+        done | sort |
+        while read -r pkgname ; do
+          if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+            if [[ " ${seed[$pkgname]} " == *" $sectionN "* ]] ; then
+              echo "  SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} 9"
+            elif [[ " ${sectionin[$pkgname]} " == *" $sectionN "* ]] ; then
+              echo "  SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} 1"
+            else
+              echo "  SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} 0"
+            fi
+          fi
+        done
+      done
+      echo "  SetCurInstType $((sectionN-1))"
+      echo "No_$insttype:"
+      ((sectionN++))
+    done
+  fi
+  echo "  Pop \$R0"
+  echo "FunctionEnd"
+}
+
+generate_onselchange_function(){
+  if ((verbose)) ; then echo "Declaring .onSelChange function..." >&2 ; fi
+  cat <<END
+Function .onSelChange
+  IntCmp \$SVV_SelChangeInProgress 0 +1 L1_SelChangeInProgress L1_SelChangeInProgress
+  StrCpy \$SVV_SelChangeInProgress 1
+  Push \$R0
+  Push \$R1
+END
+  if [[ "$defpackage" != "NONE" ]] ; then
+    cat <<END
+  Push \$R2
+  GetCurInstType \$R0
+  StrCpy \$R2 0
+  IntCmp \$R0 \$SVV_InstType +4 +1 +1
+  StrCpy \$SVV_InstType \$R0
+  IntCmp \$R0 \${NSIS_MAX_INST_TYPES} +2 +1 +1
+  StrCpy \$R2 1
+END
+  fi
+  # sv_XXX/PKV_XXX variables contain information about previous state of affairs
+  # Note: there are three states - 0 (not to be installed), 9 (to be installed)
+  # and 1 (will be installed because some other package needs it).
+  # First we check is some packages were deselected and remove all packages
+  # which can not be installed now.
+  local secname pkgname subpkgname
+  for secname in "${!category_contents[@]}" ; do
+    echo "$secname"
+  done | sort |
+  while read -r secname ; do
+    local pkgname
+    for pkgname in ${category_contents["$secname"]} ; do
+      echo "$pkgname"
+    done | sort |
+    while read -r pkgname ; do
+      if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+        if ((verbose)) ; then echo "Read state: \"$pkgname\"..." >&2 ; fi
+        local PKV_name="PKV_${sanitized_name[$pkgname]}"
+        local sc_name="${secname}_${sanitized_name[$pkgname]}"
+        echo "  SectionGetFlags \${sec_$sc_name} \$R0"
+        echo "  IntOp \$R1 \$R0 & \${SF_SELECTED}"
+        if [[ "$defpackage" == "NONE" ]] ; then
+          echo "  IntCmp \$sv_$sc_name \$R1 L4_$sc_name"
+        else
+          echo "  IntCmp \$sv_$sc_name \$R1 L2_$sc_name"
+        fi
+        echo "  IntCmp \$sv_$sc_name 0 L1_$sc_name"
+        echo "  StrCpy \$$PKV_name 0"
+        for subpkgname in ${required["$pkgname"]} ; do
+          if [[ "${allinstpackages[$subpkgname]}" = "present" ]] ; then
+            echo "  IntCmp \$PKV_${sanitized_name[$subpkgname]} 9 +2 +1 +2"
+            echo "  StrCpy \$PKV_${sanitized_name[$subpkgname]} 0"
+          fi
+        done
+        echo "  Goto L4_$sc_name"
+        echo "L1_$sc_name:"
+        if [[ "$defpackage" != "NONE" ]] ; then
+          echo "  IntCmp \$R2 0 L3_$sc_name +1 +1"
+          echo "L2_$sc_name:"
+          for subpkgname in ${seed["$pkgname"]} ; do
+            echo "  IntCmp \$SVV_InstType $((subpkgname-1)) L3_$sc_name +1 +1"
+          done
+          echo "  GoTo L4_$sc_name"
+          echo "L3_$sc_name:"
+        fi
+        echo "  StrCpy \$$PKV_name 9"
+        echo "L4_$sc_name:"
+      fi
+    done
+  done
+  # Now we mark all packages which can be installed or not installed as
+  # not-installed
+  for pkgname in "${allinstalledpackages[@]}" ; do
+    echo "  IntCmp \$PKV_${sanitized_name[$pkgname]} 9 +2 +1 +2"
+    echo "  StrCpy \$PKV_${sanitized_name[$pkgname]} 0"
+  done
+  # Put the dependences back
+  for pkgname in "${allinstalledpackages[@]}" ; do
+    if ((verbose)) ; then echo "Set state: \"$pkgname\"..." >&2 ; fi
+    echo "  IntCmp \$PKV_${sanitized_name[$pkgname]} 9 +1 L5_${sanitized_name[$pkgname]} +1"
+    for subpkgname in ${requires["$pkgname"]} ; do
+      echo "  IntCmp \$PKV_${sanitized_name[$subpkgname]} 9 +2 +1 +2"
+      echo "  StrCpy \$PKV_${sanitized_name[$subpkgname]} 1"
+    done
+    echo "L5_${sanitized_name[$pkgname]}:"
+  done
+  # Copy the calculated new state to the screen
+  for pkgname in "${allinstalledpackages[@]}" ; do
+    echo "  SectionSetFlags \${sec_PKG_${sanitized_name[$pkgname]}} \$PKV_${sanitized_name[$pkgname]}"
+  done
+  for secname in "${!category_contents[@]}" ; do
+    echo "$secname"
+  done | sort |
+  while read -r secname ; do
+    local pkgname
+    for pkgname in ${category_contents["$secname"]} ; do
+      echo "$pkgname"
+    done | sort |
+    while read -r pkgname ; do
+      if [[ "${allinstpackages[$pkgname]}" = "present" ]] ; then
+        echo "  IntOp \$sv_${secname}_${sanitized_name[$pkgname]} \$PKV_${sanitized_name[$pkgname]} & 1"
+        echo "  SectionSetFlags \${sec_${secname}_${sanitized_name[$pkgname]}} \$PKV_${sanitized_name[$pkgname]}"
+      fi
+    done
+  done
+  if [[ "$defpackage" != "NONE" ]] ; then
+    echo "  Pop \$R2"
+  fi
+  cat <<END
+  Pop \$R1
+  Pop \$R0
+  StrCpy \$SVV_SelChangeInProgress 0
+L1_SelChangeInProgress:
+FunctionEnd
+END
+}
index 27b26fa..abb6459 100644 (file)
@@ -88,3 +88,7 @@ LOAD_FLAG(SUPPORT_ASYNC_REVALIDATION, 1 << 17)
 // Indicates that this request is not to be migrated to a new network when QUIC
 // connection migration is enabled.
 LOAD_FLAG(DISABLE_CONNECTION_MIGRATION, 1 << 18)
+
+// Indicates that the cache should not check that the request matches the
+// response's vary header.
+LOAD_FLAG(SKIP_VARY_CHECK, 1 << 19)
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/net/cert/cert_verify_proc_blacklist.inc b/vendor/brightray/vendor/libchromiumcontent/src/net/cert/cert_verify_proc_blacklist.inc
new file mode 100644 (file)
index 0000000..b2bb554
--- /dev/null
@@ -0,0 +1,154 @@
+// Copyright (c) 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// The certificate(s) that were misissued, and which represent these SPKIs,
+// are stored within net/data/ssl/blacklist. Further details about the
+// rationale is documented in net/data/ssl/blacklist/README.md
+static const size_t kNumBlacklistedSPKIs = 34u;
+static const uint8_t
+    kBlacklistedSPKIs[kNumBlacklistedSPKIs][crypto::kSHA256Length] = {
+        // ead610e6e90b439f2ecb51628b0932620f6ef340bd843fca38d3181b8f4ba197.pem
+        {0x12, 0x13, 0x23, 0x60, 0xa3, 0x3b, 0xfd, 0xc6, 0xc3, 0xbf, 0x7b,
+         0x7f, 0xab, 0x26, 0xa1, 0x68, 0x48, 0x74, 0xe7, 0x2c, 0x12, 0x63,
+         0xc1, 0xf5, 0xde, 0x56, 0x5b, 0xb4, 0x9e, 0xf0, 0x37, 0x53},
+        // 4bf6bb839b03b72839329b4ea70bb1b2f0d07e014d9d24aa9cc596114702bee3.pem
+        {0x12, 0x7d, 0xa2, 0x7a, 0x9e, 0x45, 0xf0, 0x82, 0x28, 0x0b, 0x31,
+         0xbf, 0x1e, 0x56, 0x15, 0x20, 0x38, 0x9f, 0x96, 0x65, 0x90, 0x93,
+         0xb2, 0x69, 0x7c, 0x40, 0xfe, 0x86, 0x00, 0x23, 0x6c, 0x8c},
+        // 0f912fd7be760be25afbc56bdc09cd9e5dcc9c6f6a55a778aefcb6aa30e31554.pem
+        {0x13, 0x0a, 0xd4, 0xe0, 0x63, 0x35, 0x21, 0x29, 0x05, 0x31, 0xb6,
+         0x65, 0x1f, 0x57, 0x59, 0xb0, 0xbc, 0x7b, 0xc6, 0x56, 0x70, 0x9f,
+         0xf8, 0xf3, 0x65, 0xc2, 0x14, 0x3b, 0x03, 0x89, 0xb6, 0xf6},
+        // 1af56c98ff043ef92bebff54cebb4dd67a25ba956c817f3e6dd3c1e52eb584c1.key
+        {0x1a, 0xf5, 0x6c, 0x98, 0xff, 0x04, 0x3e, 0xf9, 0x2b, 0xeb, 0xff,
+         0x54, 0xce, 0xbb, 0x4d, 0xd6, 0x7a, 0x25, 0xba, 0x95, 0x6c, 0x81,
+         0x7f, 0x3e, 0x6d, 0xd3, 0xc1, 0xe5, 0x2e, 0xb5, 0x84, 0xc1},
+        // 2c998e761160c3b06d82faa9fdc7545d9bda9eb60310f992aa510a6280b74245.pem
+        {0x2c, 0x99, 0x8e, 0x76, 0x11, 0x60, 0xc3, 0xb0, 0x6d, 0x82, 0xfa,
+         0xa9, 0xfd, 0xc7, 0x54, 0x5d, 0x9b, 0xda, 0x9e, 0xb6, 0x03, 0x10,
+         0xf9, 0x92, 0xaa, 0x51, 0x0a, 0x62, 0x80, 0xb7, 0x42, 0x45},
+        // 32ecc96f912f96d889e73088cd031c7ded2c651c805016157a23b6f32f798a3b.key
+        {0x32, 0xec, 0xc9, 0x6f, 0x91, 0x2f, 0x96, 0xd8, 0x89, 0xe7, 0x30,
+         0x88, 0xcd, 0x03, 0x1c, 0x7d, 0xed, 0x2c, 0x65, 0x1c, 0x80, 0x50,
+         0x16, 0x15, 0x7a, 0x23, 0xb6, 0xf3, 0x2f, 0x79, 0x8a, 0x3b},
+        // 42187727be39faf667aeb92bf0cc4e268f6e2ead2cefbec575bdc90430024f69.pem
+        {0x3e, 0xdb, 0xd9, 0xac, 0xe6, 0x39, 0xba, 0x1a, 0x2d, 0x4a, 0xd0,
+         0x47, 0x18, 0x71, 0x1f, 0xda, 0x23, 0xe8, 0x59, 0xb2, 0xfb, 0xf5,
+         0xd1, 0x37, 0xd4, 0x24, 0x04, 0x5e, 0x79, 0x19, 0xdf, 0xb9},
+        // 294f55ef3bd7244c6ff8a68ab797e9186ec27582751a791515e3292e48372d61.pem
+        {0x45, 0x5b, 0x87, 0xe9, 0x6f, 0x1c, 0xea, 0x2f, 0x8b, 0x6d, 0xae,
+         0x08, 0x08, 0xec, 0x24, 0x73, 0x8f, 0xd9, 0x2b, 0x7f, 0xd3, 0x06,
+         0x75, 0x71, 0x98, 0xbf, 0x38, 0x9d, 0x75, 0x5c, 0x0b, 0x6c},
+        // 7abd72a323c9d179c722564f4e27a51dd4afd24006b38a40ce918b94960bcf18.pem
+        {0x57, 0x80, 0x94, 0x46, 0xea, 0xf1, 0x14, 0x84, 0x38, 0x54, 0xfe,
+         0x63, 0x6e, 0xd9, 0xbc, 0xb5, 0x52, 0xe3, 0xc6, 0x16, 0x66, 0x3b,
+         0xc4, 0x4c, 0xc9, 0x5a, 0xcf, 0x56, 0x50, 0x01, 0x6d, 0x3e},
+        // 817d4e05063d5942869c47d8504dc56a5208f7569c3d6d67f3457cfe921b3e29.pem
+        {0x5c, 0x72, 0x2c, 0xb7, 0x0f, 0xb3, 0x11, 0xf2, 0x1e, 0x0d, 0xa0,
+         0xe7, 0xd1, 0x2e, 0xbc, 0x8e, 0x05, 0xf6, 0x07, 0x96, 0xbc, 0x49,
+         0xcf, 0x51, 0x18, 0x49, 0xd5, 0xbc, 0x62, 0x03, 0x03, 0x82},
+        // 79f69a47cfd6c4b4ceae8030d04b49f6171d3b5d6c812f58d040e586f1cb3f14.pem
+        // 933f7d8cda9f0d7c8bfd3c22bf4653f4161fd38ccdcf66b22e95a2f49c2650f8.pem
+        // f8a5ff189fedbfe34e21103389a68340174439ad12974a4e8d4d784d1f3a0faa.pem
+        {0x5e, 0x53, 0xf2, 0x64, 0x67, 0xf8, 0x94, 0xfd, 0xe5, 0x3b, 0x3f,
+         0xa4, 0x06, 0xa4, 0x40, 0xcb, 0xb3, 0xb0, 0x76, 0xbb, 0x5b, 0x75,
+         0x8f, 0xe4, 0x83, 0x4a, 0xd6, 0x65, 0x00, 0x20, 0x89, 0x07},
+        // f4a5984324de98bd979ef181a100cf940f2166173319a86a0d9d7c8fac3b0a8f.pem
+        {0x71, 0x65, 0xe9, 0x91, 0xad, 0xe7, 0x91, 0x6d, 0x86, 0xb4, 0x66,
+         0xab, 0xeb, 0xb6, 0xe4, 0x57, 0xca, 0x93, 0x1c, 0x80, 0x4e, 0x58,
+         0xce, 0x1f, 0xba, 0xba, 0xe5, 0x09, 0x15, 0x6f, 0xfb, 0x43},
+        // f3bae5e9c0adbfbfb6dbf7e04e74be6ead3ca98a5604ffe591cea86c241848ec.pem
+        {0x7d, 0x5e, 0x3f, 0x50, 0x50, 0x81, 0x97, 0xb9, 0xa4, 0x78, 0xb1,
+         0x13, 0x40, 0xb7, 0xdc, 0xe2, 0x0a, 0x3c, 0x4d, 0xe4, 0x9c, 0x48,
+         0xc9, 0xa2, 0x94, 0x15, 0x8a, 0x89, 0x5c, 0x44, 0xa2, 0x1b},
+        // b8686723e415534bc0dbd16326f9486f85b0b0799bf6639334e61daae67f36cd.pem
+        {0x7e, 0x70, 0x58, 0xea, 0x35, 0xad, 0x43, 0x59, 0x65, 0x41, 0x59,
+         0x97, 0x3f, 0x56, 0x01, 0x87, 0xf1, 0x6d, 0x19, 0xc5, 0x14, 0xb9,
+         0x39, 0xc5, 0x05, 0x56, 0x72, 0xd1, 0xd2, 0xa5, 0x18, 0xac},
+        // 450f1b421bb05c8609854884559c323319619e8b06b001ea2dcbb74a23aa3be2.pem
+        {0x93, 0xca, 0x2d, 0x43, 0x6c, 0xae, 0x7f, 0x68, 0xd2, 0xb4, 0x25,
+         0x6c, 0xa1, 0x75, 0xc9, 0x85, 0xce, 0x39, 0x92, 0x6d, 0xc9, 0xf7,
+         0xee, 0xae, 0xec, 0xf2, 0xf8, 0x97, 0x0f, 0xb9, 0x78, 0x02},
+        // 1f17f2cbb109f01c885c94d9e74a48625ae9659665d6d7e7bc5a10332976370f.pem
+        {0x99, 0xba, 0x47, 0x84, 0xf9, 0xb0, 0x85, 0x12, 0x90, 0x2e, 0xb0,
+         0xc3, 0xc8, 0x6d, 0xf0, 0xec, 0x04, 0x9e, 0xac, 0x9b, 0x65, 0xf7,
+         0x7a, 0x9b, 0xa4, 0x2b, 0xe9, 0xd6, 0xeb, 0xce, 0x32, 0x0f},
+        // a8e1dfd9cd8e470aa2f443914f931cfd61c323e94d75827affee985241c35ce5.pem
+        {0x9b, 0x8a, 0x93, 0xde, 0xcc, 0xcf, 0xba, 0xfc, 0xf4, 0xd0, 0x4d,
+         0x34, 0x42, 0x12, 0x8f, 0xb3, 0x52, 0x18, 0xcf, 0xe4, 0x37, 0xa3,
+         0xd8, 0xd0, 0x32, 0x8c, 0x99, 0xf8, 0x90, 0x89, 0xe4, 0x50},
+        // 0d136e439f0ab6e97f3a02a540da9f0641aa554e1d66ea51ae2920d51b2f7217.pem
+        // 4fee0163686ecbd65db968e7494f55d84b25486d438e9de558d629d28cd4d176.pem
+        // 8a1bd21661c60015065212cc98b1abb50dfd14c872a208e66bae890f25c448af.pem
+        {0xa9, 0x03, 0xaf, 0x8c, 0x07, 0xbb, 0x91, 0xb0, 0xd9, 0xe3, 0xf3,
+         0xa3, 0x0c, 0x6d, 0x53, 0x33, 0x9f, 0xc5, 0xbd, 0x47, 0xe5, 0xd6,
+         0xbd, 0xb4, 0x76, 0x59, 0x88, 0x60, 0xc0, 0x68, 0xa0, 0x24},
+        // b8c1b957c077ea76e00b0f45bff5ae3acb696f221d2e062164fe37125e5a8d25.pem
+        {0xb3, 0x18, 0x2e, 0x28, 0x9a, 0xe3, 0x4d, 0xdf, 0x2b, 0xe6, 0x43,
+         0xab, 0x79, 0xc2, 0x44, 0x30, 0x16, 0x05, 0xfa, 0x0f, 0x1e, 0xaa,
+         0xe6, 0xd1, 0x0f, 0xb9, 0x29, 0x60, 0x0a, 0xf8, 0x4d, 0xf0},
+        // be144b56fb1163c49c9a0e6b5a458df6b29f7e6449985960c178a4744624b7bc.pem
+        {0xb4, 0xd5, 0xc9, 0x20, 0x41, 0x5e, 0xd0, 0xcc, 0x4f, 0x5d, 0xbc,
+         0x7f, 0x54, 0x26, 0x36, 0x76, 0x2e, 0x80, 0xda, 0x66, 0x25, 0xf3,
+         0x3f, 0x2b, 0x6a, 0xd6, 0xdb, 0x68, 0xbd, 0xba, 0xb2, 0x9a},
+        // 372447c43185c38edd2ce0e9c853f9ac1576ddd1704c2f54d96076c089cb4227.pem
+        {0xc1, 0x73, 0xf0, 0x62, 0x64, 0x56, 0xca, 0x85, 0x4f, 0xf2, 0xa7,
+         0xf0, 0xb1, 0x33, 0xa7, 0xcf, 0x4d, 0x02, 0x11, 0xe5, 0x52, 0xf2,
+         0x4b, 0x3e, 0x33, 0xad, 0xe8, 0xc5, 0x9f, 0x0a, 0x42, 0x4c},
+        // c4387d45364a313fbfe79812b35b815d42852ab03b06f11589638021c8f2cb44.key
+        {0xc4, 0x38, 0x7d, 0x45, 0x36, 0x4a, 0x31, 0x3f, 0xbf, 0xe7, 0x98,
+         0x12, 0xb3, 0x5b, 0x81, 0x5d, 0x42, 0x85, 0x2a, 0xb0, 0x3b, 0x06,
+         0xf1, 0x15, 0x89, 0x63, 0x80, 0x21, 0xc8, 0xf2, 0xcb, 0x44},
+        // 8290cc3fc1c3aac3239782c141ace8f88aeef4e9576a43d01867cf19d025be66.pem
+        // 9532e8b504964331c271f3f5f10070131a08bf8ba438978ce394c34feeae246f.pem
+        {0xc6, 0x01, 0x23, 0x4e, 0x2b, 0x93, 0x25, 0xdc, 0x92, 0xe3, 0xea,
+         0xba, 0xc1, 0x96, 0x00, 0xb0, 0xb4, 0x99, 0x47, 0xd4, 0xd0, 0x4d,
+         0x8c, 0x99, 0xd3, 0x21, 0x27, 0x49, 0x3e, 0xa0, 0x28, 0xf8},
+        // ec30c9c3065a06bb07dc5b1c6b497f370c1ca65c0f30c08e042ba6bcecc78f2c.pem
+        {0xcd, 0xee, 0x9f, 0x33, 0x05, 0x57, 0x2a, 0x67, 0x7e, 0x1a, 0x6c,
+         0x82, 0xdc, 0x1e, 0x02, 0xa3, 0x5b, 0x11, 0xca, 0xe6, 0xa6, 0x84,
+         0x33, 0x8c, 0x9f, 0x37, 0xfe, 0x1a, 0xc8, 0xda, 0xec, 0x23},
+        // 9ed8f9b0e8e42a1656b8e1dd18f42ba42dc06fe52686173ba2fc70e756f207dc.pem
+        // a686fee577c88ab664d0787ecdfff035f4806f3de418dc9e4d516324fff02083.pem
+        // fdedb5bdfcb67411513a61aee5cb5b5d7c52af06028efc996cc1b05b1d6cea2b.pem
+        {0xd3, 0x4b, 0x25, 0x5b, 0x2f, 0xe7, 0xd1, 0xa0, 0x96, 0x56, 0xcb,
+         0xab, 0x64, 0x09, 0xf7, 0x3c, 0x79, 0x6e, 0xc7, 0xd6, 0x6a, 0xf7,
+         0x36, 0x53, 0xec, 0xc3, 0x9a, 0xf9, 0x78, 0x29, 0x73, 0x10},
+        // 3946901f46b0071e90d78279e82fababca177231a704be72c5b0e8918566ea66.pem
+        {0xdd, 0x3e, 0xeb, 0x77, 0x9b, 0xee, 0x07, 0xf9, 0xef, 0xda, 0xc3,
+         0x82, 0x40, 0x8b, 0x28, 0xd1, 0x42, 0xfa, 0x84, 0x2c, 0x78, 0xe8,
+         0xbc, 0x0e, 0x33, 0x34, 0x8d, 0x57, 0xb9, 0x2f, 0x05, 0x83},
+        // c67d722c1495be02cbf9ef1159f5ca4aa782dc832dc6aa60c9aa076a0ad1e69d.pem
+        {0xde, 0x8f, 0x05, 0x07, 0x4e, 0xc0, 0x31, 0x8e, 0x7e, 0x7e, 0x8d,
+         0x31, 0x90, 0xda, 0xe8, 0xb0, 0x08, 0x94, 0xf0, 0xe8, 0xdd, 0xdf,
+         0xd3, 0x91, 0x3d, 0x01, 0x75, 0x9b, 0x4f, 0x79, 0xb0, 0x5d},
+        // e4f9a3235df7330255f36412bc849fb630f8519961ec3538301deb896c953da5.pem
+        {0xe6, 0xe1, 0x36, 0xc8, 0x61, 0x54, 0xf3, 0x2c, 0x3e, 0x49, 0xf4,
+         0x7c, 0xfc, 0x6b, 0x33, 0x8f, 0xf2, 0xdc, 0x61, 0xce, 0x14, 0xfc,
+         0x75, 0x89, 0xb3, 0xb5, 0x6a, 0x14, 0x50, 0x13, 0x27, 0x01},
+        // 3e26492e20b52de79e15766e6cb4251a1d566b0dbfb225aa7d08dda1dcebbf0a.pem
+        {0xe7, 0xb9, 0x32, 0xae, 0x7e, 0x9b, 0xdc, 0x70, 0x1d, 0x77, 0x1d,
+         0x6f, 0x39, 0xe8, 0xa6, 0x53, 0x44, 0x9e, 0xea, 0x43, 0xbd, 0xb4,
+         0x7b, 0xd9, 0x10, 0x22, 0x95, 0x0d, 0x91, 0x79, 0xd8, 0x7e},
+        // ea08c8d45d52ca593de524f0513ca6418da9859f7b08ef13ff9dd7bf612d6a37.key
+        {0xea, 0x08, 0xc8, 0xd4, 0x5d, 0x52, 0xca, 0x59, 0x3d, 0xe5, 0x24,
+         0xf0, 0x51, 0x3c, 0xa6, 0x41, 0x8d, 0xa9, 0x85, 0x9f, 0x7b, 0x08,
+         0xef, 0x13, 0xff, 0x9d, 0xd7, 0xbf, 0x61, 0x2d, 0x6a, 0x37},
+        // 31c8fd37db9b56e708b03d1f01848b068c6da66f36fb5d82c008c6040fa3e133.pem
+        {0xf0, 0x34, 0xf6, 0x42, 0xca, 0x1d, 0x9e, 0x88, 0xe9, 0xef, 0xea,
+         0xfc, 0xb1, 0x5c, 0x7c, 0x93, 0x7a, 0xa1, 0x9e, 0x04, 0xb0, 0x80,
+         0xf2, 0x73, 0x35, 0xe1, 0xda, 0x70, 0xd1, 0xca, 0x12, 0x01},
+        // 83618f932d6947744d5ecca299d4b2820c01483947bd16be814e683f7436be24.pem
+        {0xf2, 0xbb, 0xe0, 0x4c, 0x5d, 0xc7, 0x0d, 0x76, 0x3e, 0x89, 0xc5,
+         0xa0, 0x52, 0x70, 0x48, 0xcd, 0x9e, 0xcd, 0x39, 0xeb, 0x62, 0x1e,
+         0x20, 0x72, 0xff, 0x9a, 0x5f, 0x84, 0x32, 0x57, 0x1a, 0xa0},
+        // 2a3699deca1e9fd099ba45de8489e205977c9f2a5e29d5dd747381eec0744d71.pem
+        {0xf3, 0x0e, 0x8f, 0x61, 0x01, 0x1d, 0x65, 0x87, 0x3c, 0xcb, 0x81,
+         0xb4, 0x0f, 0xa6, 0x21, 0x97, 0x49, 0xb9, 0x94, 0xf0, 0x1f, 0xa2,
+         0x4d, 0x02, 0x01, 0xd5, 0x21, 0xc2, 0x43, 0x56, 0x03, 0xca},
+        // 67ed4b703d15dc555f8c444b3a05a32579cb7599bd19c9babe10c584ea327ae0.pem
+        {0xfa, 0x00, 0xbe, 0xc7, 0x3d, 0xd9, 0x97, 0x95, 0xdf, 0x11, 0x62,
+         0xc7, 0x89, 0x98, 0x70, 0x04, 0xc2, 0x6c, 0xbf, 0x90, 0xaf, 0x4d,
+         0xb4, 0x42, 0xf6, 0x62, 0x20, 0xde, 0x41, 0x35, 0x4a, 0xc9},
+};
index 8dea3d3..aef24b9 100644 (file)
@@ -62,6 +62,10 @@ class NET_EXPORT CookieMonster : public CookieStore {
  public:
   class PersistentCookieStore;
 
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+  typedef void (*Ewk_Cookie_Manager_Changes_Watch_Cb)(void* event_info);
+#endif
+
   // Terminology:
   //    * The 'top level domain' (TLD) of an internet domain name is
   //      the terminal "." free substring (e.g. "com" for google.com
@@ -216,6 +220,12 @@ class NET_EXPORT CookieMonster : public CookieStore {
       const std::string& name,
       const CookieChangedCallback& callback) override;
 
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+  void RegisterCookiesChangedCallback(
+      Ewk_Cookie_Manager_Changes_Watch_Cb callback,
+      void* data);
+#endif
+
   bool IsEphemeral() override;
 
  private:
@@ -714,6 +724,11 @@ class NET_EXPORT CookieMonster : public CookieStore {
 
   base::Time last_statistic_record_time_;
 
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+  Ewk_Cookie_Manager_Changes_Watch_Cb cookies_changed_callback_;
+  void* cookies_changed_callback_data_;
+#endif
+
   bool persist_session_cookies_;
 
   using CookieChangedHookMap =
index 770071f..d3b80d0 100644 (file)
@@ -212,7 +212,8 @@ class HttpStreamFactoryImpl::JobController
 
   void MaybeNotifyFactoryOfCompletion();
 
-  // Called to resume the main job with delay.
+  // Called to resume the main job with delay. Main job is resumed only when
+  // |alternative_job_| has failed or |main_job_wait_time_| elapsed.
   void MaybeResumeMainJob(Job* job, const base::TimeDelta& delay);
 
   void ResumeMainJob();
@@ -250,6 +251,9 @@ class HttpStreamFactoryImpl::JobController
   // Starts the |alternative_job_|.
   void StartAlternativeProxyServerJob();
 
+  // Returns whether |job| is an orphaned job.
+  bool IsJobOrphaned(Job* job) const;
+
   HttpStreamFactoryImpl* factory_;
   HttpNetworkSession* session_;
   JobFactory* job_factory_;
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/net/http/transport_security_state_ct_policies.inc b/vendor/brightray/vendor/libchromiumcontent/src/net/http/transport_security_state_ct_policies.inc
new file mode 100644 (file)
index 0000000..60d8dfb
--- /dev/null
@@ -0,0 +1,248 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file contains a set of root CAs which are required to disclose
+// all certificates via Certificate Transparency, as well as exceptions
+// for independent and disclosed sub-CAs.
+//
+// It is meant to be directly included in transport_security_state.cc
+// within an unnamed namespace.
+
+struct CTRequiredPolicy {
+  // A certificate MUST be disclosed via Certificate Transparency if it
+  // chains to or through one of the values contained in |roots|, which
+  // contains the SHA-256 hash of the issuing CA's SubjectPublicKeyInfo,
+  // the same format as HTTP Public Key Pinning.
+  const SHA256HashValue* roots;
+
+  // The number of entries in |roots|.
+  size_t roots_length;
+
+  // The date at which enforcement should begin, relative to the Unix
+  // Epoch.
+  base::TimeDelta effective_date;
+
+  // However, if a certificate ALSO chains to or through one of
+  // |exceptions|, which also contains the SHA-256 hashes of the
+  // issuing CA's SubjectPublicKeyInfo, then even though it chained
+  // through |roots|, it will be exempt from CT requirements.
+  const SHA256HashValue* exceptions;
+
+  // The number of entries in |exceptions|.
+  size_t exceptions_length;
+};
+
+// See net/data/ssl/symantec/README.md
+const SHA256HashValue kSymantecRoots[] = {
+    {{0x02, 0x3c, 0x81, 0xcc, 0xe8, 0xe7, 0xc6, 0x4f, 0xa9, 0x42, 0xd3,
+      0xc1, 0x50, 0x48, 0x70, 0x7d, 0x35, 0xd9, 0xbb, 0x5b, 0x87, 0xf4,
+      0xf5, 0x44, 0xc5, 0xbf, 0x1b, 0xc5, 0x64, 0x3a, 0xf2, 0xfa}},
+    {{0x09, 0x99, 0xbf, 0x90, 0x0b, 0xd5, 0xc2, 0x97, 0x86, 0x5e, 0x21,
+      0xe1, 0xaa, 0xde, 0x6c, 0xf6, 0xbb, 0x3a, 0x94, 0xd1, 0x1a, 0xe5,
+      0xea, 0x79, 0x84, 0x42, 0xa4, 0xe2, 0xf8, 0x13, 0x24, 0x1f}},
+    {{0x0b, 0xdd, 0x5a, 0xbe, 0x94, 0x0c, 0xaa, 0xab, 0xe8, 0xb2, 0xbb,
+      0xa8, 0x83, 0x48, 0xfb, 0x6f, 0x4a, 0xa4, 0xcc, 0x84, 0x43, 0x6f,
+      0x88, 0x0b, 0xec, 0xe6, 0x6b, 0x48, 0xbd, 0xa9, 0x13, 0xd8}},
+    {{0x16, 0xa9, 0xe0, 0x12, 0xd3, 0x23, 0x29, 0xf2, 0x82, 0xb1, 0x0b,
+      0xbf, 0x57, 0xc7, 0xc0, 0xb4, 0x2a, 0xe8, 0x0f, 0x6a, 0xc9, 0x54,
+      0x2e, 0xb4, 0x09, 0xbc, 0x1c, 0x2c, 0xde, 0x50, 0xd3, 0x22}},
+    {{0x17, 0x75, 0x5a, 0x5c, 0x29, 0x5f, 0x3d, 0x2d, 0x72, 0xe6, 0xf0,
+      0x31, 0xa1, 0xf0, 0x7f, 0x40, 0x0c, 0x58, 0x8b, 0x9e, 0x58, 0x2b,
+      0x22, 0xf1, 0x7e, 0xae, 0x31, 0xa1, 0x59, 0x0d, 0x11, 0x85}},
+    {{0x19, 0x06, 0xc6, 0x12, 0x4d, 0xbb, 0x43, 0x85, 0x78, 0xd0, 0x0e,
+      0x06, 0x6d, 0x50, 0x54, 0xc6, 0xc3, 0x7f, 0x0f, 0xa6, 0x02, 0x8c,
+      0x05, 0x54, 0x5e, 0x09, 0x94, 0xed, 0xda, 0xec, 0x86, 0x29}},
+    {{0x19, 0x16, 0xf3, 0x50, 0x8e, 0xc3, 0xfa, 0xd7, 0x95, 0xf8, 0xdc,
+      0x4b, 0xd3, 0x16, 0xf9, 0xc6, 0x08, 0x5a, 0x64, 0xde, 0x3c, 0x41,
+      0x53, 0xac, 0x6d, 0x62, 0xd5, 0xea, 0x19, 0x51, 0x5d, 0x39}},
+    {{0x1d, 0x75, 0xd0, 0x83, 0x1b, 0x9e, 0x08, 0x85, 0x39, 0x4d, 0x32,
+      0xc7, 0xa1, 0xbf, 0xdb, 0x3d, 0xbc, 0x1c, 0x28, 0xe2, 0xb0, 0xe8,
+      0x39, 0x1f, 0xb1, 0x35, 0x98, 0x1d, 0xbc, 0x5b, 0xa9, 0x36}},
+    {{0x22, 0x07, 0x6e, 0x5a, 0xef, 0x44, 0xbb, 0x9a, 0x41, 0x6a, 0x28,
+      0xb7, 0xd1, 0xc4, 0x43, 0x22, 0xd7, 0x05, 0x9f, 0x60, 0xfe, 0xff,
+      0xa5, 0xca, 0xf6, 0xc5, 0xbe, 0x84, 0x47, 0x89, 0x13, 0x03}},
+    {{0x25, 0xb4, 0x1b, 0x50, 0x6e, 0x49, 0x30, 0x95, 0x28, 0x23, 0xa6,
+      0xeb, 0x9f, 0x1d, 0x31, 0xde, 0xf6, 0x45, 0xea, 0x38, 0xa5, 0xc6,
+      0xc6, 0xa9, 0x6d, 0x71, 0x95, 0x7e, 0x38, 0x4d, 0xf0, 0x58}},
+    {{0x26, 0xc1, 0x8d, 0xc6, 0xee, 0xa6, 0xf6, 0x32, 0xf6, 0x76, 0xbc,
+      0xeb, 0xa1, 0xd8, 0xc2, 0xb4, 0x83, 0x52, 0xf2, 0x9c, 0x2d, 0x5f,
+      0xcd, 0xa8, 0x78, 0xe0, 0x9d, 0xcb, 0x83, 0x2d, 0xd6, 0xe5}},
+    {{0x2d, 0xc9, 0x47, 0x0b, 0xe6, 0x3e, 0xf4, 0xac, 0xf1, 0xbd, 0x82,
+      0x86, 0x09, 0x40, 0x2b, 0xb7, 0xb8, 0x7b, 0xd9, 0x96, 0x38, 0xa6,
+      0x43, 0x93, 0x4e, 0x88, 0x68, 0x2d, 0x1b, 0xe8, 0xc3, 0x08}},
+    {{0x2d, 0xee, 0x51, 0x71, 0x59, 0x6a, 0xb8, 0xf3, 0xcd, 0x3c, 0x76,
+      0x35, 0xfe, 0xa8, 0xe6, 0xc3, 0x00, 0x6a, 0xa9, 0xe3, 0x1d, 0xb3,
+      0x9d, 0x03, 0xa7, 0x48, 0x0d, 0xdb, 0x24, 0x28, 0xa3, 0x3e}},
+    {{0x30, 0x27, 0xa2, 0x98, 0xfa, 0x57, 0x31, 0x4d, 0xc0, 0xe3, 0xdd,
+      0x10, 0x19, 0x41, 0x1b, 0x8f, 0x40, 0x4c, 0x43, 0xc3, 0xf9, 0x34,
+      0xce, 0x3b, 0xdf, 0x85, 0x65, 0x12, 0xc8, 0x0a, 0xa1, 0x5c}},
+    {{0x31, 0x51, 0x26, 0x80, 0x23, 0x3f, 0x5f, 0x2a, 0x1f, 0x29, 0x43,
+      0x7f, 0x56, 0xd4, 0x98, 0x8c, 0xf0, 0xaf, 0xc4, 0x1c, 0xc6, 0xc5,
+      0xda, 0x62, 0x75, 0x92, 0x8e, 0x9c, 0x0b, 0xea, 0xde, 0x27}},
+    {{0x43, 0xb3, 0x10, 0x7d, 0x73, 0x42, 0x16, 0x5d, 0x40, 0x6c, 0xf9,
+      0x75, 0xcd, 0x79, 0xb3, 0x6e, 0xd1, 0x64, 0x50, 0x48, 0xf0, 0x5d,
+      0x7f, 0xf6, 0xea, 0x00, 0x96, 0xe4, 0x27, 0xb7, 0xdb, 0x84}},
+    {{0x46, 0x3d, 0xbb, 0x9b, 0x0a, 0x26, 0xed, 0x26, 0x16, 0x39, 0x7b,
+      0x64, 0x31, 0x25, 0xfb, 0xd2, 0x9b, 0x66, 0xcf, 0x3a, 0x46, 0xfd,
+      0xb4, 0x38, 0x4b, 0x20, 0x9e, 0x78, 0x23, 0x7a, 0x1a, 0xff}},
+    {{0x47, 0x9d, 0x13, 0x0b, 0xf3, 0xfc, 0x61, 0xdc, 0x2f, 0x1d, 0x50,
+      0x8d, 0x23, 0x9a, 0x13, 0x27, 0x6a, 0xe7, 0xb3, 0xc9, 0x84, 0x10,
+      0x11, 0xa0, 0x2c, 0x14, 0x02, 0xc7, 0xe6, 0x77, 0xbd, 0x5f}},
+    {{0x49, 0x05, 0x46, 0x66, 0x23, 0xab, 0x41, 0x78, 0xbe, 0x92, 0xac,
+      0x5c, 0xbd, 0x65, 0x84, 0xf7, 0xa1, 0xe1, 0x7f, 0x27, 0x65, 0x2d,
+      0x5a, 0x85, 0xaf, 0x89, 0x50, 0x4e, 0xa2, 0x39, 0xaa, 0xaa}},
+    {{0x49, 0x5a, 0x96, 0xba, 0x6b, 0xad, 0x78, 0x24, 0x07, 0xbd, 0x52,
+      0x1a, 0x00, 0xba, 0xce, 0x65, 0x7b, 0xb3, 0x55, 0x55, 0x5e, 0x4b,
+      0xb7, 0xf8, 0x14, 0x6c, 0x71, 0xbb, 0xa5, 0x7e, 0x7a, 0xce}},
+    {{0x4b, 0xa6, 0x03, 0x1c, 0xa3, 0x05, 0xb0, 0x9e, 0x53, 0xbd, 0xe3,
+      0x70, 0x51, 0x45, 0x48, 0x1d, 0x03, 0x32, 0xb6, 0x51, 0xfe, 0x30,
+      0x37, 0x0d, 0xd5, 0x25, 0x4c, 0xc4, 0xd2, 0xcb, 0x32, 0xf3}},
+    {{0x51, 0x92, 0x43, 0x8e, 0xc3, 0x69, 0xd7, 0xee, 0x0c, 0xe7, 0x1f,
+      0x5c, 0x6d, 0xb7, 0x5f, 0x94, 0x1e, 0xfb, 0xf7, 0x2e, 0x58, 0x44,
+      0x17, 0x15, 0xe9, 0x9e, 0xab, 0x04, 0xc2, 0xc8, 0xac, 0xee}},
+    {{0x56, 0x7b, 0x82, 0x11, 0xfd, 0x20, 0xd3, 0xd2, 0x83, 0xee, 0x0c,
+      0xd7, 0xce, 0x06, 0x72, 0xcb, 0x9d, 0x99, 0xbc, 0x5b, 0x48, 0x7a,
+      0x58, 0xc9, 0xd5, 0x4e, 0xc6, 0x7f, 0x77, 0xd4, 0xa8, 0xf5}},
+    {{0x5c, 0x4f, 0x28, 0x53, 0x88, 0xf3, 0x83, 0x36, 0x26, 0x9a, 0x55,
+      0xc7, 0xc1, 0x2c, 0x0b, 0x3c, 0xa7, 0x3f, 0xef, 0x2a, 0x5a, 0x4d,
+      0xf8, 0x2b, 0x89, 0x14, 0x1e, 0x84, 0x1a, 0x6c, 0x4d, 0xe4}},
+    {{0x67, 0xdc, 0x4f, 0x32, 0xfa, 0x10, 0xe7, 0xd0, 0x1a, 0x79, 0xa0,
+      0x73, 0xaa, 0x0c, 0x9e, 0x02, 0x12, 0xec, 0x2f, 0xfc, 0x3d, 0x77,
+      0x9e, 0x0a, 0xa7, 0xf9, 0xc0, 0xf0, 0xe1, 0xc2, 0xc8, 0x93}},
+    {{0x6b, 0x86, 0xde, 0x96, 0xa6, 0x58, 0xa5, 0x68, 0x20, 0xa4, 0xf3,
+      0x5d, 0x90, 0xdb, 0x6c, 0x3e, 0xfd, 0xd5, 0x74, 0xce, 0x94, 0xb9,
+      0x09, 0xcb, 0x0d, 0x7f, 0xf1, 0x7c, 0x3c, 0x18, 0x9d, 0x83}},
+    {{0x70, 0x06, 0xa3, 0x83, 0x11, 0xe5, 0x8f, 0xb1, 0x93, 0x48, 0x42,
+      0x33, 0x21, 0x82, 0x10, 0xc6, 0x61, 0x25, 0xa0, 0xe4, 0xa8, 0x26,
+      0xae, 0xd5, 0x39, 0xac, 0x56, 0x1d, 0xfb, 0xfb, 0xd9, 0x03}},
+    {{0x78, 0x1f, 0x1c, 0x3a, 0x6a, 0x42, 0xe3, 0xe9, 0x15, 0x22, 0x2d,
+      0xb4, 0x96, 0x77, 0x02, 0xa2, 0xe5, 0x77, 0xae, 0xb0, 0x17, 0x07,
+      0x5f, 0xa3, 0xc1, 0x59, 0x85, 0x1f, 0xdd, 0xd0, 0x53, 0x5e}},
+    {{0x7c, 0xaa, 0x03, 0x46, 0x51, 0x24, 0x59, 0x0c, 0x60, 0x1e, 0x56,
+      0x7e, 0x52, 0x14, 0x8e, 0x95, 0x2c, 0x0c, 0xff, 0xe8, 0x90, 0x00,
+      0x53, 0x0f, 0xe0, 0xd9, 0x5b, 0x6d, 0x50, 0xea, 0xae, 0x41}},
+    {{0x80, 0x9f, 0x2b, 0xaa, 0xe3, 0x5a, 0xfb, 0x4f, 0x36, 0xbd, 0x64,
+      0x76, 0xce, 0x75, 0xc2, 0x00, 0x10, 0x77, 0x90, 0x1b, 0x6a, 0xf5,
+      0xc4, 0xda, 0xb8, 0x2e, 0x18, 0x8c, 0x6b, 0x95, 0xc1, 0xa1}},
+    {{0x81, 0xa9, 0x8f, 0xc7, 0x88, 0xc3, 0x5f, 0x55, 0x76, 0x45, 0xa9,
+      0x52, 0x24, 0xe5, 0x0c, 0xd1, 0xda, 0xc8, 0xff, 0xb2, 0x09, 0xdc,
+      0x1e, 0x56, 0x88, 0xaa, 0x29, 0x20, 0x5f, 0x13, 0x22, 0x18}},
+    {{0x86, 0x0a, 0x7f, 0x19, 0x21, 0x0d, 0x5e, 0xad, 0x05, 0x7a, 0x78,
+      0x53, 0x2b, 0x80, 0x95, 0x14, 0x53, 0xcb, 0x29, 0x07, 0x31, 0x5f,
+      0x3b, 0xa7, 0xaa, 0x47, 0xb6, 0x98, 0x97, 0xd7, 0x0f, 0x3f}},
+    {{0x87, 0xaf, 0x34, 0xd6, 0x6f, 0xb3, 0xf2, 0xfd, 0xf3, 0x6e, 0x09,
+      0x11, 0x1e, 0x9a, 0xba, 0x2f, 0x6f, 0x44, 0xb2, 0x07, 0xf3, 0x86,
+      0x3f, 0x3d, 0x0b, 0x54, 0xb2, 0x50, 0x23, 0x90, 0x9a, 0xa5}},
+    {{0x95, 0x73, 0x54, 0x73, 0xbd, 0x67, 0xa3, 0xb9, 0x5a, 0x8d, 0x5f,
+      0x90, 0xc5, 0xa2, 0x1a, 0xce, 0x1e, 0x0d, 0x79, 0x47, 0x32, 0x06,
+      0x74, 0xd4, 0xab, 0x84, 0x79, 0x72, 0xb9, 0x15, 0x44, 0xd2}},
+    {{0x96, 0x7b, 0x0c, 0xd9, 0x3f, 0xce, 0xf7, 0xf2, 0x7c, 0xe2, 0xc2,
+      0x45, 0x76, 0x7a, 0xe9, 0xb0, 0x5a, 0x77, 0x6b, 0x06, 0x49, 0xf9,
+      0x96, 0x5b, 0x62, 0x90, 0x96, 0x84, 0x69, 0x68, 0x68, 0x72}},
+    {{0x96, 0x99, 0x22, 0x5c, 0x5d, 0xe5, 0x2e, 0x56, 0xcd, 0xd3, 0x2d,
+      0xf2, 0xe9, 0x6d, 0x1c, 0xfe, 0xa5, 0xaa, 0x3c, 0xa0, 0xbb, 0x52,
+      0xcd, 0x89, 0x33, 0xc2, 0x3b, 0x5c, 0x27, 0x44, 0x38, 0x20}},
+    {{0x9c, 0x6f, 0x6a, 0x12, 0x3c, 0xba, 0xa4, 0xee, 0x34, 0xdb, 0xec,
+      0xee, 0xe2, 0x4c, 0x97, 0xd7, 0x38, 0x87, 0x8c, 0xb4, 0x23, 0xf3,
+      0xc2, 0x27, 0x39, 0x03, 0x42, 0x4f, 0x5d, 0x1f, 0x6d, 0xd5}},
+    {{0xa6, 0xf1, 0xf9, 0xbf, 0x8a, 0x0a, 0x9d, 0xdc, 0x08, 0x0f, 0xb4,
+      0x9b, 0x1e, 0xfc, 0x3d, 0x1a, 0x1c, 0x2c, 0x32, 0xdc, 0x0e, 0x13,
+      0x6a, 0x5b, 0x00, 0xc9, 0x73, 0x16, 0xf2, 0xa3, 0xdc, 0x11}},
+    {{0xab, 0x38, 0x76, 0xc3, 0xda, 0x5d, 0xe0, 0xc9, 0xcf, 0x67, 0x36,
+      0x86, 0x8e, 0xe5, 0xb8, 0x8b, 0xf9, 0xba, 0x1d, 0xff, 0x9c, 0x9d,
+      0x72, 0xd2, 0xfe, 0x5a, 0x8d, 0x2f, 0x78, 0x30, 0x21, 0x66}},
+    {{0xab, 0x39, 0xa4, 0xb0, 0x25, 0x95, 0x56, 0x91, 0xa4, 0x02, 0x69,
+      0xf3, 0x53, 0xfa, 0x1d, 0x5c, 0xb9, 0x4e, 0xaf, 0x6c, 0x7e, 0xa9,
+      0x80, 0x84, 0x84, 0xbb, 0xbb, 0x62, 0xfd, 0x9f, 0x68, 0xf3}},
+    {{0xab, 0x5c, 0xdb, 0x33, 0x56, 0x39, 0x73, 0x56, 0xd6, 0xe6, 0x91,
+      0x97, 0x3c, 0x25, 0xb8, 0x61, 0x8b, 0x65, 0xd7, 0x6a, 0x90, 0x48,
+      0x6e, 0xa7, 0xa8, 0xa5, 0xc1, 0x77, 0x67, 0xf4, 0x67, 0x3a}},
+    {{0xab, 0x98, 0x49, 0x52, 0x76, 0xad, 0xf1, 0xec, 0xaf, 0xf2, 0x8f,
+      0x35, 0xc5, 0x30, 0x48, 0x78, 0x1e, 0x5c, 0x17, 0x18, 0xda, 0xb9,
+      0xc8, 0xe6, 0x7a, 0x50, 0x4f, 0x4f, 0x6a, 0x51, 0x32, 0x8f}},
+    {{0xac, 0xf6, 0x5e, 0x1d, 0x62, 0xcb, 0x58, 0xa2, 0xba, 0xfd, 0x6f,
+      0xfa, 0xb4, 0x0f, 0xb8, 0x86, 0x99, 0xc4, 0x73, 0x97, 0xcf, 0x5c,
+      0xb4, 0x83, 0xd4, 0x2d, 0x69, 0xca, 0xd3, 0x4c, 0xd4, 0x8b}},
+    {{0xaf, 0x20, 0x7c, 0x61, 0xfd, 0x9c, 0x7c, 0xf9, 0x2c, 0x2a, 0xfe,
+      0x81, 0x54, 0x28, 0x2d, 0xc3, 0xf2, 0xcb, 0xf3, 0x2f, 0x75, 0xcd,
+      0x17, 0x28, 0x14, 0xc5, 0x2b, 0x03, 0xb7, 0xeb, 0xc2, 0x58}},
+    {{0xb1, 0x12, 0x41, 0x42, 0xa5, 0xa1, 0xa5, 0xa2, 0x88, 0x19, 0xc7,
+      0x35, 0x34, 0x0e, 0xff, 0x8c, 0x9e, 0x2f, 0x81, 0x68, 0xfe, 0xe3,
+      0xba, 0x18, 0x7f, 0x25, 0x3b, 0xc1, 0xa3, 0x92, 0xd7, 0xe2}},
+    {{0xb2, 0xde, 0xf5, 0x36, 0x2a, 0xd3, 0xfa, 0xcd, 0x04, 0xbd, 0x29,
+      0x04, 0x7a, 0x43, 0x84, 0x4f, 0x76, 0x70, 0x34, 0xea, 0x48, 0x92,
+      0xf8, 0x0e, 0x56, 0xbe, 0xe6, 0x90, 0x24, 0x3e, 0x25, 0x02}},
+    {{0xbc, 0xfb, 0x44, 0xaa, 0xb9, 0xad, 0x02, 0x10, 0x15, 0x70, 0x6b,
+      0x41, 0x21, 0xea, 0x76, 0x1c, 0x81, 0xc9, 0xe8, 0x89, 0x67, 0x59,
+      0x0f, 0x6f, 0x94, 0xae, 0x74, 0x4d, 0xc8, 0x8b, 0x78, 0xfb}},
+    {{0xc0, 0x71, 0x35, 0xf6, 0xb4, 0x52, 0x39, 0x82, 0x64, 0xa4, 0x77,
+      0x6d, 0xbd, 0x0a, 0x6a, 0x30, 0x7c, 0x60, 0xa3, 0x6f, 0x96, 0x7b,
+      0xd2, 0x63, 0x21, 0xdc, 0xb8, 0x17, 0xb5, 0xc0, 0xc4, 0x81}},
+    {{0xca, 0xb4, 0x82, 0xcd, 0x3e, 0x82, 0x0c, 0x5c, 0xe7, 0x2a, 0xa3,
+      0xb6, 0xfd, 0xbe, 0x98, 0x8b, 0xb8, 0xa4, 0xf0, 0x40, 0x7e, 0xca,
+      0xfd, 0x8c, 0x92, 0x6e, 0x36, 0x82, 0x4e, 0xab, 0x92, 0xdd}},
+    {{0xd2, 0xf9, 0x1a, 0x04, 0xe3, 0xa6, 0x1d, 0x4e, 0xad, 0x78, 0x48,
+      0xc8, 0xd4, 0x3b, 0x5e, 0x11, 0x52, 0xd8, 0x85, 0x72, 0x74, 0x89,
+      0xbc, 0x65, 0x73, 0x8b, 0x67, 0xc0, 0xa2, 0x27, 0x85, 0xa7}},
+    {{0xd3, 0xa2, 0x5d, 0xa8, 0x0d, 0xb7, 0xba, 0xb1, 0x29, 0xa0, 0x66,
+      0xab, 0x41, 0x50, 0x3d, 0xdd, 0xff, 0xa0, 0x2c, 0x76, 0x8c, 0x05,
+      0x89, 0xf9, 0x9f, 0xd7, 0x11, 0x93, 0xe6, 0x99, 0x16, 0xb6}},
+    {{0xd4, 0xaf, 0x6c, 0x0a, 0x48, 0x23, 0x10, 0xbd, 0x7c, 0x54, 0xbb,
+      0x7a, 0xb1, 0x21, 0x91, 0x6f, 0x86, 0xc0, 0xc0, 0x7c, 0xd5, 0x2f,
+      0xca, 0xc3, 0x2d, 0x38, 0x44, 0xc2, 0x60, 0x05, 0x11, 0x5f}},
+    {{0xda, 0x80, 0x0b, 0x80, 0xb2, 0xa8, 0x7d, 0x39, 0x9e, 0x66, 0xfa,
+      0x19, 0xd7, 0x2f, 0xdf, 0x49, 0x98, 0x3b, 0x47, 0xd8, 0xcf, 0x32,
+      0x2c, 0x7c, 0x79, 0x50, 0x3a, 0x0c, 0x7e, 0x28, 0xfe, 0xaf}},
+    {{0xf1, 0x5f, 0x1d, 0x32, 0x3e, 0xd9, 0xca, 0x98, 0xe9, 0xea, 0x95,
+      0xb3, 0x3e, 0xc5, 0xdd, 0xa4, 0x7e, 0xa4, 0xc3, 0x29, 0xf9, 0x52,
+      0xc1, 0x6f, 0x65, 0xad, 0x41, 0x9e, 0x64, 0x52, 0x04, 0x76}},
+    {{0xf2, 0xe9, 0x36, 0x5e, 0xa1, 0x21, 0xdf, 0x5e, 0xeb, 0xd8, 0xde,
+      0x24, 0x68, 0xfd, 0xc1, 0x71, 0xdc, 0x0a, 0x9e, 0x46, 0xda, 0xdc,
+      0x1a, 0xb4, 0x1d, 0x52, 0x79, 0x0b, 0xa9, 0x80, 0xa7, 0xc2}},
+    {{0xf5, 0x3c, 0x22, 0x05, 0x98, 0x17, 0xdd, 0x96, 0xf4, 0x00, 0x65,
+      0x16, 0x39, 0xd2, 0xf8, 0x57, 0xe2, 0x10, 0x70, 0xa5, 0x9a, 0xbe,
+      0xd9, 0x07, 0x94, 0x00, 0xd9, 0xf6, 0x95, 0x50, 0x69, 0x00}},
+    {{0xf6, 0xb5, 0x9c, 0x8e, 0x27, 0x89, 0xa1, 0xfd, 0x5d, 0x5b, 0x25,
+      0x37, 0x42, 0xfe, 0xad, 0xc6, 0x92, 0x5c, 0xb9, 0x3e, 0xdc, 0x34,
+      0x5e, 0x53, 0x16, 0x6e, 0x12, 0xc5, 0x2b, 0xa2, 0xa6, 0x01}},
+    {{0xff, 0x56, 0x80, 0xcd, 0x73, 0xa5, 0x70, 0x3d, 0xa0, 0x48, 0x17,
+      0xa0, 0x75, 0xfd, 0x46, 0x25, 0x06, 0xa7, 0x35, 0x06, 0xc4, 0xb8,
+      0x1a, 0x15, 0x83, 0xef, 0x54, 0x94, 0x78, 0xd2, 0x64, 0x76}},
+};
+
+const SHA256HashValue kSymantecExceptions[] = {
+    {{0x56, 0xe9, 0x8d, 0xea, 0xc0, 0x06, 0xa7, 0x29, 0xaf, 0xa2, 0xed,
+      0x79, 0xf9, 0xe4, 0x19, 0xdf, 0x69, 0xf4, 0x51, 0x24, 0x25, 0x96,
+      0xd2, 0xaa, 0xf2, 0x84, 0xc7, 0x4a, 0x85, 0x5e, 0x35, 0x2e}},
+    {{0x72, 0x89, 0xc0, 0x6d, 0xed, 0xd1, 0x6b, 0x71, 0xa7, 0xdc, 0xca,
+      0x66, 0x57, 0x85, 0x72, 0xe2, 0xe1, 0x09, 0xb1, 0x1d, 0x70, 0xad,
+      0x04, 0xc2, 0x60, 0x1b, 0x67, 0x43, 0xbc, 0x66, 0xd0, 0x7b}},
+    {{0xa5, 0x3d, 0xb6, 0x10, 0x6b, 0xb7, 0x60, 0x35, 0x4c, 0xed, 0x90,
+      0x45, 0xfb, 0x06, 0xeb, 0x06, 0xaf, 0x85, 0xe6, 0xb1, 0x18, 0xc0,
+      0x62, 0xed, 0x13, 0xc3, 0x05, 0x1d, 0xfe, 0xb8, 0xd4, 0x9c}},
+    {{0xb5, 0xcf, 0x82, 0xd4, 0x7e, 0xf9, 0x82, 0x3f, 0x9a, 0xa7, 0x8f,
+      0x12, 0x31, 0x86, 0xc5, 0x2e, 0x88, 0x79, 0xea, 0x84, 0xb0, 0xf8,
+      0x22, 0xc9, 0x1d, 0x83, 0xe0, 0x42, 0x79, 0xb7, 0x8f, 0xd5}},
+    {{0xc0, 0x55, 0x4b, 0xde, 0x87, 0xa0, 0x75, 0xec, 0x13, 0xa6, 0x1f,
+      0x27, 0x59, 0x83, 0xae, 0x02, 0x39, 0x57, 0x29, 0x4b, 0x45, 0x4c,
+      0xaf, 0x0a, 0x97, 0x24, 0xe3, 0xb2, 0x1b, 0x79, 0x35, 0xbc}},
+    {{0xe2, 0x4f, 0x8e, 0x8c, 0x21, 0x85, 0xda, 0x2f, 0x5e, 0x88, 0xd4,
+      0x57, 0x9e, 0x81, 0x7c, 0x47, 0xbf, 0x6e, 0xaf, 0xbc, 0x85, 0x05,
+      0xf0, 0xf9, 0x60, 0xfd, 0x5a, 0x0d, 0xf4, 0x47, 0x3a, 0xd3}},
+    {{0xec, 0x72, 0x29, 0x69, 0xcb, 0x64, 0x20, 0x0a, 0xb6, 0x63, 0x8f,
+      0x68, 0xac, 0x53, 0x8e, 0x40, 0xab, 0xab, 0x5b, 0x19, 0xa6, 0x48,
+      0x56, 0x61, 0x04, 0x2a, 0x10, 0x61, 0xc4, 0x61, 0x27, 0x76}},
+    {{0xfa, 0xe4, 0x60, 0x00, 0xd8, 0xf7, 0x04, 0x25, 0x58, 0x54, 0x1e,
+      0x98, 0xac, 0xf3, 0x51, 0x27, 0x95, 0x89, 0xf8, 0x3b, 0x6d, 0x30,
+      0x01, 0xc1, 0x84, 0x42, 0xe4, 0x40, 0x3d, 0x11, 0x18, 0x49}},
+};
+
+const CTRequiredPolicy kCTRequiredPolicies[] = {
+    {
+        kSymantecRoots, arraysize(kSymantecRoots),
+        // 1 June 2016, 00:00:00 GMT.
+        base::TimeDelta::FromSeconds(1464739200), kSymantecExceptions,
+        arraysize(kSymantecExceptions),
+    },
+};
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_2a.inc b/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_2a.inc
new file mode 100644 (file)
index 0000000..f71001f
--- /dev/null
@@ -0,0 +1,5627 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1227750 (0x12bbe6)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+        Validity
+            Not Before: May 21 04:00:00 2002 GMT
+            Not After : Aug 21 04:00:00 2018 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:da:cc:18:63:30:fd:f4:17:23:1a:56:7e:5b:df:
+                    3c:6c:38:e4:71:b7:78:91:d4:bc:a1:d8:4c:f8:a8:
+                    43:b6:03:e9:4d:21:07:08:88:da:58:2f:66:39:29:
+                    bd:05:78:8b:9d:38:e8:05:b7:6a:7e:71:a4:e6:c4:
+                    60:a6:b0:ef:80:e4:89:28:0f:9e:25:d6:ed:83:f3:
+                    ad:a6:91:c7:98:c9:42:18:35:14:9d:ad:98:46:92:
+                    2e:4f:ca:f1:87:43:c1:16:95:57:2d:50:ef:89:2d:
+                    80:7a:57:ad:f2:ee:5f:6b:d2:00:8d:b9:14:f8:14:
+                    15:35:d9:c0:46:a3:7b:72:c8:91:bf:c9:55:2b:cd:
+                    d0:97:3e:9c:26:64:cc:df:ce:83:19:71:ca:4e:e6:
+                    d4:d5:7b:a9:19:cd:55:de:c8:ec:d2:5e:38:53:e5:
+                    5c:4f:8c:2d:fe:50:23:36:fc:66:e6:cb:8e:a4:39:
+                    19:00:b7:95:02:39:91:0b:0e:fe:38:2e:d1:1d:05:
+                    9a:f6:4d:3e:6f:0f:07:1d:af:2c:1e:8f:60:39:e2:
+                    fa:36:53:13:39:d4:5e:26:2b:db:3d:a8:14:bd:32:
+                    eb:18:03:28:52:04:71:e5:ab:33:3d:e1:38:bb:07:
+                    36:84:62:9c:79:ea:16:30:f4:5f:c0:2b:e8:71:6b:
+                    e4:f9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+            X509v3 Subject Key Identifier: 
+                C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/crls/secureca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.geotrust.com/resources/repository
+
+    Signature Algorithm: sha1WithRSAEncryption
+         76:e1:12:6e:4e:4b:16:12:86:30:06:b2:81:08:cf:f0:08:c7:
+         c7:71:7e:66:ee:c2:ed:d4:3b:1f:ff:f0:f0:c8:4e:d6:43:38:
+         b0:b9:30:7d:18:d0:55:83:a2:6a:cb:36:11:9c:e8:48:66:a3:
+         6d:7f:b8:13:d4:47:fe:8b:5a:5c:73:fc:ae:d9:1b:32:19:38:
+         ab:97:34:14:aa:96:d2:eb:a3:1c:14:08:49:b6:bb:e5:91:ef:
+         83:36:eb:1d:56:6f:ca:da:bc:73:63:90:e4:7f:7b:3e:22:cb:
+         3d:07:ed:5f:38:74:9c:e3:03:50:4e:a1:af:98:ee:61:f2:84:
+         3f:12
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
+WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
+AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
+OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
+T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
+JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
+Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
+PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
+aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
+TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
+LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
+BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
+dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
+AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
+NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
+b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert0[] = {
+  0x30, 0x82, 0x03, 0x7d, 0x30, 0x82, 0x02, 0xe6, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x12, 0xbb, 0xe6, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+  0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+  0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+  0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+  0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x32, 0x30,
+  0x35, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+  0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30,
+  0x5a, 0x30, 0x42, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x12, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0xcc, 0x18, 0x63, 0x30, 0xfd,
+  0xf4, 0x17, 0x23, 0x1a, 0x56, 0x7e, 0x5b, 0xdf, 0x3c, 0x6c, 0x38, 0xe4,
+  0x71, 0xb7, 0x78, 0x91, 0xd4, 0xbc, 0xa1, 0xd8, 0x4c, 0xf8, 0xa8, 0x43,
+  0xb6, 0x03, 0xe9, 0x4d, 0x21, 0x07, 0x08, 0x88, 0xda, 0x58, 0x2f, 0x66,
+  0x39, 0x29, 0xbd, 0x05, 0x78, 0x8b, 0x9d, 0x38, 0xe8, 0x05, 0xb7, 0x6a,
+  0x7e, 0x71, 0xa4, 0xe6, 0xc4, 0x60, 0xa6, 0xb0, 0xef, 0x80, 0xe4, 0x89,
+  0x28, 0x0f, 0x9e, 0x25, 0xd6, 0xed, 0x83, 0xf3, 0xad, 0xa6, 0x91, 0xc7,
+  0x98, 0xc9, 0x42, 0x18, 0x35, 0x14, 0x9d, 0xad, 0x98, 0x46, 0x92, 0x2e,
+  0x4f, 0xca, 0xf1, 0x87, 0x43, 0xc1, 0x16, 0x95, 0x57, 0x2d, 0x50, 0xef,
+  0x89, 0x2d, 0x80, 0x7a, 0x57, 0xad, 0xf2, 0xee, 0x5f, 0x6b, 0xd2, 0x00,
+  0x8d, 0xb9, 0x14, 0xf8, 0x14, 0x15, 0x35, 0xd9, 0xc0, 0x46, 0xa3, 0x7b,
+  0x72, 0xc8, 0x91, 0xbf, 0xc9, 0x55, 0x2b, 0xcd, 0xd0, 0x97, 0x3e, 0x9c,
+  0x26, 0x64, 0xcc, 0xdf, 0xce, 0x83, 0x19, 0x71, 0xca, 0x4e, 0xe6, 0xd4,
+  0xd5, 0x7b, 0xa9, 0x19, 0xcd, 0x55, 0xde, 0xc8, 0xec, 0xd2, 0x5e, 0x38,
+  0x53, 0xe5, 0x5c, 0x4f, 0x8c, 0x2d, 0xfe, 0x50, 0x23, 0x36, 0xfc, 0x66,
+  0xe6, 0xcb, 0x8e, 0xa4, 0x39, 0x19, 0x00, 0xb7, 0x95, 0x02, 0x39, 0x91,
+  0x0b, 0x0e, 0xfe, 0x38, 0x2e, 0xd1, 0x1d, 0x05, 0x9a, 0xf6, 0x4d, 0x3e,
+  0x6f, 0x0f, 0x07, 0x1d, 0xaf, 0x2c, 0x1e, 0x8f, 0x60, 0x39, 0xe2, 0xfa,
+  0x36, 0x53, 0x13, 0x39, 0xd4, 0x5e, 0x26, 0x2b, 0xdb, 0x3d, 0xa8, 0x14,
+  0xbd, 0x32, 0xeb, 0x18, 0x03, 0x28, 0x52, 0x04, 0x71, 0xe5, 0xab, 0x33,
+  0x3d, 0xe1, 0x38, 0xbb, 0x07, 0x36, 0x84, 0x62, 0x9c, 0x79, 0xea, 0x16,
+  0x30, 0xf4, 0x5f, 0xc0, 0x2b, 0xe8, 0x71, 0x6b, 0xe4, 0xf9, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x81, 0xf0, 0x30, 0x81, 0xed, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6,
+  0x68, 0xf9, 0x2b, 0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10,
+  0x4f, 0x33, 0x98, 0x90, 0x9f, 0xd4, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+  0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+  0x4e, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+  0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a,
+  0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0,
+  0x2d, 0xa0, 0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65,
+  0x63, 0x75, 0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4e,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x47, 0x30, 0x45, 0x30, 0x43, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65,
+  0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+  0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81,
+  0x00, 0x76, 0xe1, 0x12, 0x6e, 0x4e, 0x4b, 0x16, 0x12, 0x86, 0x30, 0x06,
+  0xb2, 0x81, 0x08, 0xcf, 0xf0, 0x08, 0xc7, 0xc7, 0x71, 0x7e, 0x66, 0xee,
+  0xc2, 0xed, 0xd4, 0x3b, 0x1f, 0xff, 0xf0, 0xf0, 0xc8, 0x4e, 0xd6, 0x43,
+  0x38, 0xb0, 0xb9, 0x30, 0x7d, 0x18, 0xd0, 0x55, 0x83, 0xa2, 0x6a, 0xcb,
+  0x36, 0x11, 0x9c, 0xe8, 0x48, 0x66, 0xa3, 0x6d, 0x7f, 0xb8, 0x13, 0xd4,
+  0x47, 0xfe, 0x8b, 0x5a, 0x5c, 0x73, 0xfc, 0xae, 0xd9, 0x1b, 0x32, 0x19,
+  0x38, 0xab, 0x97, 0x34, 0x14, 0xaa, 0x96, 0xd2, 0xeb, 0xa3, 0x1c, 0x14,
+  0x08, 0x49, 0xb6, 0xbb, 0xe5, 0x91, 0xef, 0x83, 0x36, 0xeb, 0x1d, 0x56,
+  0x6f, 0xca, 0xda, 0xbc, 0x73, 0x63, 0x90, 0xe4, 0x7f, 0x7b, 0x3e, 0x22,
+  0xcb, 0x3d, 0x07, 0xed, 0x5f, 0x38, 0x74, 0x9c, 0xe3, 0x03, 0x50, 0x4e,
+  0xa1, 0xaf, 0x98, 0xee, 0x61, 0xf2, 0x84, 0x3f, 0x12,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 880226 (0xd6e62)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+        Validity
+            Not Before: Nov 27 00:00:00 2006 GMT
+            Not After : Aug 21 16:15:00 2018 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:be:b8:15:7b:ff:d4:7c:7d:67:ad:83:64:7b:c8:
+                    42:53:2d:df:f6:84:08:20:61:d6:01:59:6a:9c:44:
+                    11:af:ef:76:fd:95:7e:ce:61:30:bb:7a:83:5f:02:
+                    bd:01:66:ca:ee:15:8d:6f:a1:30:9c:bd:a1:85:9e:
+                    94:3a:f3:56:88:00:31:cf:d8:ee:6a:96:02:d9:ed:
+                    03:8c:fb:75:6d:e7:ea:b8:55:16:05:16:9a:f4:e0:
+                    5e:b1:88:c0:64:85:5c:15:4d:88:c7:b7:ba:e0:75:
+                    e9:ad:05:3d:9d:c7:89:48:e0:bb:28:c8:03:e1:30:
+                    93:64:5e:52:c0:59:70:22:35:57:88:8a:f1:95:0a:
+                    83:d7:bc:31:73:01:34:ed:ef:46:71:e0:6b:02:a8:
+                    35:72:6b:97:9b:66:e0:cb:1c:79:5f:d8:1a:04:68:
+                    1e:47:02:e6:9d:60:e2:36:97:01:df:ce:35:92:df:
+                    be:67:c7:6d:77:59:3b:8f:9d:d6:90:15:94:bc:42:
+                    34:10:c1:39:f9:b1:27:3e:7e:d6:8a:75:c5:b2:af:
+                    96:d3:a2:de:9b:e4:98:be:7d:e1:e9:81:ad:b6:6f:
+                    fc:d7:0e:da:e0:34:b0:0d:1a:77:e7:e3:08:98:ef:
+                    58:fa:9c:84:b7:36:af:c2:df:ac:d2:f4:10:06:70:
+                    71:35
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+            X509v3 Authority Key Identifier: 
+                keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/crls/secureca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.geotrust.com/resources/cps
+
+    Signature Algorithm: sha1WithRSAEncryption
+         af:f3:0e:d6:72:ab:c7:a9:97:ca:2a:6b:84:39:de:79:a9:f0:
+         81:e5:08:67:ab:d7:2f:20:02:01:71:0c:04:22:c9:1e:88:95:
+         03:c9:49:3a:af:67:08:49:b0:d5:08:f5:20:3d:80:91:a0:c5:
+         87:a3:fb:c9:a3:17:91:f9:a8:2f:ae:e9:0f:df:96:72:0f:75:
+         17:80:5d:78:01:4d:9f:1f:6d:7b:d8:f5:42:38:23:1a:99:93:
+         f4:83:be:3b:35:74:e7:37:13:35:7a:ac:b4:b6:90:82:6c:27:
+         a4:e0:ec:9e:35:bd:bf:e5:29:a1:47:9f:5b:32:fc:e9:99:7d:
+         2b:39
+-----BEGIN CERTIFICATE-----
+MIIDizCCAvSgAwIBAgIDDW5iMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMTI3MDAwMDAwWhcNMTgwODIxMTYxNTAw
+WjBYMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UE
+AxMoR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL64FXv/1Hx9Z62DZHvIQlMt3/aE
+CCBh1gFZapxEEa/vdv2Vfs5hMLt6g18CvQFmyu4VjW+hMJy9oYWelDrzVogAMc/Y
+7mqWAtntA4z7dW3n6rhVFgUWmvTgXrGIwGSFXBVNiMe3uuB16a0FPZ3HiUjguyjI
+A+Ewk2ReUsBZcCI1V4iK8ZUKg9e8MXMBNO3vRnHgawKoNXJrl5tm4MsceV/YGgRo
+HkcC5p1g4jaXAd/ONZLfvmfHbXdZO4+d1pAVlLxCNBDBOfmxJz5+1op1xbKvltOi
+3pvkmL594emBrbZv/NcO2uA0sA0ad+fjCJjvWPqchLc2r8LfrNL0EAZwcTUCAwEA
+AaOB6DCB5TAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFCzVUEGXFYvwjzZhW0r7
+a9mZyTOSMB8GA1UdIwQYMBaAFEjmaPkr0rKV10fYIyAQTzOYkJ/UMA8GA1UdEwEB
+/wQFMAMBAf8wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5j
+b20vY3Jscy9zZWN1cmVjYS5jcmwwRgYDVR0gBD8wPTA7BgRVHSAAMDMwMQYIKwYB
+BQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwDQYJ
+KoZIhvcNAQEFBQADgYEAr/MO1nKrx6mXyiprhDneeanwgeUIZ6vXLyACAXEMBCLJ
+HoiVA8lJOq9nCEmw1Qj1ID2AkaDFh6P7yaMXkfmoL67pD9+Wcg91F4BdeAFNnx9t
+e9j1QjgjGpmT9IO+OzV05zcTNXqstLaQgmwnpODsnjW9v+UpoUefWzL86Zl9Kzk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert1[] = {
+  0x30, 0x82, 0x03, 0x8b, 0x30, 0x82, 0x02, 0xf4, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x0d, 0x6e, 0x62, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+  0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+  0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+  0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+  0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31,
+  0x31, 0x32, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+  0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x31, 0x36, 0x31, 0x35, 0x30, 0x30,
+  0x5a, 0x30, 0x58, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x28, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xbe, 0xb8, 0x15, 0x7b, 0xff, 0xd4, 0x7c, 0x7d,
+  0x67, 0xad, 0x83, 0x64, 0x7b, 0xc8, 0x42, 0x53, 0x2d, 0xdf, 0xf6, 0x84,
+  0x08, 0x20, 0x61, 0xd6, 0x01, 0x59, 0x6a, 0x9c, 0x44, 0x11, 0xaf, 0xef,
+  0x76, 0xfd, 0x95, 0x7e, 0xce, 0x61, 0x30, 0xbb, 0x7a, 0x83, 0x5f, 0x02,
+  0xbd, 0x01, 0x66, 0xca, 0xee, 0x15, 0x8d, 0x6f, 0xa1, 0x30, 0x9c, 0xbd,
+  0xa1, 0x85, 0x9e, 0x94, 0x3a, 0xf3, 0x56, 0x88, 0x00, 0x31, 0xcf, 0xd8,
+  0xee, 0x6a, 0x96, 0x02, 0xd9, 0xed, 0x03, 0x8c, 0xfb, 0x75, 0x6d, 0xe7,
+  0xea, 0xb8, 0x55, 0x16, 0x05, 0x16, 0x9a, 0xf4, 0xe0, 0x5e, 0xb1, 0x88,
+  0xc0, 0x64, 0x85, 0x5c, 0x15, 0x4d, 0x88, 0xc7, 0xb7, 0xba, 0xe0, 0x75,
+  0xe9, 0xad, 0x05, 0x3d, 0x9d, 0xc7, 0x89, 0x48, 0xe0, 0xbb, 0x28, 0xc8,
+  0x03, 0xe1, 0x30, 0x93, 0x64, 0x5e, 0x52, 0xc0, 0x59, 0x70, 0x22, 0x35,
+  0x57, 0x88, 0x8a, 0xf1, 0x95, 0x0a, 0x83, 0xd7, 0xbc, 0x31, 0x73, 0x01,
+  0x34, 0xed, 0xef, 0x46, 0x71, 0xe0, 0x6b, 0x02, 0xa8, 0x35, 0x72, 0x6b,
+  0x97, 0x9b, 0x66, 0xe0, 0xcb, 0x1c, 0x79, 0x5f, 0xd8, 0x1a, 0x04, 0x68,
+  0x1e, 0x47, 0x02, 0xe6, 0x9d, 0x60, 0xe2, 0x36, 0x97, 0x01, 0xdf, 0xce,
+  0x35, 0x92, 0xdf, 0xbe, 0x67, 0xc7, 0x6d, 0x77, 0x59, 0x3b, 0x8f, 0x9d,
+  0xd6, 0x90, 0x15, 0x94, 0xbc, 0x42, 0x34, 0x10, 0xc1, 0x39, 0xf9, 0xb1,
+  0x27, 0x3e, 0x7e, 0xd6, 0x8a, 0x75, 0xc5, 0xb2, 0xaf, 0x96, 0xd3, 0xa2,
+  0xde, 0x9b, 0xe4, 0x98, 0xbe, 0x7d, 0xe1, 0xe9, 0x81, 0xad, 0xb6, 0x6f,
+  0xfc, 0xd7, 0x0e, 0xda, 0xe0, 0x34, 0xb0, 0x0d, 0x1a, 0x77, 0xe7, 0xe3,
+  0x08, 0x98, 0xef, 0x58, 0xfa, 0x9c, 0x84, 0xb7, 0x36, 0xaf, 0xc2, 0xdf,
+  0xac, 0xd2, 0xf4, 0x10, 0x06, 0x70, 0x71, 0x35, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x81, 0xe8, 0x30, 0x81, 0xe5, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2c, 0xd5,
+  0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36, 0x61, 0x5b, 0x4a, 0xfb,
+  0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6, 0x68, 0xf9, 0x2b,
+  0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10, 0x4f, 0x33, 0x98,
+  0x90, 0x9f, 0xd4, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3a, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0,
+  0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x75,
+  0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x46, 0x06, 0x03,
+  0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30, 0x3b, 0x06, 0x04, 0x55,
+  0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+  0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x81, 0x81, 0x00, 0xaf, 0xf3, 0x0e, 0xd6, 0x72, 0xab, 0xc7, 0xa9, 0x97,
+  0xca, 0x2a, 0x6b, 0x84, 0x39, 0xde, 0x79, 0xa9, 0xf0, 0x81, 0xe5, 0x08,
+  0x67, 0xab, 0xd7, 0x2f, 0x20, 0x02, 0x01, 0x71, 0x0c, 0x04, 0x22, 0xc9,
+  0x1e, 0x88, 0x95, 0x03, 0xc9, 0x49, 0x3a, 0xaf, 0x67, 0x08, 0x49, 0xb0,
+  0xd5, 0x08, 0xf5, 0x20, 0x3d, 0x80, 0x91, 0xa0, 0xc5, 0x87, 0xa3, 0xfb,
+  0xc9, 0xa3, 0x17, 0x91, 0xf9, 0xa8, 0x2f, 0xae, 0xe9, 0x0f, 0xdf, 0x96,
+  0x72, 0x0f, 0x75, 0x17, 0x80, 0x5d, 0x78, 0x01, 0x4d, 0x9f, 0x1f, 0x6d,
+  0x7b, 0xd8, 0xf5, 0x42, 0x38, 0x23, 0x1a, 0x99, 0x93, 0xf4, 0x83, 0xbe,
+  0x3b, 0x35, 0x74, 0xe7, 0x37, 0x13, 0x35, 0x7a, 0xac, 0xb4, 0xb6, 0x90,
+  0x82, 0x6c, 0x27, 0xa4, 0xe0, 0xec, 0x9e, 0x35, 0xbd, 0xbf, 0xe5, 0x29,
+  0xa1, 0x47, 0x9f, 0x5b, 0x32, 0xfc, 0xe9, 0x99, 0x7d, 0x2b, 0x39,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 145105 (0x236d1)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Feb 19 22:45:05 2010 GMT
+            Not After : Feb 18 22:45:05 2020 GMT
+        Subject: C=US, O=GeoTrust, Inc., CN=RapidSSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c7:71:f8:56:c7:1e:d9:cc:b5:ad:f6:b4:97:a3:
+                    fb:a1:e6:0b:50:5f:50:aa:3a:da:0f:fc:3d:29:24:
+                    43:c6:10:29:c1:fc:55:40:72:ee:bd:ea:df:9f:b6:
+                    41:f4:48:4b:c8:6e:fe:4f:57:12:8b:5b:fa:92:dd:
+                    5e:e8:ad:f3:f0:1b:b1:7b:4d:fb:cf:fd:d1:e5:f8:
+                    e3:dc:e7:f5:73:7f:df:01:49:cf:8c:56:c1:bd:37:
+                    e3:5b:be:b5:4f:8b:8b:f0:da:4f:c7:e3:dd:55:47:
+                    69:df:f2:5b:7b:07:4f:3d:e5:ac:21:c1:c8:1d:7a:
+                    e8:e7:f6:0f:a1:aa:f5:6f:de:a8:65:4f:10:89:9c:
+                    03:f3:89:7a:a5:5e:01:72:33:ed:a9:e9:5a:1e:79:
+                    f3:87:c8:df:c8:c5:fc:37:c8:9a:9a:d7:b8:76:cc:
+                    b0:3e:e7:fd:e6:54:ea:df:5f:52:41:78:59:57:ad:
+                    f1:12:d6:7f:bc:d5:9f:70:d3:05:6c:fa:a3:7d:67:
+                    58:dd:26:62:1d:31:92:0c:79:79:1c:8e:cf:ca:7b:
+                    c1:66:af:a8:74:48:fb:8e:82:c2:9e:2c:99:5c:7b:
+                    2d:5d:9b:bc:5b:57:9e:7c:3a:7a:13:ad:f2:a3:18:
+                    5b:2b:59:0f:cd:5c:3a:eb:68:33:c6:28:1d:82:d1:
+                    50:8b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                6B:69:3D:6A:18:42:4A:DD:8F:02:65:39:FD:35:24:86:78:91:16:30
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.geotrust.com
+
+    Signature Algorithm: sha1WithRSAEncryption
+         ab:bc:bc:0a:5d:18:94:e3:c1:b1:c3:a8:4c:55:d6:be:b4:98:
+         f1:ee:3c:1c:cd:cf:f3:24:24:5c:96:03:27:58:fc:36:ae:a2:
+         2f:8f:f1:fe:da:2b:02:c3:33:bd:c8:dd:48:22:2b:60:0f:a5:
+         03:10:fd:77:f8:d0:ed:96:67:4f:fd:ea:47:20:70:54:dc:a9:
+         0c:55:7e:e1:96:25:8a:d9:b5:da:57:4a:be:8d:8e:49:43:63:
+         a5:6c:4e:27:87:25:eb:5b:6d:fe:a2:7f:38:28:e0:36:ab:ad:
+         39:a5:a5:62:c4:b7:5c:58:2c:aa:5d:01:60:a6:62:67:a3:c0:
+         c7:62:23:f4:e7:6c:46:ee:b5:d3:80:6a:22:13:d2:2d:3f:74:
+         4f:ea:af:8c:5f:b4:38:9c:db:ae:ce:af:84:1e:a6:f6:34:51:
+         59:79:d3:e3:75:dc:bc:d7:f3:73:df:92:ec:d2:20:59:6f:9c:
+         fb:95:f8:92:76:18:0a:7c:0f:2c:a6:ca:de:8a:62:7b:d8:f3:
+         ce:5f:68:bd:8f:3e:c1:74:bb:15:72:3a:16:83:a9:0b:e6:4d:
+         99:9c:d8:57:ec:a8:01:51:c7:6f:57:34:5e:ab:4a:2c:42:f6:
+         4f:1c:89:78:de:26:4e:f5:6f:93:4c:15:6b:27:56:4d:00:54:
+         6c:7a:b7:b7
+-----BEGIN CERTIFICATE-----
+MIID1TCCAr2gAwIBAgIDAjbRMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTAwMjE5MjI0NTA1WhcNMjAwMjE4MjI0NTA1WjA8MQswCQYDVQQG
+EwJVUzEXMBUGA1UEChMOR2VvVHJ1c3QsIEluYy4xFDASBgNVBAMTC1JhcGlkU1NM
+IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3H4Vsce2cy1rfa0
+l6P7oeYLUF9QqjraD/w9KSRDxhApwfxVQHLuverfn7ZB9EhLyG7+T1cSi1v6kt1e
+6K3z8Buxe037z/3R5fjj3Of1c3/fAUnPjFbBvTfjW761T4uL8NpPx+PdVUdp3/Jb
+ewdPPeWsIcHIHXro5/YPoar1b96oZU8QiZwD84l6pV4BcjPtqelaHnnzh8jfyMX8
+N8iamte4dsywPuf95lTq319SQXhZV63xEtZ/vNWfcNMFbPqjfWdY3SZiHTGSDHl5
+HI7PynvBZq+odEj7joLCniyZXHstXZu8W1eefDp6E63yoxhbK1kPzVw662gzxigd
+gtFQiwIDAQABo4HZMIHWMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUa2k9ahhC
+St2PAmU5/TUkhniRFjAwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4w
+EgYDVR0TAQH/BAgwBgEB/wIBADA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3Js
+Lmdlb3RydXN0LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDA0BggrBgEFBQcBAQQoMCYw
+JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmdlb3RydXN0LmNvbTANBgkqhkiG9w0B
+AQUFAAOCAQEAq7y8Cl0YlOPBscOoTFXWvrSY8e48HM3P8yQkXJYDJ1j8Nq6iL4/x
+/torAsMzvcjdSCIrYA+lAxD9d/jQ7ZZnT/3qRyBwVNypDFV+4ZYlitm12ldKvo2O
+SUNjpWxOJ4cl61tt/qJ/OCjgNqutOaWlYsS3XFgsql0BYKZiZ6PAx2Ij9OdsRu61
+04BqIhPSLT90T+qvjF+0OJzbrs6vhB6m9jRRWXnT43XcvNfzc9+S7NIgWW+c+5X4
+knYYCnwPLKbK3opie9jzzl9ovY8+wXS7FXI6FoOpC+ZNmZzYV+yoAVHHb1c0XqtK
+LEL2TxyJeN4mTvVvk0wVaydWTQBUbHq3tw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert2[] = {
+  0x30, 0x82, 0x03, 0xd5, 0x30, 0x82, 0x02, 0xbd, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x36, 0xd1, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30,
+  0x32, 0x31, 0x39, 0x32, 0x32, 0x34, 0x35, 0x30, 0x35, 0x5a, 0x17, 0x0d,
+  0x32, 0x30, 0x30, 0x32, 0x31, 0x38, 0x32, 0x32, 0x34, 0x35, 0x30, 0x35,
+  0x5a, 0x30, 0x3c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0e, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x0b, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c,
+  0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xc7, 0x71, 0xf8, 0x56, 0xc7, 0x1e, 0xd9, 0xcc, 0xb5, 0xad, 0xf6, 0xb4,
+  0x97, 0xa3, 0xfb, 0xa1, 0xe6, 0x0b, 0x50, 0x5f, 0x50, 0xaa, 0x3a, 0xda,
+  0x0f, 0xfc, 0x3d, 0x29, 0x24, 0x43, 0xc6, 0x10, 0x29, 0xc1, 0xfc, 0x55,
+  0x40, 0x72, 0xee, 0xbd, 0xea, 0xdf, 0x9f, 0xb6, 0x41, 0xf4, 0x48, 0x4b,
+  0xc8, 0x6e, 0xfe, 0x4f, 0x57, 0x12, 0x8b, 0x5b, 0xfa, 0x92, 0xdd, 0x5e,
+  0xe8, 0xad, 0xf3, 0xf0, 0x1b, 0xb1, 0x7b, 0x4d, 0xfb, 0xcf, 0xfd, 0xd1,
+  0xe5, 0xf8, 0xe3, 0xdc, 0xe7, 0xf5, 0x73, 0x7f, 0xdf, 0x01, 0x49, 0xcf,
+  0x8c, 0x56, 0xc1, 0xbd, 0x37, 0xe3, 0x5b, 0xbe, 0xb5, 0x4f, 0x8b, 0x8b,
+  0xf0, 0xda, 0x4f, 0xc7, 0xe3, 0xdd, 0x55, 0x47, 0x69, 0xdf, 0xf2, 0x5b,
+  0x7b, 0x07, 0x4f, 0x3d, 0xe5, 0xac, 0x21, 0xc1, 0xc8, 0x1d, 0x7a, 0xe8,
+  0xe7, 0xf6, 0x0f, 0xa1, 0xaa, 0xf5, 0x6f, 0xde, 0xa8, 0x65, 0x4f, 0x10,
+  0x89, 0x9c, 0x03, 0xf3, 0x89, 0x7a, 0xa5, 0x5e, 0x01, 0x72, 0x33, 0xed,
+  0xa9, 0xe9, 0x5a, 0x1e, 0x79, 0xf3, 0x87, 0xc8, 0xdf, 0xc8, 0xc5, 0xfc,
+  0x37, 0xc8, 0x9a, 0x9a, 0xd7, 0xb8, 0x76, 0xcc, 0xb0, 0x3e, 0xe7, 0xfd,
+  0xe6, 0x54, 0xea, 0xdf, 0x5f, 0x52, 0x41, 0x78, 0x59, 0x57, 0xad, 0xf1,
+  0x12, 0xd6, 0x7f, 0xbc, 0xd5, 0x9f, 0x70, 0xd3, 0x05, 0x6c, 0xfa, 0xa3,
+  0x7d, 0x67, 0x58, 0xdd, 0x26, 0x62, 0x1d, 0x31, 0x92, 0x0c, 0x79, 0x79,
+  0x1c, 0x8e, 0xcf, 0xca, 0x7b, 0xc1, 0x66, 0xaf, 0xa8, 0x74, 0x48, 0xfb,
+  0x8e, 0x82, 0xc2, 0x9e, 0x2c, 0x99, 0x5c, 0x7b, 0x2d, 0x5d, 0x9b, 0xbc,
+  0x5b, 0x57, 0x9e, 0x7c, 0x3a, 0x7a, 0x13, 0xad, 0xf2, 0xa3, 0x18, 0x5b,
+  0x2b, 0x59, 0x0f, 0xcd, 0x5c, 0x3a, 0xeb, 0x68, 0x33, 0xc6, 0x28, 0x1d,
+  0x82, 0xd1, 0x50, 0x8b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xd9,
+  0x30, 0x81, 0xd6, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x6b, 0x69, 0x3d, 0x6a, 0x18, 0x42,
+  0x4a, 0xdd, 0x8f, 0x02, 0x65, 0x39, 0xfd, 0x35, 0x24, 0x86, 0x78, 0x91,
+  0x16, 0x30, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05,
+  0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30,
+  0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+  0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x3a, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0, 0x2b,
+  0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+  0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f,
+  0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x34, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30,
+  0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+  0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70,
+  0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xab, 0xbc, 0xbc,
+  0x0a, 0x5d, 0x18, 0x94, 0xe3, 0xc1, 0xb1, 0xc3, 0xa8, 0x4c, 0x55, 0xd6,
+  0xbe, 0xb4, 0x98, 0xf1, 0xee, 0x3c, 0x1c, 0xcd, 0xcf, 0xf3, 0x24, 0x24,
+  0x5c, 0x96, 0x03, 0x27, 0x58, 0xfc, 0x36, 0xae, 0xa2, 0x2f, 0x8f, 0xf1,
+  0xfe, 0xda, 0x2b, 0x02, 0xc3, 0x33, 0xbd, 0xc8, 0xdd, 0x48, 0x22, 0x2b,
+  0x60, 0x0f, 0xa5, 0x03, 0x10, 0xfd, 0x77, 0xf8, 0xd0, 0xed, 0x96, 0x67,
+  0x4f, 0xfd, 0xea, 0x47, 0x20, 0x70, 0x54, 0xdc, 0xa9, 0x0c, 0x55, 0x7e,
+  0xe1, 0x96, 0x25, 0x8a, 0xd9, 0xb5, 0xda, 0x57, 0x4a, 0xbe, 0x8d, 0x8e,
+  0x49, 0x43, 0x63, 0xa5, 0x6c, 0x4e, 0x27, 0x87, 0x25, 0xeb, 0x5b, 0x6d,
+  0xfe, 0xa2, 0x7f, 0x38, 0x28, 0xe0, 0x36, 0xab, 0xad, 0x39, 0xa5, 0xa5,
+  0x62, 0xc4, 0xb7, 0x5c, 0x58, 0x2c, 0xaa, 0x5d, 0x01, 0x60, 0xa6, 0x62,
+  0x67, 0xa3, 0xc0, 0xc7, 0x62, 0x23, 0xf4, 0xe7, 0x6c, 0x46, 0xee, 0xb5,
+  0xd3, 0x80, 0x6a, 0x22, 0x13, 0xd2, 0x2d, 0x3f, 0x74, 0x4f, 0xea, 0xaf,
+  0x8c, 0x5f, 0xb4, 0x38, 0x9c, 0xdb, 0xae, 0xce, 0xaf, 0x84, 0x1e, 0xa6,
+  0xf6, 0x34, 0x51, 0x59, 0x79, 0xd3, 0xe3, 0x75, 0xdc, 0xbc, 0xd7, 0xf3,
+  0x73, 0xdf, 0x92, 0xec, 0xd2, 0x20, 0x59, 0x6f, 0x9c, 0xfb, 0x95, 0xf8,
+  0x92, 0x76, 0x18, 0x0a, 0x7c, 0x0f, 0x2c, 0xa6, 0xca, 0xde, 0x8a, 0x62,
+  0x7b, 0xd8, 0xf3, 0xce, 0x5f, 0x68, 0xbd, 0x8f, 0x3e, 0xc1, 0x74, 0xbb,
+  0x15, 0x72, 0x3a, 0x16, 0x83, 0xa9, 0x0b, 0xe6, 0x4d, 0x99, 0x9c, 0xd8,
+  0x57, 0xec, 0xa8, 0x01, 0x51, 0xc7, 0x6f, 0x57, 0x34, 0x5e, 0xab, 0x4a,
+  0x2c, 0x42, 0xf6, 0x4f, 0x1c, 0x89, 0x78, 0xde, 0x26, 0x4e, 0xf5, 0x6f,
+  0x93, 0x4c, 0x15, 0x6b, 0x27, 0x56, 0x4d, 0x00, 0x54, 0x6c, 0x7a, 0xb7,
+  0xb7,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146051 (0x23a83)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Apr  5 15:15:56 2013 GMT
+            Not After : Dec 31 23:59:59 2016 GMT
+        Subject: C=US, O=Google Inc, CN=Google Internet Authority G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:9c:2a:04:77:5c:d8:50:91:3a:06:a3:82:e0:d8:
+                    50:48:bc:89:3f:f1:19:70:1a:88:46:7e:e0:8f:c5:
+                    f1:89:ce:21:ee:5a:fe:61:0d:b7:32:44:89:a0:74:
+                    0b:53:4f:55:a4:ce:82:62:95:ee:eb:59:5f:c6:e1:
+                    05:80:12:c4:5e:94:3f:bc:5b:48:38:f4:53:f7:24:
+                    e6:fb:91:e9:15:c4:cf:f4:53:0d:f4:4a:fc:9f:54:
+                    de:7d:be:a0:6b:6f:87:c0:d0:50:1f:28:30:03:40:
+                    da:08:73:51:6c:7f:ff:3a:3c:a7:37:06:8e:bd:4b:
+                    11:04:eb:7d:24:de:e6:f9:fc:31:71:fb:94:d5:60:
+                    f3:2e:4a:af:42:d2:cb:ea:c4:6a:1a:b2:cc:53:dd:
+                    15:4b:8b:1f:c8:19:61:1f:cd:9d:a8:3e:63:2b:84:
+                    35:69:65:84:c8:19:c5:46:22:f8:53:95:be:e3:80:
+                    4a:10:c6:2a:ec:ba:97:20:11:c7:39:99:10:04:a0:
+                    f0:61:7a:95:25:8c:4e:52:75:e2:b6:ed:08:ca:14:
+                    fc:ce:22:6a:b3:4e:cf:46:03:97:97:03:7e:c0:b1:
+                    de:7b:af:45:33:cf:ba:3e:71:b7:de:f4:25:25:c2:
+                    0d:35:89:9d:9d:fb:0e:11:79:89:1e:37:c5:af:8e:
+                    72:69
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                4A:DD:06:16:1B:BC:F6:68:B5:76:F5:81:B6:BB:62:1A:BA:5A:81:2F
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.11129.2.5.1
+
+    Signature Algorithm: sha256WithRSAEncryption
+         aa:fa:a9:20:cd:6a:67:83:ed:5e:d4:7e:de:1d:c4:7f:e0:25:
+         06:00:c5:24:fb:a9:c8:2d:6d:7e:de:9d:82:65:2c:81:63:34:
+         66:3e:e9:52:c2:08:b4:cb:2f:f7:5f:99:3a:6a:9c:50:7a:85:
+         05:8c:7d:d1:2a:48:84:d3:09:6c:7c:c2:cd:35:9f:f3:82:ee:
+         52:de:68:5f:e4:00:8a:17:20:96:f7:29:8d:9a:4d:cb:a8:de:
+         86:c8:0d:6f:56:87:03:7d:03:3f:dc:fa:79:7d:21:19:f9:c8:
+         3a:2f:51:76:8c:c7:41:92:71:8f:25:ce:37:f8:4a:4c:00:23:
+         ef:c4:35:10:ae:e0:23:80:73:7c:4d:34:2e:c8:6e:90:d6:10:
+         1e:99:84:73:1a:70:f2:ed:55:0e:ee:17:06:ea:67:ee:32:eb:
+         2c:dd:67:07:3f:f6:8b:c2:70:de:5b:00:e6:bb:1b:d3:36:1a:
+         22:6c:6c:b0:35:42:6c:90:09:3d:93:e9:64:09:22:0e:85:06:
+         9f:c2:73:21:d3:e6:5f:80:e4:8d:85:22:3a:73:03:b1:60:8e:
+         ae:68:e2:f4:3e:97:e7:60:12:09:68:36:de:3a:d6:e2:43:95:
+         5b:37:81:92:81:1f:bb:8d:d7:ad:52:64:16:57:96:d9:5e:34:
+         7e:c8:35:d8
+-----BEGIN CERTIFICATE-----
+MIID8DCCAtigAwIBAgIDAjqDMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMwNDA1MTUxNTU2WhcNMTYxMjMxMjM1OTU5WjBJMQswCQYDVQQG
+EwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzElMCMGA1UEAxMcR29vZ2xlIEludGVy
+bmV0IEF1dGhvcml0eSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AJwqBHdc2FCROgajguDYUEi8iT/xGXAaiEZ+4I/F8YnOIe5a/mENtzJEiaB0C1NP
+VaTOgmKV7utZX8bhBYASxF6UP7xbSDj0U/ck5vuR6RXEz/RTDfRK/J9U3n2+oGtv
+h8DQUB8oMANA2ghzUWx//zo8pzcGjr1LEQTrfSTe5vn8MXH7lNVg8y5Kr0LSy+rE
+ahqyzFPdFUuLH8gZYR/Nnag+YyuENWllhMgZxUYi+FOVvuOAShDGKuy6lyARxzmZ
+EASg8GF6lSWMTlJ14rbtCMoU/M4iarNOz0YDl5cDfsCx3nuvRTPPuj5xt970JSXC
+DTWJnZ37DhF5iR43xa+OcmkCAwEAAaOB5zCB5DAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1dvWBtrtiGrpagS8wDgYD
+VR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDov
+L2cuc3ltY2QuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMBcGA1UdIAQQ
+MA4wDAYKKwYBBAHWeQIFATANBgkqhkiG9w0BAQsFAAOCAQEAqvqpIM1qZ4PtXtR+
+3h3Ef+AlBgDFJPupyC1tft6dgmUsgWM0Zj7pUsIItMsv91+ZOmqcUHqFBYx90SpI
+hNMJbHzCzTWf84LuUt5oX+QAihcglvcpjZpNy6jehsgNb1aHA30DP9z6eX0hGfnI
+Oi9RdozHQZJxjyXON/hKTAAj78Q1EK7gI4BzfE00LshukNYQHpmEcxpw8u1VDu4X
+Bupn7jLrLN1nBz/2i8Jw3lsA5rsb0zYaImxssDVCbJAJPZPpZAkiDoUGn8JzIdPm
+X4DkjYUiOnMDsWCOrmji9D6X52ASCWg23jrW4kOVWzeBkoEfu43XrVJkFleW2V40
+fsg12A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert3[] = {
+  0x30, 0x82, 0x03, 0xf0, 0x30, 0x82, 0x02, 0xd8, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x83, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30,
+  0x34, 0x30, 0x35, 0x31, 0x35, 0x31, 0x35, 0x35, 0x36, 0x5a, 0x17, 0x0d,
+  0x31, 0x36, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39,
+  0x5a, 0x30, 0x49, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e,
+  0x63, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1c,
+  0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72,
+  0x6e, 0x65, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+  0x79, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0x9c, 0x2a, 0x04, 0x77, 0x5c, 0xd8, 0x50, 0x91, 0x3a, 0x06, 0xa3,
+  0x82, 0xe0, 0xd8, 0x50, 0x48, 0xbc, 0x89, 0x3f, 0xf1, 0x19, 0x70, 0x1a,
+  0x88, 0x46, 0x7e, 0xe0, 0x8f, 0xc5, 0xf1, 0x89, 0xce, 0x21, 0xee, 0x5a,
+  0xfe, 0x61, 0x0d, 0xb7, 0x32, 0x44, 0x89, 0xa0, 0x74, 0x0b, 0x53, 0x4f,
+  0x55, 0xa4, 0xce, 0x82, 0x62, 0x95, 0xee, 0xeb, 0x59, 0x5f, 0xc6, 0xe1,
+  0x05, 0x80, 0x12, 0xc4, 0x5e, 0x94, 0x3f, 0xbc, 0x5b, 0x48, 0x38, 0xf4,
+  0x53, 0xf7, 0x24, 0xe6, 0xfb, 0x91, 0xe9, 0x15, 0xc4, 0xcf, 0xf4, 0x53,
+  0x0d, 0xf4, 0x4a, 0xfc, 0x9f, 0x54, 0xde, 0x7d, 0xbe, 0xa0, 0x6b, 0x6f,
+  0x87, 0xc0, 0xd0, 0x50, 0x1f, 0x28, 0x30, 0x03, 0x40, 0xda, 0x08, 0x73,
+  0x51, 0x6c, 0x7f, 0xff, 0x3a, 0x3c, 0xa7, 0x37, 0x06, 0x8e, 0xbd, 0x4b,
+  0x11, 0x04, 0xeb, 0x7d, 0x24, 0xde, 0xe6, 0xf9, 0xfc, 0x31, 0x71, 0xfb,
+  0x94, 0xd5, 0x60, 0xf3, 0x2e, 0x4a, 0xaf, 0x42, 0xd2, 0xcb, 0xea, 0xc4,
+  0x6a, 0x1a, 0xb2, 0xcc, 0x53, 0xdd, 0x15, 0x4b, 0x8b, 0x1f, 0xc8, 0x19,
+  0x61, 0x1f, 0xcd, 0x9d, 0xa8, 0x3e, 0x63, 0x2b, 0x84, 0x35, 0x69, 0x65,
+  0x84, 0xc8, 0x19, 0xc5, 0x46, 0x22, 0xf8, 0x53, 0x95, 0xbe, 0xe3, 0x80,
+  0x4a, 0x10, 0xc6, 0x2a, 0xec, 0xba, 0x97, 0x20, 0x11, 0xc7, 0x39, 0x99,
+  0x10, 0x04, 0xa0, 0xf0, 0x61, 0x7a, 0x95, 0x25, 0x8c, 0x4e, 0x52, 0x75,
+  0xe2, 0xb6, 0xed, 0x08, 0xca, 0x14, 0xfc, 0xce, 0x22, 0x6a, 0xb3, 0x4e,
+  0xcf, 0x46, 0x03, 0x97, 0x97, 0x03, 0x7e, 0xc0, 0xb1, 0xde, 0x7b, 0xaf,
+  0x45, 0x33, 0xcf, 0xba, 0x3e, 0x71, 0xb7, 0xde, 0xf4, 0x25, 0x25, 0xc2,
+  0x0d, 0x35, 0x89, 0x9d, 0x9d, 0xfb, 0x0e, 0x11, 0x79, 0x89, 0x1e, 0x37,
+  0xc5, 0xaf, 0x8e, 0x72, 0x69, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81,
+  0xe7, 0x30, 0x81, 0xe4, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+  0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+  0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x4a, 0xdd, 0x06, 0x16, 0x1b, 0xbc, 0xf6, 0x68, 0xb5, 0x76, 0xf5, 0x81,
+  0xb6, 0xbb, 0x62, 0x1a, 0xba, 0x5a, 0x81, 0x2f, 0x30, 0x0e, 0x06, 0x03,
+  0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+  0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+  0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x35, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+  0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+  0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+  0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x17, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x10,
+  0x30, 0x0e, 0x30, 0x0c, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6,
+  0x79, 0x02, 0x05, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+  0xaa, 0xfa, 0xa9, 0x20, 0xcd, 0x6a, 0x67, 0x83, 0xed, 0x5e, 0xd4, 0x7e,
+  0xde, 0x1d, 0xc4, 0x7f, 0xe0, 0x25, 0x06, 0x00, 0xc5, 0x24, 0xfb, 0xa9,
+  0xc8, 0x2d, 0x6d, 0x7e, 0xde, 0x9d, 0x82, 0x65, 0x2c, 0x81, 0x63, 0x34,
+  0x66, 0x3e, 0xe9, 0x52, 0xc2, 0x08, 0xb4, 0xcb, 0x2f, 0xf7, 0x5f, 0x99,
+  0x3a, 0x6a, 0x9c, 0x50, 0x7a, 0x85, 0x05, 0x8c, 0x7d, 0xd1, 0x2a, 0x48,
+  0x84, 0xd3, 0x09, 0x6c, 0x7c, 0xc2, 0xcd, 0x35, 0x9f, 0xf3, 0x82, 0xee,
+  0x52, 0xde, 0x68, 0x5f, 0xe4, 0x00, 0x8a, 0x17, 0x20, 0x96, 0xf7, 0x29,
+  0x8d, 0x9a, 0x4d, 0xcb, 0xa8, 0xde, 0x86, 0xc8, 0x0d, 0x6f, 0x56, 0x87,
+  0x03, 0x7d, 0x03, 0x3f, 0xdc, 0xfa, 0x79, 0x7d, 0x21, 0x19, 0xf9, 0xc8,
+  0x3a, 0x2f, 0x51, 0x76, 0x8c, 0xc7, 0x41, 0x92, 0x71, 0x8f, 0x25, 0xce,
+  0x37, 0xf8, 0x4a, 0x4c, 0x00, 0x23, 0xef, 0xc4, 0x35, 0x10, 0xae, 0xe0,
+  0x23, 0x80, 0x73, 0x7c, 0x4d, 0x34, 0x2e, 0xc8, 0x6e, 0x90, 0xd6, 0x10,
+  0x1e, 0x99, 0x84, 0x73, 0x1a, 0x70, 0xf2, 0xed, 0x55, 0x0e, 0xee, 0x17,
+  0x06, 0xea, 0x67, 0xee, 0x32, 0xeb, 0x2c, 0xdd, 0x67, 0x07, 0x3f, 0xf6,
+  0x8b, 0xc2, 0x70, 0xde, 0x5b, 0x00, 0xe6, 0xbb, 0x1b, 0xd3, 0x36, 0x1a,
+  0x22, 0x6c, 0x6c, 0xb0, 0x35, 0x42, 0x6c, 0x90, 0x09, 0x3d, 0x93, 0xe9,
+  0x64, 0x09, 0x22, 0x0e, 0x85, 0x06, 0x9f, 0xc2, 0x73, 0x21, 0xd3, 0xe6,
+  0x5f, 0x80, 0xe4, 0x8d, 0x85, 0x22, 0x3a, 0x73, 0x03, 0xb1, 0x60, 0x8e,
+  0xae, 0x68, 0xe2, 0xf4, 0x3e, 0x97, 0xe7, 0x60, 0x12, 0x09, 0x68, 0x36,
+  0xde, 0x3a, 0xd6, 0xe2, 0x43, 0x95, 0x5b, 0x37, 0x81, 0x92, 0x81, 0x1f,
+  0xbb, 0x8d, 0xd7, 0xad, 0x52, 0x64, 0x16, 0x57, 0x96, 0xd9, 0x5e, 0x34,
+  0x7e, 0xc8, 0x35, 0xd8,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120033005 (0x7278eed)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
+        Validity
+            Not Before: Apr 18 16:36:18 2012 GMT
+            Not After : Aug 13 16:35:17 2018 GMT
+        Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a3:04:bb:22:ab:98:3d:57:e8:26:72:9a:b5:79:
+                    d4:29:e2:e1:e8:95:80:b1:b0:e3:5b:8e:2b:29:9a:
+                    64:df:a1:5d:ed:b0:09:05:6d:db:28:2e:ce:62:a2:
+                    62:fe:b4:88:da:12:eb:38:eb:21:9d:c0:41:2b:01:
+                    52:7b:88:77:d3:1c:8f:c7:ba:b9:88:b5:6a:09:e7:
+                    73:e8:11:40:a7:d1:cc:ca:62:8d:2d:e5:8f:0b:a6:
+                    50:d2:a8:50:c3:28:ea:f5:ab:25:87:8a:9a:96:1c:
+                    a9:67:b8:3f:0c:d5:f7:f9:52:13:2f:c2:1b:d5:70:
+                    70:f0:8f:c0:12:ca:06:cb:9a:e1:d9:ca:33:7a:77:
+                    d6:f8:ec:b9:f1:68:44:42:48:13:d2:c0:c2:a4:ae:
+                    5e:60:fe:b6:a6:05:fc:b4:dd:07:59:02:d4:59:18:
+                    98:63:f5:a5:63:e0:90:0c:7d:5d:b2:06:7a:f3:85:
+                    ea:eb:d4:03:ae:5e:84:3e:5f:ff:15:ed:69:bc:f9:
+                    39:36:72:75:cf:77:52:4d:f3:c9:90:2c:b9:3d:e5:
+                    c9:23:53:3f:1f:24:98:21:5c:07:99:29:bd:c6:3a:
+                    ec:e7:6e:86:3a:6b:97:74:63:33:bd:68:18:31:f0:
+                    78:8d:76:bf:fc:9e:8e:5d:2a:86:a7:4d:90:dc:27:
+                    1a:39
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:3
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://cybertrust.omniroot.com/repository
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Authority Key Identifier: 
+                DirName:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc./CN=GTE CyberTrust Global Root
+                serial:01:A5
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://www.public-trust.com/cgi-bin/CRL/2018/cdp.crl
+
+    Signature Algorithm: sha1WithRSAEncryption
+         93:1d:fe:8b:ae:46:ec:cb:a9:0f:ab:e5:ef:ca:b2:68:16:68:
+         d8:8f:fa:13:a9:af:b3:cb:2d:e7:4b:6e:8e:69:2a:c2:2b:10:
+         0a:8d:f6:ae:73:b6:b9:fb:14:fd:5f:6d:b8:50:b6:c4:8a:d6:
+         40:7e:d7:c3:cb:73:dc:c9:5d:5b:af:b0:41:b5:37:eb:ea:dc:
+         20:91:c4:34:6a:f4:a1:f3:96:9d:37:86:97:e1:71:a4:dd:7d:
+         fa:44:84:94:ae:d7:09:04:22:76:0f:64:51:35:a9:24:0f:f9:
+         0b:db:32:da:c2:fe:c1:b9:2a:5c:7a:27:13:ca:b1:48:3a:71:
+         d0:43
+-----BEGIN CERTIFICATE-----
+MIIEFTCCA36gAwIBAgIEByeO7TANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV
+UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
+cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
+b2JhbCBSb290MB4XDTEyMDQxODE2MzYxOFoXDTE4MDgxMzE2MzUxN1owWjELMAkG
+A1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVz
+dDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uO
+KymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnn
+c+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
+wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPg
+kAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFc
+B5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaOCAUcw
+ggFDMBIGA1UdEwEB/wQIMAYBAf8CAQMwSgYDVR0gBEMwQTA/BgRVHSAAMDcwNQYI
+KwYBBQUHAgEWKWh0dHA6Ly9jeWJlcnRydXN0Lm9tbmlyb290LmNvbS9yZXBvc2l0
+b3J5MA4GA1UdDwEB/wQEAwIBBjCBiQYDVR0jBIGBMH+heaR3MHUxCzAJBgNVBAYT
+AlVTMRgwFgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJl
+clRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3Qg
+R2xvYmFsIFJvb3SCAgGlMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly93d3cucHVi
+bGljLXRydXN0LmNvbS9jZ2ktYmluL0NSTC8yMDE4L2NkcC5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAkx3+i65G7MupD6vl78qyaBZo2I/6E6mvs8st50tujmkqwisQCo32
+rnO2ufsU/V9tuFC2xIrWQH7Xw8tz3MldW6+wQbU36+rcIJHENGr0ofOWnTeGl+Fx
+pN19+kSElK7XCQQidg9kUTWpJA/5C9sy2sL+wbkqXHonE8qxSDpx0EM=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert4[] = {
+  0x30, 0x82, 0x04, 0x15, 0x30, 0x82, 0x03, 0x7e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0x8e, 0xed, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x75,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f,
+  0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f,
+  0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23, 0x30, 0x21,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45, 0x20, 0x43,
+  0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c,
+  0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x32, 0x30, 0x34, 0x31, 0x38, 0x31, 0x36, 0x33, 0x36, 0x31,
+  0x38, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x38, 0x31, 0x33, 0x31, 0x36,
+  0x33, 0x35, 0x31, 0x37, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x45, 0x31, 0x12, 0x30, 0x10,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09, 0x42, 0x61, 0x6c, 0x74, 0x69,
+  0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x79,
+  0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+  0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+  0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x04,
+  0xbb, 0x22, 0xab, 0x98, 0x3d, 0x57, 0xe8, 0x26, 0x72, 0x9a, 0xb5, 0x79,
+  0xd4, 0x29, 0xe2, 0xe1, 0xe8, 0x95, 0x80, 0xb1, 0xb0, 0xe3, 0x5b, 0x8e,
+  0x2b, 0x29, 0x9a, 0x64, 0xdf, 0xa1, 0x5d, 0xed, 0xb0, 0x09, 0x05, 0x6d,
+  0xdb, 0x28, 0x2e, 0xce, 0x62, 0xa2, 0x62, 0xfe, 0xb4, 0x88, 0xda, 0x12,
+  0xeb, 0x38, 0xeb, 0x21, 0x9d, 0xc0, 0x41, 0x2b, 0x01, 0x52, 0x7b, 0x88,
+  0x77, 0xd3, 0x1c, 0x8f, 0xc7, 0xba, 0xb9, 0x88, 0xb5, 0x6a, 0x09, 0xe7,
+  0x73, 0xe8, 0x11, 0x40, 0xa7, 0xd1, 0xcc, 0xca, 0x62, 0x8d, 0x2d, 0xe5,
+  0x8f, 0x0b, 0xa6, 0x50, 0xd2, 0xa8, 0x50, 0xc3, 0x28, 0xea, 0xf5, 0xab,
+  0x25, 0x87, 0x8a, 0x9a, 0x96, 0x1c, 0xa9, 0x67, 0xb8, 0x3f, 0x0c, 0xd5,
+  0xf7, 0xf9, 0x52, 0x13, 0x2f, 0xc2, 0x1b, 0xd5, 0x70, 0x70, 0xf0, 0x8f,
+  0xc0, 0x12, 0xca, 0x06, 0xcb, 0x9a, 0xe1, 0xd9, 0xca, 0x33, 0x7a, 0x77,
+  0xd6, 0xf8, 0xec, 0xb9, 0xf1, 0x68, 0x44, 0x42, 0x48, 0x13, 0xd2, 0xc0,
+  0xc2, 0xa4, 0xae, 0x5e, 0x60, 0xfe, 0xb6, 0xa6, 0x05, 0xfc, 0xb4, 0xdd,
+  0x07, 0x59, 0x02, 0xd4, 0x59, 0x18, 0x98, 0x63, 0xf5, 0xa5, 0x63, 0xe0,
+  0x90, 0x0c, 0x7d, 0x5d, 0xb2, 0x06, 0x7a, 0xf3, 0x85, 0xea, 0xeb, 0xd4,
+  0x03, 0xae, 0x5e, 0x84, 0x3e, 0x5f, 0xff, 0x15, 0xed, 0x69, 0xbc, 0xf9,
+  0x39, 0x36, 0x72, 0x75, 0xcf, 0x77, 0x52, 0x4d, 0xf3, 0xc9, 0x90, 0x2c,
+  0xb9, 0x3d, 0xe5, 0xc9, 0x23, 0x53, 0x3f, 0x1f, 0x24, 0x98, 0x21, 0x5c,
+  0x07, 0x99, 0x29, 0xbd, 0xc6, 0x3a, 0xec, 0xe7, 0x6e, 0x86, 0x3a, 0x6b,
+  0x97, 0x74, 0x63, 0x33, 0xbd, 0x68, 0x18, 0x31, 0xf0, 0x78, 0x8d, 0x76,
+  0xbf, 0xfc, 0x9e, 0x8e, 0x5d, 0x2a, 0x86, 0xa7, 0x4d, 0x90, 0xdc, 0x27,
+  0x1a, 0x39, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x47, 0x30,
+  0x82, 0x01, 0x43, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x03, 0x30,
+  0x4a, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x43, 0x30, 0x41, 0x30, 0x3f,
+  0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x37, 0x30, 0x35, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x29, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+  0x6f, 0x72, 0x79, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x81, 0x89, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x81, 0x81, 0x30, 0x7f, 0xa1, 0x79, 0xa4, 0x77,
+  0x30, 0x75, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x55, 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x0f, 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74,
+  0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23,
+  0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45,
+  0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x82,
+  0x02, 0x01, 0xa5, 0x30, 0x45, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3e,
+  0x30, 0x3c, 0x30, 0x3a, 0xa0, 0x38, 0xa0, 0x36, 0x86, 0x34, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x70, 0x75, 0x62,
+  0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69, 0x6e, 0x2f, 0x43, 0x52,
+  0x4c, 0x2f, 0x32, 0x30, 0x31, 0x38, 0x2f, 0x63, 0x64, 0x70, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x93, 0x1d, 0xfe,
+  0x8b, 0xae, 0x46, 0xec, 0xcb, 0xa9, 0x0f, 0xab, 0xe5, 0xef, 0xca, 0xb2,
+  0x68, 0x16, 0x68, 0xd8, 0x8f, 0xfa, 0x13, 0xa9, 0xaf, 0xb3, 0xcb, 0x2d,
+  0xe7, 0x4b, 0x6e, 0x8e, 0x69, 0x2a, 0xc2, 0x2b, 0x10, 0x0a, 0x8d, 0xf6,
+  0xae, 0x73, 0xb6, 0xb9, 0xfb, 0x14, 0xfd, 0x5f, 0x6d, 0xb8, 0x50, 0xb6,
+  0xc4, 0x8a, 0xd6, 0x40, 0x7e, 0xd7, 0xc3, 0xcb, 0x73, 0xdc, 0xc9, 0x5d,
+  0x5b, 0xaf, 0xb0, 0x41, 0xb5, 0x37, 0xeb, 0xea, 0xdc, 0x20, 0x91, 0xc4,
+  0x34, 0x6a, 0xf4, 0xa1, 0xf3, 0x96, 0x9d, 0x37, 0x86, 0x97, 0xe1, 0x71,
+  0xa4, 0xdd, 0x7d, 0xfa, 0x44, 0x84, 0x94, 0xae, 0xd7, 0x09, 0x04, 0x22,
+  0x76, 0x0f, 0x64, 0x51, 0x35, 0xa9, 0x24, 0x0f, 0xf9, 0x0b, 0xdb, 0x32,
+  0xda, 0xc2, 0xfe, 0xc1, 0xb9, 0x2a, 0x5c, 0x7a, 0x27, 0x13, 0xca, 0xb1,
+  0x48, 0x3a, 0x71, 0xd0, 0x43,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146041 (0x23a79)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Sep  8 20:41:10 2014 GMT
+            Not After : May 20 20:41:10 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:9a:7d:98:68:11:40:c1:5f:72:ec:55:b3:b1:63:
+                    f3:32:22:72:91:c6:16:05:bb:08:82:31:b4:f6:ee:
+                    d4:18:39:11:2f:2e:da:47:fe:51:31:6e:5b:f2:a9:
+                    0a:eb:2f:bb:f5:61:59:65:57:02:cd:80:ff:c7:70:
+                    32:54:89:fd:db:ae:99:72:d4:4f:0c:26:b9:2e:63:
+                    30:7d:de:14:5b:6a:d7:52:78:21:f9:bf:bc:50:d5:
+                    54:12:59:d8:b5:36:d9:21:47:b8:3f:6a:58:1d:8c:
+                    72:e1:97:95:d3:e1:45:a8:f1:5a:e5:be:fe:e3:53:
+                    7c:a5:f0:52:e0:cf:39:94:0c:19:71:f2:c0:25:07:
+                    48:7d:1c:e6:f1:39:25:2f:98:79:43:e8:18:72:f4:
+                    65:86:98:5a:00:04:47:da:4b:58:1e:7c:86:b1:4b:
+                    35:a6:20:00:1c:cd:1b:3b:22:5d:d1:93:28:33:12:
+                    23:94:08:aa:c3:3a:f5:d1:c6:8c:7e:99:d3:18:a0:
+                    ad:9d:18:cf:49:ad:10:03:f7:99:33:26:86:46:9a:
+                    2f:a0:ba:6c:6e:c8:88:02:b7:6e:fa:7a:9e:98:4a:
+                    ee:9a:31:7d:19:14:60:0c:ec:8f:20:23:3c:da:97:
+                    26:b6:ea:80:6c:8a:57:9e:20:ee:6f:17:25:4a:32:
+                    ad:35
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                AC:32:ED:5A:C9:E0:DE:30:9C:90:58:55:26:63:F6:72:A6:54:5F:E3
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+    Signature Algorithm: sha256WithRSAEncryption
+         61:40:ad:21:0f:03:bb:95:dc:89:fc:a3:cb:05:71:e9:1c:59:
+         97:35:c2:fa:6b:05:a4:16:c6:56:46:37:74:1b:1b:f1:3e:2c:
+         e8:37:19:b7:94:d2:0f:0e:c5:bf:14:07:2b:34:cd:5b:b4:8d:
+         c7:56:9d:19:fc:02:b4:9e:90:31:fa:a4:44:c6:75:dd:dd:1f:
+         25:54:a3:30:4c:ac:db:fe:c4:88:f7:31:26:18:47:ae:4c:20:
+         19:1a:c7:ae:3e:98:0a:16:3d:d2:c2:a6:5d:0d:2e:29:7d:b2:
+         9d:c7:41:32:17:ca:9d:ae:39:bf:91:98:de:e7:44:e2:95:9c:
+         94:5c:6c:42:1b:59:c9:7b:68:13:a8:96:09:74:ee:40:14:a4:
+         d5:d7:c9:7b:33:a3:0f:5a:69:9c:1a:fa:6f:12:47:1c:df:1e:
+         4c:70:4e:6d:dd:fe:1c:87:b5:9d:e1:54:07:09:8a:cd:be:aa:
+         a8:46:78:6e:16:f2:e7:91:0e:c3:af:da:76:00:d1:d8:a2:46:
+         24:03:a5:1a:85:81:56:83:63:27:ba:90:8e:f9:62:11:ba:a7:
+         7c:90:a9:1a:66:b4:c5:bc:8f:29:41:ab:eb:8d:99:a6:cc:91:
+         64:ba:dc:c6:a6:4c:b3:b4:23:26:51:72:56:f9:f3:74:55:9f:
+         25:75:4f:2b
+-----BEGIN CERTIFICATE-----
+MIIEIjCCAwqgAwIBAgIDAjp5MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwOTA4MjA0MTEwWhcNMjIwNTIwMjA0MTEwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCafZho
+EUDBX3LsVbOxY/MyInKRxhYFuwiCMbT27tQYOREvLtpH/lExblvyqQrrL7v1YVll
+VwLNgP/HcDJUif3brply1E8MJrkuYzB93hRbatdSeCH5v7xQ1VQSWdi1NtkhR7g/
+algdjHLhl5XT4UWo8Vrlvv7jU3yl8FLgzzmUDBlx8sAlB0h9HObxOSUvmHlD6Bhy
+9GWGmFoABEfaS1gefIaxSzWmIAAczRs7Il3RkygzEiOUCKrDOvXRxox+mdMYoK2d
+GM9JrRAD95kzJoZGmi+gumxuyIgCt276ep6YSu6aMX0ZFGAM7I8gIzzalya26oBs
+ileeIO5vFyVKMq01AgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQUrDLtWsng3jCckFhVJmP2cqZUX+MwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCigJoYk
+aHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUFBwEB
+BCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARFMEMw
+QQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3RydXN0
+LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQBhQK0hDwO7ldyJ
+/KPLBXHpHFmXNcL6awWkFsZWRjd0GxvxPizoNxm3lNIPDsW/FAcrNM1btI3HVp0Z
+/AK0npAx+qRExnXd3R8lVKMwTKzb/sSI9zEmGEeuTCAZGseuPpgKFj3SwqZdDS4p
+fbKdx0EyF8qdrjm/kZje50TilZyUXGxCG1nJe2gTqJYJdO5AFKTV18l7M6MPWmmc
+GvpvEkcc3x5McE5t3f4ch7Wd4VQHCYrNvqqoRnhuFvLnkQ7Dr9p2ANHYokYkA6Ua
+hYFWg2MnupCO+WIRuqd8kKkaZrTFvI8pQavrjZmmzJFkutzGpkyztCMmUXJW+fN0
+VZ8ldU8r
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert5[] = {
+  0x30, 0x82, 0x04, 0x22, 0x30, 0x82, 0x03, 0x0a, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x79, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+  0x39, 0x30, 0x38, 0x32, 0x30, 0x34, 0x31, 0x31, 0x30, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x30, 0x34, 0x31, 0x31, 0x30,
+  0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x9a, 0x7d, 0x98, 0x68,
+  0x11, 0x40, 0xc1, 0x5f, 0x72, 0xec, 0x55, 0xb3, 0xb1, 0x63, 0xf3, 0x32,
+  0x22, 0x72, 0x91, 0xc6, 0x16, 0x05, 0xbb, 0x08, 0x82, 0x31, 0xb4, 0xf6,
+  0xee, 0xd4, 0x18, 0x39, 0x11, 0x2f, 0x2e, 0xda, 0x47, 0xfe, 0x51, 0x31,
+  0x6e, 0x5b, 0xf2, 0xa9, 0x0a, 0xeb, 0x2f, 0xbb, 0xf5, 0x61, 0x59, 0x65,
+  0x57, 0x02, 0xcd, 0x80, 0xff, 0xc7, 0x70, 0x32, 0x54, 0x89, 0xfd, 0xdb,
+  0xae, 0x99, 0x72, 0xd4, 0x4f, 0x0c, 0x26, 0xb9, 0x2e, 0x63, 0x30, 0x7d,
+  0xde, 0x14, 0x5b, 0x6a, 0xd7, 0x52, 0x78, 0x21, 0xf9, 0xbf, 0xbc, 0x50,
+  0xd5, 0x54, 0x12, 0x59, 0xd8, 0xb5, 0x36, 0xd9, 0x21, 0x47, 0xb8, 0x3f,
+  0x6a, 0x58, 0x1d, 0x8c, 0x72, 0xe1, 0x97, 0x95, 0xd3, 0xe1, 0x45, 0xa8,
+  0xf1, 0x5a, 0xe5, 0xbe, 0xfe, 0xe3, 0x53, 0x7c, 0xa5, 0xf0, 0x52, 0xe0,
+  0xcf, 0x39, 0x94, 0x0c, 0x19, 0x71, 0xf2, 0xc0, 0x25, 0x07, 0x48, 0x7d,
+  0x1c, 0xe6, 0xf1, 0x39, 0x25, 0x2f, 0x98, 0x79, 0x43, 0xe8, 0x18, 0x72,
+  0xf4, 0x65, 0x86, 0x98, 0x5a, 0x00, 0x04, 0x47, 0xda, 0x4b, 0x58, 0x1e,
+  0x7c, 0x86, 0xb1, 0x4b, 0x35, 0xa6, 0x20, 0x00, 0x1c, 0xcd, 0x1b, 0x3b,
+  0x22, 0x5d, 0xd1, 0x93, 0x28, 0x33, 0x12, 0x23, 0x94, 0x08, 0xaa, 0xc3,
+  0x3a, 0xf5, 0xd1, 0xc6, 0x8c, 0x7e, 0x99, 0xd3, 0x18, 0xa0, 0xad, 0x9d,
+  0x18, 0xcf, 0x49, 0xad, 0x10, 0x03, 0xf7, 0x99, 0x33, 0x26, 0x86, 0x46,
+  0x9a, 0x2f, 0xa0, 0xba, 0x6c, 0x6e, 0xc8, 0x88, 0x02, 0xb7, 0x6e, 0xfa,
+  0x7a, 0x9e, 0x98, 0x4a, 0xee, 0x9a, 0x31, 0x7d, 0x19, 0x14, 0x60, 0x0c,
+  0xec, 0x8f, 0x20, 0x23, 0x3c, 0xda, 0x97, 0x26, 0xb6, 0xea, 0x80, 0x6c,
+  0x8a, 0x57, 0x9e, 0x20, 0xee, 0x6f, 0x17, 0x25, 0x4a, 0x32, 0xad, 0x35,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d, 0x30, 0x82, 0x01,
+  0x19, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+  0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xac, 0x32, 0xed,
+  0x5a, 0xc9, 0xe0, 0xde, 0x30, 0x9c, 0x90, 0x58, 0x55, 0x26, 0x63, 0xf6,
+  0x72, 0xa6, 0x54, 0x5f, 0xe3, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d,
+  0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f,
+  0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+  0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+  0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+  0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x01, 0x00, 0x61, 0x40, 0xad, 0x21, 0x0f, 0x03, 0xbb, 0x95, 0xdc, 0x89,
+  0xfc, 0xa3, 0xcb, 0x05, 0x71, 0xe9, 0x1c, 0x59, 0x97, 0x35, 0xc2, 0xfa,
+  0x6b, 0x05, 0xa4, 0x16, 0xc6, 0x56, 0x46, 0x37, 0x74, 0x1b, 0x1b, 0xf1,
+  0x3e, 0x2c, 0xe8, 0x37, 0x19, 0xb7, 0x94, 0xd2, 0x0f, 0x0e, 0xc5, 0xbf,
+  0x14, 0x07, 0x2b, 0x34, 0xcd, 0x5b, 0xb4, 0x8d, 0xc7, 0x56, 0x9d, 0x19,
+  0xfc, 0x02, 0xb4, 0x9e, 0x90, 0x31, 0xfa, 0xa4, 0x44, 0xc6, 0x75, 0xdd,
+  0xdd, 0x1f, 0x25, 0x54, 0xa3, 0x30, 0x4c, 0xac, 0xdb, 0xfe, 0xc4, 0x88,
+  0xf7, 0x31, 0x26, 0x18, 0x47, 0xae, 0x4c, 0x20, 0x19, 0x1a, 0xc7, 0xae,
+  0x3e, 0x98, 0x0a, 0x16, 0x3d, 0xd2, 0xc2, 0xa6, 0x5d, 0x0d, 0x2e, 0x29,
+  0x7d, 0xb2, 0x9d, 0xc7, 0x41, 0x32, 0x17, 0xca, 0x9d, 0xae, 0x39, 0xbf,
+  0x91, 0x98, 0xde, 0xe7, 0x44, 0xe2, 0x95, 0x9c, 0x94, 0x5c, 0x6c, 0x42,
+  0x1b, 0x59, 0xc9, 0x7b, 0x68, 0x13, 0xa8, 0x96, 0x09, 0x74, 0xee, 0x40,
+  0x14, 0xa4, 0xd5, 0xd7, 0xc9, 0x7b, 0x33, 0xa3, 0x0f, 0x5a, 0x69, 0x9c,
+  0x1a, 0xfa, 0x6f, 0x12, 0x47, 0x1c, 0xdf, 0x1e, 0x4c, 0x70, 0x4e, 0x6d,
+  0xdd, 0xfe, 0x1c, 0x87, 0xb5, 0x9d, 0xe1, 0x54, 0x07, 0x09, 0x8a, 0xcd,
+  0xbe, 0xaa, 0xa8, 0x46, 0x78, 0x6e, 0x16, 0xf2, 0xe7, 0x91, 0x0e, 0xc3,
+  0xaf, 0xda, 0x76, 0x00, 0xd1, 0xd8, 0xa2, 0x46, 0x24, 0x03, 0xa5, 0x1a,
+  0x85, 0x81, 0x56, 0x83, 0x63, 0x27, 0xba, 0x90, 0x8e, 0xf9, 0x62, 0x11,
+  0xba, 0xa7, 0x7c, 0x90, 0xa9, 0x1a, 0x66, 0xb4, 0xc5, 0xbc, 0x8f, 0x29,
+  0x41, 0xab, 0xeb, 0x8d, 0x99, 0xa6, 0xcc, 0x91, 0x64, 0xba, 0xdc, 0xc6,
+  0xa6, 0x4c, 0xb3, 0xb4, 0x23, 0x26, 0x51, 0x72, 0x56, 0xf9, 0xf3, 0x74,
+  0x55, 0x9f, 0x25, 0x75, 0x4f, 0x2b,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146039 (0x23a77)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Aug 29 21:39:32 2014 GMT
+            Not After : May 20 21:39:32 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:54:9b:d9:58:5d:1e:2c:56:c6:d5:e8:7f:f4:
+                    7d:16:03:ff:d0:8b:5a:e4:8e:a7:dd:54:2e:d4:04:
+                    c0:5d:98:9c:8d:90:0f:bc:10:65:5f:da:9a:d6:44:
+                    7c:c0:9f:b5:e9:4a:8c:0b:06:43:04:bb:f4:96:e2:
+                    26:f6:61:01:91:66:31:22:c3:34:34:5f:3f:3f:91:
+                    2f:44:5f:dc:c7:14:b6:03:9f:86:4b:0e:a3:ff:a0:
+                    80:02:83:c3:d3:1f:69:52:d6:9d:64:0f:c9:83:e7:
+                    1b:c4:70:ac:94:e7:c3:a4:6a:2c:bd:b8:9e:69:d8:
+                    be:0a:8f:16:63:5a:68:71:80:7b:30:de:15:04:bf:
+                    cc:d3:bf:3e:48:05:55:7a:b3:d7:10:0c:03:fc:9b:
+                    fd:08:a7:8c:8c:db:a7:8e:f1:1e:63:dc:b3:01:2f:
+                    7f:af:57:c3:3c:48:a7:83:68:21:a7:2f:e7:a7:3f:
+                    f0:b5:0c:fc:f5:84:d1:53:bc:0e:72:4f:60:0c:42:
+                    b8:98:ad:19:88:57:d7:04:ec:87:bf:7e:87:4e:a3:
+                    21:f9:53:fd:36:98:48:8d:d6:f8:bb:48:f2:29:c8:
+                    64:d1:cc:54:48:53:8b:af:b7:65:1e:bf:29:33:29:
+                    d9:29:60:48:f8:ff:91:bc:57:58:e5:35:2e:bb:69:
+                    b6:59
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                C3:9C:F3:FC:D3:46:08:34:BB:CE:46:7F:A0:7C:5B:F3:E2:08:CB:59
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+    Signature Algorithm: sha256WithRSAEncryption
+         a3:58:1e:c6:43:32:ac:ac:2f:93:78:b7:ea:ae:54:40:47:2d:
+         7e:78:8d:50:f6:f8:66:ac:d6:4f:73:d6:44:ef:af:0b:cc:5b:
+         c1:f4:4f:9a:8f:49:7e:60:af:c2:27:c7:16:f1:fb:93:81:90:
+         a9:7c:ef:6f:7e:6e:45:94:16:84:bd:ec:49:f1:c4:0e:f4:af:
+         04:59:83:87:0f:2c:3b:97:c3:5a:12:9b:7b:04:35:7b:a3:95:
+         33:08:7b:93:71:22:42:b3:a9:d9:6f:4f:81:92:fc:07:b6:79:
+         bc:84:4a:9d:77:09:f1:c5:89:f2:f0:b4:9c:54:aa:12:7b:0d:
+         ba:4f:ef:93:19:ec:ef:7d:4e:61:a3:8e:76:9c:59:cf:8c:94:
+         b1:84:97:f7:1a:b9:07:b8:b2:c6:4f:13:79:db:bf:4f:51:1b:
+         7f:69:0d:51:2a:c1:d6:15:ff:37:51:34:65:51:f4:1e:be:38:
+         6a:ec:0e:ab:bf:3d:7b:39:05:7b:f4:f3:fb:1a:a1:d0:c8:7e:
+         4e:64:8d:cd:8c:61:55:90:fe:3a:ca:5d:25:0f:f8:1d:a3:4a:
+         74:56:4f:1a:55:40:70:75:25:a6:33:2e:ba:4b:a5:5d:53:9a:
+         0d:30:e1:8d:5f:61:2c:af:cc:ef:b0:99:a1:80:ff:0b:f2:62:
+         4c:70:26:98
+-----BEGIN CERTIFICATE-----
+MIIEJTCCAw2gAwIBAgIDAjp3MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjEzOTMyWhcNMjIwNTIwMjEzOTMyWjBHMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXUmFwaWRTU0wg
+U0hBMjU2IENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv
+VJvZWF0eLFbG1eh/9H0WA//Qi1rkjqfdVC7UBMBdmJyNkA+8EGVf2prWRHzAn7Xp
+SowLBkMEu/SW4ib2YQGRZjEiwzQ0Xz8/kS9EX9zHFLYDn4ZLDqP/oIACg8PTH2lS
+1p1kD8mD5xvEcKyU58Okaiy9uJ5p2L4KjxZjWmhxgHsw3hUEv8zTvz5IBVV6s9cQ
+DAP8m/0Ip4yM26eO8R5j3LMBL3+vV8M8SKeDaCGnL+enP/C1DPz1hNFTvA5yT2AM
+QriYrRmIV9cE7Ie/fodOoyH5U/02mEiN1vi7SPIpyGTRzFRIU4uvt2UevykzKdkp
+YEj4/5G8V1jlNS67abZZAgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUw5zz/NNGCDS7zkZ/oHxb8+IIy1kwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUF
+BwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARF
+MEMwQQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3Ry
+dXN0LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQCjWB7GQzKs
+rC+TeLfqrlRARy1+eI1Q9vhmrNZPc9ZE768LzFvB9E+aj0l+YK/CJ8cW8fuTgZCp
+fO9vfm5FlBaEvexJ8cQO9K8EWYOHDyw7l8NaEpt7BDV7o5UzCHuTcSJCs6nZb0+B
+kvwHtnm8hEqddwnxxYny8LScVKoSew26T++TGezvfU5ho452nFnPjJSxhJf3GrkH
+uLLGTxN5279PURt/aQ1RKsHWFf83UTRlUfQevjhq7A6rvz17OQV79PP7GqHQyH5O
+ZI3NjGFVkP46yl0lD/gdo0p0Vk8aVUBwdSWmMy66S6VdU5oNMOGNX2Esr8zvsJmh
+gP8L8mJMcCaY
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert6[] = {
+  0x30, 0x82, 0x04, 0x25, 0x30, 0x82, 0x03, 0x0d, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x77, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+  0x38, 0x32, 0x39, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32,
+  0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c, 0x20,
+  0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20,
+  0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf,
+  0x54, 0x9b, 0xd9, 0x58, 0x5d, 0x1e, 0x2c, 0x56, 0xc6, 0xd5, 0xe8, 0x7f,
+  0xf4, 0x7d, 0x16, 0x03, 0xff, 0xd0, 0x8b, 0x5a, 0xe4, 0x8e, 0xa7, 0xdd,
+  0x54, 0x2e, 0xd4, 0x04, 0xc0, 0x5d, 0x98, 0x9c, 0x8d, 0x90, 0x0f, 0xbc,
+  0x10, 0x65, 0x5f, 0xda, 0x9a, 0xd6, 0x44, 0x7c, 0xc0, 0x9f, 0xb5, 0xe9,
+  0x4a, 0x8c, 0x0b, 0x06, 0x43, 0x04, 0xbb, 0xf4, 0x96, 0xe2, 0x26, 0xf6,
+  0x61, 0x01, 0x91, 0x66, 0x31, 0x22, 0xc3, 0x34, 0x34, 0x5f, 0x3f, 0x3f,
+  0x91, 0x2f, 0x44, 0x5f, 0xdc, 0xc7, 0x14, 0xb6, 0x03, 0x9f, 0x86, 0x4b,
+  0x0e, 0xa3, 0xff, 0xa0, 0x80, 0x02, 0x83, 0xc3, 0xd3, 0x1f, 0x69, 0x52,
+  0xd6, 0x9d, 0x64, 0x0f, 0xc9, 0x83, 0xe7, 0x1b, 0xc4, 0x70, 0xac, 0x94,
+  0xe7, 0xc3, 0xa4, 0x6a, 0x2c, 0xbd, 0xb8, 0x9e, 0x69, 0xd8, 0xbe, 0x0a,
+  0x8f, 0x16, 0x63, 0x5a, 0x68, 0x71, 0x80, 0x7b, 0x30, 0xde, 0x15, 0x04,
+  0xbf, 0xcc, 0xd3, 0xbf, 0x3e, 0x48, 0x05, 0x55, 0x7a, 0xb3, 0xd7, 0x10,
+  0x0c, 0x03, 0xfc, 0x9b, 0xfd, 0x08, 0xa7, 0x8c, 0x8c, 0xdb, 0xa7, 0x8e,
+  0xf1, 0x1e, 0x63, 0xdc, 0xb3, 0x01, 0x2f, 0x7f, 0xaf, 0x57, 0xc3, 0x3c,
+  0x48, 0xa7, 0x83, 0x68, 0x21, 0xa7, 0x2f, 0xe7, 0xa7, 0x3f, 0xf0, 0xb5,
+  0x0c, 0xfc, 0xf5, 0x84, 0xd1, 0x53, 0xbc, 0x0e, 0x72, 0x4f, 0x60, 0x0c,
+  0x42, 0xb8, 0x98, 0xad, 0x19, 0x88, 0x57, 0xd7, 0x04, 0xec, 0x87, 0xbf,
+  0x7e, 0x87, 0x4e, 0xa3, 0x21, 0xf9, 0x53, 0xfd, 0x36, 0x98, 0x48, 0x8d,
+  0xd6, 0xf8, 0xbb, 0x48, 0xf2, 0x29, 0xc8, 0x64, 0xd1, 0xcc, 0x54, 0x48,
+  0x53, 0x8b, 0xaf, 0xb7, 0x65, 0x1e, 0xbf, 0x29, 0x33, 0x29, 0xd9, 0x29,
+  0x60, 0x48, 0xf8, 0xff, 0x91, 0xbc, 0x57, 0x58, 0xe5, 0x35, 0x2e, 0xbb,
+  0x69, 0xb6, 0x59, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d,
+  0x30, 0x82, 0x01, 0x19, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+  0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+  0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0xc3, 0x9c, 0xf3, 0xfc, 0xd3, 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, 0x7f,
+  0xa0, 0x7c, 0x5b, 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+  0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+  0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+  0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e,
+  0x63, 0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45,
+  0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
+  0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f,
+  0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x58, 0x1e, 0xc6, 0x43, 0x32, 0xac,
+  0xac, 0x2f, 0x93, 0x78, 0xb7, 0xea, 0xae, 0x54, 0x40, 0x47, 0x2d, 0x7e,
+  0x78, 0x8d, 0x50, 0xf6, 0xf8, 0x66, 0xac, 0xd6, 0x4f, 0x73, 0xd6, 0x44,
+  0xef, 0xaf, 0x0b, 0xcc, 0x5b, 0xc1, 0xf4, 0x4f, 0x9a, 0x8f, 0x49, 0x7e,
+  0x60, 0xaf, 0xc2, 0x27, 0xc7, 0x16, 0xf1, 0xfb, 0x93, 0x81, 0x90, 0xa9,
+  0x7c, 0xef, 0x6f, 0x7e, 0x6e, 0x45, 0x94, 0x16, 0x84, 0xbd, 0xec, 0x49,
+  0xf1, 0xc4, 0x0e, 0xf4, 0xaf, 0x04, 0x59, 0x83, 0x87, 0x0f, 0x2c, 0x3b,
+  0x97, 0xc3, 0x5a, 0x12, 0x9b, 0x7b, 0x04, 0x35, 0x7b, 0xa3, 0x95, 0x33,
+  0x08, 0x7b, 0x93, 0x71, 0x22, 0x42, 0xb3, 0xa9, 0xd9, 0x6f, 0x4f, 0x81,
+  0x92, 0xfc, 0x07, 0xb6, 0x79, 0xbc, 0x84, 0x4a, 0x9d, 0x77, 0x09, 0xf1,
+  0xc5, 0x89, 0xf2, 0xf0, 0xb4, 0x9c, 0x54, 0xaa, 0x12, 0x7b, 0x0d, 0xba,
+  0x4f, 0xef, 0x93, 0x19, 0xec, 0xef, 0x7d, 0x4e, 0x61, 0xa3, 0x8e, 0x76,
+  0x9c, 0x59, 0xcf, 0x8c, 0x94, 0xb1, 0x84, 0x97, 0xf7, 0x1a, 0xb9, 0x07,
+  0xb8, 0xb2, 0xc6, 0x4f, 0x13, 0x79, 0xdb, 0xbf, 0x4f, 0x51, 0x1b, 0x7f,
+  0x69, 0x0d, 0x51, 0x2a, 0xc1, 0xd6, 0x15, 0xff, 0x37, 0x51, 0x34, 0x65,
+  0x51, 0xf4, 0x1e, 0xbe, 0x38, 0x6a, 0xec, 0x0e, 0xab, 0xbf, 0x3d, 0x7b,
+  0x39, 0x05, 0x7b, 0xf4, 0xf3, 0xfb, 0x1a, 0xa1, 0xd0, 0xc8, 0x7e, 0x4e,
+  0x64, 0x8d, 0xcd, 0x8c, 0x61, 0x55, 0x90, 0xfe, 0x3a, 0xca, 0x5d, 0x25,
+  0x0f, 0xf8, 0x1d, 0xa3, 0x4a, 0x74, 0x56, 0x4f, 0x1a, 0x55, 0x40, 0x70,
+  0x75, 0x25, 0xa6, 0x33, 0x2e, 0xba, 0x4b, 0xa5, 0x5d, 0x53, 0x9a, 0x0d,
+  0x30, 0xe1, 0x8d, 0x5f, 0x61, 0x2c, 0xaf, 0xcc, 0xef, 0xb0, 0x99, 0xa1,
+  0x80, 0xff, 0x0b, 0xf2, 0x62, 0x4c, 0x70, 0x26, 0x98,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            11:20:96:f6:c8:03:7c:9e:07:b1:38:bf:2e:72:10:8a:d7:ed
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=FR, O=Certplus, CN=Class 2 Primary CA
+        Validity
+            Not Before: Jun  5 00:00:00 2007 GMT
+            Not After : Jun 20 00:00:00 2019 GMT
+        Subject: C=FR, O=KEYNECTIS, CN=CLASS 2 KEYNECTIS CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c6:be:fe:44:23:04:d4:ef:2f:3b:86:aa:35:58:
+                    81:d1:e1:9a:d6:b1:d4:27:45:28:fc:d1:1e:46:85:
+                    ba:54:23:11:7d:e0:66:3f:d4:a3:57:66:78:f9:6b:
+                    eb:74:7c:2a:b8:37:a5:e8:70:ae:82:b5:4e:d4:81:
+                    fe:5b:e2:ea:e7:22:16:f8:f9:d7:ba:3a:f6:88:56:
+                    dc:c4:f2:a0:a4:e5:75:06:60:72:2b:fb:f5:94:ee:
+                    2c:83:28:de:91:9a:b3:83:3a:b0:9f:08:fa:dd:d8:
+                    9e:8c:24:e6:df:66:5b:c8:7e:a3:62:4d:3f:3a:85:
+                    23:ec:e8:71:8f:0a:00:ac:89:6d:7e:d8:72:e5:dd:
+                    c1:94:8e:5f:e4:73:e6:c1:c6:0c:87:58:4f:37:da:
+                    d1:a9:88:26:76:b4:ee:11:8d:f6:ad:b2:a7:bc:73:
+                    c4:cd:1c:6e:1a:e6:8d:72:56:44:a0:98:f7:92:f9:
+                    d7:79:9b:03:e6:68:5f:a4:5c:7c:3d:50:b4:83:cc:
+                    e5:ac:0d:e1:3e:4f:14:f2:b4:e4:7d:bf:71:a4:c3:
+                    97:73:38:d6:52:7c:c8:a4:b5:ea:e9:b2:54:56:d4:
+                    eb:b8:57:3a:40:52:5a:5e:46:27:a3:7b:30:2d:08:
+                    3d:85:1e:9a:f0:32:a8:f2:10:a2:83:9b:e2:28:f6:
+                    9d:cb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.4.1.22234.2.5.3.3
+                  CPS: http://www.keynectis.com/PC
+                Policy: 1.3.6.4.1.22234.2.5.1.3
+                  CPS: http://www.keynectis.com/PC
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://www.certplus.com/CRL/class2.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                00:11:41:DF:3B:9D:3B:CB:B8:A2:C1:33:92:A8:81:CC:E5:7D:E7:99
+            X509v3 Authority Key Identifier: 
+                keyid:E3:73:2D:DF:CB:0E:28:0C:DE:DD:B3:A4:CA:79:B8:8E:BB:E8:30:89
+
+    Signature Algorithm: sha1WithRSAEncryption
+         08:88:fe:1f:a2:ca:cd:e2:a0:f1:2e:7c:67:49:fb:dc:94:ac:
+         7f:41:0d:78:01:ba:31:f7:9b:fb:31:18:77:2f:66:25:94:b8:
+         6d:16:74:81:f1:c0:ae:67:c6:14:45:7a:01:d1:13:88:fc:e2:
+         8d:22:1d:bd:1e:0c:c7:a9:7e:d0:c3:97:f6:37:5b:41:5e:67:
+         94:8e:ab:69:02:17:18:f5:4d:38:c2:49:28:09:6e:5a:9b:a6:
+         27:db:c0:5f:8f:44:9c:90:65:99:d8:b3:2e:c1:92:ee:1a:9d:
+         0f:72:45:20:fa:2c:0c:9c:5d:cd:5b:54:41:54:4f:d3:e2:c7:
+         59:84:3f:17:7b:7d:0e:c2:ef:62:c7:ba:b1:26:6c:83:4e:d3:
+         19:c5:ff:56:a7:b4:45:3f:7a:9e:fa:d0:39:3e:80:46:75:5d:
+         5a:79:7a:33:c5:01:bc:02:44:ce:1b:c0:31:4e:47:96:15:6e:
+         e7:e4:76:f0:c2:90:0d:a1:78:f4:38:00:91:2b:65:7c:79:13:
+         a8:3e:91:14:dc:88:05:08:d7:6f:53:f6:15:43:ee:c5:53:56:
+         1a:02:b5:a6:a2:46:8d:1e:13:e4:67:c2:45:5f:40:5e:10:42:
+         58:b5:cd:44:a3:94:4c:1c:54:90:4d:91:9a:26:8b:ad:a2:80:
+         50:8d:14:14
+-----BEGIN CERTIFICATE-----
+MIIEKzCCAxOgAwIBAgISESCW9sgDfJ4HsTi/LnIQitftMA0GCSqGSIb3DQEBBQUA
+MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xh
+c3MgMiBQcmltYXJ5IENBMB4XDTA3MDYwNTAwMDAwMFoXDTE5MDYyMDAwMDAwMFow
+QDELMAkGA1UEBhMCRlIxEjAQBgNVBAoTCUtFWU5FQ1RJUzEdMBsGA1UEAxMUQ0xB
+U1MgMiBLRVlORUNUSVMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDGvv5EIwTU7y87hqo1WIHR4ZrWsdQnRSj80R5GhbpUIxF94GY/1KNXZnj5a+t0
+fCq4N6XocK6CtU7Ugf5b4urnIhb4+de6OvaIVtzE8qCk5XUGYHIr+/WU7iyDKN6R
+mrODOrCfCPrd2J6MJObfZlvIfqNiTT86hSPs6HGPCgCsiW1+2HLl3cGUjl/kc+bB
+xgyHWE832tGpiCZ2tO4Rjfatsqe8c8TNHG4a5o1yVkSgmPeS+dd5mwPmaF+kXHw9
+ULSDzOWsDeE+TxTytOR9v3Gkw5dzONZSfMikterpslRW1Ou4VzpAUlpeRiejezAt
+CD2FHprwMqjyEKKDm+Io9p3LAgMBAAGjggEgMIIBHDASBgNVHRMBAf8ECDAGAQH/
+AgEAMH0GA1UdIAR2MHQwOAYLKwYEAYGtWgIFAwMwKTAnBggrBgEFBQcCARYbaHR0
+cDovL3d3dy5rZXluZWN0aXMuY29tL1BDMDgGCysGBAGBrVoCBQEDMCkwJwYIKwYB
+BQUHAgEWG2h0dHA6Ly93d3cua2V5bmVjdGlzLmNvbS9QQzA3BgNVHR8EMDAuMCyg
+KqAohiZodHRwOi8vd3d3LmNlcnRwbHVzLmNvbS9DUkwvY2xhc3MyLmNybDAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAARQd87nTvLuKLBM5KogczlfeeZMB8GA1Ud
+IwQYMBaAFONzLd/LDigM3t2zpMp5uI676DCJMA0GCSqGSIb3DQEBBQUAA4IBAQAI
+iP4fosrN4qDxLnxnSfvclKx/QQ14Abox95v7MRh3L2YllLhtFnSB8cCuZ8YURXoB
+0ROI/OKNIh29HgzHqX7Qw5f2N1tBXmeUjqtpAhcY9U04wkkoCW5am6Yn28Bfj0Sc
+kGWZ2LMuwZLuGp0PckUg+iwMnF3NW1RBVE/T4sdZhD8Xe30Owu9ix7qxJmyDTtMZ
+xf9Wp7RFP3qe+tA5PoBGdV1aeXozxQG8AkTOG8AxTkeWFW7n5HbwwpANoXj0OACR
+K2V8eROoPpEU3IgFCNdvU/YVQ+7FU1YaArWmokaNHhPkZ8JFX0BeEEJYtc1Eo5RM
+HFSQTZGaJoutooBQjRQU
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert7[] = {
+  0x30, 0x82, 0x04, 0x2b, 0x30, 0x82, 0x03, 0x13, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x12, 0x11, 0x20, 0x96, 0xf6, 0xc8, 0x03, 0x7c, 0x9e, 0x07,
+  0xb1, 0x38, 0xbf, 0x2e, 0x72, 0x10, 0x8a, 0xd7, 0xed, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+  0x30, 0x3d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x46, 0x52, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x08, 0x43, 0x65, 0x72, 0x74, 0x70, 0x6c, 0x75, 0x73, 0x31, 0x1b,
+  0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x43, 0x6c, 0x61,
+  0x73, 0x73, 0x20, 0x32, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
+  0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x36, 0x30,
+  0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x39,
+  0x30, 0x36, 0x32, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30,
+  0x40, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x46, 0x52, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x09, 0x4b, 0x45, 0x59, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x53, 0x31, 0x1d,
+  0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x14, 0x43, 0x4c, 0x41,
+  0x53, 0x53, 0x20, 0x32, 0x20, 0x4b, 0x45, 0x59, 0x4e, 0x45, 0x43, 0x54,
+  0x49, 0x53, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xc6, 0xbe, 0xfe, 0x44, 0x23, 0x04, 0xd4, 0xef, 0x2f, 0x3b,
+  0x86, 0xaa, 0x35, 0x58, 0x81, 0xd1, 0xe1, 0x9a, 0xd6, 0xb1, 0xd4, 0x27,
+  0x45, 0x28, 0xfc, 0xd1, 0x1e, 0x46, 0x85, 0xba, 0x54, 0x23, 0x11, 0x7d,
+  0xe0, 0x66, 0x3f, 0xd4, 0xa3, 0x57, 0x66, 0x78, 0xf9, 0x6b, 0xeb, 0x74,
+  0x7c, 0x2a, 0xb8, 0x37, 0xa5, 0xe8, 0x70, 0xae, 0x82, 0xb5, 0x4e, 0xd4,
+  0x81, 0xfe, 0x5b, 0xe2, 0xea, 0xe7, 0x22, 0x16, 0xf8, 0xf9, 0xd7, 0xba,
+  0x3a, 0xf6, 0x88, 0x56, 0xdc, 0xc4, 0xf2, 0xa0, 0xa4, 0xe5, 0x75, 0x06,
+  0x60, 0x72, 0x2b, 0xfb, 0xf5, 0x94, 0xee, 0x2c, 0x83, 0x28, 0xde, 0x91,
+  0x9a, 0xb3, 0x83, 0x3a, 0xb0, 0x9f, 0x08, 0xfa, 0xdd, 0xd8, 0x9e, 0x8c,
+  0x24, 0xe6, 0xdf, 0x66, 0x5b, 0xc8, 0x7e, 0xa3, 0x62, 0x4d, 0x3f, 0x3a,
+  0x85, 0x23, 0xec, 0xe8, 0x71, 0x8f, 0x0a, 0x00, 0xac, 0x89, 0x6d, 0x7e,
+  0xd8, 0x72, 0xe5, 0xdd, 0xc1, 0x94, 0x8e, 0x5f, 0xe4, 0x73, 0xe6, 0xc1,
+  0xc6, 0x0c, 0x87, 0x58, 0x4f, 0x37, 0xda, 0xd1, 0xa9, 0x88, 0x26, 0x76,
+  0xb4, 0xee, 0x11, 0x8d, 0xf6, 0xad, 0xb2, 0xa7, 0xbc, 0x73, 0xc4, 0xcd,
+  0x1c, 0x6e, 0x1a, 0xe6, 0x8d, 0x72, 0x56, 0x44, 0xa0, 0x98, 0xf7, 0x92,
+  0xf9, 0xd7, 0x79, 0x9b, 0x03, 0xe6, 0x68, 0x5f, 0xa4, 0x5c, 0x7c, 0x3d,
+  0x50, 0xb4, 0x83, 0xcc, 0xe5, 0xac, 0x0d, 0xe1, 0x3e, 0x4f, 0x14, 0xf2,
+  0xb4, 0xe4, 0x7d, 0xbf, 0x71, 0xa4, 0xc3, 0x97, 0x73, 0x38, 0xd6, 0x52,
+  0x7c, 0xc8, 0xa4, 0xb5, 0xea, 0xe9, 0xb2, 0x54, 0x56, 0xd4, 0xeb, 0xb8,
+  0x57, 0x3a, 0x40, 0x52, 0x5a, 0x5e, 0x46, 0x27, 0xa3, 0x7b, 0x30, 0x2d,
+  0x08, 0x3d, 0x85, 0x1e, 0x9a, 0xf0, 0x32, 0xa8, 0xf2, 0x10, 0xa2, 0x83,
+  0x9b, 0xe2, 0x28, 0xf6, 0x9d, 0xcb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+  0x82, 0x01, 0x20, 0x30, 0x82, 0x01, 0x1c, 0x30, 0x12, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+  0x02, 0x01, 0x00, 0x30, 0x7d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x76,
+  0x30, 0x74, 0x30, 0x38, 0x06, 0x0b, 0x2b, 0x06, 0x04, 0x01, 0x81, 0xad,
+  0x5a, 0x02, 0x05, 0x03, 0x03, 0x30, 0x29, 0x30, 0x27, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1b, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6b, 0x65, 0x79, 0x6e,
+  0x65, 0x63, 0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x43,
+  0x30, 0x38, 0x06, 0x0b, 0x2b, 0x06, 0x04, 0x01, 0x81, 0xad, 0x5a, 0x02,
+  0x05, 0x01, 0x03, 0x30, 0x29, 0x30, 0x27, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1b, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6b, 0x65, 0x79, 0x6e, 0x65, 0x63,
+  0x74, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x43, 0x30, 0x37,
+  0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30, 0x30, 0x2e, 0x30, 0x2c, 0xa0,
+  0x2a, 0xa0, 0x28, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x70, 0x6c, 0x75, 0x73,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x63, 0x6c, 0x61,
+  0x73, 0x73, 0x32, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x00, 0x11,
+  0x41, 0xdf, 0x3b, 0x9d, 0x3b, 0xcb, 0xb8, 0xa2, 0xc1, 0x33, 0x92, 0xa8,
+  0x81, 0xcc, 0xe5, 0x7d, 0xe7, 0x99, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe3, 0x73, 0x2d, 0xdf, 0xcb,
+  0x0e, 0x28, 0x0c, 0xde, 0xdd, 0xb3, 0xa4, 0xca, 0x79, 0xb8, 0x8e, 0xbb,
+  0xe8, 0x30, 0x89, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x08,
+  0x88, 0xfe, 0x1f, 0xa2, 0xca, 0xcd, 0xe2, 0xa0, 0xf1, 0x2e, 0x7c, 0x67,
+  0x49, 0xfb, 0xdc, 0x94, 0xac, 0x7f, 0x41, 0x0d, 0x78, 0x01, 0xba, 0x31,
+  0xf7, 0x9b, 0xfb, 0x31, 0x18, 0x77, 0x2f, 0x66, 0x25, 0x94, 0xb8, 0x6d,
+  0x16, 0x74, 0x81, 0xf1, 0xc0, 0xae, 0x67, 0xc6, 0x14, 0x45, 0x7a, 0x01,
+  0xd1, 0x13, 0x88, 0xfc, 0xe2, 0x8d, 0x22, 0x1d, 0xbd, 0x1e, 0x0c, 0xc7,
+  0xa9, 0x7e, 0xd0, 0xc3, 0x97, 0xf6, 0x37, 0x5b, 0x41, 0x5e, 0x67, 0x94,
+  0x8e, 0xab, 0x69, 0x02, 0x17, 0x18, 0xf5, 0x4d, 0x38, 0xc2, 0x49, 0x28,
+  0x09, 0x6e, 0x5a, 0x9b, 0xa6, 0x27, 0xdb, 0xc0, 0x5f, 0x8f, 0x44, 0x9c,
+  0x90, 0x65, 0x99, 0xd8, 0xb3, 0x2e, 0xc1, 0x92, 0xee, 0x1a, 0x9d, 0x0f,
+  0x72, 0x45, 0x20, 0xfa, 0x2c, 0x0c, 0x9c, 0x5d, 0xcd, 0x5b, 0x54, 0x41,
+  0x54, 0x4f, 0xd3, 0xe2, 0xc7, 0x59, 0x84, 0x3f, 0x17, 0x7b, 0x7d, 0x0e,
+  0xc2, 0xef, 0x62, 0xc7, 0xba, 0xb1, 0x26, 0x6c, 0x83, 0x4e, 0xd3, 0x19,
+  0xc5, 0xff, 0x56, 0xa7, 0xb4, 0x45, 0x3f, 0x7a, 0x9e, 0xfa, 0xd0, 0x39,
+  0x3e, 0x80, 0x46, 0x75, 0x5d, 0x5a, 0x79, 0x7a, 0x33, 0xc5, 0x01, 0xbc,
+  0x02, 0x44, 0xce, 0x1b, 0xc0, 0x31, 0x4e, 0x47, 0x96, 0x15, 0x6e, 0xe7,
+  0xe4, 0x76, 0xf0, 0xc2, 0x90, 0x0d, 0xa1, 0x78, 0xf4, 0x38, 0x00, 0x91,
+  0x2b, 0x65, 0x7c, 0x79, 0x13, 0xa8, 0x3e, 0x91, 0x14, 0xdc, 0x88, 0x05,
+  0x08, 0xd7, 0x6f, 0x53, 0xf6, 0x15, 0x43, 0xee, 0xc5, 0x53, 0x56, 0x1a,
+  0x02, 0xb5, 0xa6, 0xa2, 0x46, 0x8d, 0x1e, 0x13, 0xe4, 0x67, 0xc2, 0x45,
+  0x5f, 0x40, 0x5e, 0x10, 0x42, 0x58, 0xb5, 0xcd, 0x44, 0xa3, 0x94, 0x4c,
+  0x1c, 0x54, 0x90, 0x4d, 0x91, 0x9a, 0x26, 0x8b, 0xad, 0xa2, 0x80, 0x50,
+  0x8d, 0x14, 0x14,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120024505 (0x7276db9)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
+        Validity
+            Not Before: Nov 30 16:35:21 2010 GMT
+            Not After : Aug 10 15:34:26 2018 GMT
+        Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a3:04:bb:22:ab:98:3d:57:e8:26:72:9a:b5:79:
+                    d4:29:e2:e1:e8:95:80:b1:b0:e3:5b:8e:2b:29:9a:
+                    64:df:a1:5d:ed:b0:09:05:6d:db:28:2e:ce:62:a2:
+                    62:fe:b4:88:da:12:eb:38:eb:21:9d:c0:41:2b:01:
+                    52:7b:88:77:d3:1c:8f:c7:ba:b9:88:b5:6a:09:e7:
+                    73:e8:11:40:a7:d1:cc:ca:62:8d:2d:e5:8f:0b:a6:
+                    50:d2:a8:50:c3:28:ea:f5:ab:25:87:8a:9a:96:1c:
+                    a9:67:b8:3f:0c:d5:f7:f9:52:13:2f:c2:1b:d5:70:
+                    70:f0:8f:c0:12:ca:06:cb:9a:e1:d9:ca:33:7a:77:
+                    d6:f8:ec:b9:f1:68:44:42:48:13:d2:c0:c2:a4:ae:
+                    5e:60:fe:b6:a6:05:fc:b4:dd:07:59:02:d4:59:18:
+                    98:63:f5:a5:63:e0:90:0c:7d:5d:b2:06:7a:f3:85:
+                    ea:eb:d4:03:ae:5e:84:3e:5f:ff:15:ed:69:bc:f9:
+                    39:36:72:75:cf:77:52:4d:f3:c9:90:2c:b9:3d:e5:
+                    c9:23:53:3f:1f:24:98:21:5c:07:99:29:bd:c6:3a:
+                    ec:e7:6e:86:3a:6b:97:74:63:33:bd:68:18:31:f0:
+                    78:8d:76:bf:fc:9e:8e:5d:2a:86:a7:4d:90:dc:27:
+                    1a:39
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:3
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://cybertrust.omniroot.com/repository.cfm
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Authority Key Identifier: 
+                DirName:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc./CN=GTE CyberTrust Global Root
+                serial:01:A5
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://www.public-trust.com/cgi-bin/CRL/2018/cdp.crl
+
+            X509v3 Subject Key Identifier: 
+                E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+    Signature Algorithm: sha1WithRSAEncryption
+         16:b4:2c:c9:f1:5e:e1:a2:7b:9b:78:20:7a:4a:70:70:86:19:
+         00:b7:05:2a:e8:c9:25:39:0f:c3:64:3c:75:09:d9:89:15:80:
+         07:c2:8d:bc:29:a5:64:50:cf:71:75:47:23:bd:4d:d8:7f:77:
+         9a:51:10:6e:4e:1f:20:3c:47:9c:43:74:7f:96:84:10:4c:13:
+         43:be:f8:e0:72:2e:ff:bf:ae:3c:0a:03:60:82:4b:6f:f9:9a:
+         c5:1e:f6:af:90:3b:9f:61:3b:3e:de:9b:05:1a:c6:2c:3c:57:
+         21:08:0f:54:fa:28:63:6c:e8:1b:9c:0f:cf:dd:30:44:13:b9:
+         57:fe
+-----BEGIN CERTIFICATE-----
+MIIEODCCA6GgAwIBAgIEBydtuTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV
+UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
+cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
+b2JhbCBSb290MB4XDTEwMTEzMDE2MzUyMVoXDTE4MDgxMDE1MzQyNlowWjELMAkG
+A1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVz
+dDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uO
+KymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnn
+c+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
+wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPg
+kAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFc
+B5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaOCAWow
+ggFmMBIGA1UdEwEB/wQIMAYBAf8CAQMwTgYDVR0gBEcwRTBDBgRVHSAAMDswOQYI
+KwYBBQUHAgEWLWh0dHA6Ly9jeWJlcnRydXN0Lm9tbmlyb290LmNvbS9yZXBvc2l0
+b3J5LmNmbTAOBgNVHQ8BAf8EBAMCAQYwgYkGA1UdIwSBgTB/oXmkdzB1MQswCQYD
+VQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUg
+Q3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRy
+dXN0IEdsb2JhbCBSb290ggIBpTBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vd3d3
+LnB1YmxpYy10cnVzdC5jb20vY2dpLWJpbi9DUkwvMjAxOC9jZHAuY3JsMB0GA1Ud
+DgQWBBTlnVkwgkdYzKz6CFQ2hns6tQRN8DANBgkqhkiG9w0BAQUFAAOBgQAWtCzJ
+8V7honubeCB6SnBwhhkAtwUq6MklOQ/DZDx1CdmJFYAHwo28KaVkUM9xdUcjvU3Y
+f3eaURBuTh8gPEecQ3R/loQQTBNDvvjgci7/v648CgNggktv+ZrFHvavkDufYTs+
+3psFGsYsPFchCA9U+ihjbOgbnA/P3TBEE7lX/g==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert8[] = {
+  0x30, 0x82, 0x04, 0x38, 0x30, 0x82, 0x03, 0xa1, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0x6d, 0xb9, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x75,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f,
+  0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f,
+  0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23, 0x30, 0x21,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45, 0x20, 0x43,
+  0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c,
+  0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x30, 0x31, 0x31, 0x33, 0x30, 0x31, 0x36, 0x33, 0x35, 0x32,
+  0x31, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x38, 0x31, 0x30, 0x31, 0x35,
+  0x33, 0x34, 0x32, 0x36, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x45, 0x31, 0x12, 0x30, 0x10,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09, 0x42, 0x61, 0x6c, 0x74, 0x69,
+  0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x79,
+  0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+  0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+  0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x04,
+  0xbb, 0x22, 0xab, 0x98, 0x3d, 0x57, 0xe8, 0x26, 0x72, 0x9a, 0xb5, 0x79,
+  0xd4, 0x29, 0xe2, 0xe1, 0xe8, 0x95, 0x80, 0xb1, 0xb0, 0xe3, 0x5b, 0x8e,
+  0x2b, 0x29, 0x9a, 0x64, 0xdf, 0xa1, 0x5d, 0xed, 0xb0, 0x09, 0x05, 0x6d,
+  0xdb, 0x28, 0x2e, 0xce, 0x62, 0xa2, 0x62, 0xfe, 0xb4, 0x88, 0xda, 0x12,
+  0xeb, 0x38, 0xeb, 0x21, 0x9d, 0xc0, 0x41, 0x2b, 0x01, 0x52, 0x7b, 0x88,
+  0x77, 0xd3, 0x1c, 0x8f, 0xc7, 0xba, 0xb9, 0x88, 0xb5, 0x6a, 0x09, 0xe7,
+  0x73, 0xe8, 0x11, 0x40, 0xa7, 0xd1, 0xcc, 0xca, 0x62, 0x8d, 0x2d, 0xe5,
+  0x8f, 0x0b, 0xa6, 0x50, 0xd2, 0xa8, 0x50, 0xc3, 0x28, 0xea, 0xf5, 0xab,
+  0x25, 0x87, 0x8a, 0x9a, 0x96, 0x1c, 0xa9, 0x67, 0xb8, 0x3f, 0x0c, 0xd5,
+  0xf7, 0xf9, 0x52, 0x13, 0x2f, 0xc2, 0x1b, 0xd5, 0x70, 0x70, 0xf0, 0x8f,
+  0xc0, 0x12, 0xca, 0x06, 0xcb, 0x9a, 0xe1, 0xd9, 0xca, 0x33, 0x7a, 0x77,
+  0xd6, 0xf8, 0xec, 0xb9, 0xf1, 0x68, 0x44, 0x42, 0x48, 0x13, 0xd2, 0xc0,
+  0xc2, 0xa4, 0xae, 0x5e, 0x60, 0xfe, 0xb6, 0xa6, 0x05, 0xfc, 0xb4, 0xdd,
+  0x07, 0x59, 0x02, 0xd4, 0x59, 0x18, 0x98, 0x63, 0xf5, 0xa5, 0x63, 0xe0,
+  0x90, 0x0c, 0x7d, 0x5d, 0xb2, 0x06, 0x7a, 0xf3, 0x85, 0xea, 0xeb, 0xd4,
+  0x03, 0xae, 0x5e, 0x84, 0x3e, 0x5f, 0xff, 0x15, 0xed, 0x69, 0xbc, 0xf9,
+  0x39, 0x36, 0x72, 0x75, 0xcf, 0x77, 0x52, 0x4d, 0xf3, 0xc9, 0x90, 0x2c,
+  0xb9, 0x3d, 0xe5, 0xc9, 0x23, 0x53, 0x3f, 0x1f, 0x24, 0x98, 0x21, 0x5c,
+  0x07, 0x99, 0x29, 0xbd, 0xc6, 0x3a, 0xec, 0xe7, 0x6e, 0x86, 0x3a, 0x6b,
+  0x97, 0x74, 0x63, 0x33, 0xbd, 0x68, 0x18, 0x31, 0xf0, 0x78, 0x8d, 0x76,
+  0xbf, 0xfc, 0x9e, 0x8e, 0x5d, 0x2a, 0x86, 0xa7, 0x4d, 0x90, 0xdc, 0x27,
+  0x1a, 0x39, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x6a, 0x30,
+  0x82, 0x01, 0x66, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x03, 0x30,
+  0x4e, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x47, 0x30, 0x45, 0x30, 0x43,
+  0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+  0x6f, 0x72, 0x79, 0x2e, 0x63, 0x66, 0x6d, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+  0x81, 0x89, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x81, 0x81, 0x30, 0x7f,
+  0xa1, 0x79, 0xa4, 0x77, 0x30, 0x75, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+  0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x18, 0x30, 0x16, 0x06,
+  0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f, 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f,
+  0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30,
+  0x25, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20,
+  0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x53,
+  0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x1a, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52,
+  0x6f, 0x6f, 0x74, 0x82, 0x02, 0x01, 0xa5, 0x30, 0x45, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x3e, 0x30, 0x3c, 0x30, 0x3a, 0xa0, 0x38, 0xa0, 0x36,
+  0x86, 0x34, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+  0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69,
+  0x6e, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x32, 0x30, 0x31, 0x38, 0x2f, 0x63,
+  0x64, 0x70, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xe5, 0x9d, 0x59, 0x30, 0x82, 0x47, 0x58,
+  0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a, 0xb5, 0x04, 0x4d,
+  0xf0, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x16, 0xb4, 0x2c, 0xc9,
+  0xf1, 0x5e, 0xe1, 0xa2, 0x7b, 0x9b, 0x78, 0x20, 0x7a, 0x4a, 0x70, 0x70,
+  0x86, 0x19, 0x00, 0xb7, 0x05, 0x2a, 0xe8, 0xc9, 0x25, 0x39, 0x0f, 0xc3,
+  0x64, 0x3c, 0x75, 0x09, 0xd9, 0x89, 0x15, 0x80, 0x07, 0xc2, 0x8d, 0xbc,
+  0x29, 0xa5, 0x64, 0x50, 0xcf, 0x71, 0x75, 0x47, 0x23, 0xbd, 0x4d, 0xd8,
+  0x7f, 0x77, 0x9a, 0x51, 0x10, 0x6e, 0x4e, 0x1f, 0x20, 0x3c, 0x47, 0x9c,
+  0x43, 0x74, 0x7f, 0x96, 0x84, 0x10, 0x4c, 0x13, 0x43, 0xbe, 0xf8, 0xe0,
+  0x72, 0x2e, 0xff, 0xbf, 0xae, 0x3c, 0x0a, 0x03, 0x60, 0x82, 0x4b, 0x6f,
+  0xf9, 0x9a, 0xc5, 0x1e, 0xf6, 0xaf, 0x90, 0x3b, 0x9f, 0x61, 0x3b, 0x3e,
+  0xde, 0x9b, 0x05, 0x1a, 0xc6, 0x2c, 0x3c, 0x57, 0x21, 0x08, 0x0f, 0x54,
+  0xfa, 0x28, 0x63, 0x6c, 0xe8, 0x1b, 0x9c, 0x0f, 0xcf, 0xdd, 0x30, 0x44,
+  0x13, 0xb9, 0x57, 0xfe,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146040 (0x23a78)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Aug 29 22:24:58 2014 GMT
+            Not After : May 20 22:24:58 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., OU=Domain Validated SSL, CN=GeoTrust DV SSL CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:df:41:94:7a:da:f7:e4:31:43:b6:ea:01:1b:5c:
+                    ce:63:ea:fa:6d:a3:d9:6a:ee:2d:9a:75:f9:d5:9c:
+                    5b:bd:34:df:d8:1c:c9:6d:d8:04:88:da:6e:b5:b7:
+                    b5:f0:30:ae:40:d6:5d:fa:c4:53:c1:d4:22:9d:04:
+                    4e:11:a6:95:d5:45:7c:41:05:58:e0:4c:dd:f9:ee:
+                    55:bd:5f:46:dc:ad:13:08:9d:2c:e4:f7:82:e6:07:
+                    2b:9e:0e:8c:34:a1:ce:c4:a1:e0:81:70:86:00:06:
+                    3f:2d:ea:7c:9b:28:ae:1b:28:8b:39:09:d3:e7:f0:
+                    45:a4:b1:ba:11:67:90:55:7b:8f:de:ed:38:5c:a1:
+                    e1:e3:83:c4:c3:72:91:4f:98:ee:1c:c2:80:aa:64:
+                    a5:3e:83:62:1c:cc:e0:9e:f8:5a:c0:13:12:7d:a2:
+                    a7:8b:a3:e7:9f:2a:d7:9b:ca:cb:ed:97:01:9c:28:
+                    84:51:04:50:41:bc:b4:fc:78:e9:1b:cf:14:ea:1f:
+                    0f:fc:2e:01:32:8d:b6:35:cb:0a:18:3b:ec:5a:3e:
+                    3c:1b:d3:99:43:1e:2f:f7:bd:f3:5b:12:b9:07:5e:
+                    ed:3e:d1:a9:87:cc:77:72:27:d4:d9:75:a2:63:4b:
+                    93:36:bd:e5:5c:d7:bf:5f:79:0d:b3:32:a7:0b:b2:
+                    63:23
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                0B:50:EC:77:EF:2A:9B:FF:EC:03:A1:0A:FF:AD:C6:E4:2A:18:C7:3E
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+    Signature Algorithm: sha256WithRSAEncryption
+         33:24:d5:90:aa:29:0c:35:b9:2f:c3:c7:42:93:c0:c6:10:4b:
+         03:08:76:84:10:a2:e0:e7:53:12:27:f2:0a:da:7f:3a:dc:fd:
+         5c:79:5a:8f:17:74:43:53:b1:d5:d1:5d:59:b9:a6:84:64:ca:
+         f1:3a:0a:59:96:10:bf:a9:81:57:8b:5c:87:dc:7f:e3:e4:bb:
+         05:7a:a0:32:09:13:4e:10:81:28:1f:9c:03:62:bc:f4:01:b5:
+         29:83:46:07:b9:e7:b8:5d:c8:e9:d1:dd:ad:3b:f8:34:db:c1:
+         d1:95:a9:91:18:ed:3c:2c:37:11:4d:cc:fe:53:3e:50:43:f9:
+         c3:56:41:ac:53:9b:6c:05:b2:9a:e2:e0:59:57:30:32:b6:26:
+         4e:13:25:cd:fa:48:70:0f:75:55:60:11:f5:3b:d5:5e:5a:3c:
+         8b:5b:0f:0f:62:42:48:61:85:8b:10:f4:c1:88:bf:7f:5f:8a:
+         c2:d7:cd:2b:94:5c:1f:34:4a:08:af:eb:ae:89:a8:48:75:55:
+         95:1d:bb:c0:9a:01:b9:f4:03:22:3e:d4:e6:52:30:0d:67:b9:
+         c0:91:fd:2d:4c:30:8e:bd:8c:a5:04:91:bb:a4:ab:7f:0f:d8:
+         6f:f0:66:00:c9:a3:5c:f5:b0:8f:83:e6:9c:5a:e6:b6:b9:c5:
+         bc:be:e4:02
+-----BEGIN CERTIFICATE-----
+MIIERDCCAyygAwIBAgIDAjp4MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjIyNDU4WhcNMjIwNTIwMjIyNDU4WjBmMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh
+bGlkYXRlZCBTU0wxIDAeBgNVBAMTF0dlb1RydXN0IERWIFNTTCBDQSAtIEc0MIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA30GUetr35DFDtuoBG1zOY+r6
+baPZau4tmnX51ZxbvTTf2BzJbdgEiNputbe18DCuQNZd+sRTwdQinQROEaaV1UV8
+QQVY4Ezd+e5VvV9G3K0TCJ0s5PeC5gcrng6MNKHOxKHggXCGAAY/Lep8myiuGyiL
+OQnT5/BFpLG6EWeQVXuP3u04XKHh44PEw3KRT5juHMKAqmSlPoNiHMzgnvhawBMS
+faKni6PnnyrXm8rL7ZcBnCiEUQRQQby0/HjpG88U6h8P/C4BMo22NcsKGDvsWj48
+G9OZQx4v973zWxK5B17tPtGph8x3cifU2XWiY0uTNr3lXNe/X3kNszKnC7JjIwID
+AQABo4IBHTCCARkwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4wHQYD
+VR0OBBYEFAtQ7HfvKpv/7AOhCv+txuQqGMc+MBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9nLnN5bWNi
+LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAuBggrBgEFBQcBAQQiMCAwHgYIKwYBBQUH
+MAGGEmh0dHA6Ly9nLnN5bWNkLmNvbTBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYw
+MzAxBggrBgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2Vz
+L2NwczANBgkqhkiG9w0BAQsFAAOCAQEAMyTVkKopDDW5L8PHQpPAxhBLAwh2hBCi
+4OdTEifyCtp/Otz9XHlajxd0Q1Ox1dFdWbmmhGTK8ToKWZYQv6mBV4tch9x/4+S7
+BXqgMgkTThCBKB+cA2K89AG1KYNGB7nnuF3I6dHdrTv4NNvB0ZWpkRjtPCw3EU3M
+/lM+UEP5w1ZBrFObbAWymuLgWVcwMrYmThMlzfpIcA91VWAR9TvVXlo8i1sPD2JC
+SGGFixD0wYi/f1+KwtfNK5RcHzRKCK/rromoSHVVlR27wJoBufQDIj7U5lIwDWe5
+wJH9LUwwjr2MpQSRu6Srfw/Yb/BmAMmjXPWwj4PmnFrmtrnFvL7kAg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert9[] = {
+  0x30, 0x82, 0x04, 0x44, 0x30, 0x82, 0x03, 0x2c, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+  0x38, 0x32, 0x39, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38,
+  0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x14, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61,
+  0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31,
+  0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x47, 0x65,
+  0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x44, 0x56, 0x20, 0x53, 0x53,
+  0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdf, 0x41, 0x94, 0x7a, 0xda, 0xf7,
+  0xe4, 0x31, 0x43, 0xb6, 0xea, 0x01, 0x1b, 0x5c, 0xce, 0x63, 0xea, 0xfa,
+  0x6d, 0xa3, 0xd9, 0x6a, 0xee, 0x2d, 0x9a, 0x75, 0xf9, 0xd5, 0x9c, 0x5b,
+  0xbd, 0x34, 0xdf, 0xd8, 0x1c, 0xc9, 0x6d, 0xd8, 0x04, 0x88, 0xda, 0x6e,
+  0xb5, 0xb7, 0xb5, 0xf0, 0x30, 0xae, 0x40, 0xd6, 0x5d, 0xfa, 0xc4, 0x53,
+  0xc1, 0xd4, 0x22, 0x9d, 0x04, 0x4e, 0x11, 0xa6, 0x95, 0xd5, 0x45, 0x7c,
+  0x41, 0x05, 0x58, 0xe0, 0x4c, 0xdd, 0xf9, 0xee, 0x55, 0xbd, 0x5f, 0x46,
+  0xdc, 0xad, 0x13, 0x08, 0x9d, 0x2c, 0xe4, 0xf7, 0x82, 0xe6, 0x07, 0x2b,
+  0x9e, 0x0e, 0x8c, 0x34, 0xa1, 0xce, 0xc4, 0xa1, 0xe0, 0x81, 0x70, 0x86,
+  0x00, 0x06, 0x3f, 0x2d, 0xea, 0x7c, 0x9b, 0x28, 0xae, 0x1b, 0x28, 0x8b,
+  0x39, 0x09, 0xd3, 0xe7, 0xf0, 0x45, 0xa4, 0xb1, 0xba, 0x11, 0x67, 0x90,
+  0x55, 0x7b, 0x8f, 0xde, 0xed, 0x38, 0x5c, 0xa1, 0xe1, 0xe3, 0x83, 0xc4,
+  0xc3, 0x72, 0x91, 0x4f, 0x98, 0xee, 0x1c, 0xc2, 0x80, 0xaa, 0x64, 0xa5,
+  0x3e, 0x83, 0x62, 0x1c, 0xcc, 0xe0, 0x9e, 0xf8, 0x5a, 0xc0, 0x13, 0x12,
+  0x7d, 0xa2, 0xa7, 0x8b, 0xa3, 0xe7, 0x9f, 0x2a, 0xd7, 0x9b, 0xca, 0xcb,
+  0xed, 0x97, 0x01, 0x9c, 0x28, 0x84, 0x51, 0x04, 0x50, 0x41, 0xbc, 0xb4,
+  0xfc, 0x78, 0xe9, 0x1b, 0xcf, 0x14, 0xea, 0x1f, 0x0f, 0xfc, 0x2e, 0x01,
+  0x32, 0x8d, 0xb6, 0x35, 0xcb, 0x0a, 0x18, 0x3b, 0xec, 0x5a, 0x3e, 0x3c,
+  0x1b, 0xd3, 0x99, 0x43, 0x1e, 0x2f, 0xf7, 0xbd, 0xf3, 0x5b, 0x12, 0xb9,
+  0x07, 0x5e, 0xed, 0x3e, 0xd1, 0xa9, 0x87, 0xcc, 0x77, 0x72, 0x27, 0xd4,
+  0xd9, 0x75, 0xa2, 0x63, 0x4b, 0x93, 0x36, 0xbd, 0xe5, 0x5c, 0xd7, 0xbf,
+  0x5f, 0x79, 0x0d, 0xb3, 0x32, 0xa7, 0x0b, 0xb2, 0x63, 0x23, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d, 0x30, 0x82, 0x01, 0x19, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+  0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0b, 0x50, 0xec, 0x77, 0xef,
+  0x2a, 0x9b, 0xff, 0xec, 0x03, 0xa1, 0x0a, 0xff, 0xad, 0xc6, 0xe4, 0x2a,
+  0x18, 0xc7, 0x3e, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2e,
+  0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74,
+  0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x2e,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22,
+  0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67,
+  0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4c,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06,
+  0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30,
+  0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+  0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+  0x33, 0x24, 0xd5, 0x90, 0xaa, 0x29, 0x0c, 0x35, 0xb9, 0x2f, 0xc3, 0xc7,
+  0x42, 0x93, 0xc0, 0xc6, 0x10, 0x4b, 0x03, 0x08, 0x76, 0x84, 0x10, 0xa2,
+  0xe0, 0xe7, 0x53, 0x12, 0x27, 0xf2, 0x0a, 0xda, 0x7f, 0x3a, 0xdc, 0xfd,
+  0x5c, 0x79, 0x5a, 0x8f, 0x17, 0x74, 0x43, 0x53, 0xb1, 0xd5, 0xd1, 0x5d,
+  0x59, 0xb9, 0xa6, 0x84, 0x64, 0xca, 0xf1, 0x3a, 0x0a, 0x59, 0x96, 0x10,
+  0xbf, 0xa9, 0x81, 0x57, 0x8b, 0x5c, 0x87, 0xdc, 0x7f, 0xe3, 0xe4, 0xbb,
+  0x05, 0x7a, 0xa0, 0x32, 0x09, 0x13, 0x4e, 0x10, 0x81, 0x28, 0x1f, 0x9c,
+  0x03, 0x62, 0xbc, 0xf4, 0x01, 0xb5, 0x29, 0x83, 0x46, 0x07, 0xb9, 0xe7,
+  0xb8, 0x5d, 0xc8, 0xe9, 0xd1, 0xdd, 0xad, 0x3b, 0xf8, 0x34, 0xdb, 0xc1,
+  0xd1, 0x95, 0xa9, 0x91, 0x18, 0xed, 0x3c, 0x2c, 0x37, 0x11, 0x4d, 0xcc,
+  0xfe, 0x53, 0x3e, 0x50, 0x43, 0xf9, 0xc3, 0x56, 0x41, 0xac, 0x53, 0x9b,
+  0x6c, 0x05, 0xb2, 0x9a, 0xe2, 0xe0, 0x59, 0x57, 0x30, 0x32, 0xb6, 0x26,
+  0x4e, 0x13, 0x25, 0xcd, 0xfa, 0x48, 0x70, 0x0f, 0x75, 0x55, 0x60, 0x11,
+  0xf5, 0x3b, 0xd5, 0x5e, 0x5a, 0x3c, 0x8b, 0x5b, 0x0f, 0x0f, 0x62, 0x42,
+  0x48, 0x61, 0x85, 0x8b, 0x10, 0xf4, 0xc1, 0x88, 0xbf, 0x7f, 0x5f, 0x8a,
+  0xc2, 0xd7, 0xcd, 0x2b, 0x94, 0x5c, 0x1f, 0x34, 0x4a, 0x08, 0xaf, 0xeb,
+  0xae, 0x89, 0xa8, 0x48, 0x75, 0x55, 0x95, 0x1d, 0xbb, 0xc0, 0x9a, 0x01,
+  0xb9, 0xf4, 0x03, 0x22, 0x3e, 0xd4, 0xe6, 0x52, 0x30, 0x0d, 0x67, 0xb9,
+  0xc0, 0x91, 0xfd, 0x2d, 0x4c, 0x30, 0x8e, 0xbd, 0x8c, 0xa5, 0x04, 0x91,
+  0xbb, 0xa4, 0xab, 0x7f, 0x0f, 0xd8, 0x6f, 0xf0, 0x66, 0x00, 0xc9, 0xa3,
+  0x5c, 0xf5, 0xb0, 0x8f, 0x83, 0xe6, 0x9c, 0x5a, 0xe6, 0xb6, 0xb9, 0xc5,
+  0xbc, 0xbe, 0xe4, 0x02,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            33:65:50:08:79:ad:73:e2:30:b9:e0:1d:0d:7f:ac:91
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
+        Validity
+            Not Before: Nov 17 00:00:00 2006 GMT
+            Not After : Dec 30 23:59:59 2020 GMT
+        Subject: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ac:a0:f0:fb:80:59:d4:9c:c7:a4:cf:9d:a1:59:
+                    73:09:10:45:0c:0d:2c:6e:68:f1:6c:5b:48:68:49:
+                    59:37:fc:0b:33:19:c2:77:7f:cc:10:2d:95:34:1c:
+                    e6:eb:4d:09:a7:1c:d2:b8:c9:97:36:02:b7:89:d4:
+                    24:5f:06:c0:cc:44:94:94:8d:02:62:6f:eb:5a:dd:
+                    11:8d:28:9a:5c:84:90:10:7a:0d:bd:74:66:2f:6a:
+                    38:a0:e2:d5:54:44:eb:1d:07:9f:07:ba:6f:ee:e9:
+                    fd:4e:0b:29:f5:3e:84:a0:01:f1:9c:ab:f8:1c:7e:
+                    89:a4:e8:a1:d8:71:65:0d:a3:51:7b:ee:bc:d2:22:
+                    60:0d:b9:5b:9d:df:ba:fc:51:5b:0b:af:98:b2:e9:
+                    2e:e9:04:e8:62:87:de:2b:c8:d7:4e:c1:4c:64:1e:
+                    dd:cf:87:58:ba:4a:4f:ca:68:07:1d:1c:9d:4a:c6:
+                    d5:2f:91:cc:7c:71:72:1c:c5:c0:67:eb:32:fd:c9:
+                    92:5c:94:da:85:c0:9b:bf:53:7d:2b:09:f4:8c:9d:
+                    91:1f:97:6a:52:cb:de:09:36:a4:77:d8:7b:87:50:
+                    44:d5:3e:6e:29:69:fb:39:49:26:1e:09:a5:80:7b:
+                    40:2d:eb:e8:27:85:c9:fe:61:fd:7e:e6:7c:97:1d:
+                    d5:9d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.thawte.com/ThawtePremiumServerCA.crl
+
+    Signature Algorithm: sha1WithRSAEncryption
+         84:a8:4c:c9:3e:2a:bc:9a:e2:cc:8f:0b:b2:25:77:c4:61:89:
+         89:63:5a:d4:a3:15:40:d4:fb:5e:3f:b4:43:ea:63:17:2b:6b:
+         99:74:9e:09:a8:dd:d4:56:15:2e:7a:79:31:5f:63:96:53:1b:
+         34:d9:15:ea:4f:6d:70:ca:be:f6:82:a9:ed:da:85:77:cc:76:
+         1c:6a:81:0a:21:d8:41:99:7f:5e:2e:82:c1:e8:aa:f7:93:81:
+         05:aa:92:b4:1f:b7:9a:c0:07:17:f5:cb:c6:b4:4c:0e:d7:56:
+         dc:71:20:74:38:d6:74:c6:d6:8f:6b:af:8b:8d:a0:6c:29:0b:
+         61:e0
+-----BEGIN CERTIFICATE-----
+MIIERTCCA66gAwIBAgIQM2VQCHmtc+IwueAdDX+skTANBgkqhkiG9w0BAQUFADCB
+zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
+Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
+d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTA2MTExNzAwMDAwMFoXDTIwMTIzMDIzNTk1OVow
+gakxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsT
+H0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAy
+MDA2IHRoYXd0ZSwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYD
+VQQDExZ0aGF3dGUgUHJpbWFyeSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEArKDw+4BZ1JzHpM+doVlzCRBFDA0sbmjxbFtIaElZN/wLMxnC
+d3/MEC2VNBzm600JpxzSuMmXNgK3idQkXwbAzESUlI0CYm/rWt0RjSiaXISQEHoN
+vXRmL2o4oOLVVETrHQefB7pv7un9Tgsp9T6EoAHxnKv4HH6JpOih2HFlDaNRe+68
+0iJgDblbnd+6/FFbC6+Ysuku6QToYofeK8jXTsFMZB7dz4dYukpPymgHHRydSsbV
+L5HMfHFyHMXAZ+sy/cmSXJTahcCbv1N9Kwn0jJ2RH5dqUsveCTakd9h7h1BE1T5u
+KWn7OUkmHgmlgHtALevoJ4XJ/mH9fuZ8lx3VnQIDAQABo4HCMIG/MA8GA1UdEwEB
+/wQFMAMBAf8wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBz
+Oi8vd3d3LnRoYXd0ZS5jb20vY3BzMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+e1tFz6/Oy3r9MZIaarbzRutXSFAwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2Ny
+bC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAhKhMyT4qvJrizI8LsiV3xGGJiWNa1KMVQNT7Xj+0Q+pjFytrmXSe
+Cajd1FYVLnp5MV9jllMbNNkV6k9tcMq+9oKp7dqFd8x2HGqBCiHYQZl/Xi6Cweiq
+95OBBaqStB+3msAHF/XLxrRMDtdW3HEgdDjWdMbWj2uvi42gbCkLYeA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert10[] = {
+  0x30, 0x82, 0x04, 0x45, 0x30, 0x82, 0x03, 0xae, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x33, 0x65, 0x50, 0x08, 0x79, 0xad, 0x73, 0xe2, 0x30,
+  0xb9, 0xe0, 0x1d, 0x0d, 0x7f, 0xac, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xce, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x5a, 0x41, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+  0x0c, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x43, 0x61, 0x70,
+  0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x09,
+  0x43, 0x61, 0x70, 0x65, 0x20, 0x54, 0x6f, 0x77, 0x6e, 0x31, 0x1d, 0x30,
+  0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x54, 0x68, 0x61, 0x77,
+  0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e,
+  0x67, 0x20, 0x63, 0x63, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+  0x73, 0x20, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x21,
+  0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x54, 0x68, 0x61,
+  0x77, 0x74, 0x65, 0x20, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x20,
+  0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x31, 0x28, 0x30,
+  0x26, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01,
+  0x16, 0x19, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x2d, 0x73, 0x65,
+  0x72, 0x76, 0x65, 0x72, 0x40, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+  0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x31,
+  0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+  0x31, 0x32, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30,
+  0x81, 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20,
+  0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36,
+  0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32,
+  0x30, 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61,
+  0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73,
+  0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20,
+  0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74,
+  0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xac, 0xa0, 0xf0, 0xfb, 0x80, 0x59, 0xd4, 0x9c, 0xc7, 0xa4, 0xcf, 0x9d,
+  0xa1, 0x59, 0x73, 0x09, 0x10, 0x45, 0x0c, 0x0d, 0x2c, 0x6e, 0x68, 0xf1,
+  0x6c, 0x5b, 0x48, 0x68, 0x49, 0x59, 0x37, 0xfc, 0x0b, 0x33, 0x19, 0xc2,
+  0x77, 0x7f, 0xcc, 0x10, 0x2d, 0x95, 0x34, 0x1c, 0xe6, 0xeb, 0x4d, 0x09,
+  0xa7, 0x1c, 0xd2, 0xb8, 0xc9, 0x97, 0x36, 0x02, 0xb7, 0x89, 0xd4, 0x24,
+  0x5f, 0x06, 0xc0, 0xcc, 0x44, 0x94, 0x94, 0x8d, 0x02, 0x62, 0x6f, 0xeb,
+  0x5a, 0xdd, 0x11, 0x8d, 0x28, 0x9a, 0x5c, 0x84, 0x90, 0x10, 0x7a, 0x0d,
+  0xbd, 0x74, 0x66, 0x2f, 0x6a, 0x38, 0xa0, 0xe2, 0xd5, 0x54, 0x44, 0xeb,
+  0x1d, 0x07, 0x9f, 0x07, 0xba, 0x6f, 0xee, 0xe9, 0xfd, 0x4e, 0x0b, 0x29,
+  0xf5, 0x3e, 0x84, 0xa0, 0x01, 0xf1, 0x9c, 0xab, 0xf8, 0x1c, 0x7e, 0x89,
+  0xa4, 0xe8, 0xa1, 0xd8, 0x71, 0x65, 0x0d, 0xa3, 0x51, 0x7b, 0xee, 0xbc,
+  0xd2, 0x22, 0x60, 0x0d, 0xb9, 0x5b, 0x9d, 0xdf, 0xba, 0xfc, 0x51, 0x5b,
+  0x0b, 0xaf, 0x98, 0xb2, 0xe9, 0x2e, 0xe9, 0x04, 0xe8, 0x62, 0x87, 0xde,
+  0x2b, 0xc8, 0xd7, 0x4e, 0xc1, 0x4c, 0x64, 0x1e, 0xdd, 0xcf, 0x87, 0x58,
+  0xba, 0x4a, 0x4f, 0xca, 0x68, 0x07, 0x1d, 0x1c, 0x9d, 0x4a, 0xc6, 0xd5,
+  0x2f, 0x91, 0xcc, 0x7c, 0x71, 0x72, 0x1c, 0xc5, 0xc0, 0x67, 0xeb, 0x32,
+  0xfd, 0xc9, 0x92, 0x5c, 0x94, 0xda, 0x85, 0xc0, 0x9b, 0xbf, 0x53, 0x7d,
+  0x2b, 0x09, 0xf4, 0x8c, 0x9d, 0x91, 0x1f, 0x97, 0x6a, 0x52, 0xcb, 0xde,
+  0x09, 0x36, 0xa4, 0x77, 0xd8, 0x7b, 0x87, 0x50, 0x44, 0xd5, 0x3e, 0x6e,
+  0x29, 0x69, 0xfb, 0x39, 0x49, 0x26, 0x1e, 0x09, 0xa5, 0x80, 0x7b, 0x40,
+  0x2d, 0xeb, 0xe8, 0x27, 0x85, 0xc9, 0xfe, 0x61, 0xfd, 0x7e, 0xe6, 0x7c,
+  0x97, 0x1d, 0xd5, 0x9d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xc2,
+  0x30, 0x81, 0xbf, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3b, 0x06, 0x03,
+  0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55,
+  0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+  0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+  0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x40, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x39, 0x30, 0x37, 0x30, 0x35, 0xa0, 0x33, 0xa0,
+  0x31, 0x86, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69,
+  0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x84, 0xa8, 0x4c,
+  0xc9, 0x3e, 0x2a, 0xbc, 0x9a, 0xe2, 0xcc, 0x8f, 0x0b, 0xb2, 0x25, 0x77,
+  0xc4, 0x61, 0x89, 0x89, 0x63, 0x5a, 0xd4, 0xa3, 0x15, 0x40, 0xd4, 0xfb,
+  0x5e, 0x3f, 0xb4, 0x43, 0xea, 0x63, 0x17, 0x2b, 0x6b, 0x99, 0x74, 0x9e,
+  0x09, 0xa8, 0xdd, 0xd4, 0x56, 0x15, 0x2e, 0x7a, 0x79, 0x31, 0x5f, 0x63,
+  0x96, 0x53, 0x1b, 0x34, 0xd9, 0x15, 0xea, 0x4f, 0x6d, 0x70, 0xca, 0xbe,
+  0xf6, 0x82, 0xa9, 0xed, 0xda, 0x85, 0x77, 0xcc, 0x76, 0x1c, 0x6a, 0x81,
+  0x0a, 0x21, 0xd8, 0x41, 0x99, 0x7f, 0x5e, 0x2e, 0x82, 0xc1, 0xe8, 0xaa,
+  0xf7, 0x93, 0x81, 0x05, 0xaa, 0x92, 0xb4, 0x1f, 0xb7, 0x9a, 0xc0, 0x07,
+  0x17, 0xf5, 0xcb, 0xc6, 0xb4, 0x4c, 0x0e, 0xd7, 0x56, 0xdc, 0x71, 0x20,
+  0x74, 0x38, 0xd6, 0x74, 0xc6, 0xd6, 0x8f, 0x6b, 0xaf, 0x8b, 0x8d, 0xa0,
+  0x6c, 0x29, 0x0b, 0x61, 0xe0,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:00:00:00:00:01:44:4e:f0:36:31
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+        Validity
+            Not Before: Feb 20 10:00:00 2014 GMT
+            Not After : Feb 20 10:00:00 2024 GMT
+        Subject: C=BE, O=GlobalSign nv-sa, CN=AlphaSSL CA - SHA256 - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:da:01:ec:e4:ec:73:60:fb:7e:8f:6a:b7:c6:17:
+                    e3:92:64:32:d4:ac:00:d9:a2:0f:b9:ed:ee:6b:8a:
+                    86:ca:92:67:d9:74:d7:5d:47:02:3c:8f:40:d6:9e:
+                    6d:14:cd:c3:da:29:39:a7:0f:05:0a:68:a2:66:1a:
+                    1e:c4:b2:8b:76:58:e5:ab:5d:1d:8f:40:b3:39:8b:
+                    ef:1e:83:7d:22:d0:e3:a9:00:2e:ec:53:cf:62:19:
+                    85:44:28:4c:c0:27:cb:7b:0e:ec:10:64:00:10:a4:
+                    05:cc:a0:72:be:41:6c:31:5b:48:e4:b1:ec:b9:23:
+                    eb:55:4d:d0:7d:62:4a:a5:b4:a5:a4:59:85:c5:25:
+                    91:a6:fe:a6:09:9f:06:10:6d:8f:81:0c:64:40:5e:
+                    73:00:9a:e0:2e:65:98:54:10:00:70:98:c8:e1:ed:
+                    34:5f:d8:9c:c7:0d:c0:d6:23:59:45:fc:fe:55:7a:
+                    86:ee:94:60:22:f1:ae:d1:e6:55:46:f6:99:c5:1b:
+                    08:74:5f:ac:b0:64:84:8f:89:38:1c:a1:a7:90:21:
+                    4f:02:6e:bd:e0:61:67:d4:f8:42:87:0f:0a:f7:c9:
+                    04:6d:2a:a9:2f:ef:42:a5:df:dd:a3:53:db:98:1e:
+                    81:f9:9a:72:7b:5a:de:4f:3e:7f:a2:58:a0:e2:17:
+                    ad:67
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Subject Key Identifier: 
+                F5:CD:D5:3C:08:50:F9:6A:4F:3A:B7:97:DA:56:83:E6:69:D2:68:F7
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.alphassl.com/repository/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.globalsign.net/root.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+            X509v3 Authority Key Identifier: 
+                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+    Signature Algorithm: sha256WithRSAEncryption
+         60:40:68:16:47:e7:16:8d:db:5c:a1:56:2a:cb:f4:5c:9b:b0:
+         1e:a2:4b:f5:cb:02:3f:f8:0b:a1:f2:a7:42:d4:b7:4c:eb:e3:
+         66:80:f3:25:43:78:2e:1b:17:56:07:52:18:cb:d1:a8:ec:e6:
+         fb:73:3e:a4:62:8c:80:b4:d2:c5:12:73:a3:d3:fa:02:38:be:
+         63:3d:84:b8:99:c1:f1:ba:f7:9f:c3:40:d1:58:18:53:c1:62:
+         dd:af:18:42:7f:34:4e:c5:43:d5:71:b0:30:00:c7:e3:90:ae:
+         3f:57:86:97:ce:ea:0c:12:8e:22:70:e3:66:a7:54:7f:2e:28:
+         cb:d4:54:d0:b3:1e:62:67:08:f9:27:e1:cb:e3:66:b8:24:1b:
+         89:6a:89:44:65:f2:d9:4c:d2:58:1c:8c:4e:c0:95:a1:d4:ef:
+         67:2f:38:20:e8:2e:ff:96:51:f0:ba:d8:3d:92:70:47:65:1c:
+         9e:73:72:b4:60:0c:5c:e2:d1:73:76:e0:af:4e:e2:e5:37:a5:
+         45:2f:8a:23:3e:87:c7:30:e6:31:38:7c:f4:dd:52:ca:f3:53:
+         04:25:57:56:66:94:e8:0b:ee:e6:03:14:4e:ee:fd:6d:94:64:
+         9e:5e:ce:79:d4:b2:a6:cf:40:b1:44:a8:3e:87:19:5e:e9:f8:
+         21:16:59:53
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgILBAAAAAABRE7wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMEwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMSIwIAYDVQQDExlBbHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcy
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gHs5OxzYPt+j2q3xhfj
+kmQy1KwA2aIPue3ua4qGypJn2XTXXUcCPI9A1p5tFM3D2ik5pw8FCmiiZhoexLKL
+dljlq10dj0CzOYvvHoN9ItDjqQAu7FPPYhmFRChMwCfLew7sEGQAEKQFzKByvkFs
+MVtI5LHsuSPrVU3QfWJKpbSlpFmFxSWRpv6mCZ8GEG2PgQxkQF5zAJrgLmWYVBAA
+cJjI4e00X9icxw3A1iNZRfz+VXqG7pRgIvGu0eZVRvaZxRsIdF+ssGSEj4k4HKGn
+kCFPAm694GFn1PhChw8K98kEbSqpL+9Cpd/do1PbmB6B+Zpye1reTz5/olig4het
+ZwIDAQABo4IBIzCCAR8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwHQYDVR0OBBYEFPXN1TwIUPlqTzq3l9pWg+Zp0mj3MEUGA1UdIAQ+MDwwOgYE
+VR0gADAyMDAGCCsGAQUFBwIBFiRodHRwczovL3d3dy5hbHBoYXNzbC5jb20vcmVw
+b3NpdG9yeS8wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5nbG9iYWxzaWdu
+Lm5ldC9yb290LmNybDA9BggrBgEFBQcBAQQxMC8wLQYIKwYBBQUHMAGGIWh0dHA6
+Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMTAfBgNVHSMEGDAWgBRge2YaRQ2X
+yolQL30EzTSo//z9SzANBgkqhkiG9w0BAQsFAAOCAQEAYEBoFkfnFo3bXKFWKsv0
+XJuwHqJL9csCP/gLofKnQtS3TOvjZoDzJUN4LhsXVgdSGMvRqOzm+3M+pGKMgLTS
+xRJzo9P6Aji+Yz2EuJnB8br3n8NA0VgYU8Fi3a8YQn80TsVD1XGwMADH45CuP1eG
+l87qDBKOInDjZqdUfy4oy9RU0LMeYmcI+Sfhy+NmuCQbiWqJRGXy2UzSWByMTsCV
+odTvZy84IOgu/5ZR8LrYPZJwR2UcnnNytGAMXOLRc3bgr07i5TelRS+KIz6HxzDm
+MTh89N1SyvNTBCVXVmaU6Avu5gMUTu79bZRknl7OedSyps9AsUSoPocZXun4IRZZ
+Uw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert11[] = {
+  0x30, 0x82, 0x04, 0x4d, 0x30, 0x82, 0x03, 0x35, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+  0x36, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+  0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+  0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4c, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+  0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+  0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x41,
+  0x6c, 0x70, 0x68, 0x61, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+  0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x01, 0xec,
+  0xe4, 0xec, 0x73, 0x60, 0xfb, 0x7e, 0x8f, 0x6a, 0xb7, 0xc6, 0x17, 0xe3,
+  0x92, 0x64, 0x32, 0xd4, 0xac, 0x00, 0xd9, 0xa2, 0x0f, 0xb9, 0xed, 0xee,
+  0x6b, 0x8a, 0x86, 0xca, 0x92, 0x67, 0xd9, 0x74, 0xd7, 0x5d, 0x47, 0x02,
+  0x3c, 0x8f, 0x40, 0xd6, 0x9e, 0x6d, 0x14, 0xcd, 0xc3, 0xda, 0x29, 0x39,
+  0xa7, 0x0f, 0x05, 0x0a, 0x68, 0xa2, 0x66, 0x1a, 0x1e, 0xc4, 0xb2, 0x8b,
+  0x76, 0x58, 0xe5, 0xab, 0x5d, 0x1d, 0x8f, 0x40, 0xb3, 0x39, 0x8b, 0xef,
+  0x1e, 0x83, 0x7d, 0x22, 0xd0, 0xe3, 0xa9, 0x00, 0x2e, 0xec, 0x53, 0xcf,
+  0x62, 0x19, 0x85, 0x44, 0x28, 0x4c, 0xc0, 0x27, 0xcb, 0x7b, 0x0e, 0xec,
+  0x10, 0x64, 0x00, 0x10, 0xa4, 0x05, 0xcc, 0xa0, 0x72, 0xbe, 0x41, 0x6c,
+  0x31, 0x5b, 0x48, 0xe4, 0xb1, 0xec, 0xb9, 0x23, 0xeb, 0x55, 0x4d, 0xd0,
+  0x7d, 0x62, 0x4a, 0xa5, 0xb4, 0xa5, 0xa4, 0x59, 0x85, 0xc5, 0x25, 0x91,
+  0xa6, 0xfe, 0xa6, 0x09, 0x9f, 0x06, 0x10, 0x6d, 0x8f, 0x81, 0x0c, 0x64,
+  0x40, 0x5e, 0x73, 0x00, 0x9a, 0xe0, 0x2e, 0x65, 0x98, 0x54, 0x10, 0x00,
+  0x70, 0x98, 0xc8, 0xe1, 0xed, 0x34, 0x5f, 0xd8, 0x9c, 0xc7, 0x0d, 0xc0,
+  0xd6, 0x23, 0x59, 0x45, 0xfc, 0xfe, 0x55, 0x7a, 0x86, 0xee, 0x94, 0x60,
+  0x22, 0xf1, 0xae, 0xd1, 0xe6, 0x55, 0x46, 0xf6, 0x99, 0xc5, 0x1b, 0x08,
+  0x74, 0x5f, 0xac, 0xb0, 0x64, 0x84, 0x8f, 0x89, 0x38, 0x1c, 0xa1, 0xa7,
+  0x90, 0x21, 0x4f, 0x02, 0x6e, 0xbd, 0xe0, 0x61, 0x67, 0xd4, 0xf8, 0x42,
+  0x87, 0x0f, 0x0a, 0xf7, 0xc9, 0x04, 0x6d, 0x2a, 0xa9, 0x2f, 0xef, 0x42,
+  0xa5, 0xdf, 0xdd, 0xa3, 0x53, 0xdb, 0x98, 0x1e, 0x81, 0xf9, 0x9a, 0x72,
+  0x7b, 0x5a, 0xde, 0x4f, 0x3e, 0x7f, 0xa2, 0x58, 0xa0, 0xe2, 0x17, 0xad,
+  0x67, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x23, 0x30, 0x82,
+  0x01, 0x1f, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0xf5, 0xcd, 0xd5, 0x3c, 0x08, 0x50, 0xf9, 0x6a, 0x4f, 0x3a, 0xb7,
+  0x97, 0xda, 0x56, 0x83, 0xe6, 0x69, 0xd2, 0x68, 0xf7, 0x30, 0x45, 0x06,
+  0x03, 0x55, 0x1d, 0x20, 0x04, 0x3e, 0x30, 0x3c, 0x30, 0x3a, 0x06, 0x04,
+  0x55, 0x1d, 0x20, 0x00, 0x30, 0x32, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x24, 0x68, 0x74, 0x74, 0x70,
+  0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x6c, 0x70, 0x68,
+  0x61, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+  0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0,
+  0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e,
+  0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+  0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+  0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f,
+  0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97,
+  0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd,
+  0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x60, 0x40, 0x68,
+  0x16, 0x47, 0xe7, 0x16, 0x8d, 0xdb, 0x5c, 0xa1, 0x56, 0x2a, 0xcb, 0xf4,
+  0x5c, 0x9b, 0xb0, 0x1e, 0xa2, 0x4b, 0xf5, 0xcb, 0x02, 0x3f, 0xf8, 0x0b,
+  0xa1, 0xf2, 0xa7, 0x42, 0xd4, 0xb7, 0x4c, 0xeb, 0xe3, 0x66, 0x80, 0xf3,
+  0x25, 0x43, 0x78, 0x2e, 0x1b, 0x17, 0x56, 0x07, 0x52, 0x18, 0xcb, 0xd1,
+  0xa8, 0xec, 0xe6, 0xfb, 0x73, 0x3e, 0xa4, 0x62, 0x8c, 0x80, 0xb4, 0xd2,
+  0xc5, 0x12, 0x73, 0xa3, 0xd3, 0xfa, 0x02, 0x38, 0xbe, 0x63, 0x3d, 0x84,
+  0xb8, 0x99, 0xc1, 0xf1, 0xba, 0xf7, 0x9f, 0xc3, 0x40, 0xd1, 0x58, 0x18,
+  0x53, 0xc1, 0x62, 0xdd, 0xaf, 0x18, 0x42, 0x7f, 0x34, 0x4e, 0xc5, 0x43,
+  0xd5, 0x71, 0xb0, 0x30, 0x00, 0xc7, 0xe3, 0x90, 0xae, 0x3f, 0x57, 0x86,
+  0x97, 0xce, 0xea, 0x0c, 0x12, 0x8e, 0x22, 0x70, 0xe3, 0x66, 0xa7, 0x54,
+  0x7f, 0x2e, 0x28, 0xcb, 0xd4, 0x54, 0xd0, 0xb3, 0x1e, 0x62, 0x67, 0x08,
+  0xf9, 0x27, 0xe1, 0xcb, 0xe3, 0x66, 0xb8, 0x24, 0x1b, 0x89, 0x6a, 0x89,
+  0x44, 0x65, 0xf2, 0xd9, 0x4c, 0xd2, 0x58, 0x1c, 0x8c, 0x4e, 0xc0, 0x95,
+  0xa1, 0xd4, 0xef, 0x67, 0x2f, 0x38, 0x20, 0xe8, 0x2e, 0xff, 0x96, 0x51,
+  0xf0, 0xba, 0xd8, 0x3d, 0x92, 0x70, 0x47, 0x65, 0x1c, 0x9e, 0x73, 0x72,
+  0xb4, 0x60, 0x0c, 0x5c, 0xe2, 0xd1, 0x73, 0x76, 0xe0, 0xaf, 0x4e, 0xe2,
+  0xe5, 0x37, 0xa5, 0x45, 0x2f, 0x8a, 0x23, 0x3e, 0x87, 0xc7, 0x30, 0xe6,
+  0x31, 0x38, 0x7c, 0xf4, 0xdd, 0x52, 0xca, 0xf3, 0x53, 0x04, 0x25, 0x57,
+  0x56, 0x66, 0x94, 0xe8, 0x0b, 0xee, 0xe6, 0x03, 0x14, 0x4e, 0xee, 0xfd,
+  0x6d, 0x94, 0x64, 0x9e, 0x5e, 0xce, 0x79, 0xd4, 0xb2, 0xa6, 0xcf, 0x40,
+  0xb1, 0x44, 0xa8, 0x3e, 0x87, 0x19, 0x5e, 0xe9, 0xf8, 0x21, 0x16, 0x59,
+  0x53,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146031 (0x23a6f)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Nov  5 21:36:50 2013 GMT
+            Not After : May 20 21:36:50 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e3:be:7e:0a:86:a3:cf:6b:6d:3d:2b:a1:97:ad:
+                    49:24:4d:d7:77:b9:34:79:08:a5:9e:a2:9e:de:47:
+                    12:92:3d:7e:ea:19:86:b1:e8:4f:3d:5f:f7:d0:a7:
+                    77:9a:5b:1f:0a:03:b5:19:53:db:a5:21:94:69:63:
+                    9d:6a:4c:91:0c:10:47:be:11:fa:6c:86:25:b7:ab:
+                    04:68:42:38:09:65:f0:14:da:19:9e:fa:6b:0b:ab:
+                    62:ef:8d:a7:ef:63:70:23:a8:af:81:f3:d1:6e:88:
+                    67:53:ec:12:a4:29:75:8a:a7:f2:57:3d:a2:83:98:
+                    97:f2:0a:7d:d4:e7:43:6e:30:78:62:22:59:59:b8:
+                    71:27:45:aa:0f:66:c6:55:3f:fa:32:17:2b:31:8f:
+                    46:a0:fa:69:14:7c:9d:9f:5a:e2:eb:33:4e:10:a6:
+                    b3:ed:77:63:d8:c3:9e:f4:dd:df:79:9a:7a:d4:ee:
+                    de:dd:9a:cc:c3:b7:a9:5d:cc:11:3a:07:bb:6f:97:
+                    a4:01:23:47:95:1f:a3:77:fa:58:92:c6:c7:d0:bd:
+                    cf:93:18:42:b7:7e:f7:9e:65:ea:d5:3b:ca:ed:ac:
+                    c5:70:a1:fe:d4:10:9a:f0:12:04:44:ac:1a:5b:78:
+                    50:45:57:4c:6f:bd:80:cb:81:5c:2d:b3:bc:76:a1:
+                    1e:65
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                D2:6F:F7:96:F4:85:3F:72:3C:30:7D:23:DA:85:78:9B:A3:7C:5A:7C
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g1.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-539
+    Signature Algorithm: sha256WithRSAEncryption
+         a0:d4:f7:2c:fb:74:0b:7f:64:f1:cd:43:6a:9f:62:53:1c:02:
+         7c:98:90:a2:ee:4f:68:d4:20:1a:73:12:3e:77:b3:50:eb:72:
+         bc:ee:88:be:7f:17:ea:77:8f:83:61:95:4f:84:a1:cb:32:4f:
+         6c:21:be:d2:69:96:7d:63:bd:dc:2b:a8:1f:d0:13:84:70:fe:
+         f6:35:95:89:f9:a6:77:b0:46:c8:bb:b7:13:f5:c9:60:69:d6:
+         4c:fe:d2:8e:ef:d3:60:c1:80:80:e1:e7:fb:8b:6f:21:79:4a:
+         e0:dc:a9:1b:c1:b7:fb:c3:49:59:5c:b5:77:07:44:d4:97:fc:
+         49:00:89:6f:06:4e:01:70:19:ac:2f:11:c0:e2:e6:0f:2f:86:
+         4b:8d:7b:c3:b9:a7:2e:f4:f1:ac:16:3e:39:49:51:9e:17:4b:
+         4f:10:3a:5b:a5:a8:92:6f:fd:fa:d6:0b:03:4d:47:56:57:19:
+         f3:cb:6b:f5:f3:d6:cf:b0:f5:f5:a3:11:d2:20:53:13:34:37:
+         05:2c:43:5a:63:df:8d:40:d6:85:1e:51:e9:51:17:1e:03:56:
+         c9:f1:30:ad:e7:9b:11:a2:b9:d0:31:81:9b:68:b1:d9:e8:f3:
+         e6:94:7e:c7:ae:13:2f:87:ed:d0:25:b0:68:f9:de:08:5a:f3:
+         29:cc:d4:92
+-----BEGIN CERTIFICATE-----
+MIIETzCCAzegAwIBAgIDAjpvMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMxMTA1MjEzNjUwWhcNMjIwNTIwMjEzNjUwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDjvn4K
+hqPPa209K6GXrUkkTdd3uTR5CKWeop7eRxKSPX7qGYax6E89X/fQp3eaWx8KA7UZ
+U9ulIZRpY51qTJEMEEe+EfpshiW3qwRoQjgJZfAU2hme+msLq2LvjafvY3AjqK+B
+89FuiGdT7BKkKXWKp/JXPaKDmJfyCn3U50NuMHhiIllZuHEnRaoPZsZVP/oyFysx
+j0ag+mkUfJ2fWuLrM04QprPtd2PYw5703d95mnrU7t7dmszDt6ldzBE6B7tvl6QB
+I0eVH6N3+liSxsfQvc+TGEK3fveeZerVO8rtrMVwof7UEJrwEgRErBpbeFBFV0xv
+vYDLgVwts7x2oR5lAgMBAAGjggFKMIIBRjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQU0m/3lvSFP3I8MH0j2oV4m6N8WnwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNgYDVR0fBC8wLTAroCmgJ4Yl
+aHR0cDovL2cxLnN5bWNiLmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAvBggrBgEFBQcB
+AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9nMi5zeW1jYi5jb20wTAYDVR0gBEUw
+QzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1
+c3QuY29tL3Jlc291cmNlcy9jcHMwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5
+bWFudGVjUEtJLTEtNTM5MA0GCSqGSIb3DQEBCwUAA4IBAQCg1Pcs+3QLf2TxzUNq
+n2JTHAJ8mJCi7k9o1CAacxI+d7NQ63K87oi+fxfqd4+DYZVPhKHLMk9sIb7SaZZ9
+Y73cK6gf0BOEcP72NZWJ+aZ3sEbIu7cT9clgadZM/tKO79NgwYCA4ef7i28heUrg
+3Kkbwbf7w0lZXLV3B0TUl/xJAIlvBk4BcBmsLxHA4uYPL4ZLjXvDuacu9PGsFj45
+SVGeF0tPEDpbpaiSb/361gsDTUdWVxnzy2v189bPsPX1oxHSIFMTNDcFLENaY9+N
+QNaFHlHpURceA1bJ8TCt55sRornQMYGbaLHZ6PPmlH7HrhMvh+3QJbBo+d4IWvMp
+zNSS
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert12[] = {
+  0x30, 0x82, 0x04, 0x4f, 0x30, 0x82, 0x03, 0x37, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x6f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31,
+  0x31, 0x30, 0x35, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30,
+  0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe3, 0xbe, 0x7e, 0x0a,
+  0x86, 0xa3, 0xcf, 0x6b, 0x6d, 0x3d, 0x2b, 0xa1, 0x97, 0xad, 0x49, 0x24,
+  0x4d, 0xd7, 0x77, 0xb9, 0x34, 0x79, 0x08, 0xa5, 0x9e, 0xa2, 0x9e, 0xde,
+  0x47, 0x12, 0x92, 0x3d, 0x7e, 0xea, 0x19, 0x86, 0xb1, 0xe8, 0x4f, 0x3d,
+  0x5f, 0xf7, 0xd0, 0xa7, 0x77, 0x9a, 0x5b, 0x1f, 0x0a, 0x03, 0xb5, 0x19,
+  0x53, 0xdb, 0xa5, 0x21, 0x94, 0x69, 0x63, 0x9d, 0x6a, 0x4c, 0x91, 0x0c,
+  0x10, 0x47, 0xbe, 0x11, 0xfa, 0x6c, 0x86, 0x25, 0xb7, 0xab, 0x04, 0x68,
+  0x42, 0x38, 0x09, 0x65, 0xf0, 0x14, 0xda, 0x19, 0x9e, 0xfa, 0x6b, 0x0b,
+  0xab, 0x62, 0xef, 0x8d, 0xa7, 0xef, 0x63, 0x70, 0x23, 0xa8, 0xaf, 0x81,
+  0xf3, 0xd1, 0x6e, 0x88, 0x67, 0x53, 0xec, 0x12, 0xa4, 0x29, 0x75, 0x8a,
+  0xa7, 0xf2, 0x57, 0x3d, 0xa2, 0x83, 0x98, 0x97, 0xf2, 0x0a, 0x7d, 0xd4,
+  0xe7, 0x43, 0x6e, 0x30, 0x78, 0x62, 0x22, 0x59, 0x59, 0xb8, 0x71, 0x27,
+  0x45, 0xaa, 0x0f, 0x66, 0xc6, 0x55, 0x3f, 0xfa, 0x32, 0x17, 0x2b, 0x31,
+  0x8f, 0x46, 0xa0, 0xfa, 0x69, 0x14, 0x7c, 0x9d, 0x9f, 0x5a, 0xe2, 0xeb,
+  0x33, 0x4e, 0x10, 0xa6, 0xb3, 0xed, 0x77, 0x63, 0xd8, 0xc3, 0x9e, 0xf4,
+  0xdd, 0xdf, 0x79, 0x9a, 0x7a, 0xd4, 0xee, 0xde, 0xdd, 0x9a, 0xcc, 0xc3,
+  0xb7, 0xa9, 0x5d, 0xcc, 0x11, 0x3a, 0x07, 0xbb, 0x6f, 0x97, 0xa4, 0x01,
+  0x23, 0x47, 0x95, 0x1f, 0xa3, 0x77, 0xfa, 0x58, 0x92, 0xc6, 0xc7, 0xd0,
+  0xbd, 0xcf, 0x93, 0x18, 0x42, 0xb7, 0x7e, 0xf7, 0x9e, 0x65, 0xea, 0xd5,
+  0x3b, 0xca, 0xed, 0xac, 0xc5, 0x70, 0xa1, 0xfe, 0xd4, 0x10, 0x9a, 0xf0,
+  0x12, 0x04, 0x44, 0xac, 0x1a, 0x5b, 0x78, 0x50, 0x45, 0x57, 0x4c, 0x6f,
+  0xbd, 0x80, 0xcb, 0x81, 0x5c, 0x2d, 0xb3, 0xbc, 0x76, 0xa1, 0x1e, 0x65,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4a, 0x30, 0x82, 0x01,
+  0x46, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+  0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd2, 0x6f, 0xf7,
+  0x96, 0xf4, 0x85, 0x3f, 0x72, 0x3c, 0x30, 0x7d, 0x23, 0xda, 0x85, 0x78,
+  0x9b, 0xa3, 0x7c, 0x5a, 0x7c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27, 0x86, 0x25,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+  0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73,
+  0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72,
+  0x6c, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+  0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+  0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30,
+  0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+  0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+  0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03,
+  0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+  0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+  0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+  0x35, 0x33, 0x39, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa0,
+  0xd4, 0xf7, 0x2c, 0xfb, 0x74, 0x0b, 0x7f, 0x64, 0xf1, 0xcd, 0x43, 0x6a,
+  0x9f, 0x62, 0x53, 0x1c, 0x02, 0x7c, 0x98, 0x90, 0xa2, 0xee, 0x4f, 0x68,
+  0xd4, 0x20, 0x1a, 0x73, 0x12, 0x3e, 0x77, 0xb3, 0x50, 0xeb, 0x72, 0xbc,
+  0xee, 0x88, 0xbe, 0x7f, 0x17, 0xea, 0x77, 0x8f, 0x83, 0x61, 0x95, 0x4f,
+  0x84, 0xa1, 0xcb, 0x32, 0x4f, 0x6c, 0x21, 0xbe, 0xd2, 0x69, 0x96, 0x7d,
+  0x63, 0xbd, 0xdc, 0x2b, 0xa8, 0x1f, 0xd0, 0x13, 0x84, 0x70, 0xfe, 0xf6,
+  0x35, 0x95, 0x89, 0xf9, 0xa6, 0x77, 0xb0, 0x46, 0xc8, 0xbb, 0xb7, 0x13,
+  0xf5, 0xc9, 0x60, 0x69, 0xd6, 0x4c, 0xfe, 0xd2, 0x8e, 0xef, 0xd3, 0x60,
+  0xc1, 0x80, 0x80, 0xe1, 0xe7, 0xfb, 0x8b, 0x6f, 0x21, 0x79, 0x4a, 0xe0,
+  0xdc, 0xa9, 0x1b, 0xc1, 0xb7, 0xfb, 0xc3, 0x49, 0x59, 0x5c, 0xb5, 0x77,
+  0x07, 0x44, 0xd4, 0x97, 0xfc, 0x49, 0x00, 0x89, 0x6f, 0x06, 0x4e, 0x01,
+  0x70, 0x19, 0xac, 0x2f, 0x11, 0xc0, 0xe2, 0xe6, 0x0f, 0x2f, 0x86, 0x4b,
+  0x8d, 0x7b, 0xc3, 0xb9, 0xa7, 0x2e, 0xf4, 0xf1, 0xac, 0x16, 0x3e, 0x39,
+  0x49, 0x51, 0x9e, 0x17, 0x4b, 0x4f, 0x10, 0x3a, 0x5b, 0xa5, 0xa8, 0x92,
+  0x6f, 0xfd, 0xfa, 0xd6, 0x0b, 0x03, 0x4d, 0x47, 0x56, 0x57, 0x19, 0xf3,
+  0xcb, 0x6b, 0xf5, 0xf3, 0xd6, 0xcf, 0xb0, 0xf5, 0xf5, 0xa3, 0x11, 0xd2,
+  0x20, 0x53, 0x13, 0x34, 0x37, 0x05, 0x2c, 0x43, 0x5a, 0x63, 0xdf, 0x8d,
+  0x40, 0xd6, 0x85, 0x1e, 0x51, 0xe9, 0x51, 0x17, 0x1e, 0x03, 0x56, 0xc9,
+  0xf1, 0x30, 0xad, 0xe7, 0x9b, 0x11, 0xa2, 0xb9, 0xd0, 0x31, 0x81, 0x9b,
+  0x68, 0xb1, 0xd9, 0xe8, 0xf3, 0xe6, 0x94, 0x7e, 0xc7, 0xae, 0x13, 0x2f,
+  0x87, 0xed, 0xd0, 0x25, 0xb0, 0x68, 0xf9, 0xde, 0x08, 0x5a, 0xf3, 0x29,
+  0xcc, 0xd4, 0x92,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146019 (0x23a63)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Aug 27 20:40:40 2012 GMT
+            Not After : May 20 20:40:40 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b9:27:f9:4f:d8:f6:b7:15:3f:8f:cd:ce:d6:8d:
+                    1c:6b:fd:7f:da:54:21:4e:03:d8:ca:d0:72:52:15:
+                    b8:c9:82:5b:58:79:84:ff:24:72:6f:f2:69:7f:bc:
+                    96:d9:9a:7a:c3:3e:a9:cf:50:22:13:0e:86:19:db:
+                    e8:49:ef:8b:e6:d6:47:f2:fd:73:45:08:ae:8f:ac:
+                    5e:b6:f8:9e:7c:f7:10:ff:92:43:66:ef:1c:d4:ee:
+                    a1:46:88:11:89:49:79:7a:25:ce:4b:6a:f0:d7:1c:
+                    76:1a:29:3c:c9:e4:fd:1e:85:dc:e0:31:65:05:47:
+                    16:ac:0a:07:4b:2e:70:5e:6b:06:a7:6b:3a:6c:af:
+                    05:12:c4:b2:11:25:d6:3e:97:29:f0:83:6c:57:1c:
+                    d8:a5:ef:cc:ec:fd:d6:12:f1:3f:db:40:b4:ae:0f:
+                    18:d3:c5:af:40:92:5d:07:5e:4e:fe:62:17:37:89:
+                    e9:8b:74:26:a2:ed:b8:0a:e7:6c:15:5b:35:90:72:
+                    dd:d8:4d:21:d4:40:23:5c:8f:ee:80:31:16:ab:68:
+                    55:f4:0e:3b:54:e9:04:4d:f0:cc:4e:81:5e:e9:6f:
+                    52:69:4e:be:a6:16:6d:42:f5:51:ff:e0:0b:56:3c:
+                    98:4f:73:8f:0e:6f:1a:23:f1:c9:c8:d9:df:bc:ec:
+                    52:d7
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                11:4A:D0:73:39:D5:5B:69:08:5C:BA:3D:BF:64:9A:A8:8B:1C:55:BC
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.geotrust.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-254
+    Signature Algorithm: sha1WithRSAEncryption
+         3c:e5:3d:5a:1b:a2:37:2a:e3:46:cf:36:96:18:3c:7b:f1:84:
+         c5:57:86:77:40:9d:35:f0:12:f0:78:18:fb:22:a4:de:98:4b:
+         78:81:e6:4d:86:e3:91:0f:42:e3:b9:dc:a0:d6:ff:a9:f8:b1:
+         79:97:99:d1:c3:6c:42:a5:92:94:e0:5d:0c:33:18:25:c9:2b:
+         95:53:e0:e5:a9:0c:7d:47:fe:7f:51:31:44:5e:f7:2a:1e:35:
+         a2:94:32:f7:c9:ee:c0:b6:c6:9a:ac:de:99:21:6a:23:a0:38:
+         64:ee:a3:c4:88:73:32:3b:50:ce:bf:ad:d3:75:1e:a6:f4:e9:
+         f9:42:6b:60:b2:dd:45:fd:5d:57:08:ce:2d:50:e6:12:32:16:
+         13:8a:f2:94:a2:9b:47:a8:86:7f:d9:98:e5:f7:e5:76:74:64:
+         d8:91:bc:84:16:28:d8:25:44:30:7e:82:d8:ac:b1:e4:c0:e4:
+         15:6c:db:b6:24:27:02:2a:01:12:85:ba:31:88:58:47:74:e3:
+         b8:d2:64:a6:c3:32:59:2e:29:4b:45:f1:5b:89:49:2e:82:9a:
+         c6:18:15:44:d0:2e:64:01:15:68:38:f9:f6:f9:66:03:0c:55:
+         1b:9d:bf:00:40:ae:f0:48:27:4c:e0:80:5e:2d:b9:2a:15:7a:
+         bc:66:f8:35
+-----BEGIN CERTIFICATE-----
+MIIEWTCCA0GgAwIBAgIDAjpjMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTIwODI3MjA0MDQwWhcNMjIwNTIwMjA0MDQwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5J/lP
+2Pa3FT+Pzc7WjRxr/X/aVCFOA9jK0HJSFbjJgltYeYT/JHJv8ml/vJbZmnrDPqnP
+UCITDoYZ2+hJ74vm1kfy/XNFCK6PrF62+J589xD/kkNm7xzU7qFGiBGJSXl6Jc5L
+avDXHHYaKTzJ5P0ehdzgMWUFRxasCgdLLnBeawanazpsrwUSxLIRJdY+lynwg2xX
+HNil78zs/dYS8T/bQLSuDxjTxa9Akl0HXk7+Yhc3iemLdCai7bgK52wVWzWQct3Y
+TSHUQCNcj+6AMRaraFX0DjtU6QRN8MxOgV7pb1JpTr6mFm1C9VH/4AtWPJhPc48O
+bxoj8cnI2d+87FLXAgMBAAGjggFUMIIBUDAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQUEUrQcznVW2kIXLo9v2SaqIscVbwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwOgYDVR0fBDMwMTAvoC2gK4Yp
+aHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Jscy9ndGdsb2JhbC5jcmwwNAYIKwYB
+BQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nZW90cnVzdC5jb20w
+TAYDVR0gBEUwQzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwKgYDVR0RBCMwIaQfMB0xGzAZ
+BgNVBAMTElZlcmlTaWduTVBLSS0yLTI1NDANBgkqhkiG9w0BAQUFAAOCAQEAPOU9
+WhuiNyrjRs82lhg8e/GExVeGd0CdNfAS8HgY+yKk3phLeIHmTYbjkQ9C47ncoNb/
+qfixeZeZ0cNsQqWSlOBdDDMYJckrlVPg5akMfUf+f1ExRF73Kh41opQy98nuwLbG
+mqzemSFqI6A4ZO6jxIhzMjtQzr+t03UepvTp+UJrYLLdRf1dVwjOLVDmEjIWE4ry
+lKKbR6iGf9mY5ffldnRk2JG8hBYo2CVEMH6C2Kyx5MDkFWzbtiQnAioBEoW6MYhY
+R3TjuNJkpsMyWS4pS0XxW4lJLoKaxhgVRNAuZAEVaDj59vlmAwxVG52/AECu8Egn
+TOCAXi25KhV6vGb4NQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert13[] = {
+  0x30, 0x82, 0x04, 0x59, 0x30, 0x82, 0x03, 0x41, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x63, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30,
+  0x38, 0x32, 0x37, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30,
+  0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0x27, 0xf9, 0x4f,
+  0xd8, 0xf6, 0xb7, 0x15, 0x3f, 0x8f, 0xcd, 0xce, 0xd6, 0x8d, 0x1c, 0x6b,
+  0xfd, 0x7f, 0xda, 0x54, 0x21, 0x4e, 0x03, 0xd8, 0xca, 0xd0, 0x72, 0x52,
+  0x15, 0xb8, 0xc9, 0x82, 0x5b, 0x58, 0x79, 0x84, 0xff, 0x24, 0x72, 0x6f,
+  0xf2, 0x69, 0x7f, 0xbc, 0x96, 0xd9, 0x9a, 0x7a, 0xc3, 0x3e, 0xa9, 0xcf,
+  0x50, 0x22, 0x13, 0x0e, 0x86, 0x19, 0xdb, 0xe8, 0x49, 0xef, 0x8b, 0xe6,
+  0xd6, 0x47, 0xf2, 0xfd, 0x73, 0x45, 0x08, 0xae, 0x8f, 0xac, 0x5e, 0xb6,
+  0xf8, 0x9e, 0x7c, 0xf7, 0x10, 0xff, 0x92, 0x43, 0x66, 0xef, 0x1c, 0xd4,
+  0xee, 0xa1, 0x46, 0x88, 0x11, 0x89, 0x49, 0x79, 0x7a, 0x25, 0xce, 0x4b,
+  0x6a, 0xf0, 0xd7, 0x1c, 0x76, 0x1a, 0x29, 0x3c, 0xc9, 0xe4, 0xfd, 0x1e,
+  0x85, 0xdc, 0xe0, 0x31, 0x65, 0x05, 0x47, 0x16, 0xac, 0x0a, 0x07, 0x4b,
+  0x2e, 0x70, 0x5e, 0x6b, 0x06, 0xa7, 0x6b, 0x3a, 0x6c, 0xaf, 0x05, 0x12,
+  0xc4, 0xb2, 0x11, 0x25, 0xd6, 0x3e, 0x97, 0x29, 0xf0, 0x83, 0x6c, 0x57,
+  0x1c, 0xd8, 0xa5, 0xef, 0xcc, 0xec, 0xfd, 0xd6, 0x12, 0xf1, 0x3f, 0xdb,
+  0x40, 0xb4, 0xae, 0x0f, 0x18, 0xd3, 0xc5, 0xaf, 0x40, 0x92, 0x5d, 0x07,
+  0x5e, 0x4e, 0xfe, 0x62, 0x17, 0x37, 0x89, 0xe9, 0x8b, 0x74, 0x26, 0xa2,
+  0xed, 0xb8, 0x0a, 0xe7, 0x6c, 0x15, 0x5b, 0x35, 0x90, 0x72, 0xdd, 0xd8,
+  0x4d, 0x21, 0xd4, 0x40, 0x23, 0x5c, 0x8f, 0xee, 0x80, 0x31, 0x16, 0xab,
+  0x68, 0x55, 0xf4, 0x0e, 0x3b, 0x54, 0xe9, 0x04, 0x4d, 0xf0, 0xcc, 0x4e,
+  0x81, 0x5e, 0xe9, 0x6f, 0x52, 0x69, 0x4e, 0xbe, 0xa6, 0x16, 0x6d, 0x42,
+  0xf5, 0x51, 0xff, 0xe0, 0x0b, 0x56, 0x3c, 0x98, 0x4f, 0x73, 0x8f, 0x0e,
+  0x6f, 0x1a, 0x23, 0xf1, 0xc9, 0xc8, 0xd9, 0xdf, 0xbc, 0xec, 0x52, 0xd7,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x54, 0x30, 0x82, 0x01,
+  0x50, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+  0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x11, 0x4a, 0xd0,
+  0x73, 0x39, 0xd5, 0x5b, 0x69, 0x08, 0x5c, 0xba, 0x3d, 0xbf, 0x64, 0x9a,
+  0xa8, 0x8b, 0x1c, 0x55, 0xbc, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0, 0x2b, 0x86, 0x29,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+  0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+  0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41,
+  0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36,
+  0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+  0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+  0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11,
+  0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53,
+  0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x32, 0x35,
+  0x34, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3c, 0xe5, 0x3d,
+  0x5a, 0x1b, 0xa2, 0x37, 0x2a, 0xe3, 0x46, 0xcf, 0x36, 0x96, 0x18, 0x3c,
+  0x7b, 0xf1, 0x84, 0xc5, 0x57, 0x86, 0x77, 0x40, 0x9d, 0x35, 0xf0, 0x12,
+  0xf0, 0x78, 0x18, 0xfb, 0x22, 0xa4, 0xde, 0x98, 0x4b, 0x78, 0x81, 0xe6,
+  0x4d, 0x86, 0xe3, 0x91, 0x0f, 0x42, 0xe3, 0xb9, 0xdc, 0xa0, 0xd6, 0xff,
+  0xa9, 0xf8, 0xb1, 0x79, 0x97, 0x99, 0xd1, 0xc3, 0x6c, 0x42, 0xa5, 0x92,
+  0x94, 0xe0, 0x5d, 0x0c, 0x33, 0x18, 0x25, 0xc9, 0x2b, 0x95, 0x53, 0xe0,
+  0xe5, 0xa9, 0x0c, 0x7d, 0x47, 0xfe, 0x7f, 0x51, 0x31, 0x44, 0x5e, 0xf7,
+  0x2a, 0x1e, 0x35, 0xa2, 0x94, 0x32, 0xf7, 0xc9, 0xee, 0xc0, 0xb6, 0xc6,
+  0x9a, 0xac, 0xde, 0x99, 0x21, 0x6a, 0x23, 0xa0, 0x38, 0x64, 0xee, 0xa3,
+  0xc4, 0x88, 0x73, 0x32, 0x3b, 0x50, 0xce, 0xbf, 0xad, 0xd3, 0x75, 0x1e,
+  0xa6, 0xf4, 0xe9, 0xf9, 0x42, 0x6b, 0x60, 0xb2, 0xdd, 0x45, 0xfd, 0x5d,
+  0x57, 0x08, 0xce, 0x2d, 0x50, 0xe6, 0x12, 0x32, 0x16, 0x13, 0x8a, 0xf2,
+  0x94, 0xa2, 0x9b, 0x47, 0xa8, 0x86, 0x7f, 0xd9, 0x98, 0xe5, 0xf7, 0xe5,
+  0x76, 0x74, 0x64, 0xd8, 0x91, 0xbc, 0x84, 0x16, 0x28, 0xd8, 0x25, 0x44,
+  0x30, 0x7e, 0x82, 0xd8, 0xac, 0xb1, 0xe4, 0xc0, 0xe4, 0x15, 0x6c, 0xdb,
+  0xb6, 0x24, 0x27, 0x02, 0x2a, 0x01, 0x12, 0x85, 0xba, 0x31, 0x88, 0x58,
+  0x47, 0x74, 0xe3, 0xb8, 0xd2, 0x64, 0xa6, 0xc3, 0x32, 0x59, 0x2e, 0x29,
+  0x4b, 0x45, 0xf1, 0x5b, 0x89, 0x49, 0x2e, 0x82, 0x9a, 0xc6, 0x18, 0x15,
+  0x44, 0xd0, 0x2e, 0x64, 0x01, 0x15, 0x68, 0x38, 0xf9, 0xf6, 0xf9, 0x66,
+  0x03, 0x0c, 0x55, 0x1b, 0x9d, 0xbf, 0x00, 0x40, 0xae, 0xf0, 0x48, 0x27,
+  0x4c, 0xe0, 0x80, 0x5e, 0x2d, 0xb9, 0x2a, 0x15, 0x7a, 0xbc, 0x66, 0xf8,
+  0x35,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:00:00:00:00:01:44:4e:f0:3e:20
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+        Validity
+            Not Before: Feb 20 10:00:00 2014 GMT
+            Not After : Feb 20 10:00:00 2024 GMT
+        Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Domain Validation CA - SHA256 - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a9:dd:cc:0e:b3:e2:32:39:dd:49:22:a8:13:69:
+                    93:87:88:e1:0c:ee:71:7d:bd:90:87:96:5d:59:f2:
+                    cc:b3:d2:58:57:57:f9:46:ef:6c:26:d8:36:42:8e:
+                    7e:30:b3:2f:9a:3e:53:7b:1f:6e:b6:a2:4c:45:1f:
+                    3c:d3:15:93:1c:89:ed:3c:f4:57:de:ca:bd:ec:06:
+                    9a:6a:2a:a0:19:52:7f:51:d1:74:39:08:9f:ab:eb:
+                    d7:86:13:15:97:ae:36:c3:54:66:0e:5a:f2:a0:73:
+                    85:31:e3:b2:64:14:6a:ff:a5:a2:8e:24:bb:bd:85:
+                    52:15:a2:79:ee:f0:b5:ee:3d:b8:f4:7d:80:bc:d9:
+                    90:35:65:b8:17:a9:ad:b3:98:9f:a0:7e:7d:6e:fb:
+                    3f:ad:7c:c2:1b:59:36:96:da:37:32:4b:4b:5d:35:
+                    02:63:8e:db:a7:cf:62:ee:cc:2e:d4:8d:c9:bd:3c:
+                    6a:91:72:a2:22:a7:72:2d:20:d1:fa:ca:37:da:18:
+                    98:e6:16:24:71:25:4b:c4:e5:7b:89:52:09:02:fd:
+                    59:2b:04:6e:ca:07:81:d4:b3:da:da:db:e3:cc:80:
+                    a8:56:07:06:7c:96:08:37:9d:db:38:b6:62:34:91:
+                    62:07:74:01:38:d8:72:30:e2:eb:90:71:26:62:c0:
+                    57:f3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Subject Key Identifier: 
+                EA:4E:7C:D4:80:2D:E5:15:81:86:26:8C:82:6D:C0:98:A4:CF:97:0F
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.globalsign.com/repository/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.globalsign.net/root.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+            X509v3 Authority Key Identifier: 
+                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+    Signature Algorithm: sha256WithRSAEncryption
+         d7:45:9e:a0:dc:e0:e3:61:5a:0b:7d:77:84:17:2d:65:5a:82:
+         9a:8d:a3:27:2a:85:f7:c9:ef:e9:86:fd:d4:47:cd:01:52:96:
+         c5:43:bd:37:b1:e1:b8:f2:a9:d2:8a:11:84:71:91:15:89:dc:
+         02:9d:0b:cb:6c:33:85:34:28:9e:20:b2:b1:97:dc:6d:0b:10:
+         c1:3c:cd:5f:ea:5d:d7:98:31:c5:34:99:5c:00:61:55:c4:1b:
+         02:5b:c5:e3:89:c8:b4:b8:6f:1e:38:f2:56:26:e9:41:ef:3d:
+         cd:ac:99:4f:59:4a:57:2d:4b:7d:ae:c7:88:fb:d6:98:3b:f5:
+         e5:f0:e8:89:89:b9:8b:03:cb:5a:23:1f:a4:fd:b8:ea:fb:2e:
+         9d:ae:6a:73:09:bc:fc:d5:a0:b5:44:82:ab:44:91:2e:50:2e:
+         57:c1:43:d8:91:04:8b:e9:11:2e:5f:b4:3f:79:df:1e:fb:3f:
+         30:00:8b:53:e3:b7:2c:1d:3b:4d:8b:dc:e4:64:1d:04:58:33:
+         af:1b:55:e7:ab:0c:bf:30:04:74:e4:f3:0e:2f:30:39:8d:4b:
+         04:8c:1e:75:66:66:49:e0:be:40:34:c7:5c:5a:51:92:ba:12:
+         3c:52:d5:04:82:55:2d:67:a5:df:b7:95:7c:ee:3f:c3:08:ba:
+         04:be:c0:46
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTYwNAYDVQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0
+aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCp3cwOs+IyOd1JIqgTaZOHiOEM7nF9vZCHll1Z8syz0lhXV/lG72wm2DZC
+jn4wsy+aPlN7H262okxFHzzTFZMcie089Ffeyr3sBppqKqAZUn9R0XQ5CJ+r69eG
+ExWXrjbDVGYOWvKgc4Ux47JkFGr/paKOJLu9hVIVonnu8LXuPbj0fYC82ZA1ZbgX
+qa2zmJ+gfn1u+z+tfMIbWTaW2jcyS0tdNQJjjtunz2LuzC7Ujcm9PGqRcqIip3It
+INH6yjfaGJjmFiRxJUvE5XuJUgkC/VkrBG7KB4HUs9ra2+PMgKhWBwZ8lgg3nds4
+tmI0kWIHdAE42HIw4uuQcSZiwFfzAgMBAAGjggElMIIBITAOBgNVHQ8BAf8EBAMC
+AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6k581IAt5RWBhiaMgm3A
+mKTPlw8wRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+d3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSG
+Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYBBQUHAQEE
+MTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290
+cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZIhvcNAQEL
+BQADggEBANdFnqDc4ONhWgt9d4QXLWVagpqNoycqhffJ7+mG/dRHzQFSlsVDvTex
+4bjyqdKKEYRxkRWJ3AKdC8tsM4U0KJ4gsrGX3G0LEME8zV/qXdeYMcU0mVwAYVXE
+GwJbxeOJyLS4bx448lYm6UHvPc2smU9ZSlctS32ux4j71pg79eXw6ImJuYsDy1oj
+H6T9uOr7Lp2uanMJvPzVoLVEgqtEkS5QLlfBQ9iRBIvpES5ftD953x77PzAAi1Pj
+tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
+EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert14[] = {
+  0x30, 0x82, 0x04, 0x63, 0x30, 0x82, 0x03, 0x4b, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+  0x3e, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+  0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+  0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x60, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+  0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+  0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x44, 0x6f,
+  0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41,
+  0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xa9, 0xdd, 0xcc, 0x0e, 0xb3, 0xe2, 0x32,
+  0x39, 0xdd, 0x49, 0x22, 0xa8, 0x13, 0x69, 0x93, 0x87, 0x88, 0xe1, 0x0c,
+  0xee, 0x71, 0x7d, 0xbd, 0x90, 0x87, 0x96, 0x5d, 0x59, 0xf2, 0xcc, 0xb3,
+  0xd2, 0x58, 0x57, 0x57, 0xf9, 0x46, 0xef, 0x6c, 0x26, 0xd8, 0x36, 0x42,
+  0x8e, 0x7e, 0x30, 0xb3, 0x2f, 0x9a, 0x3e, 0x53, 0x7b, 0x1f, 0x6e, 0xb6,
+  0xa2, 0x4c, 0x45, 0x1f, 0x3c, 0xd3, 0x15, 0x93, 0x1c, 0x89, 0xed, 0x3c,
+  0xf4, 0x57, 0xde, 0xca, 0xbd, 0xec, 0x06, 0x9a, 0x6a, 0x2a, 0xa0, 0x19,
+  0x52, 0x7f, 0x51, 0xd1, 0x74, 0x39, 0x08, 0x9f, 0xab, 0xeb, 0xd7, 0x86,
+  0x13, 0x15, 0x97, 0xae, 0x36, 0xc3, 0x54, 0x66, 0x0e, 0x5a, 0xf2, 0xa0,
+  0x73, 0x85, 0x31, 0xe3, 0xb2, 0x64, 0x14, 0x6a, 0xff, 0xa5, 0xa2, 0x8e,
+  0x24, 0xbb, 0xbd, 0x85, 0x52, 0x15, 0xa2, 0x79, 0xee, 0xf0, 0xb5, 0xee,
+  0x3d, 0xb8, 0xf4, 0x7d, 0x80, 0xbc, 0xd9, 0x90, 0x35, 0x65, 0xb8, 0x17,
+  0xa9, 0xad, 0xb3, 0x98, 0x9f, 0xa0, 0x7e, 0x7d, 0x6e, 0xfb, 0x3f, 0xad,
+  0x7c, 0xc2, 0x1b, 0x59, 0x36, 0x96, 0xda, 0x37, 0x32, 0x4b, 0x4b, 0x5d,
+  0x35, 0x02, 0x63, 0x8e, 0xdb, 0xa7, 0xcf, 0x62, 0xee, 0xcc, 0x2e, 0xd4,
+  0x8d, 0xc9, 0xbd, 0x3c, 0x6a, 0x91, 0x72, 0xa2, 0x22, 0xa7, 0x72, 0x2d,
+  0x20, 0xd1, 0xfa, 0xca, 0x37, 0xda, 0x18, 0x98, 0xe6, 0x16, 0x24, 0x71,
+  0x25, 0x4b, 0xc4, 0xe5, 0x7b, 0x89, 0x52, 0x09, 0x02, 0xfd, 0x59, 0x2b,
+  0x04, 0x6e, 0xca, 0x07, 0x81, 0xd4, 0xb3, 0xda, 0xda, 0xdb, 0xe3, 0xcc,
+  0x80, 0xa8, 0x56, 0x07, 0x06, 0x7c, 0x96, 0x08, 0x37, 0x9d, 0xdb, 0x38,
+  0xb6, 0x62, 0x34, 0x91, 0x62, 0x07, 0x74, 0x01, 0x38, 0xd8, 0x72, 0x30,
+  0xe2, 0xeb, 0x90, 0x71, 0x26, 0x62, 0xc0, 0x57, 0xf3, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x25, 0x30, 0x82, 0x01, 0x21, 0x30, 0x0e,
+  0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+  0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+  0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xea, 0x4e, 0x7c,
+  0xd4, 0x80, 0x2d, 0xe5, 0x15, 0x81, 0x86, 0x26, 0x8c, 0x82, 0x6d, 0xc0,
+  0x98, 0xa4, 0xcf, 0x97, 0x0f, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20,
+  0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+  0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69,
+  0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73,
+  0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86,
+  0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e,
+  0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e,
+  0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73,
+  0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
+  0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89,
+  0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xd7, 0x45, 0x9e, 0xa0, 0xdc,
+  0xe0, 0xe3, 0x61, 0x5a, 0x0b, 0x7d, 0x77, 0x84, 0x17, 0x2d, 0x65, 0x5a,
+  0x82, 0x9a, 0x8d, 0xa3, 0x27, 0x2a, 0x85, 0xf7, 0xc9, 0xef, 0xe9, 0x86,
+  0xfd, 0xd4, 0x47, 0xcd, 0x01, 0x52, 0x96, 0xc5, 0x43, 0xbd, 0x37, 0xb1,
+  0xe1, 0xb8, 0xf2, 0xa9, 0xd2, 0x8a, 0x11, 0x84, 0x71, 0x91, 0x15, 0x89,
+  0xdc, 0x02, 0x9d, 0x0b, 0xcb, 0x6c, 0x33, 0x85, 0x34, 0x28, 0x9e, 0x20,
+  0xb2, 0xb1, 0x97, 0xdc, 0x6d, 0x0b, 0x10, 0xc1, 0x3c, 0xcd, 0x5f, 0xea,
+  0x5d, 0xd7, 0x98, 0x31, 0xc5, 0x34, 0x99, 0x5c, 0x00, 0x61, 0x55, 0xc4,
+  0x1b, 0x02, 0x5b, 0xc5, 0xe3, 0x89, 0xc8, 0xb4, 0xb8, 0x6f, 0x1e, 0x38,
+  0xf2, 0x56, 0x26, 0xe9, 0x41, 0xef, 0x3d, 0xcd, 0xac, 0x99, 0x4f, 0x59,
+  0x4a, 0x57, 0x2d, 0x4b, 0x7d, 0xae, 0xc7, 0x88, 0xfb, 0xd6, 0x98, 0x3b,
+  0xf5, 0xe5, 0xf0, 0xe8, 0x89, 0x89, 0xb9, 0x8b, 0x03, 0xcb, 0x5a, 0x23,
+  0x1f, 0xa4, 0xfd, 0xb8, 0xea, 0xfb, 0x2e, 0x9d, 0xae, 0x6a, 0x73, 0x09,
+  0xbc, 0xfc, 0xd5, 0xa0, 0xb5, 0x44, 0x82, 0xab, 0x44, 0x91, 0x2e, 0x50,
+  0x2e, 0x57, 0xc1, 0x43, 0xd8, 0x91, 0x04, 0x8b, 0xe9, 0x11, 0x2e, 0x5f,
+  0xb4, 0x3f, 0x79, 0xdf, 0x1e, 0xfb, 0x3f, 0x30, 0x00, 0x8b, 0x53, 0xe3,
+  0xb7, 0x2c, 0x1d, 0x3b, 0x4d, 0x8b, 0xdc, 0xe4, 0x64, 0x1d, 0x04, 0x58,
+  0x33, 0xaf, 0x1b, 0x55, 0xe7, 0xab, 0x0c, 0xbf, 0x30, 0x04, 0x74, 0xe4,
+  0xf3, 0x0e, 0x2f, 0x30, 0x39, 0x8d, 0x4b, 0x04, 0x8c, 0x1e, 0x75, 0x66,
+  0x66, 0x49, 0xe0, 0xbe, 0x40, 0x34, 0xc7, 0x5c, 0x5a, 0x51, 0x92, 0xba,
+  0x12, 0x3c, 0x52, 0xd5, 0x04, 0x82, 0x55, 0x2d, 0x67, 0xa5, 0xdf, 0xb7,
+  0x95, 0x7c, 0xee, 0x3f, 0xc3, 0x08, 0xba, 0x04, 0xbe, 0xc0, 0x46,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:00:00:00:00:01:44:4e:f0:42:47
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+        Validity
+            Not Before: Feb 20 10:00:00 2014 GMT
+            Not After : Feb 20 10:00:00 2024 GMT
+        Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c7:0e:6c:3f:23:93:7f:cc:70:a5:9d:20:c3:0e:
+                    53:3f:7e:c0:4e:c2:98:49:ca:47:d5:23:ef:03:34:
+                    85:74:c8:a3:02:2e:46:5c:0b:7d:c9:88:9d:4f:8b:
+                    f0:f8:9c:6c:8c:55:35:db:bf:f2:b3:ea:fb:e3:56:
+                    e7:4a:46:d9:13:22:ca:36:d5:9b:c1:a8:e3:96:43:
+                    93:f2:0c:bc:e6:f9:e6:e8:99:c8:63:48:78:7f:57:
+                    36:69:1a:19:1d:5a:d1:d4:7d:c2:9c:d4:7f:e1:80:
+                    12:ae:7a:ea:88:ea:57:d8:ca:0a:0a:3a:12:49:a2:
+                    62:19:7a:0d:24:f7:37:eb:b4:73:92:7b:05:23:9b:
+                    12:b5:ce:eb:29:df:a4:14:02:b9:01:a5:d4:a6:9c:
+                    43:64:88:de:f8:7e:fe:e3:f5:1e:e5:fe:dc:a3:a8:
+                    e4:66:31:d9:4c:25:e9:18:b9:89:59:09:ae:e9:9d:
+                    1c:6d:37:0f:4a:1e:35:20:28:e2:af:d4:21:8b:01:
+                    c4:45:ad:6e:2b:63:ab:92:6b:61:0a:4d:20:ed:73:
+                    ba:7c:ce:fe:16:b5:db:9f:80:f0:d6:8b:6c:d9:08:
+                    79:4a:4f:78:65:da:92:bc:be:35:f9:b3:c4:f9:27:
+                    80:4e:ff:96:52:e6:02:20:e1:07:73:e9:5d:2b:bd:
+                    b2:f1
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Subject Key Identifier: 
+                96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.globalsign.com/repository/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.globalsign.net/root.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+            X509v3 Authority Key Identifier: 
+                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+    Signature Algorithm: sha256WithRSAEncryption
+         46:2a:ee:5e:bd:ae:01:60:37:31:11:86:71:74:b6:46:49:c8:
+         10:16:fe:2f:62:23:17:ab:1f:87:f8:82:ed:ca:df:0e:2c:df:
+         64:75:8e:e5:18:72:a7:8c:3a:8b:c9:ac:a5:77:50:f7:ef:9e:
+         a4:e0:a0:8f:14:57:a3:2a:5f:ec:7e:6d:10:e6:ba:8d:b0:08:
+         87:76:0e:4c:b2:d9:51:bb:11:02:f2:5c:dd:1c:bd:f3:55:96:
+         0f:d4:06:c0:fc:e2:23:8a:24:70:d3:bb:f0:79:1a:a7:61:70:
+         83:8a:af:06:c5:20:d8:a1:63:d0:6c:ae:4f:32:d7:ae:7c:18:
+         45:75:05:29:77:df:42:40:64:64:86:be:2a:76:09:31:6f:1d:
+         24:f4:99:d0:85:fe:f2:21:08:f9:c6:f6:f1:d0:59:ed:d6:56:
+         3c:08:28:03:67:ba:f0:f9:f1:90:16:47:ae:67:e6:bc:80:48:
+         e9:42:76:34:97:55:69:24:0e:83:d6:a0:2d:b4:f5:f3:79:8a:
+         49:28:74:1a:41:a1:c2:d3:24:88:35:30:60:94:17:b4:e1:04:
+         22:31:3d:3b:2f:17:06:b2:b8:9d:86:2b:5a:69:ef:83:f5:4b:
+         c4:aa:b4:2a:f8:7c:a1:b1:85:94:8c:f4:0c:87:0c:f4:ac:40:
+         f8:59:49:98
+-----BEGIN CERTIFICATE-----
+MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTwwOgYDVQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBW
+YWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDHDmw/I5N/zHClnSDDDlM/fsBOwphJykfVI+8DNIV0yKMCLkZc
+C33JiJ1Pi/D4nGyMVTXbv/Kz6vvjVudKRtkTIso21ZvBqOOWQ5PyDLzm+ebomchj
+SHh/VzZpGhkdWtHUfcKc1H/hgBKueuqI6lfYygoKOhJJomIZeg0k9zfrtHOSewUj
+mxK1zusp36QUArkBpdSmnENkiN74fv7j9R7l/tyjqORmMdlMJekYuYlZCa7pnRxt
+Nw9KHjUgKOKv1CGLAcRFrW4rY6uSa2EKTSDtc7p8zv4WtdufgPDWi2zZCHlKT3hl
+2pK8vjX5s8T5J4BO/5ZS5gIg4Qdz6V0rvbLxAgMBAAGjggElMIIBITAOBgNVHQ8B
+Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUlt5h8b0cFilT
+HMDMfTuDAEDmGnwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0
+dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCow
+KKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYB
+BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNv
+bS9yb290cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZI
+hvcNAQELBQADggEBAEYq7l69rgFgNzERhnF0tkZJyBAW/i9iIxerH4f4gu3K3w4s
+32R1juUYcqeMOovJrKV3UPfvnqTgoI8UV6MqX+x+bRDmuo2wCId2Dkyy2VG7EQLy
+XN0cvfNVlg/UBsD84iOKJHDTu/B5GqdhcIOKrwbFINihY9Bsrk8y1658GEV1BSl3
+30JAZGSGvip2CTFvHST0mdCF/vIhCPnG9vHQWe3WVjwIKANnuvD58ZAWR65n5ryA
+SOlCdjSXVWkkDoPWoC209fN5ikkodBpBocLTJIg1MGCUF7ThBCIxPTsvFwayuJ2G
+K1pp74P1S8SqtCr4fKGxhZSM9AyHDPSsQPhZSZg=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert15[] = {
+  0x30, 0x82, 0x04, 0x69, 0x30, 0x82, 0x03, 0x51, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+  0x42, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+  0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+  0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+  0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+  0x31, 0x3c, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x33, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x4f, 0x72,
+  0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56,
+  0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41,
+  0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20,
+  0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc7,
+  0x0e, 0x6c, 0x3f, 0x23, 0x93, 0x7f, 0xcc, 0x70, 0xa5, 0x9d, 0x20, 0xc3,
+  0x0e, 0x53, 0x3f, 0x7e, 0xc0, 0x4e, 0xc2, 0x98, 0x49, 0xca, 0x47, 0xd5,
+  0x23, 0xef, 0x03, 0x34, 0x85, 0x74, 0xc8, 0xa3, 0x02, 0x2e, 0x46, 0x5c,
+  0x0b, 0x7d, 0xc9, 0x88, 0x9d, 0x4f, 0x8b, 0xf0, 0xf8, 0x9c, 0x6c, 0x8c,
+  0x55, 0x35, 0xdb, 0xbf, 0xf2, 0xb3, 0xea, 0xfb, 0xe3, 0x56, 0xe7, 0x4a,
+  0x46, 0xd9, 0x13, 0x22, 0xca, 0x36, 0xd5, 0x9b, 0xc1, 0xa8, 0xe3, 0x96,
+  0x43, 0x93, 0xf2, 0x0c, 0xbc, 0xe6, 0xf9, 0xe6, 0xe8, 0x99, 0xc8, 0x63,
+  0x48, 0x78, 0x7f, 0x57, 0x36, 0x69, 0x1a, 0x19, 0x1d, 0x5a, 0xd1, 0xd4,
+  0x7d, 0xc2, 0x9c, 0xd4, 0x7f, 0xe1, 0x80, 0x12, 0xae, 0x7a, 0xea, 0x88,
+  0xea, 0x57, 0xd8, 0xca, 0x0a, 0x0a, 0x3a, 0x12, 0x49, 0xa2, 0x62, 0x19,
+  0x7a, 0x0d, 0x24, 0xf7, 0x37, 0xeb, 0xb4, 0x73, 0x92, 0x7b, 0x05, 0x23,
+  0x9b, 0x12, 0xb5, 0xce, 0xeb, 0x29, 0xdf, 0xa4, 0x14, 0x02, 0xb9, 0x01,
+  0xa5, 0xd4, 0xa6, 0x9c, 0x43, 0x64, 0x88, 0xde, 0xf8, 0x7e, 0xfe, 0xe3,
+  0xf5, 0x1e, 0xe5, 0xfe, 0xdc, 0xa3, 0xa8, 0xe4, 0x66, 0x31, 0xd9, 0x4c,
+  0x25, 0xe9, 0x18, 0xb9, 0x89, 0x59, 0x09, 0xae, 0xe9, 0x9d, 0x1c, 0x6d,
+  0x37, 0x0f, 0x4a, 0x1e, 0x35, 0x20, 0x28, 0xe2, 0xaf, 0xd4, 0x21, 0x8b,
+  0x01, 0xc4, 0x45, 0xad, 0x6e, 0x2b, 0x63, 0xab, 0x92, 0x6b, 0x61, 0x0a,
+  0x4d, 0x20, 0xed, 0x73, 0xba, 0x7c, 0xce, 0xfe, 0x16, 0xb5, 0xdb, 0x9f,
+  0x80, 0xf0, 0xd6, 0x8b, 0x6c, 0xd9, 0x08, 0x79, 0x4a, 0x4f, 0x78, 0x65,
+  0xda, 0x92, 0xbc, 0xbe, 0x35, 0xf9, 0xb3, 0xc4, 0xf9, 0x27, 0x80, 0x4e,
+  0xff, 0x96, 0x52, 0xe6, 0x02, 0x20, 0xe1, 0x07, 0x73, 0xe9, 0x5d, 0x2b,
+  0xbd, 0xb2, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x25,
+  0x30, 0x82, 0x01, 0x21, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0x96, 0xde, 0x61, 0xf1, 0xbd, 0x1c, 0x16, 0x29, 0x53,
+  0x1c, 0xc0, 0xcc, 0x7d, 0x3b, 0x83, 0x00, 0x40, 0xe6, 0x1a, 0x7c, 0x30,
+  0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c,
+  0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74,
+  0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c,
+  0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30,
+  0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
+  0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f,
+  0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66,
+  0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34,
+  0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0x46, 0x2a, 0xee, 0x5e, 0xbd, 0xae, 0x01, 0x60, 0x37, 0x31, 0x11,
+  0x86, 0x71, 0x74, 0xb6, 0x46, 0x49, 0xc8, 0x10, 0x16, 0xfe, 0x2f, 0x62,
+  0x23, 0x17, 0xab, 0x1f, 0x87, 0xf8, 0x82, 0xed, 0xca, 0xdf, 0x0e, 0x2c,
+  0xdf, 0x64, 0x75, 0x8e, 0xe5, 0x18, 0x72, 0xa7, 0x8c, 0x3a, 0x8b, 0xc9,
+  0xac, 0xa5, 0x77, 0x50, 0xf7, 0xef, 0x9e, 0xa4, 0xe0, 0xa0, 0x8f, 0x14,
+  0x57, 0xa3, 0x2a, 0x5f, 0xec, 0x7e, 0x6d, 0x10, 0xe6, 0xba, 0x8d, 0xb0,
+  0x08, 0x87, 0x76, 0x0e, 0x4c, 0xb2, 0xd9, 0x51, 0xbb, 0x11, 0x02, 0xf2,
+  0x5c, 0xdd, 0x1c, 0xbd, 0xf3, 0x55, 0x96, 0x0f, 0xd4, 0x06, 0xc0, 0xfc,
+  0xe2, 0x23, 0x8a, 0x24, 0x70, 0xd3, 0xbb, 0xf0, 0x79, 0x1a, 0xa7, 0x61,
+  0x70, 0x83, 0x8a, 0xaf, 0x06, 0xc5, 0x20, 0xd8, 0xa1, 0x63, 0xd0, 0x6c,
+  0xae, 0x4f, 0x32, 0xd7, 0xae, 0x7c, 0x18, 0x45, 0x75, 0x05, 0x29, 0x77,
+  0xdf, 0x42, 0x40, 0x64, 0x64, 0x86, 0xbe, 0x2a, 0x76, 0x09, 0x31, 0x6f,
+  0x1d, 0x24, 0xf4, 0x99, 0xd0, 0x85, 0xfe, 0xf2, 0x21, 0x08, 0xf9, 0xc6,
+  0xf6, 0xf1, 0xd0, 0x59, 0xed, 0xd6, 0x56, 0x3c, 0x08, 0x28, 0x03, 0x67,
+  0xba, 0xf0, 0xf9, 0xf1, 0x90, 0x16, 0x47, 0xae, 0x67, 0xe6, 0xbc, 0x80,
+  0x48, 0xe9, 0x42, 0x76, 0x34, 0x97, 0x55, 0x69, 0x24, 0x0e, 0x83, 0xd6,
+  0xa0, 0x2d, 0xb4, 0xf5, 0xf3, 0x79, 0x8a, 0x49, 0x28, 0x74, 0x1a, 0x41,
+  0xa1, 0xc2, 0xd3, 0x24, 0x88, 0x35, 0x30, 0x60, 0x94, 0x17, 0xb4, 0xe1,
+  0x04, 0x22, 0x31, 0x3d, 0x3b, 0x2f, 0x17, 0x06, 0xb2, 0xb8, 0x9d, 0x86,
+  0x2b, 0x5a, 0x69, 0xef, 0x83, 0xf5, 0x4b, 0xc4, 0xaa, 0xb4, 0x2a, 0xf8,
+  0x7c, 0xa1, 0xb1, 0x85, 0x94, 0x8c, 0xf4, 0x0c, 0x87, 0x0c, 0xf4, 0xac,
+  0x40, 0xf8, 0x59, 0x49, 0x98,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            4d:5f:2c:34:08:b2:4c:20:cd:6d:50:7e:24:4d:c9:ec
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Feb  8 00:00:00 2010 GMT
+            Not After : Feb  7 23:59:59 2020 GMT
+        Subject: C=US, O=Thawte, Inc., CN=Thawte SSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:99:e4:85:5b:76:49:7d:2f:05:d8:c5:ac:c8:c8:
+                    a9:d3:dc:98:e6:d7:34:a6:2f:0c:f2:22:26:d8:a3:
+                    c9:14:4c:8f:05:a4:45:e8:14:0c:58:90:05:1a:b7:
+                    c5:c1:06:a5:80:af:bb:1d:49:6b:52:34:88:c3:59:
+                    e7:ef:6b:c4:27:41:8c:2b:66:1d:d0:e0:a3:97:98:
+                    19:34:4b:41:d5:98:d5:c7:05:ad:a2:e4:d7:ed:0c:
+                    ad:4f:c1:b5:b0:21:fd:3e:50:53:b2:c4:90:d0:d4:
+                    30:67:6c:9a:f1:0e:74:c4:c2:dc:8a:e8:97:ff:c9:
+                    92:ae:01:8a:56:0a:98:32:b0:00:23:ec:90:1a:60:
+                    c3:ed:bb:3a:cb:0f:63:9f:0d:44:c9:52:e1:25:96:
+                    bf:ed:50:95:89:7f:56:14:b1:b7:61:1d:1c:07:8c:
+                    3a:2c:f7:ff:80:de:39:45:d5:af:1a:d1:78:d8:c7:
+                    71:6a:a3:19:a7:32:50:21:e9:f2:0e:a1:c6:13:03:
+                    44:48:d1:66:a8:52:57:d7:11:b4:93:8b:e5:99:9f:
+                    5d:e7:78:51:e5:4d:f6:b7:59:b4:76:b5:09:37:4d:
+                    06:38:13:7a:1c:08:98:5c:c4:48:4a:cb:52:a0:a9:
+                    f8:b1:9d:8e:7b:79:b0:20:2f:3c:96:a8:11:62:47:
+                    bb:11
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.thawte.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.thawte.com/ThawtePCA.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-9
+            X509v3 Subject Key Identifier: 
+                A7:A2:83:BB:34:45:40:3D:FC:D5:30:4F:12:B9:3E:A1:01:9F:F6:DB
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha1WithRSAEncryption
+         80:22:80:e0:6c:c8:95:16:d7:57:26:87:f3:72:34:db:c6:72:
+         56:27:3e:d3:96:f6:2e:25:91:a5:3e:33:97:a7:4b:e5:2f:fb:
+         25:7d:2f:07:61:fa:6f:83:74:4c:4c:53:72:20:a4:7a:cf:51:
+         51:56:81:88:b0:6d:1f:36:2c:c8:2b:b1:88:99:c1:fe:44:ab:
+         48:51:7c:d8:f2:44:64:2a:d8:71:a7:fb:1a:2f:f9:19:8d:34:
+         b2:23:bf:c4:4c:55:1d:8e:44:e8:aa:5d:9a:dd:9f:fd:03:c7:
+         ba:24:43:8d:2d:47:44:db:f6:d8:98:c8:b2:f9:da:ef:ed:29:
+         5c:69:12:fa:d1:23:96:0f:bf:9c:0d:f2:79:45:53:37:9a:56:
+         2f:e8:57:10:70:f6:ee:89:0c:49:89:9a:c1:23:f5:c2:2a:cc:
+         41:cf:22:ab:65:6e:b7:94:82:6d:2f:40:5f:58:de:eb:95:2b:
+         a6:72:68:52:19:91:2a:ae:75:9d:4e:92:e6:ca:de:54:ea:18:
+         ab:25:3c:e6:64:a6:79:1f:26:7d:61:ed:7d:d2:e5:71:55:d8:
+         93:17:7c:14:38:30:3c:df:86:e3:4c:ad:49:e3:97:59:ce:1b:
+         9b:2b:ce:dc:65:d4:0b:28:6b:4e:84:46:51:44:f7:33:08:2d:
+         58:97:21:ae
+-----BEGIN CERTIFICATE-----
+MIIEbDCCA1SgAwIBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
+MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
+MRYwFAYDVQQDEw1UaGF3dGUgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM
+WJAFGrfFwQalgK+7HUlrUjSIw1nn72vEJ0GMK2Yd0OCjl5gZNEtB1ZjVxwWtouTX
+7QytT8G1sCH9PlBTssSQ0NQwZ2ya8Q50xMLciuiX/8mSrgGKVgqYMrAAI+yQGmDD
+7bs6yw9jnw1EyVLhJZa/7VCViX9WFLG3YR0cB4w6LPf/gN45RdWvGtF42MdxaqMZ
+pzJQIenyDqHGEwNESNFmqFJX1xG0k4vlmZ9d53hR5U32t1m0drUJN00GOBN6HAiY
+XMRISstSoKn4sZ2Oe3mwIC88lqgRYke7EQIDAQABo4H7MIH4MDIGCCsGAQUFBwEB
+BCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMB
+Af8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudGhhd3Rl
+LmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0w
+GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItOTAdBgNVHQ4EFgQUp6KDuzRFQD38
+1TBPErk+oQGf9tswHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
+KoZIhvcNAQEFBQADggEBAIAigOBsyJUW11cmh/NyNNvGclYnPtOW9i4lkaU+M5en
+S+Uv+yV9Lwdh+m+DdExMU3IgpHrPUVFWgYiwbR82LMgrsYiZwf5Eq0hRfNjyRGQq
+2HGn+xov+RmNNLIjv8RMVR2OROiqXZrdn/0Dx7okQ40tR0Tb9tiYyLL52u/tKVxp
+EvrRI5YPv5wN8nlFUzeaVi/oVxBw9u6JDEmJmsEj9cIqzEHPIqtlbreUgm0vQF9Y
+3uuVK6ZyaFIZkSqudZ1OkubK3lTqGKslPOZkpnkfJn1h7X3S5XFV2JMXfBQ4MDzf
+huNMrUnjl1nOG5srztxl1Asoa06ERlFE9zMILViXIa4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert16[] = {
+  0x30, 0x82, 0x04, 0x6c, 0x30, 0x82, 0x03, 0x54, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x4d, 0x5f, 0x2c, 0x34, 0x08, 0xb2, 0x4c, 0x20, 0xcd,
+  0x6d, 0x50, 0x7e, 0x24, 0x4d, 0xc9, 0xec, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30,
+  0x32, 0x30, 0x37, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x54,
+  0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x99, 0xe4, 0x85,
+  0x5b, 0x76, 0x49, 0x7d, 0x2f, 0x05, 0xd8, 0xc5, 0xac, 0xc8, 0xc8, 0xa9,
+  0xd3, 0xdc, 0x98, 0xe6, 0xd7, 0x34, 0xa6, 0x2f, 0x0c, 0xf2, 0x22, 0x26,
+  0xd8, 0xa3, 0xc9, 0x14, 0x4c, 0x8f, 0x05, 0xa4, 0x45, 0xe8, 0x14, 0x0c,
+  0x58, 0x90, 0x05, 0x1a, 0xb7, 0xc5, 0xc1, 0x06, 0xa5, 0x80, 0xaf, 0xbb,
+  0x1d, 0x49, 0x6b, 0x52, 0x34, 0x88, 0xc3, 0x59, 0xe7, 0xef, 0x6b, 0xc4,
+  0x27, 0x41, 0x8c, 0x2b, 0x66, 0x1d, 0xd0, 0xe0, 0xa3, 0x97, 0x98, 0x19,
+  0x34, 0x4b, 0x41, 0xd5, 0x98, 0xd5, 0xc7, 0x05, 0xad, 0xa2, 0xe4, 0xd7,
+  0xed, 0x0c, 0xad, 0x4f, 0xc1, 0xb5, 0xb0, 0x21, 0xfd, 0x3e, 0x50, 0x53,
+  0xb2, 0xc4, 0x90, 0xd0, 0xd4, 0x30, 0x67, 0x6c, 0x9a, 0xf1, 0x0e, 0x74,
+  0xc4, 0xc2, 0xdc, 0x8a, 0xe8, 0x97, 0xff, 0xc9, 0x92, 0xae, 0x01, 0x8a,
+  0x56, 0x0a, 0x98, 0x32, 0xb0, 0x00, 0x23, 0xec, 0x90, 0x1a, 0x60, 0xc3,
+  0xed, 0xbb, 0x3a, 0xcb, 0x0f, 0x63, 0x9f, 0x0d, 0x44, 0xc9, 0x52, 0xe1,
+  0x25, 0x96, 0xbf, 0xed, 0x50, 0x95, 0x89, 0x7f, 0x56, 0x14, 0xb1, 0xb7,
+  0x61, 0x1d, 0x1c, 0x07, 0x8c, 0x3a, 0x2c, 0xf7, 0xff, 0x80, 0xde, 0x39,
+  0x45, 0xd5, 0xaf, 0x1a, 0xd1, 0x78, 0xd8, 0xc7, 0x71, 0x6a, 0xa3, 0x19,
+  0xa7, 0x32, 0x50, 0x21, 0xe9, 0xf2, 0x0e, 0xa1, 0xc6, 0x13, 0x03, 0x44,
+  0x48, 0xd1, 0x66, 0xa8, 0x52, 0x57, 0xd7, 0x11, 0xb4, 0x93, 0x8b, 0xe5,
+  0x99, 0x9f, 0x5d, 0xe7, 0x78, 0x51, 0xe5, 0x4d, 0xf6, 0xb7, 0x59, 0xb4,
+  0x76, 0xb5, 0x09, 0x37, 0x4d, 0x06, 0x38, 0x13, 0x7a, 0x1c, 0x08, 0x98,
+  0x5c, 0xc4, 0x48, 0x4a, 0xcb, 0x52, 0xa0, 0xa9, 0xf8, 0xb1, 0x9d, 0x8e,
+  0x7b, 0x79, 0xb0, 0x20, 0x2f, 0x3c, 0x96, 0xa8, 0x11, 0x62, 0x47, 0xbb,
+  0x11, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xfb, 0x30, 0x81, 0xf8,
+  0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+  0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30,
+  0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50,
+  0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x28,
+  0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d, 0x30,
+  0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+  0x2d, 0x32, 0x2d, 0x39, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0xa7, 0xa2, 0x83, 0xbb, 0x34, 0x45, 0x40, 0x3d, 0xfc,
+  0xd5, 0x30, 0x4f, 0x12, 0xb9, 0x3e, 0xa1, 0x01, 0x9f, 0xf6, 0xdb, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+  0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x80, 0x22, 0x80, 0xe0, 0x6c, 0xc8, 0x95, 0x16,
+  0xd7, 0x57, 0x26, 0x87, 0xf3, 0x72, 0x34, 0xdb, 0xc6, 0x72, 0x56, 0x27,
+  0x3e, 0xd3, 0x96, 0xf6, 0x2e, 0x25, 0x91, 0xa5, 0x3e, 0x33, 0x97, 0xa7,
+  0x4b, 0xe5, 0x2f, 0xfb, 0x25, 0x7d, 0x2f, 0x07, 0x61, 0xfa, 0x6f, 0x83,
+  0x74, 0x4c, 0x4c, 0x53, 0x72, 0x20, 0xa4, 0x7a, 0xcf, 0x51, 0x51, 0x56,
+  0x81, 0x88, 0xb0, 0x6d, 0x1f, 0x36, 0x2c, 0xc8, 0x2b, 0xb1, 0x88, 0x99,
+  0xc1, 0xfe, 0x44, 0xab, 0x48, 0x51, 0x7c, 0xd8, 0xf2, 0x44, 0x64, 0x2a,
+  0xd8, 0x71, 0xa7, 0xfb, 0x1a, 0x2f, 0xf9, 0x19, 0x8d, 0x34, 0xb2, 0x23,
+  0xbf, 0xc4, 0x4c, 0x55, 0x1d, 0x8e, 0x44, 0xe8, 0xaa, 0x5d, 0x9a, 0xdd,
+  0x9f, 0xfd, 0x03, 0xc7, 0xba, 0x24, 0x43, 0x8d, 0x2d, 0x47, 0x44, 0xdb,
+  0xf6, 0xd8, 0x98, 0xc8, 0xb2, 0xf9, 0xda, 0xef, 0xed, 0x29, 0x5c, 0x69,
+  0x12, 0xfa, 0xd1, 0x23, 0x96, 0x0f, 0xbf, 0x9c, 0x0d, 0xf2, 0x79, 0x45,
+  0x53, 0x37, 0x9a, 0x56, 0x2f, 0xe8, 0x57, 0x10, 0x70, 0xf6, 0xee, 0x89,
+  0x0c, 0x49, 0x89, 0x9a, 0xc1, 0x23, 0xf5, 0xc2, 0x2a, 0xcc, 0x41, 0xcf,
+  0x22, 0xab, 0x65, 0x6e, 0xb7, 0x94, 0x82, 0x6d, 0x2f, 0x40, 0x5f, 0x58,
+  0xde, 0xeb, 0x95, 0x2b, 0xa6, 0x72, 0x68, 0x52, 0x19, 0x91, 0x2a, 0xae,
+  0x75, 0x9d, 0x4e, 0x92, 0xe6, 0xca, 0xde, 0x54, 0xea, 0x18, 0xab, 0x25,
+  0x3c, 0xe6, 0x64, 0xa6, 0x79, 0x1f, 0x26, 0x7d, 0x61, 0xed, 0x7d, 0xd2,
+  0xe5, 0x71, 0x55, 0xd8, 0x93, 0x17, 0x7c, 0x14, 0x38, 0x30, 0x3c, 0xdf,
+  0x86, 0xe3, 0x4c, 0xad, 0x49, 0xe3, 0x97, 0x59, 0xce, 0x1b, 0x9b, 0x2b,
+  0xce, 0xdc, 0x65, 0xd4, 0x0b, 0x28, 0x6b, 0x4e, 0x84, 0x46, 0x51, 0x44,
+  0xf7, 0x33, 0x08, 0x2d, 0x58, 0x97, 0x21, 0xae,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            6e:8a:90:eb:cf:f0:44:8a:72:0d:08:05:d0:82:a5:44
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust EV SSL CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d9:b4:05:f2:38:67:0f:09:e7:7c:f5:63:2a:e5:
+                    b9:5e:a8:11:ae:75:71:d9:4c:84:67:ad:89:5d:fc:
+                    28:3d:2a:b0:a5:d5:d4:e6:30:0a:84:d4:e4:18:cb:
+                    85:37:c5:46:71:eb:1c:7b:69:db:65:69:8c:30:05:
+                    3e:07:e1:6f:3c:c1:0b:61:e6:38:44:fc:bc:8c:2f:
+                    4e:75:57:f5:96:99:7c:3e:87:1f:0f:90:4b:70:c3:
+                    3f:39:45:3b:3a:6b:cb:bb:7b:40:54:d1:8b:4b:a1:
+                    72:d2:04:e9:e0:72:1a:93:11:7a:2f:f1:ab:9d:9c:
+                    98:58:ae:2c:ea:77:5f:2f:2e:87:af:b8:6b:e3:e2:
+                    e2:3f:d6:3d:e0:96:44:df:11:55:63:52:2f:f4:26:
+                    78:c4:0f:20:4d:0a:c0:68:70:15:86:38:ee:b7:76:
+                    88:ab:18:8f:4f:35:1e:d4:8c:c9:db:7e:3d:44:d4:
+                    36:8c:c1:37:b5:59:5b:87:f9:e9:f1:d4:c5:28:bd:
+                    1d:dc:cc:96:72:d1:7a:a1:a7:20:b5:b8:af:f8:6e:
+                    a5:60:7b:2b:8d:1f:ee:f4:2b:d6:69:cd:af:ca:80:
+                    58:29:e8:4c:00:20:8a:49:0a:6e:8e:8c:a8:d1:00:
+                    12:84:b6:c5:e2:95:a2:c0:3b:a4:6b:f0:82:d0:96:
+                    5d:25
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://g2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.geotrust.com/resources/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g1.symcb.com/GeoTrustPCA.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-538
+            X509v3 Subject Key Identifier: 
+                DE:CF:5C:50:B7:AE:02:1F:15:17:AA:16:E8:0D:B5:28:9D:6A:5A:F3
+            X509v3 Authority Key Identifier: 
+                keyid:2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+
+    Signature Algorithm: sha256WithRSAEncryption
+         b4:8e:bd:07:b9:9a:85:ec:3b:67:bd:07:60:61:e6:84:d1:d4:
+         ef:eb:1b:ba:0b:82:4b:95:64:b6:66:53:23:bd:b7:84:dd:e4:
+         7b:8d:09:da:cf:b2:f5:f1:c3:bf:87:84:be:4e:a6:a8:c2:e7:
+         12:39:28:34:e0:a4:56:44:40:0c:9f:88:a3:15:d3:e8:d3:5e:
+         e3:1c:04:60:fb:69:36:4f:6a:7e:0c:2a:28:c1:f3:aa:58:0e:
+         6c:ce:1d:07:c3:4a:c0:9c:8d:c3:74:b1:ae:82:f0:1a:e1:f9:
+         4e:29:bd:46:de:b7:1d:f9:7d:db:d9:0f:84:cb:92:45:cc:1c:
+         b3:18:f6:a0:cf:71:6f:0c:2e:9b:d2:2d:b3:99:93:83:44:ac:
+         15:aa:9b:2e:67:ec:4f:88:69:05:56:7b:8b:b2:43:a9:3a:6c:
+         1c:13:33:25:1b:fd:a8:c8:57:02:fb:1c:e0:d1:bd:3b:56:44:
+         65:c3:63:f5:1b:ef:ec:30:d9:e3:6e:2e:13:e9:39:08:2a:0c:
+         72:f3:9a:cc:f6:27:29:84:d3:ef:4c:c7:84:11:65:1f:c6:e3:
+         81:03:db:87:cc:78:f7:b5:9d:96:3e:6a:7f:bc:11:85:7a:75:
+         e6:41:7d:0d:cf:f9:e5:85:69:25:8f:c7:8d:07:2d:f8:69:0f:
+         cb:41:53:00
+-----BEGIN CERTIFICATE-----
+MIIEbjCCA1agAwIBAgIQboqQ68/wRIpyDQgF0IKlRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMzEw
+MzEwMDAwMDBaFw0yMzEwMzAyMzU5NTlaMEcxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdHZW9UcnVzdCBFViBTU0wgQ0EgLSBH
+NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANm0BfI4Zw8J53z1Yyrl
+uV6oEa51cdlMhGetiV38KD0qsKXV1OYwCoTU5BjLhTfFRnHrHHtp22VpjDAFPgfh
+bzzBC2HmOET8vIwvTnVX9ZaZfD6HHw+QS3DDPzlFOzpry7t7QFTRi0uhctIE6eBy
+GpMRei/xq52cmFiuLOp3Xy8uh6+4a+Pi4j/WPeCWRN8RVWNSL/QmeMQPIE0KwGhw
+FYY47rd2iKsYj081HtSMydt+PUTUNozBN7VZW4f56fHUxSi9HdzMlnLReqGnILW4
+r/hupWB7K40f7vQr1mnNr8qAWCnoTAAgikkKbo6MqNEAEoS2xeKVosA7pGvwgtCW
+XSUCAwEAAaOCAUMwggE/MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
+AgEGMC8GCCsGAQUFBwEBBCMwITAfBggrBgEFBQcwAYYTaHR0cDovL2cyLnN5bWNi
+LmNvbTBHBgNVHSAEQDA+MDwGBFUdIAAwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2cxLnN5bWNiLmNvbS9HZW9UcnVzdFBDQS5jcmwwKQYDVR0RBCIwIKQe
+MBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTM4MB0GA1UdDgQWBBTez1xQt64C
+HxUXqhboDbUonWpa8zAfBgNVHSMEGDAWgBQs1VBBlxWL8I82YVtK+2vZmckzkjAN
+BgkqhkiG9w0BAQsFAAOCAQEAtI69B7mahew7Z70HYGHmhNHU7+sbuguCS5VktmZT
+I723hN3ke40J2s+y9fHDv4eEvk6mqMLnEjkoNOCkVkRADJ+IoxXT6NNe4xwEYPtp
+Nk9qfgwqKMHzqlgObM4dB8NKwJyNw3SxroLwGuH5Tim9Rt63Hfl929kPhMuSRcwc
+sxj2oM9xbwwum9Its5mTg0SsFaqbLmfsT4hpBVZ7i7JDqTpsHBMzJRv9qMhXAvsc
+4NG9O1ZEZcNj9Rvv7DDZ424uE+k5CCoMcvOazPYnKYTT70zHhBFlH8bjgQPbh8x4
+97Wdlj5qf7wRhXp15kF9Dc/55YVpJY/HjQct+GkPy0FTAA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert17[] = {
+  0x30, 0x82, 0x04, 0x6e, 0x30, 0x82, 0x03, 0x56, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x6e, 0x8a, 0x90, 0xeb, 0xcf, 0xf0, 0x44, 0x8a, 0x72,
+  0x0d, 0x08, 0x05, 0xd0, 0x82, 0xa5, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x58,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+  0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30,
+  0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32,
+  0x33, 0x31, 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a,
+  0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x17, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+  0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47,
+  0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+  0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd9, 0xb4,
+  0x05, 0xf2, 0x38, 0x67, 0x0f, 0x09, 0xe7, 0x7c, 0xf5, 0x63, 0x2a, 0xe5,
+  0xb9, 0x5e, 0xa8, 0x11, 0xae, 0x75, 0x71, 0xd9, 0x4c, 0x84, 0x67, 0xad,
+  0x89, 0x5d, 0xfc, 0x28, 0x3d, 0x2a, 0xb0, 0xa5, 0xd5, 0xd4, 0xe6, 0x30,
+  0x0a, 0x84, 0xd4, 0xe4, 0x18, 0xcb, 0x85, 0x37, 0xc5, 0x46, 0x71, 0xeb,
+  0x1c, 0x7b, 0x69, 0xdb, 0x65, 0x69, 0x8c, 0x30, 0x05, 0x3e, 0x07, 0xe1,
+  0x6f, 0x3c, 0xc1, 0x0b, 0x61, 0xe6, 0x38, 0x44, 0xfc, 0xbc, 0x8c, 0x2f,
+  0x4e, 0x75, 0x57, 0xf5, 0x96, 0x99, 0x7c, 0x3e, 0x87, 0x1f, 0x0f, 0x90,
+  0x4b, 0x70, 0xc3, 0x3f, 0x39, 0x45, 0x3b, 0x3a, 0x6b, 0xcb, 0xbb, 0x7b,
+  0x40, 0x54, 0xd1, 0x8b, 0x4b, 0xa1, 0x72, 0xd2, 0x04, 0xe9, 0xe0, 0x72,
+  0x1a, 0x93, 0x11, 0x7a, 0x2f, 0xf1, 0xab, 0x9d, 0x9c, 0x98, 0x58, 0xae,
+  0x2c, 0xea, 0x77, 0x5f, 0x2f, 0x2e, 0x87, 0xaf, 0xb8, 0x6b, 0xe3, 0xe2,
+  0xe2, 0x3f, 0xd6, 0x3d, 0xe0, 0x96, 0x44, 0xdf, 0x11, 0x55, 0x63, 0x52,
+  0x2f, 0xf4, 0x26, 0x78, 0xc4, 0x0f, 0x20, 0x4d, 0x0a, 0xc0, 0x68, 0x70,
+  0x15, 0x86, 0x38, 0xee, 0xb7, 0x76, 0x88, 0xab, 0x18, 0x8f, 0x4f, 0x35,
+  0x1e, 0xd4, 0x8c, 0xc9, 0xdb, 0x7e, 0x3d, 0x44, 0xd4, 0x36, 0x8c, 0xc1,
+  0x37, 0xb5, 0x59, 0x5b, 0x87, 0xf9, 0xe9, 0xf1, 0xd4, 0xc5, 0x28, 0xbd,
+  0x1d, 0xdc, 0xcc, 0x96, 0x72, 0xd1, 0x7a, 0xa1, 0xa7, 0x20, 0xb5, 0xb8,
+  0xaf, 0xf8, 0x6e, 0xa5, 0x60, 0x7b, 0x2b, 0x8d, 0x1f, 0xee, 0xf4, 0x2b,
+  0xd6, 0x69, 0xcd, 0xaf, 0xca, 0x80, 0x58, 0x29, 0xe8, 0x4c, 0x00, 0x20,
+  0x8a, 0x49, 0x0a, 0x6e, 0x8e, 0x8c, 0xa8, 0xd1, 0x00, 0x12, 0x84, 0xb6,
+  0xc5, 0xe2, 0x95, 0xa2, 0xc0, 0x3b, 0xa4, 0x6b, 0xf0, 0x82, 0xd0, 0x96,
+  0x5d, 0x25, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x43, 0x30,
+  0x82, 0x01, 0x3f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+  0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30,
+  0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
+  0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+  0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+  0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e,
+  0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49,
+  0x2d, 0x31, 0x2d, 0x35, 0x33, 0x38, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xde, 0xcf, 0x5c, 0x50, 0xb7, 0xae, 0x02,
+  0x1f, 0x15, 0x17, 0xaa, 0x16, 0xe8, 0x0d, 0xb5, 0x28, 0x9d, 0x6a, 0x5a,
+  0xf3, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0x2c, 0xd5, 0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36,
+  0x61, 0x5b, 0x4a, 0xfb, 0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xb4, 0x8e, 0xbd, 0x07, 0xb9, 0x9a,
+  0x85, 0xec, 0x3b, 0x67, 0xbd, 0x07, 0x60, 0x61, 0xe6, 0x84, 0xd1, 0xd4,
+  0xef, 0xeb, 0x1b, 0xba, 0x0b, 0x82, 0x4b, 0x95, 0x64, 0xb6, 0x66, 0x53,
+  0x23, 0xbd, 0xb7, 0x84, 0xdd, 0xe4, 0x7b, 0x8d, 0x09, 0xda, 0xcf, 0xb2,
+  0xf5, 0xf1, 0xc3, 0xbf, 0x87, 0x84, 0xbe, 0x4e, 0xa6, 0xa8, 0xc2, 0xe7,
+  0x12, 0x39, 0x28, 0x34, 0xe0, 0xa4, 0x56, 0x44, 0x40, 0x0c, 0x9f, 0x88,
+  0xa3, 0x15, 0xd3, 0xe8, 0xd3, 0x5e, 0xe3, 0x1c, 0x04, 0x60, 0xfb, 0x69,
+  0x36, 0x4f, 0x6a, 0x7e, 0x0c, 0x2a, 0x28, 0xc1, 0xf3, 0xaa, 0x58, 0x0e,
+  0x6c, 0xce, 0x1d, 0x07, 0xc3, 0x4a, 0xc0, 0x9c, 0x8d, 0xc3, 0x74, 0xb1,
+  0xae, 0x82, 0xf0, 0x1a, 0xe1, 0xf9, 0x4e, 0x29, 0xbd, 0x46, 0xde, 0xb7,
+  0x1d, 0xf9, 0x7d, 0xdb, 0xd9, 0x0f, 0x84, 0xcb, 0x92, 0x45, 0xcc, 0x1c,
+  0xb3, 0x18, 0xf6, 0xa0, 0xcf, 0x71, 0x6f, 0x0c, 0x2e, 0x9b, 0xd2, 0x2d,
+  0xb3, 0x99, 0x93, 0x83, 0x44, 0xac, 0x15, 0xaa, 0x9b, 0x2e, 0x67, 0xec,
+  0x4f, 0x88, 0x69, 0x05, 0x56, 0x7b, 0x8b, 0xb2, 0x43, 0xa9, 0x3a, 0x6c,
+  0x1c, 0x13, 0x33, 0x25, 0x1b, 0xfd, 0xa8, 0xc8, 0x57, 0x02, 0xfb, 0x1c,
+  0xe0, 0xd1, 0xbd, 0x3b, 0x56, 0x44, 0x65, 0xc3, 0x63, 0xf5, 0x1b, 0xef,
+  0xec, 0x30, 0xd9, 0xe3, 0x6e, 0x2e, 0x13, 0xe9, 0x39, 0x08, 0x2a, 0x0c,
+  0x72, 0xf3, 0x9a, 0xcc, 0xf6, 0x27, 0x29, 0x84, 0xd3, 0xef, 0x4c, 0xc7,
+  0x84, 0x11, 0x65, 0x1f, 0xc6, 0xe3, 0x81, 0x03, 0xdb, 0x87, 0xcc, 0x78,
+  0xf7, 0xb5, 0x9d, 0x96, 0x3e, 0x6a, 0x7f, 0xbc, 0x11, 0x85, 0x7a, 0x75,
+  0xe6, 0x41, 0x7d, 0x0d, 0xcf, 0xf9, 0xe5, 0x85, 0x69, 0x25, 0x8f, 0xc7,
+  0x8d, 0x07, 0x2d, 0xf8, 0x69, 0x0f, 0xcb, 0x41, 0x53, 0x00,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1828629 (0x1be715)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
+        Validity
+            Not Before: Jan  1 07:00:00 2014 GMT
+            Not After : May 30 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bf:71:62:08:f1:fa:59:34:f7:1b:c9:18:a3:f7:
+                    80:49:58:e9:22:83:13:a6:c5:20:43:01:3b:84:f1:
+                    e6:85:49:9f:27:ea:f6:84:1b:4e:a0:b4:db:70:98:
+                    c7:32:01:b1:05:3e:07:4e:ee:f4:fa:4f:2f:59:30:
+                    22:e7:ab:19:56:6b:e2:80:07:fc:f3:16:75:80:39:
+                    51:7b:e5:f9:35:b6:74:4e:a9:8d:82:13:e4:b6:3f:
+                    a9:03:83:fa:a2:be:8a:15:6a:7f:de:0b:c3:b6:19:
+                    14:05:ca:ea:c3:a8:04:94:3b:46:7c:32:0d:f3:00:
+                    66:22:c8:8d:69:6d:36:8c:11:18:b7:d3:b2:1c:60:
+                    b4:38:fa:02:8c:ce:d3:dd:46:07:de:0a:3e:eb:5d:
+                    7c:c8:7c:fb:b0:2b:53:a4:92:62:69:51:25:05:61:
+                    1a:44:81:8c:2c:a9:43:96:23:df:ac:3a:81:9a:0e:
+                    29:c5:1c:a9:e9:5d:1e:b6:9e:9e:30:0a:39:ce:f1:
+                    88:80:fb:4b:5d:cc:32:ec:85:62:43:25:34:02:56:
+                    27:01:91:b4:3b:70:2a:3f:6e:b1:e8:9c:88:01:7d:
+                    9f:d4:f9:db:53:6d:60:9d:bf:2c:e7:58:ab:b8:5f:
+                    46:fc:ce:c4:1b:03:3c:09:eb:49:31:5c:69:46:b3:
+                    e0:47
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+            X509v3 Authority Key Identifier: 
+                keyid:D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.godaddy.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.godaddy.com/gdroot.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.godaddy.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         59:0b:53:bd:92:86:11:a7:24:7b:ed:5b:31:cf:1d:1f:6c:70:
+         c5:b8:6e:be:4e:bb:f6:be:97:50:e1:30:7f:ba:28:5c:62:94:
+         c2:e3:7e:33:f7:fb:42:76:85:db:95:1c:8c:22:58:75:09:0c:
+         88:65:67:39:0a:16:09:c5:a0:38:97:a4:c5:23:93:3f:b4:18:
+         a6:01:06:44:91:e3:a7:69:27:b4:5a:25:7f:3a:b7:32:cd:dd:
+         84:ff:2a:38:29:33:a4:dd:67:b2:85:fe:a1:88:20:1c:50:89:
+         c8:dc:2a:f6:42:03:37:4c:e6:88:df:d5:af:24:f2:b1:c3:df:
+         cc:b5:ec:e0:99:5e:b7:49:54:20:3c:94:18:0c:c7:1c:52:18:
+         49:a4:6d:e1:b3:58:0b:c9:d8:ec:d9:ae:1c:32:8e:28:70:0d:
+         e2:fe:a6:17:9e:84:0f:bd:57:70:b3:5a:e9:1f:a0:86:53:bb:
+         ef:7c:ff:69:0b:e0:48:c3:b7:93:0b:c8:0a:54:c4:ac:5d:14:
+         67:37:6c:ca:a5:2f:31:08:37:aa:6e:6f:8c:bc:9b:e2:57:5d:
+         24:81:af:97:97:9c:84:ad:6c:ac:37:4c:66:f3:61:91:11:20:
+         e4:be:30:9f:7a:a4:29:09:b0:e1:34:5f:64:77:18:40:51:df:
+         8c:30:a6:af
+-----BEGIN CERTIFICATE-----
+MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
+MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
+IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
+MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
+Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
+dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
+CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
+Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
+3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
+6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
+gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
+GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
+IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
+BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
+oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
+MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
+bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
+H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
+OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
+9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
+KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
+qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
+rw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert18[] = {
+  0x30, 0x82, 0x04, 0x7d, 0x30, 0x82, 0x03, 0x65, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x1b, 0xe7, 0x15, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x63, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x54,
+  0x68, 0x65, 0x20, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20,
+  0x47, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+  0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x28, 0x47, 0x6f,
+  0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+  0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x31, 0x30, 0x31,
+  0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30,
+  0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81,
+  0x83, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+  0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11,
+  0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74,
+  0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55,
+  0x04, 0x0a, 0x13, 0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30,
+  0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44,
+  0x61, 0x64, 0x64, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbf, 0x71, 0x62,
+  0x08, 0xf1, 0xfa, 0x59, 0x34, 0xf7, 0x1b, 0xc9, 0x18, 0xa3, 0xf7, 0x80,
+  0x49, 0x58, 0xe9, 0x22, 0x83, 0x13, 0xa6, 0xc5, 0x20, 0x43, 0x01, 0x3b,
+  0x84, 0xf1, 0xe6, 0x85, 0x49, 0x9f, 0x27, 0xea, 0xf6, 0x84, 0x1b, 0x4e,
+  0xa0, 0xb4, 0xdb, 0x70, 0x98, 0xc7, 0x32, 0x01, 0xb1, 0x05, 0x3e, 0x07,
+  0x4e, 0xee, 0xf4, 0xfa, 0x4f, 0x2f, 0x59, 0x30, 0x22, 0xe7, 0xab, 0x19,
+  0x56, 0x6b, 0xe2, 0x80, 0x07, 0xfc, 0xf3, 0x16, 0x75, 0x80, 0x39, 0x51,
+  0x7b, 0xe5, 0xf9, 0x35, 0xb6, 0x74, 0x4e, 0xa9, 0x8d, 0x82, 0x13, 0xe4,
+  0xb6, 0x3f, 0xa9, 0x03, 0x83, 0xfa, 0xa2, 0xbe, 0x8a, 0x15, 0x6a, 0x7f,
+  0xde, 0x0b, 0xc3, 0xb6, 0x19, 0x14, 0x05, 0xca, 0xea, 0xc3, 0xa8, 0x04,
+  0x94, 0x3b, 0x46, 0x7c, 0x32, 0x0d, 0xf3, 0x00, 0x66, 0x22, 0xc8, 0x8d,
+  0x69, 0x6d, 0x36, 0x8c, 0x11, 0x18, 0xb7, 0xd3, 0xb2, 0x1c, 0x60, 0xb4,
+  0x38, 0xfa, 0x02, 0x8c, 0xce, 0xd3, 0xdd, 0x46, 0x07, 0xde, 0x0a, 0x3e,
+  0xeb, 0x5d, 0x7c, 0xc8, 0x7c, 0xfb, 0xb0, 0x2b, 0x53, 0xa4, 0x92, 0x62,
+  0x69, 0x51, 0x25, 0x05, 0x61, 0x1a, 0x44, 0x81, 0x8c, 0x2c, 0xa9, 0x43,
+  0x96, 0x23, 0xdf, 0xac, 0x3a, 0x81, 0x9a, 0x0e, 0x29, 0xc5, 0x1c, 0xa9,
+  0xe9, 0x5d, 0x1e, 0xb6, 0x9e, 0x9e, 0x30, 0x0a, 0x39, 0xce, 0xf1, 0x88,
+  0x80, 0xfb, 0x4b, 0x5d, 0xcc, 0x32, 0xec, 0x85, 0x62, 0x43, 0x25, 0x34,
+  0x02, 0x56, 0x27, 0x01, 0x91, 0xb4, 0x3b, 0x70, 0x2a, 0x3f, 0x6e, 0xb1,
+  0xe8, 0x9c, 0x88, 0x01, 0x7d, 0x9f, 0xd4, 0xf9, 0xdb, 0x53, 0x6d, 0x60,
+  0x9d, 0xbf, 0x2c, 0xe7, 0x58, 0xab, 0xb8, 0x5f, 0x46, 0xfc, 0xce, 0xc4,
+  0x1b, 0x03, 0x3c, 0x09, 0xeb, 0x49, 0x31, 0x5c, 0x69, 0x46, 0xb3, 0xe0,
+  0x47, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x17, 0x30, 0x82,
+  0x01, 0x13, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+  0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3a, 0x9a,
+  0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef, 0xf6, 0xbd, 0x05, 0x41, 0x6e,
+  0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd2, 0xc4, 0xb0, 0xd2, 0x91,
+  0xd4, 0x4c, 0x11, 0x71, 0xb3, 0x61, 0xcb, 0x3d, 0xa1, 0xfe, 0xdd, 0xa8,
+  0x6a, 0xd4, 0xe3, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64,
+  0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x32, 0x06,
+  0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25,
+  0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x67, 0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+  0x6c, 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d,
+  0x30, 0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25,
+  0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74,
+  0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+  0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x59, 0x0b, 0x53,
+  0xbd, 0x92, 0x86, 0x11, 0xa7, 0x24, 0x7b, 0xed, 0x5b, 0x31, 0xcf, 0x1d,
+  0x1f, 0x6c, 0x70, 0xc5, 0xb8, 0x6e, 0xbe, 0x4e, 0xbb, 0xf6, 0xbe, 0x97,
+  0x50, 0xe1, 0x30, 0x7f, 0xba, 0x28, 0x5c, 0x62, 0x94, 0xc2, 0xe3, 0x7e,
+  0x33, 0xf7, 0xfb, 0x42, 0x76, 0x85, 0xdb, 0x95, 0x1c, 0x8c, 0x22, 0x58,
+  0x75, 0x09, 0x0c, 0x88, 0x65, 0x67, 0x39, 0x0a, 0x16, 0x09, 0xc5, 0xa0,
+  0x38, 0x97, 0xa4, 0xc5, 0x23, 0x93, 0x3f, 0xb4, 0x18, 0xa6, 0x01, 0x06,
+  0x44, 0x91, 0xe3, 0xa7, 0x69, 0x27, 0xb4, 0x5a, 0x25, 0x7f, 0x3a, 0xb7,
+  0x32, 0xcd, 0xdd, 0x84, 0xff, 0x2a, 0x38, 0x29, 0x33, 0xa4, 0xdd, 0x67,
+  0xb2, 0x85, 0xfe, 0xa1, 0x88, 0x20, 0x1c, 0x50, 0x89, 0xc8, 0xdc, 0x2a,
+  0xf6, 0x42, 0x03, 0x37, 0x4c, 0xe6, 0x88, 0xdf, 0xd5, 0xaf, 0x24, 0xf2,
+  0xb1, 0xc3, 0xdf, 0xcc, 0xb5, 0xec, 0xe0, 0x99, 0x5e, 0xb7, 0x49, 0x54,
+  0x20, 0x3c, 0x94, 0x18, 0x0c, 0xc7, 0x1c, 0x52, 0x18, 0x49, 0xa4, 0x6d,
+  0xe1, 0xb3, 0x58, 0x0b, 0xc9, 0xd8, 0xec, 0xd9, 0xae, 0x1c, 0x32, 0x8e,
+  0x28, 0x70, 0x0d, 0xe2, 0xfe, 0xa6, 0x17, 0x9e, 0x84, 0x0f, 0xbd, 0x57,
+  0x70, 0xb3, 0x5a, 0xe9, 0x1f, 0xa0, 0x86, 0x53, 0xbb, 0xef, 0x7c, 0xff,
+  0x69, 0x0b, 0xe0, 0x48, 0xc3, 0xb7, 0x93, 0x0b, 0xc8, 0x0a, 0x54, 0xc4,
+  0xac, 0x5d, 0x14, 0x67, 0x37, 0x6c, 0xca, 0xa5, 0x2f, 0x31, 0x08, 0x37,
+  0xaa, 0x6e, 0x6f, 0x8c, 0xbc, 0x9b, 0xe2, 0x57, 0x5d, 0x24, 0x81, 0xaf,
+  0x97, 0x97, 0x9c, 0x84, 0xad, 0x6c, 0xac, 0x37, 0x4c, 0x66, 0xf3, 0x61,
+  0x91, 0x11, 0x20, 0xe4, 0xbe, 0x30, 0x9f, 0x7a, 0xa4, 0x29, 0x09, 0xb0,
+  0xe1, 0x34, 0x5f, 0x64, 0x77, 0x18, 0x40, 0x51, 0xdf, 0x8c, 0x30, 0xa6,
+  0xaf,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            06:9e:1d:b7:7f:cf:1d:fb:a9:7a:f5:e5:c9:a2:40:37
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
+        Validity
+            Not Before: Mar  8 12:00:00 2013 GMT
+            Not After : Mar  8 12:00:00 2023 GMT
+        Subject: C=US, O=DigiCert Inc, CN=DigiCert Secure Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bb:57:e4:21:a9:d5:9b:60:37:7e:8e:a1:61:7f:
+                    81:e2:1a:c2:75:64:d9:91:50:0b:e4:36:44:24:6e:
+                    30:d2:9b:7a:27:fa:c2:6a:ae:6a:70:09:38:b9:20:
+                    0a:c8:65:10:4a:88:ac:31:f2:dc:92:f2:63:a1:5d:
+                    80:63:59:80:92:23:1c:e6:ef:76:4a:50:35:c9:d8:
+                    71:38:b9:ed:f0:e6:42:ae:d3:38:26:79:30:f9:22:
+                    94:c6:db:a6:3f:41:78:90:d8:de:5c:7e:69:7d:f8:
+                    90:15:3a:d0:a1:a0:be:fa:b2:b2:19:a1:d8:2b:d1:
+                    ce:bf:6b:dd:49:ab:a3:92:fe:b5:ab:c8:c1:3e:ee:
+                    01:00:d8:a9:44:b8:42:73:88:c3:61:f5:ab:4a:83:
+                    28:0a:d2:d4:49:fa:6a:b1:cd:df:57:2c:94:e5:e2:
+                    ca:83:5f:b7:ba:62:5c:2f:68:a5:f0:c0:b9:fd:2b:
+                    d1:e9:1f:d8:1a:62:15:bd:ff:3d:a6:f7:cb:ef:e6:
+                    db:65:2f:25:38:ec:fb:e6:20:66:58:96:34:19:d2:
+                    15:ce:21:d3:24:cc:d9:14:6f:d8:fe:55:c7:e7:6f:
+                    b6:0f:1a:8c:49:be:29:f2:ba:5a:9a:81:26:37:24:
+                    6f:d7:48:12:6c:2e:59:f5:9c:18:bb:d9:f6:68:e2:
+                    df:45
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.digicert.com/CPS
+
+            X509v3 Subject Key Identifier: 
+                90:71:DB:37:EB:73:C8:EF:DC:D5:1E:12:B6:34:BA:2B:5A:A0:A6:92
+            X509v3 Authority Key Identifier: 
+                keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
+
+    Signature Algorithm: sha1WithRSAEncryption
+         30:ce:d1:95:51:00:ae:06:0b:a1:0e:02:c0:17:ac:b6:7f:8f:
+         20:f6:40:75:74:1c:cc:78:b1:a4:4f:ea:f4:d0:c4:9d:a2:de:
+         81:07:26:1f:40:88:51:f0:1f:cf:b7:4c:40:99:d0:f4:3c:71:
+         98:73:88:97:2c:19:d7:6e:84:8f:a4:1f:9c:5a:20:e3:51:5c:
+         b0:c5:9e:99:6a:4f:c8:69:f7:10:ff:4e:ad:19:d9:c9:58:b3:
+         33:ae:0c:d9:96:29:9e:71:b2:70:63:a3:b6:99:16:42:1d:65:
+         f3:f7:a0:1e:7d:c5:d4:65:14:b2:62:84:d4:6c:5c:08:0c:d8:
+         6c:93:2b:b4:76:59:8a:d1:7f:ff:03:d8:c2:5d:b8:2f:22:d6:
+         38:f0:f6:9c:6b:7d:46:eb:99:74:f7:eb:4a:0e:a9:a6:04:eb:
+         7b:ce:f0:5c:6b:98:31:5a:98:40:eb:69:c4:05:f4:20:a8:ca:
+         08:3a:65:6c:38:15:f5:5c:2c:b2:55:e4:2c:6b:41:f0:be:5c:
+         46:ca:4a:29:a0:48:5e:20:d2:45:ff:05:de:34:af:70:4b:81:
+         39:e2:ca:07:57:7c:b6:31:dc:21:29:e2:be:97:0e:77:90:14:
+         51:40:e1:bf:e3:cc:1b:19:9c:25:ca:a7:06:b2:53:df:23:b2:
+         cf:12:19:a3
+-----BEGIN CERTIFICATE-----
+MIIEjzCCA3egAwIBAgIQBp4dt3/PHfupevXlyaJANzANBgkqhkiG9w0BAQUFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaMEgxCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxIjAgBgNVBAMTGURpZ2lDZXJ0IFNlY3Vy
+ZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7V+Qh
+qdWbYDd+jqFhf4HiGsJ1ZNmRUAvkNkQkbjDSm3on+sJqrmpwCTi5IArIZRBKiKwx
+8tyS8mOhXYBjWYCSIxzm73ZKUDXJ2HE4ue3w5kKu0zgmeTD5IpTG26Y/QXiQ2N5c
+fml9+JAVOtChoL76srIZodgr0c6/a91Jq6OS/rWryME+7gEA2KlEuEJziMNh9atK
+gygK0tRJ+mqxzd9XLJTl4sqDX7e6YlwvaKXwwLn9K9HpH9gaYhW9/z2m98vv5ttl
+LyU47PvmIGZYljQZ0hXOIdMkzNkUb9j+Vcfnb7YPGoxJvinyulqagSY3JG/XSBJs
+Lln1nBi72fZo4t9FAgMBAAGjggFaMIIBVjASBgNVHRMBAf8ECDAGAQH/AgEAMA4G
+A1UdDwEB/wQEAwIBhjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6
+Ly9vY3NwLmRpZ2ljZXJ0LmNvbTB7BgNVHR8EdDByMDegNaAzhjFodHRwOi8vY3Js
+My5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290Q0EuY3JsMDegNaAzhjFo
+dHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290Q0EuY3Js
+MD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5k
+aWdpY2VydC5jb20vQ1BTMB0GA1UdDgQWBBSQcds363PI79zVHhK2NLorWqCmkjAf
+BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTANBgkqhkiG9w0BAQUFAAOC
+AQEAMM7RlVEArgYLoQ4CwBestn+PIPZAdXQczHixpE/q9NDEnaLegQcmH0CIUfAf
+z7dMQJnQ9DxxmHOIlywZ126Ej6QfnFog41FcsMWemWpPyGn3EP9OrRnZyVizM64M
+2ZYpnnGycGOjtpkWQh1l8/egHn3F1GUUsmKE1GxcCAzYbJMrtHZZitF//wPYwl24
+LyLWOPD2nGt9RuuZdPfrSg6ppgTre87wXGuYMVqYQOtpxAX0IKjKCDplbDgV9Vws
+slXkLGtB8L5cRspKKaBIXiDSRf8F3jSvcEuBOeLKB1d8tjHcISnivpcOd5AUUUDh
+v+PMGxmcJcqnBrJT3yOyzxIZow==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert19[] = {
+  0x30, 0x82, 0x04, 0x8f, 0x30, 0x82, 0x03, 0x77, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x06, 0x9e, 0x1d, 0xb7, 0x7f, 0xcf, 0x1d, 0xfb, 0xa9,
+  0x7a, 0xf5, 0xe5, 0xc9, 0xa2, 0x40, 0x37, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x61,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x17, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+  0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x30, 0x38, 0x31,
+  0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33,
+  0x30, 0x38, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x48, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44,
+  0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31,
+  0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72,
+  0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbb, 0x57, 0xe4, 0x21,
+  0xa9, 0xd5, 0x9b, 0x60, 0x37, 0x7e, 0x8e, 0xa1, 0x61, 0x7f, 0x81, 0xe2,
+  0x1a, 0xc2, 0x75, 0x64, 0xd9, 0x91, 0x50, 0x0b, 0xe4, 0x36, 0x44, 0x24,
+  0x6e, 0x30, 0xd2, 0x9b, 0x7a, 0x27, 0xfa, 0xc2, 0x6a, 0xae, 0x6a, 0x70,
+  0x09, 0x38, 0xb9, 0x20, 0x0a, 0xc8, 0x65, 0x10, 0x4a, 0x88, 0xac, 0x31,
+  0xf2, 0xdc, 0x92, 0xf2, 0x63, 0xa1, 0x5d, 0x80, 0x63, 0x59, 0x80, 0x92,
+  0x23, 0x1c, 0xe6, 0xef, 0x76, 0x4a, 0x50, 0x35, 0xc9, 0xd8, 0x71, 0x38,
+  0xb9, 0xed, 0xf0, 0xe6, 0x42, 0xae, 0xd3, 0x38, 0x26, 0x79, 0x30, 0xf9,
+  0x22, 0x94, 0xc6, 0xdb, 0xa6, 0x3f, 0x41, 0x78, 0x90, 0xd8, 0xde, 0x5c,
+  0x7e, 0x69, 0x7d, 0xf8, 0x90, 0x15, 0x3a, 0xd0, 0xa1, 0xa0, 0xbe, 0xfa,
+  0xb2, 0xb2, 0x19, 0xa1, 0xd8, 0x2b, 0xd1, 0xce, 0xbf, 0x6b, 0xdd, 0x49,
+  0xab, 0xa3, 0x92, 0xfe, 0xb5, 0xab, 0xc8, 0xc1, 0x3e, 0xee, 0x01, 0x00,
+  0xd8, 0xa9, 0x44, 0xb8, 0x42, 0x73, 0x88, 0xc3, 0x61, 0xf5, 0xab, 0x4a,
+  0x83, 0x28, 0x0a, 0xd2, 0xd4, 0x49, 0xfa, 0x6a, 0xb1, 0xcd, 0xdf, 0x57,
+  0x2c, 0x94, 0xe5, 0xe2, 0xca, 0x83, 0x5f, 0xb7, 0xba, 0x62, 0x5c, 0x2f,
+  0x68, 0xa5, 0xf0, 0xc0, 0xb9, 0xfd, 0x2b, 0xd1, 0xe9, 0x1f, 0xd8, 0x1a,
+  0x62, 0x15, 0xbd, 0xff, 0x3d, 0xa6, 0xf7, 0xcb, 0xef, 0xe6, 0xdb, 0x65,
+  0x2f, 0x25, 0x38, 0xec, 0xfb, 0xe6, 0x20, 0x66, 0x58, 0x96, 0x34, 0x19,
+  0xd2, 0x15, 0xce, 0x21, 0xd3, 0x24, 0xcc, 0xd9, 0x14, 0x6f, 0xd8, 0xfe,
+  0x55, 0xc7, 0xe7, 0x6f, 0xb6, 0x0f, 0x1a, 0x8c, 0x49, 0xbe, 0x29, 0xf2,
+  0xba, 0x5a, 0x9a, 0x81, 0x26, 0x37, 0x24, 0x6f, 0xd7, 0x48, 0x12, 0x6c,
+  0x2e, 0x59, 0xf5, 0x9c, 0x18, 0xbb, 0xd9, 0xf6, 0x68, 0xe2, 0xdf, 0x45,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x5a, 0x30, 0x82, 0x01,
+  0x56, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+  0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x86, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+  0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63,
+  0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x7b, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x74, 0x30, 0x72, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33,
+  0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+  0x33, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64,
+  0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30,
+  0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68,
+  0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64,
+  0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+  0x04, 0x14, 0x90, 0x71, 0xdb, 0x37, 0xeb, 0x73, 0xc8, 0xef, 0xdc, 0xd5,
+  0x1e, 0x12, 0xb6, 0x34, 0xba, 0x2b, 0x5a, 0xa0, 0xa6, 0x92, 0x30, 0x1f,
+  0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x03,
+  0xde, 0x50, 0x35, 0x56, 0xd1, 0x4c, 0xbb, 0x66, 0xf0, 0xa3, 0xe2, 0x1b,
+  0x1b, 0xc3, 0x97, 0xb2, 0x3d, 0xd1, 0x55, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x01, 0x00, 0x30, 0xce, 0xd1, 0x95, 0x51, 0x00, 0xae, 0x06, 0x0b,
+  0xa1, 0x0e, 0x02, 0xc0, 0x17, 0xac, 0xb6, 0x7f, 0x8f, 0x20, 0xf6, 0x40,
+  0x75, 0x74, 0x1c, 0xcc, 0x78, 0xb1, 0xa4, 0x4f, 0xea, 0xf4, 0xd0, 0xc4,
+  0x9d, 0xa2, 0xde, 0x81, 0x07, 0x26, 0x1f, 0x40, 0x88, 0x51, 0xf0, 0x1f,
+  0xcf, 0xb7, 0x4c, 0x40, 0x99, 0xd0, 0xf4, 0x3c, 0x71, 0x98, 0x73, 0x88,
+  0x97, 0x2c, 0x19, 0xd7, 0x6e, 0x84, 0x8f, 0xa4, 0x1f, 0x9c, 0x5a, 0x20,
+  0xe3, 0x51, 0x5c, 0xb0, 0xc5, 0x9e, 0x99, 0x6a, 0x4f, 0xc8, 0x69, 0xf7,
+  0x10, 0xff, 0x4e, 0xad, 0x19, 0xd9, 0xc9, 0x58, 0xb3, 0x33, 0xae, 0x0c,
+  0xd9, 0x96, 0x29, 0x9e, 0x71, 0xb2, 0x70, 0x63, 0xa3, 0xb6, 0x99, 0x16,
+  0x42, 0x1d, 0x65, 0xf3, 0xf7, 0xa0, 0x1e, 0x7d, 0xc5, 0xd4, 0x65, 0x14,
+  0xb2, 0x62, 0x84, 0xd4, 0x6c, 0x5c, 0x08, 0x0c, 0xd8, 0x6c, 0x93, 0x2b,
+  0xb4, 0x76, 0x59, 0x8a, 0xd1, 0x7f, 0xff, 0x03, 0xd8, 0xc2, 0x5d, 0xb8,
+  0x2f, 0x22, 0xd6, 0x38, 0xf0, 0xf6, 0x9c, 0x6b, 0x7d, 0x46, 0xeb, 0x99,
+  0x74, 0xf7, 0xeb, 0x4a, 0x0e, 0xa9, 0xa6, 0x04, 0xeb, 0x7b, 0xce, 0xf0,
+  0x5c, 0x6b, 0x98, 0x31, 0x5a, 0x98, 0x40, 0xeb, 0x69, 0xc4, 0x05, 0xf4,
+  0x20, 0xa8, 0xca, 0x08, 0x3a, 0x65, 0x6c, 0x38, 0x15, 0xf5, 0x5c, 0x2c,
+  0xb2, 0x55, 0xe4, 0x2c, 0x6b, 0x41, 0xf0, 0xbe, 0x5c, 0x46, 0xca, 0x4a,
+  0x29, 0xa0, 0x48, 0x5e, 0x20, 0xd2, 0x45, 0xff, 0x05, 0xde, 0x34, 0xaf,
+  0x70, 0x4b, 0x81, 0x39, 0xe2, 0xca, 0x07, 0x57, 0x7c, 0xb6, 0x31, 0xdc,
+  0x21, 0x29, 0xe2, 0xbe, 0x97, 0x0e, 0x77, 0x90, 0x14, 0x51, 0x40, 0xe1,
+  0xbf, 0xe3, 0xcc, 0x1b, 0x19, 0x9c, 0x25, 0xca, 0xa7, 0x06, 0xb2, 0x53,
+  0xdf, 0x23, 0xb2, 0xcf, 0x12, 0x19, 0xa3,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            1b:09:3b:78:60:96:da:37:bb:a4:51:94:46:c8:96:78
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+        Validity
+            Not Before: Nov  8 00:00:00 2006 GMT
+            Not After : Nov  7 23:59:59 2021 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+                    4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+                    08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+                    2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+                    8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+                    a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+                    54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+                    d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+                    7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+                    bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+                    f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+                    ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+                    f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+                    21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+                    63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+                    ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+                    9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+                    25:15
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.verisign.com/pca3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.verisign.com/cps
+
+            X509v3 Subject Key Identifier: 
+                7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.verisign.com
+
+    Signature Algorithm: sha1WithRSAEncryption
+         a3:cd:7d:1e:f7:c7:75:8d:48:e7:56:34:4c:00:90:75:a9:51:
+         a5:56:c1:6d:bc:fe:f5:53:22:e9:98:a2:ac:9a:7e:70:1e:b3:
+         8e:3b:45:e3:86:95:31:da:6d:4c:fb:34:50:80:96:cd:24:f2:
+         40:df:04:3f:e2:65:ce:34:22:61:15:ea:66:70:64:d2:f1:6e:
+         f3:ca:18:59:6a:41:46:7e:82:de:19:b0:70:31:56:69:0d:0c:
+         e6:1d:9d:71:58:dc:cc:de:62:f5:e1:7a:10:02:d8:7a:dc:3b:
+         fa:57:bd:c9:e9:8f:46:21:39:9f:51:65:4c:8e:3a:be:28:41:
+         70:1d
+-----BEGIN CERTIFICATE-----
+MIIEkDCCA/mgAwIBAgIQGwk7eGCW2je7pFGURsiWeDANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggFbMIIBVzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wDQYJKoZIhvcNAQEFBQADgYEAo819HvfHdY1I51Y0
+TACQdalRpVbBbbz+9VMi6ZiirJp+cB6zjjtF44aVMdptTPs0UICWzSTyQN8EP+Jl
+zjQiYRXqZnBk0vFu88oYWWpBRn6C3hmwcDFWaQ0M5h2dcVjczN5i9eF6EALYetw7
++le9yemPRiE5n1FlTI46vihBcB0=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert20[] = {
+  0x30, 0x82, 0x04, 0x90, 0x30, 0x82, 0x03, 0xf9, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x1b, 0x09, 0x3b, 0x78, 0x60, 0x96, 0xda, 0x37, 0xbb,
+  0xa4, 0x51, 0x94, 0x46, 0xc8, 0x96, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+  0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+  0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+  0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+  0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+  0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+  0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+  0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+  0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+  0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+  0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+  0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+  0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+  0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+  0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+  0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+  0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+  0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+  0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+  0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+  0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+  0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+  0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+  0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+  0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+  0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+  0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+  0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+  0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+  0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+  0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x5b, 0x30, 0x82, 0x01, 0x57, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+  0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+  0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+  0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+  0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+  0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+  0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+  0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+  0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00,
+  0xa3, 0xcd, 0x7d, 0x1e, 0xf7, 0xc7, 0x75, 0x8d, 0x48, 0xe7, 0x56, 0x34,
+  0x4c, 0x00, 0x90, 0x75, 0xa9, 0x51, 0xa5, 0x56, 0xc1, 0x6d, 0xbc, 0xfe,
+  0xf5, 0x53, 0x22, 0xe9, 0x98, 0xa2, 0xac, 0x9a, 0x7e, 0x70, 0x1e, 0xb3,
+  0x8e, 0x3b, 0x45, 0xe3, 0x86, 0x95, 0x31, 0xda, 0x6d, 0x4c, 0xfb, 0x34,
+  0x50, 0x80, 0x96, 0xcd, 0x24, 0xf2, 0x40, 0xdf, 0x04, 0x3f, 0xe2, 0x65,
+  0xce, 0x34, 0x22, 0x61, 0x15, 0xea, 0x66, 0x70, 0x64, 0xd2, 0xf1, 0x6e,
+  0xf3, 0xca, 0x18, 0x59, 0x6a, 0x41, 0x46, 0x7e, 0x82, 0xde, 0x19, 0xb0,
+  0x70, 0x31, 0x56, 0x69, 0x0d, 0x0c, 0xe6, 0x1d, 0x9d, 0x71, 0x58, 0xdc,
+  0xcc, 0xde, 0x62, 0xf5, 0xe1, 0x7a, 0x10, 0x02, 0xd8, 0x7a, 0xdc, 0x3b,
+  0xfa, 0x57, 0xbd, 0xc9, 0xe9, 0x8f, 0x46, 0x21, 0x39, 0x9f, 0x51, 0x65,
+  0x4c, 0x8e, 0x3a, 0xbe, 0x28, 0x41, 0x70, 0x1d,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            01:fd:a3:eb:6e:ca:75:c8:88:43:8b:72:4b:cf:bc:91
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
+        Validity
+            Not Before: Mar  8 12:00:00 2013 GMT
+            Not After : Mar  8 12:00:00 2023 GMT
+        Subject: C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:dc:ae:58:90:4d:c1:c4:30:15:90:35:5b:6e:3c:
+                    82:15:f5:2c:5c:bd:e3:db:ff:71:43:fa:64:25:80:
+                    d4:ee:18:a2:4d:f0:66:d0:0a:73:6e:11:98:36:17:
+                    64:af:37:9d:fd:fa:41:84:af:c7:af:8c:fe:1a:73:
+                    4d:cf:33:97:90:a2:96:87:53:83:2b:b9:a6:75:48:
+                    2d:1d:56:37:7b:da:31:32:1a:d7:ac:ab:06:f4:aa:
+                    5d:4b:b7:47:46:dd:2a:93:c3:90:2e:79:80:80:ef:
+                    13:04:6a:14:3b:b5:9b:92:be:c2:07:65:4e:fc:da:
+                    fc:ff:7a:ae:dc:5c:7e:55:31:0c:e8:39:07:a4:d7:
+                    be:2f:d3:0b:6a:d2:b1:df:5f:fe:57:74:53:3b:35:
+                    80:dd:ae:8e:44:98:b3:9f:0e:d3:da:e0:d7:f4:6b:
+                    29:ab:44:a7:4b:58:84:6d:92:4b:81:c3:da:73:8b:
+                    12:97:48:90:04:45:75:1a:dd:37:31:97:92:e8:cd:
+                    54:0d:3b:e4:c1:3f:39:5e:2e:b8:f3:5c:7e:10:8e:
+                    86:41:00:8d:45:66:47:b0:a1:65:ce:a0:aa:29:09:
+                    4e:f3:97:eb:e8:2e:ab:0f:72:a7:30:0e:fa:c7:f4:
+                    fd:14:77:c3:a4:5b:28:57:c2:b3:f9:82:fd:b7:45:
+                    58:9b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.digicert.com/CPS
+
+            X509v3 Subject Key Identifier: 
+                0F:80:61:1C:82:31:61:D5:2F:28:E7:8D:46:38:B4:2C:E1:C6:D9:E2
+            X509v3 Authority Key Identifier: 
+                keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
+
+    Signature Algorithm: sha256WithRSAEncryption
+         23:3e:df:4b:d2:31:42:a5:b6:7e:42:5c:1a:44:cc:69:d1:68:
+         b4:5d:4b:e0:04:21:6c:4b:e2:6d:cc:b1:e0:97:8f:a6:53:09:
+         cd:aa:2a:65:e5:39:4f:1e:83:a5:6e:5c:98:a2:24:26:e6:fb:
+         a1:ed:93:c7:2e:02:c6:4d:4a:bf:b0:42:df:78:da:b3:a8:f9:
+         6d:ff:21:85:53:36:60:4c:76:ce:ec:38:dc:d6:51:80:f0:c5:
+         d6:e5:d4:4d:27:64:ab:9b:c7:3e:71:fb:48:97:b8:33:6d:c9:
+         13:07:ee:96:a2:1b:18:15:f6:5c:4c:40:ed:b3:c2:ec:ff:71:
+         c1:e3:47:ff:d4:b9:00:b4:37:42:da:20:c9:ea:6e:8a:ee:14:
+         06:ae:7d:a2:59:98:88:a8:1b:6f:2d:f4:f2:c9:14:5f:26:cf:
+         2c:8d:7e:ed:37:c0:a9:d5:39:b9:82:bf:19:0c:ea:34:af:00:
+         21:68:f8:ad:73:e2:c9:32:da:38:25:0b:55:d3:9a:1d:f0:68:
+         86:ed:2e:41:34:ef:7c:a5:50:1d:bf:3a:f9:d3:c1:08:0c:e6:
+         ed:1e:8a:58:25:e4:b8:77:ad:2d:6e:f5:52:dd:b4:74:8f:ab:
+         49:2e:9d:3b:93:34:28:1f:78:ce:94:ea:c7:bd:d3:c9:6d:1c:
+         de:5c:32:f3
+-----BEGIN CERTIFICATE-----
+MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
+U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
+nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
+KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f
+/ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
+kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0
+/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
+aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
+Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
+oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
+QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
+d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh
+xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
+CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
+5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
+8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
+2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
+c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
+j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert21[] = {
+  0x30, 0x82, 0x04, 0x94, 0x30, 0x82, 0x03, 0x7c, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x01, 0xfd, 0xa3, 0xeb, 0x6e, 0xca, 0x75, 0xc8, 0x88,
+  0x43, 0x8b, 0x72, 0x4b, 0xcf, 0xbc, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x61,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x17, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+  0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x30, 0x38, 0x31,
+  0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33,
+  0x30, 0x38, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44,
+  0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31,
+  0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1e, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41, 0x32, 0x20,
+  0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65,
+  0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xdc, 0xae, 0x58, 0x90, 0x4d, 0xc1, 0xc4, 0x30, 0x15, 0x90, 0x35,
+  0x5b, 0x6e, 0x3c, 0x82, 0x15, 0xf5, 0x2c, 0x5c, 0xbd, 0xe3, 0xdb, 0xff,
+  0x71, 0x43, 0xfa, 0x64, 0x25, 0x80, 0xd4, 0xee, 0x18, 0xa2, 0x4d, 0xf0,
+  0x66, 0xd0, 0x0a, 0x73, 0x6e, 0x11, 0x98, 0x36, 0x17, 0x64, 0xaf, 0x37,
+  0x9d, 0xfd, 0xfa, 0x41, 0x84, 0xaf, 0xc7, 0xaf, 0x8c, 0xfe, 0x1a, 0x73,
+  0x4d, 0xcf, 0x33, 0x97, 0x90, 0xa2, 0x96, 0x87, 0x53, 0x83, 0x2b, 0xb9,
+  0xa6, 0x75, 0x48, 0x2d, 0x1d, 0x56, 0x37, 0x7b, 0xda, 0x31, 0x32, 0x1a,
+  0xd7, 0xac, 0xab, 0x06, 0xf4, 0xaa, 0x5d, 0x4b, 0xb7, 0x47, 0x46, 0xdd,
+  0x2a, 0x93, 0xc3, 0x90, 0x2e, 0x79, 0x80, 0x80, 0xef, 0x13, 0x04, 0x6a,
+  0x14, 0x3b, 0xb5, 0x9b, 0x92, 0xbe, 0xc2, 0x07, 0x65, 0x4e, 0xfc, 0xda,
+  0xfc, 0xff, 0x7a, 0xae, 0xdc, 0x5c, 0x7e, 0x55, 0x31, 0x0c, 0xe8, 0x39,
+  0x07, 0xa4, 0xd7, 0xbe, 0x2f, 0xd3, 0x0b, 0x6a, 0xd2, 0xb1, 0xdf, 0x5f,
+  0xfe, 0x57, 0x74, 0x53, 0x3b, 0x35, 0x80, 0xdd, 0xae, 0x8e, 0x44, 0x98,
+  0xb3, 0x9f, 0x0e, 0xd3, 0xda, 0xe0, 0xd7, 0xf4, 0x6b, 0x29, 0xab, 0x44,
+  0xa7, 0x4b, 0x58, 0x84, 0x6d, 0x92, 0x4b, 0x81, 0xc3, 0xda, 0x73, 0x8b,
+  0x12, 0x97, 0x48, 0x90, 0x04, 0x45, 0x75, 0x1a, 0xdd, 0x37, 0x31, 0x97,
+  0x92, 0xe8, 0xcd, 0x54, 0x0d, 0x3b, 0xe4, 0xc1, 0x3f, 0x39, 0x5e, 0x2e,
+  0xb8, 0xf3, 0x5c, 0x7e, 0x10, 0x8e, 0x86, 0x41, 0x00, 0x8d, 0x45, 0x66,
+  0x47, 0xb0, 0xa1, 0x65, 0xce, 0xa0, 0xaa, 0x29, 0x09, 0x4e, 0xf3, 0x97,
+  0xeb, 0xe8, 0x2e, 0xab, 0x0f, 0x72, 0xa7, 0x30, 0x0e, 0xfa, 0xc7, 0xf4,
+  0xfd, 0x14, 0x77, 0xc3, 0xa4, 0x5b, 0x28, 0x57, 0xc2, 0xb3, 0xf9, 0x82,
+  0xfd, 0xb7, 0x45, 0x58, 0x9b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x5a, 0x30, 0x82, 0x01, 0x56, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e,
+  0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x7b, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x74, 0x30, 0x72, 0x30,
+  0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63,
+  0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69,
+  0x43, 0x65, 0x72, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f,
+  0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x37, 0xa0, 0x35,
+  0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72,
+  0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43,
+  0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20,
+  0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+  0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0f, 0x80, 0x61, 0x1c, 0x82,
+  0x31, 0x61, 0xd5, 0x2f, 0x28, 0xe7, 0x8d, 0x46, 0x38, 0xb4, 0x2c, 0xe1,
+  0xc6, 0xd9, 0xe2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+  0x30, 0x16, 0x80, 0x14, 0x03, 0xde, 0x50, 0x35, 0x56, 0xd1, 0x4c, 0xbb,
+  0x66, 0xf0, 0xa3, 0xe2, 0x1b, 0x1b, 0xc3, 0x97, 0xb2, 0x3d, 0xd1, 0x55,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x23, 0x3e, 0xdf, 0x4b,
+  0xd2, 0x31, 0x42, 0xa5, 0xb6, 0x7e, 0x42, 0x5c, 0x1a, 0x44, 0xcc, 0x69,
+  0xd1, 0x68, 0xb4, 0x5d, 0x4b, 0xe0, 0x04, 0x21, 0x6c, 0x4b, 0xe2, 0x6d,
+  0xcc, 0xb1, 0xe0, 0x97, 0x8f, 0xa6, 0x53, 0x09, 0xcd, 0xaa, 0x2a, 0x65,
+  0xe5, 0x39, 0x4f, 0x1e, 0x83, 0xa5, 0x6e, 0x5c, 0x98, 0xa2, 0x24, 0x26,
+  0xe6, 0xfb, 0xa1, 0xed, 0x93, 0xc7, 0x2e, 0x02, 0xc6, 0x4d, 0x4a, 0xbf,
+  0xb0, 0x42, 0xdf, 0x78, 0xda, 0xb3, 0xa8, 0xf9, 0x6d, 0xff, 0x21, 0x85,
+  0x53, 0x36, 0x60, 0x4c, 0x76, 0xce, 0xec, 0x38, 0xdc, 0xd6, 0x51, 0x80,
+  0xf0, 0xc5, 0xd6, 0xe5, 0xd4, 0x4d, 0x27, 0x64, 0xab, 0x9b, 0xc7, 0x3e,
+  0x71, 0xfb, 0x48, 0x97, 0xb8, 0x33, 0x6d, 0xc9, 0x13, 0x07, 0xee, 0x96,
+  0xa2, 0x1b, 0x18, 0x15, 0xf6, 0x5c, 0x4c, 0x40, 0xed, 0xb3, 0xc2, 0xec,
+  0xff, 0x71, 0xc1, 0xe3, 0x47, 0xff, 0xd4, 0xb9, 0x00, 0xb4, 0x37, 0x42,
+  0xda, 0x20, 0xc9, 0xea, 0x6e, 0x8a, 0xee, 0x14, 0x06, 0xae, 0x7d, 0xa2,
+  0x59, 0x98, 0x88, 0xa8, 0x1b, 0x6f, 0x2d, 0xf4, 0xf2, 0xc9, 0x14, 0x5f,
+  0x26, 0xcf, 0x2c, 0x8d, 0x7e, 0xed, 0x37, 0xc0, 0xa9, 0xd5, 0x39, 0xb9,
+  0x82, 0xbf, 0x19, 0x0c, 0xea, 0x34, 0xaf, 0x00, 0x21, 0x68, 0xf8, 0xad,
+  0x73, 0xe2, 0xc9, 0x32, 0xda, 0x38, 0x25, 0x0b, 0x55, 0xd3, 0x9a, 0x1d,
+  0xf0, 0x68, 0x86, 0xed, 0x2e, 0x41, 0x34, 0xef, 0x7c, 0xa5, 0x50, 0x1d,
+  0xbf, 0x3a, 0xf9, 0xd3, 0xc1, 0x08, 0x0c, 0xe6, 0xed, 0x1e, 0x8a, 0x58,
+  0x25, 0xe4, 0xb8, 0x77, 0xad, 0x2d, 0x6e, 0xf5, 0x52, 0xdd, 0xb4, 0x74,
+  0x8f, 0xab, 0x49, 0x2e, 0x9d, 0x3b, 0x93, 0x34, 0x28, 0x1f, 0x78, 0xce,
+  0x94, 0xea, 0xc7, 0xbd, 0xd3, 0xc9, 0x6d, 0x1c, 0xde, 0x5c, 0x32, 0xf3,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            0b:1d:b1:a9:19:f2:4c:3c:4e:fc:b5:7a:6a:4e:6c:bf
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+        Validity
+            Not Before: Aug 23 00:00:00 2012 GMT
+            Not After : Aug 22 23:59:59 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Extended Validation SSL CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:9e:c6:21:cd:2e:3d:d0:bb:2a:4d:a4:7b:1f:a8:
+                    1a:c2:03:a6:ff:43:62:5b:bf:91:d1:66:52:a9:81:
+                    90:68:31:86:16:bb:1d:85:58:a9:7e:91:6a:1e:4c:
+                    31:ca:21:c4:be:70:1b:9f:8c:e4:05:2d:9c:ed:11:
+                    79:ad:8f:9c:25:86:4c:ba:f2:e5:62:79:8e:22:5f:
+                    85:7c:22:35:38:23:8d:80:3c:ac:cc:2d:fc:58:f2:
+                    35:bf:66:5b:eb:c1:24:f8:70:80:74:32:f9:46:de:
+                    32:19:80:8c:b7:e7:1a:a1:aa:64:98:8d:ca:ce:0e:
+                    dc:6b:f7:e2:90:0a:6c:1c:a5:f4:90:32:52:e5:f1:
+                    00:42:31:91:48:42:89:a8:5d:7f:63:8d:31:b2:d6:
+                    48:5c:45:45:22:c9:c5:59:12:ab:41:94:ea:fe:9c:
+                    46:4d:9a:bc:9c:e0:e2:c6:46:b3:e6:7f:dc:f5:0f:
+                    a3:13:45:86:6d:79:78:fc:e1:50:cf:09:86:e5:9f:
+                    bf:cb:3a:d4:e0:b1:d4:ff:a8:3f:7d:62:1f:c0:6d:
+                    78:48:c3:d7:a3:a5:23:61:c5:3e:35:4d:b2:e5:f8:
+                    fd:94:4b:bc:73:53:af:e3:9a:69:55:be:cb:67:ab:
+                    e1:be:ef:1b:c2:4d:ac:cb:29:5c:bc:ed:b8:62:9d:
+                    10:e9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://EVSecure-ocsp.geotrust.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://EVSecure-crl.geotrust.com/GeoTrustPCA.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-253
+            X509v3 Subject Key Identifier: 
+                6F:26:56:D9:5C:E7:F7:C9:04:20:F8:1E:BA:7C:91:27:2F:8C:FA:07
+            X509v3 Authority Key Identifier: 
+                keyid:2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+
+    Signature Algorithm: sha1WithRSAEncryption
+         92:77:e9:57:c9:eb:c4:45:6f:c9:4c:6e:7d:00:12:71:a5:e3:
+         39:fe:13:84:49:6c:e7:49:71:f5:2c:c7:c0:36:c2:08:58:f3:
+         83:75:c5:72:d8:8d:78:f4:65:ea:8c:d5:e3:a5:0e:a9:ad:eb:
+         e3:a1:23:ae:93:b7:d8:75:75:4a:59:cb:f2:9e:db:40:bf:4e:
+         89:fe:95:42:29:34:7b:f4:dd:6a:0d:74:5f:c7:11:13:2e:dd:
+         11:6e:c6:e3:5b:b3:cf:a6:8d:e5:f7:67:7b:ba:b3:b3:69:70:
+         14:b0:c2:99:b4:d2:76:5b:38:17:39:45:1b:82:f1:53:b8:3d:
+         55:39:0b:7f:ff:98:ad:6e:96:9a:b6:6a:4c:7a:5e:bd:b1:86:
+         12:9d:7c:2c:62:bb:09:93:5f:3f:d8:b5:8a:c3:49:28:0f:0b:
+         f9:39:22:1a:fe:5d:d3:e8:18:5f:9d:5f:b4:c0:20:c6:a9:49:
+         0d:55:73:6a:09:7a:ff:a2:99:bf:d8:bb:91:dc:30:39:ae:28:
+         4b:f6:c5:77:24:e8:d6:c6:a7:a0:4e:f2:a6:99:75:cd:dd:57:
+         dd:0a:47:92:cb:bb:b7:48:fa:21:f0:69:21:ff:e5:0c:aa:0c:
+         b1:ea:dd:05:1c:19:8e:d1:2a:79:68:02:5e:cc:38:e6:29:c4:
+         77:f5:19:1c
+-----BEGIN CERTIFICATE-----
+MIIEmjCCA4KgAwIBAgIQCx2xqRnyTDxO/LV6ak5svzANBgkqhkiG9w0BAQUFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMjA4
+MjMwMDAwMDBaFw0yMjA4MjIyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBFeHRlbmRlZCBWYWxp
+ZGF0aW9uIFNTTCBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAnsYhzS490LsqTaR7H6gawgOm/0NiW7+R0WZSqYGQaDGGFrsdhVipfpFqHkwx
+yiHEvnAbn4zkBS2c7RF5rY+cJYZMuvLlYnmOIl+FfCI1OCONgDyszC38WPI1v2Zb
+68Ek+HCAdDL5Rt4yGYCMt+caoapkmI3Kzg7ca/fikApsHKX0kDJS5fEAQjGRSEKJ
+qF1/Y40xstZIXEVFIsnFWRKrQZTq/pxGTZq8nODixkaz5n/c9Q+jE0WGbXl4/OFQ
+zwmG5Z+/yzrU4LHU/6g/fWIfwG14SMPXo6UjYcU+NU2y5fj9lEu8c1Ov45ppVb7L
+Z6vhvu8bwk2syylcvO24Yp0Q6QIDAQABo4IBXjCCAVowPQYIKwYBBQUHAQEEMTAv
+MC0GCCsGAQUFBzABhiFodHRwOi8vRVZTZWN1cmUtb2NzcC5nZW90cnVzdC5jb20w
+EgYDVR0TAQH/BAgwBgEB/wIBADBGBgNVHSAEPzA9MDsGBFUdIAAwMzAxBggrBgEF
+BQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczBBBgNV
+HR8EOjA4MDagNKAyhjBodHRwOi8vRVZTZWN1cmUtY3JsLmdlb3RydXN0LmNvbS9H
+ZW9UcnVzdFBDQS5jcmwwDgYDVR0PAQH/BAQDAgEGMCoGA1UdEQQjMCGkHzAdMRsw
+GQYDVQQDExJWZXJpU2lnbk1QS0ktMi0yNTMwHQYDVR0OBBYEFG8mVtlc5/fJBCD4
+Hrp8kScvjPoHMB8GA1UdIwQYMBaAFCzVUEGXFYvwjzZhW0r7a9mZyTOSMA0GCSqG
+SIb3DQEBBQUAA4IBAQCSd+lXyevERW/JTG59ABJxpeM5/hOESWznSXH1LMfANsII
+WPODdcVy2I149GXqjNXjpQ6prevjoSOuk7fYdXVKWcvynttAv06J/pVCKTR79N1q
+DXRfxxETLt0RbsbjW7PPpo3l92d7urOzaXAUsMKZtNJ2WzgXOUUbgvFTuD1VOQt/
+/5itbpaatmpMel69sYYSnXwsYrsJk18/2LWKw0koDwv5OSIa/l3T6BhfnV+0wCDG
+qUkNVXNqCXr/opm/2LuR3DA5rihL9sV3JOjWxqegTvKmmXXN3VfdCkeSy7u3SPoh
+8Gkh/+UMqgyx6t0FHBmO0Sp5aAJezDjmKcR39Rkc
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert22[] = {
+  0x30, 0x82, 0x04, 0x9a, 0x30, 0x82, 0x03, 0x82, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x0b, 0x1d, 0xb1, 0xa9, 0x19, 0xf2, 0x4c, 0x3c, 0x4e,
+  0xfc, 0xb5, 0x7a, 0x6a, 0x4e, 0x6c, 0xbf, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x58,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+  0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30, 0x38,
+  0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32,
+  0x32, 0x30, 0x38, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a,
+  0x30, 0x58, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x28, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+  0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56, 0x61, 0x6c, 0x69,
+  0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43,
+  0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0x9e, 0xc6, 0x21, 0xcd, 0x2e, 0x3d, 0xd0, 0xbb, 0x2a,
+  0x4d, 0xa4, 0x7b, 0x1f, 0xa8, 0x1a, 0xc2, 0x03, 0xa6, 0xff, 0x43, 0x62,
+  0x5b, 0xbf, 0x91, 0xd1, 0x66, 0x52, 0xa9, 0x81, 0x90, 0x68, 0x31, 0x86,
+  0x16, 0xbb, 0x1d, 0x85, 0x58, 0xa9, 0x7e, 0x91, 0x6a, 0x1e, 0x4c, 0x31,
+  0xca, 0x21, 0xc4, 0xbe, 0x70, 0x1b, 0x9f, 0x8c, 0xe4, 0x05, 0x2d, 0x9c,
+  0xed, 0x11, 0x79, 0xad, 0x8f, 0x9c, 0x25, 0x86, 0x4c, 0xba, 0xf2, 0xe5,
+  0x62, 0x79, 0x8e, 0x22, 0x5f, 0x85, 0x7c, 0x22, 0x35, 0x38, 0x23, 0x8d,
+  0x80, 0x3c, 0xac, 0xcc, 0x2d, 0xfc, 0x58, 0xf2, 0x35, 0xbf, 0x66, 0x5b,
+  0xeb, 0xc1, 0x24, 0xf8, 0x70, 0x80, 0x74, 0x32, 0xf9, 0x46, 0xde, 0x32,
+  0x19, 0x80, 0x8c, 0xb7, 0xe7, 0x1a, 0xa1, 0xaa, 0x64, 0x98, 0x8d, 0xca,
+  0xce, 0x0e, 0xdc, 0x6b, 0xf7, 0xe2, 0x90, 0x0a, 0x6c, 0x1c, 0xa5, 0xf4,
+  0x90, 0x32, 0x52, 0xe5, 0xf1, 0x00, 0x42, 0x31, 0x91, 0x48, 0x42, 0x89,
+  0xa8, 0x5d, 0x7f, 0x63, 0x8d, 0x31, 0xb2, 0xd6, 0x48, 0x5c, 0x45, 0x45,
+  0x22, 0xc9, 0xc5, 0x59, 0x12, 0xab, 0x41, 0x94, 0xea, 0xfe, 0x9c, 0x46,
+  0x4d, 0x9a, 0xbc, 0x9c, 0xe0, 0xe2, 0xc6, 0x46, 0xb3, 0xe6, 0x7f, 0xdc,
+  0xf5, 0x0f, 0xa3, 0x13, 0x45, 0x86, 0x6d, 0x79, 0x78, 0xfc, 0xe1, 0x50,
+  0xcf, 0x09, 0x86, 0xe5, 0x9f, 0xbf, 0xcb, 0x3a, 0xd4, 0xe0, 0xb1, 0xd4,
+  0xff, 0xa8, 0x3f, 0x7d, 0x62, 0x1f, 0xc0, 0x6d, 0x78, 0x48, 0xc3, 0xd7,
+  0xa3, 0xa5, 0x23, 0x61, 0xc5, 0x3e, 0x35, 0x4d, 0xb2, 0xe5, 0xf8, 0xfd,
+  0x94, 0x4b, 0xbc, 0x73, 0x53, 0xaf, 0xe3, 0x9a, 0x69, 0x55, 0xbe, 0xcb,
+  0x67, 0xab, 0xe1, 0xbe, 0xef, 0x1b, 0xc2, 0x4d, 0xac, 0xcb, 0x29, 0x5c,
+  0xbc, 0xed, 0xb8, 0x62, 0x9d, 0x10, 0xe9, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x01, 0x5e, 0x30, 0x82, 0x01, 0x5a, 0x30, 0x3d, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f,
+  0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x45, 0x56, 0x53,
+  0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+  0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+  0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x46, 0x06, 0x03, 0x55,
+  0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30, 0x3b, 0x06, 0x04, 0x55, 0x1d,
+  0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
+  0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x41, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x3a, 0x30, 0x38, 0x30, 0x36, 0xa0, 0x34, 0xa0, 0x32,
+  0x86, 0x30, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x45, 0x56, 0x53,
+  0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65,
+  0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d,
+  0x11, 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30,
+  0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x32,
+  0x35, 0x33, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0x6f, 0x26, 0x56, 0xd9, 0x5c, 0xe7, 0xf7, 0xc9, 0x04, 0x20, 0xf8,
+  0x1e, 0xba, 0x7c, 0x91, 0x27, 0x2f, 0x8c, 0xfa, 0x07, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x2c, 0xd5,
+  0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36, 0x61, 0x5b, 0x4a, 0xfb,
+  0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x01, 0x00, 0x92, 0x77, 0xe9, 0x57, 0xc9, 0xeb, 0xc4, 0x45, 0x6f, 0xc9,
+  0x4c, 0x6e, 0x7d, 0x00, 0x12, 0x71, 0xa5, 0xe3, 0x39, 0xfe, 0x13, 0x84,
+  0x49, 0x6c, 0xe7, 0x49, 0x71, 0xf5, 0x2c, 0xc7, 0xc0, 0x36, 0xc2, 0x08,
+  0x58, 0xf3, 0x83, 0x75, 0xc5, 0x72, 0xd8, 0x8d, 0x78, 0xf4, 0x65, 0xea,
+  0x8c, 0xd5, 0xe3, 0xa5, 0x0e, 0xa9, 0xad, 0xeb, 0xe3, 0xa1, 0x23, 0xae,
+  0x93, 0xb7, 0xd8, 0x75, 0x75, 0x4a, 0x59, 0xcb, 0xf2, 0x9e, 0xdb, 0x40,
+  0xbf, 0x4e, 0x89, 0xfe, 0x95, 0x42, 0x29, 0x34, 0x7b, 0xf4, 0xdd, 0x6a,
+  0x0d, 0x74, 0x5f, 0xc7, 0x11, 0x13, 0x2e, 0xdd, 0x11, 0x6e, 0xc6, 0xe3,
+  0x5b, 0xb3, 0xcf, 0xa6, 0x8d, 0xe5, 0xf7, 0x67, 0x7b, 0xba, 0xb3, 0xb3,
+  0x69, 0x70, 0x14, 0xb0, 0xc2, 0x99, 0xb4, 0xd2, 0x76, 0x5b, 0x38, 0x17,
+  0x39, 0x45, 0x1b, 0x82, 0xf1, 0x53, 0xb8, 0x3d, 0x55, 0x39, 0x0b, 0x7f,
+  0xff, 0x98, 0xad, 0x6e, 0x96, 0x9a, 0xb6, 0x6a, 0x4c, 0x7a, 0x5e, 0xbd,
+  0xb1, 0x86, 0x12, 0x9d, 0x7c, 0x2c, 0x62, 0xbb, 0x09, 0x93, 0x5f, 0x3f,
+  0xd8, 0xb5, 0x8a, 0xc3, 0x49, 0x28, 0x0f, 0x0b, 0xf9, 0x39, 0x22, 0x1a,
+  0xfe, 0x5d, 0xd3, 0xe8, 0x18, 0x5f, 0x9d, 0x5f, 0xb4, 0xc0, 0x20, 0xc6,
+  0xa9, 0x49, 0x0d, 0x55, 0x73, 0x6a, 0x09, 0x7a, 0xff, 0xa2, 0x99, 0xbf,
+  0xd8, 0xbb, 0x91, 0xdc, 0x30, 0x39, 0xae, 0x28, 0x4b, 0xf6, 0xc5, 0x77,
+  0x24, 0xe8, 0xd6, 0xc6, 0xa7, 0xa0, 0x4e, 0xf2, 0xa6, 0x99, 0x75, 0xcd,
+  0xdd, 0x57, 0xdd, 0x0a, 0x47, 0x92, 0xcb, 0xbb, 0xb7, 0x48, 0xfa, 0x21,
+  0xf0, 0x69, 0x21, 0xff, 0xe5, 0x0c, 0xaa, 0x0c, 0xb1, 0xea, 0xdd, 0x05,
+  0x1c, 0x19, 0x8e, 0xd1, 0x2a, 0x79, 0x68, 0x02, 0x5e, 0xcc, 0x38, 0xe6,
+  0x29, 0xc4, 0x77, 0xf5, 0x19, 0x1c,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 3740804 (0x391484)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
+        Validity
+            Not Before: Jan  1 07:00:00 2014 GMT
+            Not After : May 30 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bd:ed:c1:03:fc:f6:8f:fc:02:b1:6f:5b:9f:48:
+                    d9:9d:79:e2:a2:b7:03:61:56:18:c3:47:b6:d7:ca:
+                    3d:35:2e:89:43:f7:a1:69:9b:de:8a:1a:fd:13:20:
+                    9c:b4:49:77:32:29:56:fd:b9:ec:8c:dd:22:fa:72:
+                    dc:27:61:97:ee:f6:5a:84:ec:6e:19:b9:89:2c:dc:
+                    84:5b:d5:74:fb:6b:5f:c5:89:a5:10:52:89:46:55:
+                    f4:b8:75:1c:e6:7f:e4:54:ae:4b:f8:55:72:57:02:
+                    19:f8:17:71:59:eb:1e:28:07:74:c5:9d:48:be:6c:
+                    b4:f4:a4:b0:f3:64:37:79:92:c0:ec:46:5e:7f:e1:
+                    6d:53:4c:62:af:cd:1f:0b:63:bb:3a:9d:fb:fc:79:
+                    00:98:61:74:cf:26:82:40:63:f3:b2:72:6a:19:0d:
+                    99:ca:d4:0e:75:cc:37:fb:8b:89:c1:59:f1:62:7f:
+                    5f:b3:5f:65:30:f8:a7:b7:4d:76:5a:1e:76:5e:34:
+                    c0:e8:96:56:99:8a:b3:f0:7f:a4:cd:bd:dc:32:31:
+                    7c:91:cf:e0:5f:11:f8:6b:aa:49:5c:d1:99:94:d1:
+                    a2:e3:63:5b:09:76:b5:56:62:e1:4b:74:1d:96:d4:
+                    26:d4:08:04:59:d0:98:0e:0e:e6:de:fc:c3:ec:1f:
+                    90:f1
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+            X509v3 Authority Key Identifier: 
+                keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.starfieldtech.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.starfieldtech.com/sfroot.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.starfieldtech.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         85:63:c1:d9:dd:b9:ff:a9:bd:a6:19:dc:bf:13:3a:11:38:22:
+         54:b1:ac:05:10:fb:7c:b3:96:3f:31:8b:66:ff:88:f3:e1:bf:
+         fb:c7:1f:00:ff:46:6a:8b:61:32:c9:01:51:76:fb:9a:c6:fa:
+         20:51:c8:46:c4:98:d7:79:a3:e3:04:72:3f:8b:4d:34:53:67:
+         ec:33:2c:7b:e8:94:01:28:7c:3a:34:5b:02:77:16:8d:40:25:
+         33:b0:bc:6c:97:d7:05:7a:ff:8c:85:ce:6f:a0:53:00:17:6e:
+         1e:6c:bd:22:d7:0a:88:37:f6:7d:eb:99:41:ef:27:cb:8c:60:
+         6b:4c:01:7e:65:50:0b:4f:b8:95:9a:9a:6e:34:fd:73:3a:33:
+         f1:91:d5:f3:4e:2d:74:e8:ef:d3:90:35:f1:06:68:64:d4:d0:
+         13:fd:52:d3:c6:6d:c1:3a:8a:31:dd:05:26:35:4a:8c:65:b8:
+         52:6b:81:ec:d2:9c:b5:34:10:97:9c:3e:c6:2f:ed:8e:42:42:
+         24:2e:e9:73:9a:25:f9:11:f1:f2:23:69:cb:e5:94:69:a0:d2:
+         dc:b0:fc:44:89:ac:17:a8:cc:d5:37:77:16:c5:80:b9:0c:8f:
+         57:02:55:99:85:7b:49:f0:2e:5b:a0:c2:57:53:5d:a2:e8:a6:
+         37:c3:01:fa
+-----BEGIN CERTIFICATE-----
+MIIEoDCCA4igAwIBAgIDORSEMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYTAlVT
+MSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQL
+EylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NDAxMDEwNzAwMDBaFw0zMTA1MzAwNzAwMDBaMIGPMQswCQYDVQQGEwJVUzEQMA4G
+A1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UEChMcU3Rh
+cmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UEAxMpU3RhcmZpZWxkIFJv
+b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQC97cED/PaP/AKxb1ufSNmdeeKitwNhVhjDR7bXyj01LolD
+96Fpm96KGv0TIJy0SXcyKVb9ueyM3SL6ctwnYZfu9lqE7G4ZuYks3IRb1XT7a1/F
+iaUQUolGVfS4dRzmf+RUrkv4VXJXAhn4F3FZ6x4oB3TFnUi+bLT0pLDzZDd5ksDs
+Rl5/4W1TTGKvzR8LY7s6nfv8eQCYYXTPJoJAY/OycmoZDZnK1A51zDf7i4nBWfFi
+f1+zX2Uw+Ke3TXZaHnZeNMDollaZirPwf6TNvdwyMXyRz+BfEfhrqklc0ZmU0aLj
+Y1sJdrVWYuFLdB2W1CbUCARZ0JgODube/MPsH5DxAgMBAAGjggEpMIIBJTAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfAwyH6fZMH/E
+fWijYqihzqsHWycwHwYDVR0jBBgwFoAUv1+30c7dH4b0W1Ws3NcQwg6piOcwOgYI
+KwYBBQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0
+ZWNoLmNvbS8wOAYDVR0fBDEwLzAtoCugKYYnaHR0cDovL2NybC5zdGFyZmllbGR0
+ZWNoLmNvbS9zZnJvb3QuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQCFY8HZ3bn/qb2mGdy/EzoROCJUsawFEPt8s5Y/
+MYtm/4jz4b/7xx8A/0Zqi2EyyQFRdvuaxvogUchGxJjXeaPjBHI/i000U2fsMyx7
+6JQBKHw6NFsCdxaNQCUzsLxsl9cFev+Mhc5voFMAF24ebL0i1wqIN/Z965lB7yfL
+jGBrTAF+ZVALT7iVmppuNP1zOjPxkdXzTi106O/TkDXxBmhk1NAT/VLTxm3BOoox
+3QUmNUqMZbhSa4Hs0py1NBCXnD7GL+2OQkIkLulzmiX5EfHyI2nL5ZRpoNLcsPxE
+iawXqMzVN3cWxYC5DI9XAlWZhXtJ8C5boMJXU12i6KY3wwH6
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert23[] = {
+  0x30, 0x82, 0x04, 0xa0, 0x30, 0x82, 0x03, 0x88, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x39, 0x14, 0x84, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x68, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+  0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20,
+  0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+  0x34, 0x30, 0x31, 0x30, 0x31, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a,
+  0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+  0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e,
+  0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a,
+  0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x25,
+  0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61,
+  0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e,
+  0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x29,
+  0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+  0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xbd, 0xed, 0xc1, 0x03, 0xfc, 0xf6, 0x8f, 0xfc, 0x02, 0xb1,
+  0x6f, 0x5b, 0x9f, 0x48, 0xd9, 0x9d, 0x79, 0xe2, 0xa2, 0xb7, 0x03, 0x61,
+  0x56, 0x18, 0xc3, 0x47, 0xb6, 0xd7, 0xca, 0x3d, 0x35, 0x2e, 0x89, 0x43,
+  0xf7, 0xa1, 0x69, 0x9b, 0xde, 0x8a, 0x1a, 0xfd, 0x13, 0x20, 0x9c, 0xb4,
+  0x49, 0x77, 0x32, 0x29, 0x56, 0xfd, 0xb9, 0xec, 0x8c, 0xdd, 0x22, 0xfa,
+  0x72, 0xdc, 0x27, 0x61, 0x97, 0xee, 0xf6, 0x5a, 0x84, 0xec, 0x6e, 0x19,
+  0xb9, 0x89, 0x2c, 0xdc, 0x84, 0x5b, 0xd5, 0x74, 0xfb, 0x6b, 0x5f, 0xc5,
+  0x89, 0xa5, 0x10, 0x52, 0x89, 0x46, 0x55, 0xf4, 0xb8, 0x75, 0x1c, 0xe6,
+  0x7f, 0xe4, 0x54, 0xae, 0x4b, 0xf8, 0x55, 0x72, 0x57, 0x02, 0x19, 0xf8,
+  0x17, 0x71, 0x59, 0xeb, 0x1e, 0x28, 0x07, 0x74, 0xc5, 0x9d, 0x48, 0xbe,
+  0x6c, 0xb4, 0xf4, 0xa4, 0xb0, 0xf3, 0x64, 0x37, 0x79, 0x92, 0xc0, 0xec,
+  0x46, 0x5e, 0x7f, 0xe1, 0x6d, 0x53, 0x4c, 0x62, 0xaf, 0xcd, 0x1f, 0x0b,
+  0x63, 0xbb, 0x3a, 0x9d, 0xfb, 0xfc, 0x79, 0x00, 0x98, 0x61, 0x74, 0xcf,
+  0x26, 0x82, 0x40, 0x63, 0xf3, 0xb2, 0x72, 0x6a, 0x19, 0x0d, 0x99, 0xca,
+  0xd4, 0x0e, 0x75, 0xcc, 0x37, 0xfb, 0x8b, 0x89, 0xc1, 0x59, 0xf1, 0x62,
+  0x7f, 0x5f, 0xb3, 0x5f, 0x65, 0x30, 0xf8, 0xa7, 0xb7, 0x4d, 0x76, 0x5a,
+  0x1e, 0x76, 0x5e, 0x34, 0xc0, 0xe8, 0x96, 0x56, 0x99, 0x8a, 0xb3, 0xf0,
+  0x7f, 0xa4, 0xcd, 0xbd, 0xdc, 0x32, 0x31, 0x7c, 0x91, 0xcf, 0xe0, 0x5f,
+  0x11, 0xf8, 0x6b, 0xaa, 0x49, 0x5c, 0xd1, 0x99, 0x94, 0xd1, 0xa2, 0xe3,
+  0x63, 0x5b, 0x09, 0x76, 0xb5, 0x56, 0x62, 0xe1, 0x4b, 0x74, 0x1d, 0x96,
+  0xd4, 0x26, 0xd4, 0x08, 0x04, 0x59, 0xd0, 0x98, 0x0e, 0x0e, 0xe6, 0xde,
+  0xfc, 0xc3, 0xec, 0x1f, 0x90, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+  0x82, 0x01, 0x29, 0x30, 0x82, 0x01, 0x25, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff,
+  0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+  0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0x7c, 0x0c, 0x32, 0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4,
+  0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1, 0xce, 0xab, 0x07, 0x5b, 0x27, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0xbf, 0x5f, 0xb7, 0xd1, 0xce, 0xdd, 0x1f, 0x86, 0xf4, 0x5b, 0x55, 0xac,
+  0xdc, 0xd7, 0x10, 0xc2, 0x0e, 0xa9, 0x88, 0xe7, 0x30, 0x3a, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c,
+  0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+  0x70, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+  0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x38, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0xa0, 0x2b, 0xa0,
+  0x29, 0x86, 0x27, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+  0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f,
+  0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+  0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+  0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x85, 0x63, 0xc1, 0xd9,
+  0xdd, 0xb9, 0xff, 0xa9, 0xbd, 0xa6, 0x19, 0xdc, 0xbf, 0x13, 0x3a, 0x11,
+  0x38, 0x22, 0x54, 0xb1, 0xac, 0x05, 0x10, 0xfb, 0x7c, 0xb3, 0x96, 0x3f,
+  0x31, 0x8b, 0x66, 0xff, 0x88, 0xf3, 0xe1, 0xbf, 0xfb, 0xc7, 0x1f, 0x00,
+  0xff, 0x46, 0x6a, 0x8b, 0x61, 0x32, 0xc9, 0x01, 0x51, 0x76, 0xfb, 0x9a,
+  0xc6, 0xfa, 0x20, 0x51, 0xc8, 0x46, 0xc4, 0x98, 0xd7, 0x79, 0xa3, 0xe3,
+  0x04, 0x72, 0x3f, 0x8b, 0x4d, 0x34, 0x53, 0x67, 0xec, 0x33, 0x2c, 0x7b,
+  0xe8, 0x94, 0x01, 0x28, 0x7c, 0x3a, 0x34, 0x5b, 0x02, 0x77, 0x16, 0x8d,
+  0x40, 0x25, 0x33, 0xb0, 0xbc, 0x6c, 0x97, 0xd7, 0x05, 0x7a, 0xff, 0x8c,
+  0x85, 0xce, 0x6f, 0xa0, 0x53, 0x00, 0x17, 0x6e, 0x1e, 0x6c, 0xbd, 0x22,
+  0xd7, 0x0a, 0x88, 0x37, 0xf6, 0x7d, 0xeb, 0x99, 0x41, 0xef, 0x27, 0xcb,
+  0x8c, 0x60, 0x6b, 0x4c, 0x01, 0x7e, 0x65, 0x50, 0x0b, 0x4f, 0xb8, 0x95,
+  0x9a, 0x9a, 0x6e, 0x34, 0xfd, 0x73, 0x3a, 0x33, 0xf1, 0x91, 0xd5, 0xf3,
+  0x4e, 0x2d, 0x74, 0xe8, 0xef, 0xd3, 0x90, 0x35, 0xf1, 0x06, 0x68, 0x64,
+  0xd4, 0xd0, 0x13, 0xfd, 0x52, 0xd3, 0xc6, 0x6d, 0xc1, 0x3a, 0x8a, 0x31,
+  0xdd, 0x05, 0x26, 0x35, 0x4a, 0x8c, 0x65, 0xb8, 0x52, 0x6b, 0x81, 0xec,
+  0xd2, 0x9c, 0xb5, 0x34, 0x10, 0x97, 0x9c, 0x3e, 0xc6, 0x2f, 0xed, 0x8e,
+  0x42, 0x42, 0x24, 0x2e, 0xe9, 0x73, 0x9a, 0x25, 0xf9, 0x11, 0xf1, 0xf2,
+  0x23, 0x69, 0xcb, 0xe5, 0x94, 0x69, 0xa0, 0xd2, 0xdc, 0xb0, 0xfc, 0x44,
+  0x89, 0xac, 0x17, 0xa8, 0xcc, 0xd5, 0x37, 0x77, 0x16, 0xc5, 0x80, 0xb9,
+  0x0c, 0x8f, 0x57, 0x02, 0x55, 0x99, 0x85, 0x7b, 0x49, 0xf0, 0x2e, 0x5b,
+  0xa0, 0xc2, 0x57, 0x53, 0x5d, 0xa2, 0xe8, 0xa6, 0x37, 0xc3, 0x01, 0xfa,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            28:1c:89:29:66:14:43:80:42:63:55:3a:32:40:ae:b3
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+        Validity
+            Not Before: Jun 30 00:00:00 2015 GMT
+            Not After : Jun 29 23:59:59 2025 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c0:9e:3a:0f:9a:b2:ba:d3:d2:dc:15:ec:d0:30:
+                    54:59:30:4d:40:51:ae:42:71:71:d2:8d:53:73:81:
+                    fe:b8:e0:c4:96:c5:8e:7e:c2:f1:b7:63:4a:cf:a7:
+                    1e:3f:a8:e7:ce:53:a0:fa:2d:f7:d6:e6:ce:70:11:
+                    a6:ee:e1:03:52:d2:68:de:3d:08:0d:87:fd:1c:d7:
+                    0b:97:62:6d:82:30:76:1b:47:3a:c4:f7:ce:ed:1d:
+                    7c:8c:b7:17:8e:53:80:1e:1d:0f:5d:8c:f9:90:e4:
+                    04:1e:02:7e:cb:b0:49:ef:da:52:25:fb:fb:67:ed:
+                    dd:84:74:59:84:0e:f3:de:70:66:8d:e4:52:38:f7:
+                    53:5a:37:13:67:0b:3e:bb:a8:58:b7:2e:ed:ff:b7:
+                    5e:11:73:b9:77:45:52:67:46:ae:c4:dc:24:81:89:
+                    76:0a:ca:a1:6c:66:73:04:82:aa:f5:70:6c:5f:1b:
+                    9a:00:79:46:d6:7f:7a:26:17:30:cf:39:4b:2c:74:
+                    d9:89:44:76:10:d0:ed:f7:8b:bb:89:05:75:4d:0b:
+                    0d:b3:da:e9:bf:f1:6a:7d:2a:11:db:1e:9f:8c:e3:
+                    c4:06:69:e1:1d:88:45:39:d1:6e:55:d8:aa:b7:9b:
+                    6f:ea:f4:de:ac:17:11:92:5d:40:9b:83:7b:9a:e2:
+                    f7:a9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.23.140.1.2.1
+                  CPS: https://www.geotrust.com/resources/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/GeoTrustPCA-G3.crl
+
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                F3:B5:56:0C:C4:09:B0:B4:CF:1F:AA:F9:DD:23:56:F0:77:E8:A1:F9
+            X509v3 Authority Key Identifier: 
+                keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+    Signature Algorithm: sha256WithRSAEncryption
+         c3:7e:d8:83:4b:04:4c:55:29:2a:4f:14:9d:9a:6e:de:90:70:
+         c1:a4:26:4c:88:8e:78:48:ef:bd:9c:b0:a0:f5:f0:66:fc:fe:
+         59:26:e1:79:ef:c8:b7:60:64:a8:8b:47:ea:2f:e0:83:99:da:
+         41:19:d7:c5:be:05:fa:f2:90:11:f0:0a:ff:6c:dc:05:b4:d8:
+         06:6f:a4:6f:8d:be:20:2b:54:db:f9:a2:45:83:9a:1e:a5:21:
+         89:35:1d:7c:20:5c:17:fd:04:2e:45:d8:b2:c6:f8:42:99:fc:
+         54:08:4e:4b:80:5f:39:37:ba:95:4e:a6:37:0a:9e:93:5e:87:
+         5b:e9:90:d6:a8:b6:65:08:8d:61:49:eb:83:20:a9:5d:1b:16:
+         60:62:6b:2f:54:fb:5a:02:0d:7a:27:e2:4b:e1:05:14:c2:e4:
+         e9:f9:70:c0:d9:f7:34:65:0e:a2:91:4b:ac:28:f2:b7:08:0f:
+         98:ca:d7:3e:70:b6:c8:0b:f1:8b:9c:51:f8:c6:10:6c:d2:53:
+         4f:62:8c:11:00:3e:88:df:bf:e6:d2:cc:70:bd:ed:25:9c:fb:
+         dd:24:0a:bd:59:91:4a:42:03:38:12:71:32:88:76:a0:8e:7c:
+         bb:32:ef:88:2a:1b:d4:6a:6f:50:b9:52:67:8b:ab:30:fa:1f:
+         fd:e3:24:9a
+-----BEGIN CERTIFICATE-----
+MIIEpjCCA46gAwIBAgIQKByJKWYUQ4BCY1U6MkCuszANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTE1MDYzMDAwMDAwMFoXDTI1MDYyOTIzNTk1OVowRzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xIDAeBgNVBAMTF1JhcGlk
+U1NMIFNIQTI1NiBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAwJ46D5qyutPS3BXs0DBUWTBNQFGuQnFx0o1Tc4H+uODElsWOfsLxt2NKz6ce
+P6jnzlOg+i331ubOcBGm7uEDUtJo3j0IDYf9HNcLl2JtgjB2G0c6xPfO7R18jLcX
+jlOAHh0PXYz5kOQEHgJ+y7BJ79pSJfv7Z+3dhHRZhA7z3nBmjeRSOPdTWjcTZws+
+u6hYty7t/7deEXO5d0VSZ0auxNwkgYl2CsqhbGZzBIKq9XBsXxuaAHlG1n96Jhcw
+zzlLLHTZiUR2ENDt94u7iQV1TQsNs9rpv/FqfSoR2x6fjOPEBmnhHYhFOdFuVdiq
+t5tv6vTerBcRkl1Am4N7muL3qQIDAQABo4IBOjCCATYwLgYIKwYBBQUHAQEEIjAg
+MB4GCCsGAQUFBzABhhJodHRwOi8vZy5zeW1jZC5jb20wEgYDVR0TAQH/BAgwBgEB
+/wIBADBJBgNVHSAEQjBAMD4GBmeBDAECATA0MDIGCCsGAQUFBwIBFiZodHRwczov
+L3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA2BgNVHR8ELzAtMCugKaAn
+hiVodHRwOi8vZy5zeW1jYi5jb20vR2VvVHJ1c3RQQ0EtRzMuY3JsMB0GA1UdJQQW
+MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FPO1VgzECbC0zx+q+d0jVvB36KH5MB8GA1UdIwQYMBaAFMR5yo6hTgMdHNxr2zFb
+lD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQDDftiDSwRMVSkqTxSdmm7ekHDBpCZM
+iI54SO+9nLCg9fBm/P5ZJuF578i3YGSoi0fqL+CDmdpBGdfFvgX68pAR8Ar/bNwF
+tNgGb6Rvjb4gK1Tb+aJFg5oepSGJNR18IFwX/QQuRdiyxvhCmfxUCE5LgF85N7qV
+TqY3Cp6TXodb6ZDWqLZlCI1hSeuDIKldGxZgYmsvVPtaAg16J+JL4QUUwuTp+XDA
+2fc0ZQ6ikUusKPK3CA+Yytc+cLbIC/GLnFH4xhBs0lNPYowRAD6I37/m0sxwve0l
+nPvdJAq9WZFKQgM4EnEyiHagjny7Mu+IKhvUam9QuVJni6sw+h/94ySa
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert24[] = {
+  0x30, 0x82, 0x04, 0xa6, 0x30, 0x82, 0x03, 0x8e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x28, 0x1c, 0x89, 0x29, 0x66, 0x14, 0x43, 0x80, 0x42,
+  0x63, 0x55, 0x3a, 0x32, 0x40, 0xae, 0xb3, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+  0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+  0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+  0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+  0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x35, 0x30, 0x36, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x36, 0x32, 0x39, 0x32, 0x33,
+  0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64,
+  0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43,
+  0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0xc0, 0x9e, 0x3a, 0x0f, 0x9a, 0xb2, 0xba, 0xd3, 0xd2,
+  0xdc, 0x15, 0xec, 0xd0, 0x30, 0x54, 0x59, 0x30, 0x4d, 0x40, 0x51, 0xae,
+  0x42, 0x71, 0x71, 0xd2, 0x8d, 0x53, 0x73, 0x81, 0xfe, 0xb8, 0xe0, 0xc4,
+  0x96, 0xc5, 0x8e, 0x7e, 0xc2, 0xf1, 0xb7, 0x63, 0x4a, 0xcf, 0xa7, 0x1e,
+  0x3f, 0xa8, 0xe7, 0xce, 0x53, 0xa0, 0xfa, 0x2d, 0xf7, 0xd6, 0xe6, 0xce,
+  0x70, 0x11, 0xa6, 0xee, 0xe1, 0x03, 0x52, 0xd2, 0x68, 0xde, 0x3d, 0x08,
+  0x0d, 0x87, 0xfd, 0x1c, 0xd7, 0x0b, 0x97, 0x62, 0x6d, 0x82, 0x30, 0x76,
+  0x1b, 0x47, 0x3a, 0xc4, 0xf7, 0xce, 0xed, 0x1d, 0x7c, 0x8c, 0xb7, 0x17,
+  0x8e, 0x53, 0x80, 0x1e, 0x1d, 0x0f, 0x5d, 0x8c, 0xf9, 0x90, 0xe4, 0x04,
+  0x1e, 0x02, 0x7e, 0xcb, 0xb0, 0x49, 0xef, 0xda, 0x52, 0x25, 0xfb, 0xfb,
+  0x67, 0xed, 0xdd, 0x84, 0x74, 0x59, 0x84, 0x0e, 0xf3, 0xde, 0x70, 0x66,
+  0x8d, 0xe4, 0x52, 0x38, 0xf7, 0x53, 0x5a, 0x37, 0x13, 0x67, 0x0b, 0x3e,
+  0xbb, 0xa8, 0x58, 0xb7, 0x2e, 0xed, 0xff, 0xb7, 0x5e, 0x11, 0x73, 0xb9,
+  0x77, 0x45, 0x52, 0x67, 0x46, 0xae, 0xc4, 0xdc, 0x24, 0x81, 0x89, 0x76,
+  0x0a, 0xca, 0xa1, 0x6c, 0x66, 0x73, 0x04, 0x82, 0xaa, 0xf5, 0x70, 0x6c,
+  0x5f, 0x1b, 0x9a, 0x00, 0x79, 0x46, 0xd6, 0x7f, 0x7a, 0x26, 0x17, 0x30,
+  0xcf, 0x39, 0x4b, 0x2c, 0x74, 0xd9, 0x89, 0x44, 0x76, 0x10, 0xd0, 0xed,
+  0xf7, 0x8b, 0xbb, 0x89, 0x05, 0x75, 0x4d, 0x0b, 0x0d, 0xb3, 0xda, 0xe9,
+  0xbf, 0xf1, 0x6a, 0x7d, 0x2a, 0x11, 0xdb, 0x1e, 0x9f, 0x8c, 0xe3, 0xc4,
+  0x06, 0x69, 0xe1, 0x1d, 0x88, 0x45, 0x39, 0xd1, 0x6e, 0x55, 0xd8, 0xaa,
+  0xb7, 0x9b, 0x6f, 0xea, 0xf4, 0xde, 0xac, 0x17, 0x11, 0x92, 0x5d, 0x40,
+  0x9b, 0x83, 0x7b, 0x9a, 0xe2, 0xf7, 0xa9, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x01, 0x3a, 0x30, 0x82, 0x01, 0x36, 0x30, 0x2e, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20,
+  0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+  0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x49, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x42, 0x30, 0x40, 0x30, 0x3e, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02,
+  0x01, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
+  0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x36, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27,
+  0x86, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+  0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f,
+  0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16,
+  0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x0e,
+  0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+  0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0xf3, 0xb5, 0x56, 0x0c, 0xc4, 0x09, 0xb0, 0xb4, 0xcf, 0x1f, 0xaa,
+  0xf9, 0xdd, 0x23, 0x56, 0xf0, 0x77, 0xe8, 0xa1, 0xf9, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc4, 0x79,
+  0xca, 0x8e, 0xa1, 0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b, 0xdb, 0x31, 0x5b,
+  0x94, 0x3e, 0x3f, 0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x01, 0x00, 0xc3, 0x7e, 0xd8, 0x83, 0x4b, 0x04, 0x4c, 0x55, 0x29, 0x2a,
+  0x4f, 0x14, 0x9d, 0x9a, 0x6e, 0xde, 0x90, 0x70, 0xc1, 0xa4, 0x26, 0x4c,
+  0x88, 0x8e, 0x78, 0x48, 0xef, 0xbd, 0x9c, 0xb0, 0xa0, 0xf5, 0xf0, 0x66,
+  0xfc, 0xfe, 0x59, 0x26, 0xe1, 0x79, 0xef, 0xc8, 0xb7, 0x60, 0x64, 0xa8,
+  0x8b, 0x47, 0xea, 0x2f, 0xe0, 0x83, 0x99, 0xda, 0x41, 0x19, 0xd7, 0xc5,
+  0xbe, 0x05, 0xfa, 0xf2, 0x90, 0x11, 0xf0, 0x0a, 0xff, 0x6c, 0xdc, 0x05,
+  0xb4, 0xd8, 0x06, 0x6f, 0xa4, 0x6f, 0x8d, 0xbe, 0x20, 0x2b, 0x54, 0xdb,
+  0xf9, 0xa2, 0x45, 0x83, 0x9a, 0x1e, 0xa5, 0x21, 0x89, 0x35, 0x1d, 0x7c,
+  0x20, 0x5c, 0x17, 0xfd, 0x04, 0x2e, 0x45, 0xd8, 0xb2, 0xc6, 0xf8, 0x42,
+  0x99, 0xfc, 0x54, 0x08, 0x4e, 0x4b, 0x80, 0x5f, 0x39, 0x37, 0xba, 0x95,
+  0x4e, 0xa6, 0x37, 0x0a, 0x9e, 0x93, 0x5e, 0x87, 0x5b, 0xe9, 0x90, 0xd6,
+  0xa8, 0xb6, 0x65, 0x08, 0x8d, 0x61, 0x49, 0xeb, 0x83, 0x20, 0xa9, 0x5d,
+  0x1b, 0x16, 0x60, 0x62, 0x6b, 0x2f, 0x54, 0xfb, 0x5a, 0x02, 0x0d, 0x7a,
+  0x27, 0xe2, 0x4b, 0xe1, 0x05, 0x14, 0xc2, 0xe4, 0xe9, 0xf9, 0x70, 0xc0,
+  0xd9, 0xf7, 0x34, 0x65, 0x0e, 0xa2, 0x91, 0x4b, 0xac, 0x28, 0xf2, 0xb7,
+  0x08, 0x0f, 0x98, 0xca, 0xd7, 0x3e, 0x70, 0xb6, 0xc8, 0x0b, 0xf1, 0x8b,
+  0x9c, 0x51, 0xf8, 0xc6, 0x10, 0x6c, 0xd2, 0x53, 0x4f, 0x62, 0x8c, 0x11,
+  0x00, 0x3e, 0x88, 0xdf, 0xbf, 0xe6, 0xd2, 0xcc, 0x70, 0xbd, 0xed, 0x25,
+  0x9c, 0xfb, 0xdd, 0x24, 0x0a, 0xbd, 0x59, 0x91, 0x4a, 0x42, 0x03, 0x38,
+  0x12, 0x71, 0x32, 0x88, 0x76, 0xa0, 0x8e, 0x7c, 0xbb, 0x32, 0xef, 0x88,
+  0x2a, 0x1b, 0xd4, 0x6a, 0x6f, 0x50, 0xb9, 0x52, 0x67, 0x8b, 0xab, 0x30,
+  0xfa, 0x1f, 0xfd, 0xe3, 0x24, 0x9a,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            5d:72:fb:33:76:20:f6:4c:72:80:db:e9:12:81:ff:6a
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=thawte, Inc., CN=thawte EV SSL CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c4:dd:da:94:1e:32:b2:2e:a0:83:c0:a6:7d:5f:
+                    65:2d:fd:27:b8:73:0e:f8:0b:a9:d4:56:26:69:98:
+                    67:35:39:64:58:ce:82:6f:98:94:d1:8f:e0:90:d6:
+                    ed:55:4b:98:4b:d7:10:59:34:02:1b:e7:51:31:51:
+                    c4:38:c2:bc:db:03:5c:ca:e1:7c:dc:4f:59:97:ea:
+                    07:7f:0f:85:3e:92:ea:aa:a7:d9:be:01:41:e4:62:
+                    56:47:36:bd:57:91:e6:21:d3:f8:41:0b:d8:ba:e8:
+                    ed:81:ad:70:c0:8b:6e:f3:89:6e:27:9e:a6:a6:73:
+                    59:bb:71:00:d4:4f:4b:48:e9:d5:c9:27:36:9c:7c:
+                    1c:02:aa:ac:bd:3b:d1:53:83:6a:1f:e6:08:47:33:
+                    a7:b1:9f:02:be:9b:47:ed:33:04:dc:1c:80:27:d1:
+                    4a:33:a0:8c:eb:01:47:a1:32:90:64:7b:c4:e0:84:
+                    c9:32:e9:dd:34:1f:8a:68:67:f3:ad:10:63:eb:ee:
+                    8a:9a:b1:2a:1b:26:74:a1:2a:b0:8f:fe:52:98:46:
+                    97:cf:a3:56:1c:6f:6e:99:97:8d:26:0e:a9:ec:c2:
+                    53:70:fc:7a:a5:19:49:bd:b5:17:82:55:de:97:e0:
+                    5d:62:84:81:f0:70:a8:34:53:4f:14:fd:3d:5d:3d:
+                    6f:b9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://t2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://t1.symcb.com/ThawtePCA.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-536
+            X509v3 Subject Key Identifier: 
+                F0:70:51:DA:D3:2A:91:4F:52:77:D7:86:77:74:0F:CE:71:1A:6C:22
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha256WithRSAEncryption
+         a1:2e:94:3e:9b:16:f4:58:1a:6f:c1:fa:c1:7e:43:93:b2:c3:
+         f7:89:eb:13:62:5d:dd:cc:61:13:2b:1d:4e:88:79:11:62:14:
+         37:30:46:ff:89:62:10:85:2a:87:1e:f8:e2:af:fe:93:02:93:
+         ca:f2:e9:46:03:6b:a1:1a:ac:d5:f0:80:1b:98:6f:b8:3a:50:
+         f8:54:71:06:03:e7:84:cc:8e:61:d2:5f:4d:0c:97:02:65:b5:
+         8c:26:bc:05:98:f4:dc:c6:af:e4:57:7f:e3:dc:a1:d7:27:47:
+         2a:e0:2c:3f:09:74:dc:5a:e5:b5:7c:fa:82:9a:15:fa:74:2b:
+         84:2e:6b:ac:ef:35:a6:30:fa:47:4a:aa:36:44:f6:5a:91:07:
+         d3:e4:4e:97:3f:a6:53:d8:29:33:32:6f:8b:3d:b5:a5:0d:e5:
+         e4:8a:e8:f5:c0:fa:af:d8:37:28:27:c3:ed:34:31:d9:7c:a6:
+         af:4d:12:4f:d0:2b:92:9c:69:95:f2:28:a6:fe:a8:c6:e0:2c:
+         4d:36:eb:11:34:d6:e1:81:99:9d:41:f2:e7:c5:57:05:0e:19:
+         ca:af:42:39:1f:a7:27:5e:e0:0a:17:b8:ae:47:ab:92:f1:8a:
+         04:df:30:e0:bb:4f:8a:f9:1b:88:4f:03:b4:25:7a:78:de:2e:
+         7d:29:d1:31
+-----BEGIN CERTIFICATE-----
+MIIErzCCA5egAwIBAgIQXXL7M3Yg9kxygNvpEoH/ajANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR4wHAYDVQQDExV0aGF3dGUgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDE3dqUHjKyLqCDwKZ9X2Ut/Se4cw74C6nUViZpmGc1
+OWRYzoJvmJTRj+CQ1u1VS5hL1xBZNAIb51ExUcQ4wrzbA1zK4XzcT1mX6gd/D4U+
+kuqqp9m+AUHkYlZHNr1XkeYh0/hBC9i66O2BrXDAi27ziW4nnqamc1m7cQDUT0tI
+6dXJJzacfBwCqqy9O9FTg2of5ghHM6exnwK+m0ftMwTcHIAn0UozoIzrAUehMpBk
+e8TghMky6d00H4poZ/OtEGPr7oqasSobJnShKrCP/lKYRpfPo1Ycb26Zl40mDqns
+wlNw/HqlGUm9tReCVd6X4F1ihIHwcKg0U08U/T1dPW+5AgMBAAGjggE1MIIBMTAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly90Mi5zeW1jYi5jb20wOwYDVR0gBDQwMjAw
+BgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3Bz
+MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly90MS5zeW1jYi5jb20vVGhhd3RlUENB
+LmNybDApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01MzYw
+HQYDVR0OBBYEFPBwUdrTKpFPUnfXhnd0D85xGmwiMB8GA1UdIwQYMBaAFHtbRc+v
+zst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQChLpQ+mxb0WBpvwfrB
+fkOTssP3iesTYl3dzGETKx1OiHkRYhQ3MEb/iWIQhSqHHvjir/6TApPK8ulGA2uh
+GqzV8IAbmG+4OlD4VHEGA+eEzI5h0l9NDJcCZbWMJrwFmPTcxq/kV3/j3KHXJ0cq
+4Cw/CXTcWuW1fPqCmhX6dCuELmus7zWmMPpHSqo2RPZakQfT5E6XP6ZT2CkzMm+L
+PbWlDeXkiuj1wPqv2DcoJ8PtNDHZfKavTRJP0CuSnGmV8iim/qjG4CxNNusRNNbh
+gZmdQfLnxVcFDhnKr0I5H6cnXuAKF7iuR6uS8YoE3zDgu0+K+RuITwO0JXp43i59
+KdEx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert25[] = {
+  0x30, 0x82, 0x04, 0xaf, 0x30, 0x82, 0x03, 0x97, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x5d, 0x72, 0xfb, 0x33, 0x76, 0x20, 0xf6, 0x4c, 0x72,
+  0x80, 0xdb, 0xe9, 0x12, 0x81, 0xff, 0x6a, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+  0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x44,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74,
+  0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+  0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xc4, 0xdd, 0xda, 0x94, 0x1e, 0x32, 0xb2,
+  0x2e, 0xa0, 0x83, 0xc0, 0xa6, 0x7d, 0x5f, 0x65, 0x2d, 0xfd, 0x27, 0xb8,
+  0x73, 0x0e, 0xf8, 0x0b, 0xa9, 0xd4, 0x56, 0x26, 0x69, 0x98, 0x67, 0x35,
+  0x39, 0x64, 0x58, 0xce, 0x82, 0x6f, 0x98, 0x94, 0xd1, 0x8f, 0xe0, 0x90,
+  0xd6, 0xed, 0x55, 0x4b, 0x98, 0x4b, 0xd7, 0x10, 0x59, 0x34, 0x02, 0x1b,
+  0xe7, 0x51, 0x31, 0x51, 0xc4, 0x38, 0xc2, 0xbc, 0xdb, 0x03, 0x5c, 0xca,
+  0xe1, 0x7c, 0xdc, 0x4f, 0x59, 0x97, 0xea, 0x07, 0x7f, 0x0f, 0x85, 0x3e,
+  0x92, 0xea, 0xaa, 0xa7, 0xd9, 0xbe, 0x01, 0x41, 0xe4, 0x62, 0x56, 0x47,
+  0x36, 0xbd, 0x57, 0x91, 0xe6, 0x21, 0xd3, 0xf8, 0x41, 0x0b, 0xd8, 0xba,
+  0xe8, 0xed, 0x81, 0xad, 0x70, 0xc0, 0x8b, 0x6e, 0xf3, 0x89, 0x6e, 0x27,
+  0x9e, 0xa6, 0xa6, 0x73, 0x59, 0xbb, 0x71, 0x00, 0xd4, 0x4f, 0x4b, 0x48,
+  0xe9, 0xd5, 0xc9, 0x27, 0x36, 0x9c, 0x7c, 0x1c, 0x02, 0xaa, 0xac, 0xbd,
+  0x3b, 0xd1, 0x53, 0x83, 0x6a, 0x1f, 0xe6, 0x08, 0x47, 0x33, 0xa7, 0xb1,
+  0x9f, 0x02, 0xbe, 0x9b, 0x47, 0xed, 0x33, 0x04, 0xdc, 0x1c, 0x80, 0x27,
+  0xd1, 0x4a, 0x33, 0xa0, 0x8c, 0xeb, 0x01, 0x47, 0xa1, 0x32, 0x90, 0x64,
+  0x7b, 0xc4, 0xe0, 0x84, 0xc9, 0x32, 0xe9, 0xdd, 0x34, 0x1f, 0x8a, 0x68,
+  0x67, 0xf3, 0xad, 0x10, 0x63, 0xeb, 0xee, 0x8a, 0x9a, 0xb1, 0x2a, 0x1b,
+  0x26, 0x74, 0xa1, 0x2a, 0xb0, 0x8f, 0xfe, 0x52, 0x98, 0x46, 0x97, 0xcf,
+  0xa3, 0x56, 0x1c, 0x6f, 0x6e, 0x99, 0x97, 0x8d, 0x26, 0x0e, 0xa9, 0xec,
+  0xc2, 0x53, 0x70, 0xfc, 0x7a, 0xa5, 0x19, 0x49, 0xbd, 0xb5, 0x17, 0x82,
+  0x55, 0xde, 0x97, 0xe0, 0x5d, 0x62, 0x84, 0x81, 0xf0, 0x70, 0xa8, 0x34,
+  0x53, 0x4f, 0x14, 0xfd, 0x3d, 0x5d, 0x3d, 0x6f, 0xb9, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x35, 0x30, 0x82, 0x01, 0x31, 0x30, 0x12,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+  0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+  0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74,
+  0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30,
+  0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74,
+  0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68,
+  0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73,
+  0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30,
+  0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x74, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41,
+  0x2e, 0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04,
+  0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74,
+  0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35, 0x33, 0x36, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf0, 0x70,
+  0x51, 0xda, 0xd3, 0x2a, 0x91, 0x4f, 0x52, 0x77, 0xd7, 0x86, 0x77, 0x74,
+  0x0f, 0xce, 0x71, 0x1a, 0x6c, 0x22, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf,
+  0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb,
+  0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa1,
+  0x2e, 0x94, 0x3e, 0x9b, 0x16, 0xf4, 0x58, 0x1a, 0x6f, 0xc1, 0xfa, 0xc1,
+  0x7e, 0x43, 0x93, 0xb2, 0xc3, 0xf7, 0x89, 0xeb, 0x13, 0x62, 0x5d, 0xdd,
+  0xcc, 0x61, 0x13, 0x2b, 0x1d, 0x4e, 0x88, 0x79, 0x11, 0x62, 0x14, 0x37,
+  0x30, 0x46, 0xff, 0x89, 0x62, 0x10, 0x85, 0x2a, 0x87, 0x1e, 0xf8, 0xe2,
+  0xaf, 0xfe, 0x93, 0x02, 0x93, 0xca, 0xf2, 0xe9, 0x46, 0x03, 0x6b, 0xa1,
+  0x1a, 0xac, 0xd5, 0xf0, 0x80, 0x1b, 0x98, 0x6f, 0xb8, 0x3a, 0x50, 0xf8,
+  0x54, 0x71, 0x06, 0x03, 0xe7, 0x84, 0xcc, 0x8e, 0x61, 0xd2, 0x5f, 0x4d,
+  0x0c, 0x97, 0x02, 0x65, 0xb5, 0x8c, 0x26, 0xbc, 0x05, 0x98, 0xf4, 0xdc,
+  0xc6, 0xaf, 0xe4, 0x57, 0x7f, 0xe3, 0xdc, 0xa1, 0xd7, 0x27, 0x47, 0x2a,
+  0xe0, 0x2c, 0x3f, 0x09, 0x74, 0xdc, 0x5a, 0xe5, 0xb5, 0x7c, 0xfa, 0x82,
+  0x9a, 0x15, 0xfa, 0x74, 0x2b, 0x84, 0x2e, 0x6b, 0xac, 0xef, 0x35, 0xa6,
+  0x30, 0xfa, 0x47, 0x4a, 0xaa, 0x36, 0x44, 0xf6, 0x5a, 0x91, 0x07, 0xd3,
+  0xe4, 0x4e, 0x97, 0x3f, 0xa6, 0x53, 0xd8, 0x29, 0x33, 0x32, 0x6f, 0x8b,
+  0x3d, 0xb5, 0xa5, 0x0d, 0xe5, 0xe4, 0x8a, 0xe8, 0xf5, 0xc0, 0xfa, 0xaf,
+  0xd8, 0x37, 0x28, 0x27, 0xc3, 0xed, 0x34, 0x31, 0xd9, 0x7c, 0xa6, 0xaf,
+  0x4d, 0x12, 0x4f, 0xd0, 0x2b, 0x92, 0x9c, 0x69, 0x95, 0xf2, 0x28, 0xa6,
+  0xfe, 0xa8, 0xc6, 0xe0, 0x2c, 0x4d, 0x36, 0xeb, 0x11, 0x34, 0xd6, 0xe1,
+  0x81, 0x99, 0x9d, 0x41, 0xf2, 0xe7, 0xc5, 0x57, 0x05, 0x0e, 0x19, 0xca,
+  0xaf, 0x42, 0x39, 0x1f, 0xa7, 0x27, 0x5e, 0xe0, 0x0a, 0x17, 0xb8, 0xae,
+  0x47, 0xab, 0x92, 0xf1, 0x8a, 0x04, 0xdf, 0x30, 0xe0, 0xbb, 0x4f, 0x8a,
+  0xf9, 0x1b, 0x88, 0x4f, 0x03, 0xb4, 0x25, 0x7a, 0x78, 0xde, 0x2e, 0x7d,
+  0x29, 0xd1, 0x31,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:e1:e7:a4:dc:5c:f2:f3:6d:c0:2b:42:b8:5d:15:9f
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+        Validity
+            Not Before: Oct 22 12:00:00 2013 GMT
+            Not After : Oct 22 12:00:00 2028 GMT
+        Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b6:e0:2f:c2:24:06:c8:6d:04:5f:d7:ef:0a:64:
+                    06:b2:7d:22:26:65:16:ae:42:40:9b:ce:dc:9f:9f:
+                    76:07:3e:c3:30:55:87:19:b9:4f:94:0e:5a:94:1f:
+                    55:56:b4:c2:02:2a:af:d0:98:ee:0b:40:d7:c4:d0:
+                    3b:72:c8:14:9e:ef:90:b1:11:a9:ae:d2:c8:b8:43:
+                    3a:d9:0b:0b:d5:d5:95:f5:40:af:c8:1d:ed:4d:9c:
+                    5f:57:b7:86:50:68:99:f5:8a:da:d2:c7:05:1f:a8:
+                    97:c9:dc:a4:b1:82:84:2d:c6:ad:a5:9c:c7:19:82:
+                    a6:85:0f:5e:44:58:2a:37:8f:fd:35:f1:0b:08:27:
+                    32:5a:f5:bb:8b:9e:a4:bd:51:d0:27:e2:dd:3b:42:
+                    33:a3:05:28:c4:bb:28:cc:9a:ac:2b:23:0d:78:c6:
+                    7b:e6:5e:71:b7:4a:3e:08:fb:81:b7:16:16:a1:9d:
+                    23:12:4d:e5:d7:92:08:ac:75:a4:9c:ba:cd:17:b2:
+                    1e:44:35:65:7f:53:25:39:d1:1c:0a:9a:63:1b:19:
+                    92:74:68:0a:37:c2:c2:52:48:cb:39:5a:a2:b6:e1:
+                    5d:c1:dd:a0:20:b8:21:a2:93:26:6f:14:4a:21:41:
+                    c7:ed:6d:9b:f2:48:2f:f3:03:f5:a2:68:92:53:2f:
+                    5e:e3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.digicert.com/CPS
+
+            X509v3 Subject Key Identifier: 
+                51:68:FF:90:AF:02:07:75:3C:CC:D9:65:64:62:A2:12:B8:59:72:3B
+            X509v3 Authority Key Identifier: 
+                keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+    Signature Algorithm: sha256WithRSAEncryption
+         18:8a:95:89:03:e6:6d:df:5c:fc:1d:68:ea:4a:8f:83:d6:51:
+         2f:8d:6b:44:16:9e:ac:63:f5:d2:6e:6c:84:99:8b:aa:81:71:
+         84:5b:ed:34:4e:b0:b7:79:92:29:cc:2d:80:6a:f0:8e:20:e1:
+         79:a4:fe:03:47:13:ea:f5:86:ca:59:71:7d:f4:04:96:6b:d3:
+         59:58:3d:fe:d3:31:25:5c:18:38:84:a3:e6:9f:82:fd:8c:5b:
+         98:31:4e:cd:78:9e:1a:fd:85:cb:49:aa:f2:27:8b:99:72:fc:
+         3e:aa:d5:41:0b:da:d5:36:a1:bf:1c:6e:47:49:7f:5e:d9:48:
+         7c:03:d9:fd:8b:49:a0:98:26:42:40:eb:d6:92:11:a4:64:0a:
+         57:54:c4:f5:1d:d6:02:5e:6b:ac:ee:c4:80:9a:12:72:fa:56:
+         93:d7:ff:bf:30:85:06:30:bf:0b:7f:4e:ff:57:05:9d:24:ed:
+         85:c3:2b:fb:a6:75:a8:ac:2d:16:ef:7d:79:27:b2:eb:c2:9d:
+         0b:07:ea:aa:85:d3:01:a3:20:28:41:59:43:28:d2:81:e3:aa:
+         f6:ec:7b:3b:77:b6:40:62:80:05:41:45:01:ef:17:06:3e:de:
+         c0:33:9b:67:d3:61:2e:72:87:e4:69:fc:12:00:57:40:1e:70:
+         f5:1e:c9:b4
+-----BEGIN CERTIFICATE-----
+MIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy
+YW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2
+4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC
+Kq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1
+itrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn
+4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X
+sh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft
+bZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
+dC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t
+L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG
+BFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ
+UzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D
+aQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd
+aOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH
+E+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly
+/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu
+xICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF
+0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae
+cPUeybQ=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert26[] = {
+  0x30, 0x82, 0x04, 0xb1, 0x30, 0x82, 0x03, 0x99, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x04, 0xe1, 0xe7, 0xa4, 0xdc, 0x5c, 0xf2, 0xf3, 0x6d,
+  0xc0, 0x2b, 0x42, 0xb8, 0x5d, 0x15, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+  0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+  0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+  0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+  0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x70, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+  0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+  0x32, 0x20, 0x48, 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72,
+  0x61, 0x6e, 0x63, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+  0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb6,
+  0xe0, 0x2f, 0xc2, 0x24, 0x06, 0xc8, 0x6d, 0x04, 0x5f, 0xd7, 0xef, 0x0a,
+  0x64, 0x06, 0xb2, 0x7d, 0x22, 0x26, 0x65, 0x16, 0xae, 0x42, 0x40, 0x9b,
+  0xce, 0xdc, 0x9f, 0x9f, 0x76, 0x07, 0x3e, 0xc3, 0x30, 0x55, 0x87, 0x19,
+  0xb9, 0x4f, 0x94, 0x0e, 0x5a, 0x94, 0x1f, 0x55, 0x56, 0xb4, 0xc2, 0x02,
+  0x2a, 0xaf, 0xd0, 0x98, 0xee, 0x0b, 0x40, 0xd7, 0xc4, 0xd0, 0x3b, 0x72,
+  0xc8, 0x14, 0x9e, 0xef, 0x90, 0xb1, 0x11, 0xa9, 0xae, 0xd2, 0xc8, 0xb8,
+  0x43, 0x3a, 0xd9, 0x0b, 0x0b, 0xd5, 0xd5, 0x95, 0xf5, 0x40, 0xaf, 0xc8,
+  0x1d, 0xed, 0x4d, 0x9c, 0x5f, 0x57, 0xb7, 0x86, 0x50, 0x68, 0x99, 0xf5,
+  0x8a, 0xda, 0xd2, 0xc7, 0x05, 0x1f, 0xa8, 0x97, 0xc9, 0xdc, 0xa4, 0xb1,
+  0x82, 0x84, 0x2d, 0xc6, 0xad, 0xa5, 0x9c, 0xc7, 0x19, 0x82, 0xa6, 0x85,
+  0x0f, 0x5e, 0x44, 0x58, 0x2a, 0x37, 0x8f, 0xfd, 0x35, 0xf1, 0x0b, 0x08,
+  0x27, 0x32, 0x5a, 0xf5, 0xbb, 0x8b, 0x9e, 0xa4, 0xbd, 0x51, 0xd0, 0x27,
+  0xe2, 0xdd, 0x3b, 0x42, 0x33, 0xa3, 0x05, 0x28, 0xc4, 0xbb, 0x28, 0xcc,
+  0x9a, 0xac, 0x2b, 0x23, 0x0d, 0x78, 0xc6, 0x7b, 0xe6, 0x5e, 0x71, 0xb7,
+  0x4a, 0x3e, 0x08, 0xfb, 0x81, 0xb7, 0x16, 0x16, 0xa1, 0x9d, 0x23, 0x12,
+  0x4d, 0xe5, 0xd7, 0x92, 0x08, 0xac, 0x75, 0xa4, 0x9c, 0xba, 0xcd, 0x17,
+  0xb2, 0x1e, 0x44, 0x35, 0x65, 0x7f, 0x53, 0x25, 0x39, 0xd1, 0x1c, 0x0a,
+  0x9a, 0x63, 0x1b, 0x19, 0x92, 0x74, 0x68, 0x0a, 0x37, 0xc2, 0xc2, 0x52,
+  0x48, 0xcb, 0x39, 0x5a, 0xa2, 0xb6, 0xe1, 0x5d, 0xc1, 0xdd, 0xa0, 0x20,
+  0xb8, 0x21, 0xa2, 0x93, 0x26, 0x6f, 0x14, 0x4a, 0x21, 0x41, 0xc7, 0xed,
+  0x6d, 0x9b, 0xf2, 0x48, 0x2f, 0xf3, 0x03, 0xf5, 0xa2, 0x68, 0x92, 0x53,
+  0x2f, 0x5e, 0xe3, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x49,
+  0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+  0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+  0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+  0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+  0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e,
+  0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67,
+  0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56,
+  0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67,
+  0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50,
+  0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x51, 0x68, 0xff, 0x90, 0xaf, 0x02, 0x07, 0x75, 0x3c, 0xcc, 0xd9, 0x65,
+  0x64, 0x62, 0xa2, 0x12, 0xb8, 0x59, 0x72, 0x3b, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e, 0xc3,
+  0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08, 0x02,
+  0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0x18, 0x8a, 0x95, 0x89, 0x03, 0xe6, 0x6d, 0xdf, 0x5c, 0xfc, 0x1d,
+  0x68, 0xea, 0x4a, 0x8f, 0x83, 0xd6, 0x51, 0x2f, 0x8d, 0x6b, 0x44, 0x16,
+  0x9e, 0xac, 0x63, 0xf5, 0xd2, 0x6e, 0x6c, 0x84, 0x99, 0x8b, 0xaa, 0x81,
+  0x71, 0x84, 0x5b, 0xed, 0x34, 0x4e, 0xb0, 0xb7, 0x79, 0x92, 0x29, 0xcc,
+  0x2d, 0x80, 0x6a, 0xf0, 0x8e, 0x20, 0xe1, 0x79, 0xa4, 0xfe, 0x03, 0x47,
+  0x13, 0xea, 0xf5, 0x86, 0xca, 0x59, 0x71, 0x7d, 0xf4, 0x04, 0x96, 0x6b,
+  0xd3, 0x59, 0x58, 0x3d, 0xfe, 0xd3, 0x31, 0x25, 0x5c, 0x18, 0x38, 0x84,
+  0xa3, 0xe6, 0x9f, 0x82, 0xfd, 0x8c, 0x5b, 0x98, 0x31, 0x4e, 0xcd, 0x78,
+  0x9e, 0x1a, 0xfd, 0x85, 0xcb, 0x49, 0xaa, 0xf2, 0x27, 0x8b, 0x99, 0x72,
+  0xfc, 0x3e, 0xaa, 0xd5, 0x41, 0x0b, 0xda, 0xd5, 0x36, 0xa1, 0xbf, 0x1c,
+  0x6e, 0x47, 0x49, 0x7f, 0x5e, 0xd9, 0x48, 0x7c, 0x03, 0xd9, 0xfd, 0x8b,
+  0x49, 0xa0, 0x98, 0x26, 0x42, 0x40, 0xeb, 0xd6, 0x92, 0x11, 0xa4, 0x64,
+  0x0a, 0x57, 0x54, 0xc4, 0xf5, 0x1d, 0xd6, 0x02, 0x5e, 0x6b, 0xac, 0xee,
+  0xc4, 0x80, 0x9a, 0x12, 0x72, 0xfa, 0x56, 0x93, 0xd7, 0xff, 0xbf, 0x30,
+  0x85, 0x06, 0x30, 0xbf, 0x0b, 0x7f, 0x4e, 0xff, 0x57, 0x05, 0x9d, 0x24,
+  0xed, 0x85, 0xc3, 0x2b, 0xfb, 0xa6, 0x75, 0xa8, 0xac, 0x2d, 0x16, 0xef,
+  0x7d, 0x79, 0x27, 0xb2, 0xeb, 0xc2, 0x9d, 0x0b, 0x07, 0xea, 0xaa, 0x85,
+  0xd3, 0x01, 0xa3, 0x20, 0x28, 0x41, 0x59, 0x43, 0x28, 0xd2, 0x81, 0xe3,
+  0xaa, 0xf6, 0xec, 0x7b, 0x3b, 0x77, 0xb6, 0x40, 0x62, 0x80, 0x05, 0x41,
+  0x45, 0x01, 0xef, 0x17, 0x06, 0x3e, 0xde, 0xc0, 0x33, 0x9b, 0x67, 0xd3,
+  0x61, 0x2e, 0x72, 0x87, 0xe4, 0x69, 0xfc, 0x12, 0x00, 0x57, 0x40, 0x1e,
+  0x70, 0xf5, 0x1e, 0xc9, 0xb4,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            16:87:d6:88:6d:e2:30:06:85:23:3d:bf:11:bf:65:97
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=thawte, Inc., CN=thawte SSL CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b2:fc:06:fb:04:93:d2:ea:59:20:3b:44:85:97:
+                    52:39:e7:10:f0:7a:e0:b0:94:40:da:46:f8:0c:28:
+                    bb:b9:ce:60:38:3f:d2:d8:11:42:1b:91:ad:49:ee:
+                    8f:c7:de:6c:de:37:6f:fd:8b:20:3c:6d:e7:74:d3:
+                    dc:d5:24:88:41:80:89:ee:36:be:c4:d5:be:8d:53:
+                    13:aa:e4:a5:b8:93:0a:be:ec:da:cd:3c:d4:32:56:
+                    ef:d0:4e:a0:b8:97:bb:39:50:1e:6e:65:c3:fd:b2:
+                    ce:e0:59:a9:48:09:c6:fe:be:ae:fc:3e:3b:81:20:
+                    97:8b:8f:46:df:60:64:07:75:bb:1b:86:38:9f:47:
+                    7b:34:ce:a1:d1:97:ad:76:d8:9f:b7:26:db:79:80:
+                    36:48:f2:c5:37:f8:d9:32:ae:7c:a4:53:81:c7:99:
+                    a1:54:38:2f:4f:75:a0:bb:5a:a5:bb:cd:ac:02:5b:
+                    19:02:d5:13:18:a7:ce:ac:74:55:12:05:8b:9b:a2:
+                    95:46:64:72:38:cd:5a:1b:3a:16:a7:be:71:99:8c:
+                    54:03:b8:96:6c:01:d3:3e:06:98:3f:21:81:3b:02:
+                    7e:00:47:53:01:1e:0e:46:43:fb:4b:2d:dc:0b:1a:
+                    e8:2f:98:f8:7e:d1:99:ab:13:6c:a4:17:de:6f:f6:
+                    15:f5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://t1.symcb.com/ThawtePCA.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://t2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-537
+            X509v3 Subject Key Identifier: 
+                C2:4F:48:57:FC:D1:4F:9A:C0:5D:38:7D:0E:05:DB:D9:2E:B5:52:60
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha256WithRSAEncryption
+         8d:06:de:43:c9:76:02:ca:d9:23:97:5e:f3:63:d7:7d:44:c2:
+         0f:6b:0a:f5:07:e5:8b:b8:fa:e0:a3:fa:6b:80:92:b5:03:2c:
+         c5:37:e0:c2:e5:95:b5:92:70:18:28:42:94:ee:4b:77:6a:01:
+         0f:8b:23:ec:56:4d:f4:00:69:e5:84:c8:e2:ea:de:5b:3e:f6:
+         3c:07:3a:94:ca:6c:27:b1:cc:83:1a:60:71:27:d2:bf:02:f5:
+         1e:44:d3:48:d5:a6:d3:76:21:00:9c:fa:98:64:eb:17:36:3f:
+         eb:1b:3c:3e:a6:b1:d9:58:06:0e:72:d9:68:be:f1:a7:20:d7:
+         52:e4:a4:77:1f:71:70:9d:55:35:85:37:e1:1d:4d:94:c2:70:
+         7f:95:40:6e:4b:7d:b2:b4:29:2a:03:79:c8:b9:4c:67:61:04:
+         a0:8b:27:ff:59:00:eb:55:7f:c6:b7:33:35:2d:5e:4e:ac:b8:
+         ea:12:c5:e8:f7:b9:ab:be:74:92:2c:b7:d9:4d:ca:84:2f:1c:
+         c2:f0:72:7c:b2:31:6e:cf:80:e5:88:07:36:51:7b:ba:61:af:
+         6d:8d:23:5b:34:a3:95:bc:a2:31:7f:f2:f5:e7:b7:e8:ef:c4:
+         b5:27:32:e9:f7:9e:69:c7:2b:e8:be:bb:0c:aa:e7:ea:60:12:
+         ea:26:8a:78
+-----BEGIN CERTIFICATE-----
+MIIEsjCCA5qgAwIBAgIQFofWiG3iMAaFIz2/Eb9llzANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBBMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MRswGQYDVQQDExJ0aGF3dGUgU1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCy/Ab7BJPS6lkgO0SFl1I55xDweuCwlEDaRvgMKLu5zmA4
+P9LYEUIbka1J7o/H3mzeN2/9iyA8bed009zVJIhBgInuNr7E1b6NUxOq5KW4kwq+
+7NrNPNQyVu/QTqC4l7s5UB5uZcP9ss7gWalICcb+vq78PjuBIJeLj0bfYGQHdbsb
+hjifR3s0zqHRl6122J+3Jtt5gDZI8sU3+NkyrnykU4HHmaFUOC9PdaC7WqW7zawC
+WxkC1RMYp86sdFUSBYubopVGZHI4zVobOhanvnGZjFQDuJZsAdM+Bpg/IYE7An4A
+R1MBHg5GQ/tLLdwLGugvmPh+0ZmrE2ykF95v9hX1AgMBAAGjggE7MIIBNzASBgNV
+HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAyBgNVHR8EKzApMCegJaAj
+hiFodHRwOi8vdDEuc3ltY2IuY29tL1RoYXd0ZVBDQS5jcmwwLwYIKwYBBQUHAQEE
+IzAhMB8GCCsGAQUFBzABhhNodHRwOi8vdDIuc3ltY2IuY29tMEEGA1UdIAQ6MDgw
+NgYKYIZIAYb4RQEHNjAoMCYGCCsGAQUFBwIBFhpodHRwczovL3d3dy50aGF3dGUu
+Y29tL2NwczApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01
+MzcwHQYDVR0OBBYEFMJPSFf80U+awF04fQ4F29kutVJgMB8GA1UdIwQYMBaAFHtb
+Rc+vzst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQCNBt5DyXYCytkj
+l17zY9d9RMIPawr1B+WLuPrgo/prgJK1AyzFN+DC5ZW1knAYKEKU7kt3agEPiyPs
+Vk30AGnlhMji6t5bPvY8BzqUymwnscyDGmBxJ9K/AvUeRNNI1abTdiEAnPqYZOsX
+Nj/rGzw+prHZWAYOctlovvGnINdS5KR3H3FwnVU1hTfhHU2UwnB/lUBuS32ytCkq
+A3nIuUxnYQSgiyf/WQDrVX/GtzM1LV5OrLjqEsXo97mrvnSSLLfZTcqELxzC8HJ8
+sjFuz4DliAc2UXu6Ya9tjSNbNKOVvKIxf/L157fo78S1JzLp955pxyvovrsMqufq
+YBLqJop4
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert27[] = {
+  0x30, 0x82, 0x04, 0xb2, 0x30, 0x82, 0x03, 0x9a, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x16, 0x87, 0xd6, 0x88, 0x6d, 0xe2, 0x30, 0x06, 0x85,
+  0x23, 0x3d, 0xbf, 0x11, 0xbf, 0x65, 0x97, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+  0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x41,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x74,
+  0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+  0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xb2, 0xfc, 0x06, 0xfb, 0x04, 0x93, 0xd2, 0xea, 0x59, 0x20,
+  0x3b, 0x44, 0x85, 0x97, 0x52, 0x39, 0xe7, 0x10, 0xf0, 0x7a, 0xe0, 0xb0,
+  0x94, 0x40, 0xda, 0x46, 0xf8, 0x0c, 0x28, 0xbb, 0xb9, 0xce, 0x60, 0x38,
+  0x3f, 0xd2, 0xd8, 0x11, 0x42, 0x1b, 0x91, 0xad, 0x49, 0xee, 0x8f, 0xc7,
+  0xde, 0x6c, 0xde, 0x37, 0x6f, 0xfd, 0x8b, 0x20, 0x3c, 0x6d, 0xe7, 0x74,
+  0xd3, 0xdc, 0xd5, 0x24, 0x88, 0x41, 0x80, 0x89, 0xee, 0x36, 0xbe, 0xc4,
+  0xd5, 0xbe, 0x8d, 0x53, 0x13, 0xaa, 0xe4, 0xa5, 0xb8, 0x93, 0x0a, 0xbe,
+  0xec, 0xda, 0xcd, 0x3c, 0xd4, 0x32, 0x56, 0xef, 0xd0, 0x4e, 0xa0, 0xb8,
+  0x97, 0xbb, 0x39, 0x50, 0x1e, 0x6e, 0x65, 0xc3, 0xfd, 0xb2, 0xce, 0xe0,
+  0x59, 0xa9, 0x48, 0x09, 0xc6, 0xfe, 0xbe, 0xae, 0xfc, 0x3e, 0x3b, 0x81,
+  0x20, 0x97, 0x8b, 0x8f, 0x46, 0xdf, 0x60, 0x64, 0x07, 0x75, 0xbb, 0x1b,
+  0x86, 0x38, 0x9f, 0x47, 0x7b, 0x34, 0xce, 0xa1, 0xd1, 0x97, 0xad, 0x76,
+  0xd8, 0x9f, 0xb7, 0x26, 0xdb, 0x79, 0x80, 0x36, 0x48, 0xf2, 0xc5, 0x37,
+  0xf8, 0xd9, 0x32, 0xae, 0x7c, 0xa4, 0x53, 0x81, 0xc7, 0x99, 0xa1, 0x54,
+  0x38, 0x2f, 0x4f, 0x75, 0xa0, 0xbb, 0x5a, 0xa5, 0xbb, 0xcd, 0xac, 0x02,
+  0x5b, 0x19, 0x02, 0xd5, 0x13, 0x18, 0xa7, 0xce, 0xac, 0x74, 0x55, 0x12,
+  0x05, 0x8b, 0x9b, 0xa2, 0x95, 0x46, 0x64, 0x72, 0x38, 0xcd, 0x5a, 0x1b,
+  0x3a, 0x16, 0xa7, 0xbe, 0x71, 0x99, 0x8c, 0x54, 0x03, 0xb8, 0x96, 0x6c,
+  0x01, 0xd3, 0x3e, 0x06, 0x98, 0x3f, 0x21, 0x81, 0x3b, 0x02, 0x7e, 0x00,
+  0x47, 0x53, 0x01, 0x1e, 0x0e, 0x46, 0x43, 0xfb, 0x4b, 0x2d, 0xdc, 0x0b,
+  0x1a, 0xe8, 0x2f, 0x98, 0xf8, 0x7e, 0xd1, 0x99, 0xab, 0x13, 0x6c, 0xa4,
+  0x17, 0xde, 0x6f, 0xf6, 0x15, 0xf5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+  0x82, 0x01, 0x3b, 0x30, 0x82, 0x01, 0x37, 0x30, 0x12, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+  0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x32, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23,
+  0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x31, 0x2e,
+  0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68,
+  0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x74, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38, 0x30,
+  0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+  0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55,
+  0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a,
+  0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d,
+  0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35,
+  0x33, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0xc2, 0x4f, 0x48, 0x57, 0xfc, 0xd1, 0x4f, 0x9a, 0xc0, 0x5d, 0x38,
+  0x7d, 0x0e, 0x05, 0xdb, 0xd9, 0x2e, 0xb5, 0x52, 0x60, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b,
+  0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6,
+  0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x01, 0x00, 0x8d, 0x06, 0xde, 0x43, 0xc9, 0x76, 0x02, 0xca, 0xd9, 0x23,
+  0x97, 0x5e, 0xf3, 0x63, 0xd7, 0x7d, 0x44, 0xc2, 0x0f, 0x6b, 0x0a, 0xf5,
+  0x07, 0xe5, 0x8b, 0xb8, 0xfa, 0xe0, 0xa3, 0xfa, 0x6b, 0x80, 0x92, 0xb5,
+  0x03, 0x2c, 0xc5, 0x37, 0xe0, 0xc2, 0xe5, 0x95, 0xb5, 0x92, 0x70, 0x18,
+  0x28, 0x42, 0x94, 0xee, 0x4b, 0x77, 0x6a, 0x01, 0x0f, 0x8b, 0x23, 0xec,
+  0x56, 0x4d, 0xf4, 0x00, 0x69, 0xe5, 0x84, 0xc8, 0xe2, 0xea, 0xde, 0x5b,
+  0x3e, 0xf6, 0x3c, 0x07, 0x3a, 0x94, 0xca, 0x6c, 0x27, 0xb1, 0xcc, 0x83,
+  0x1a, 0x60, 0x71, 0x27, 0xd2, 0xbf, 0x02, 0xf5, 0x1e, 0x44, 0xd3, 0x48,
+  0xd5, 0xa6, 0xd3, 0x76, 0x21, 0x00, 0x9c, 0xfa, 0x98, 0x64, 0xeb, 0x17,
+  0x36, 0x3f, 0xeb, 0x1b, 0x3c, 0x3e, 0xa6, 0xb1, 0xd9, 0x58, 0x06, 0x0e,
+  0x72, 0xd9, 0x68, 0xbe, 0xf1, 0xa7, 0x20, 0xd7, 0x52, 0xe4, 0xa4, 0x77,
+  0x1f, 0x71, 0x70, 0x9d, 0x55, 0x35, 0x85, 0x37, 0xe1, 0x1d, 0x4d, 0x94,
+  0xc2, 0x70, 0x7f, 0x95, 0x40, 0x6e, 0x4b, 0x7d, 0xb2, 0xb4, 0x29, 0x2a,
+  0x03, 0x79, 0xc8, 0xb9, 0x4c, 0x67, 0x61, 0x04, 0xa0, 0x8b, 0x27, 0xff,
+  0x59, 0x00, 0xeb, 0x55, 0x7f, 0xc6, 0xb7, 0x33, 0x35, 0x2d, 0x5e, 0x4e,
+  0xac, 0xb8, 0xea, 0x12, 0xc5, 0xe8, 0xf7, 0xb9, 0xab, 0xbe, 0x74, 0x92,
+  0x2c, 0xb7, 0xd9, 0x4d, 0xca, 0x84, 0x2f, 0x1c, 0xc2, 0xf0, 0x72, 0x7c,
+  0xb2, 0x31, 0x6e, 0xcf, 0x80, 0xe5, 0x88, 0x07, 0x36, 0x51, 0x7b, 0xba,
+  0x61, 0xaf, 0x6d, 0x8d, 0x23, 0x5b, 0x34, 0xa3, 0x95, 0xbc, 0xa2, 0x31,
+  0x7f, 0xf2, 0xf5, 0xe7, 0xb7, 0xe8, 0xef, 0xc4, 0xb5, 0x27, 0x32, 0xe9,
+  0xf7, 0x9e, 0x69, 0xc7, 0x2b, 0xe8, 0xbe, 0xbb, 0x0c, 0xaa, 0xe7, 0xea,
+  0x60, 0x12, 0xea, 0x26, 0x8a, 0x78,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            0c:79:a9:44:b0:8c:11:95:20:92:61:5f:e2:6b:1d:83
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+        Validity
+            Not Before: Oct 22 12:00:00 2013 GMT
+            Not After : Oct 22 12:00:00 2028 GMT
+        Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 Extended Validation Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d7:53:a4:04:51:f8:99:a6:16:48:4b:67:27:aa:
+                    93:49:d0:39:ed:0c:b0:b0:00:87:f1:67:28:86:85:
+                    8c:8e:63:da:bc:b1:40:38:e2:d3:f5:ec:a5:05:18:
+                    b8:3d:3e:c5:99:17:32:ec:18:8c:fa:f1:0c:a6:64:
+                    21:85:cb:07:10:34:b0:52:88:2b:1f:68:9b:d2:b1:
+                    8f:12:b0:b3:d2:e7:88:1f:1f:ef:38:77:54:53:5f:
+                    80:79:3f:2e:1a:aa:a8:1e:4b:2b:0d:ab:b7:63:b9:
+                    35:b7:7d:14:bc:59:4b:df:51:4a:d2:a1:e2:0c:e2:
+                    90:82:87:6a:ae:ea:d7:64:d6:98:55:e8:fd:af:1a:
+                    50:6c:54:bc:11:f2:fd:4a:f2:9d:bb:7f:0e:f4:d5:
+                    be:8e:16:89:12:55:d8:c0:71:34:ee:f6:dc:2d:ec:
+                    c4:87:25:86:8d:d8:21:e4:b0:4d:0c:89:dc:39:26:
+                    17:dd:f6:d7:94:85:d8:04:21:70:9d:6f:6f:ff:5c:
+                    ba:19:e1:45:cb:56:57:28:7e:1c:0d:41:57:aa:b7:
+                    b8:27:bb:b1:e4:fa:2a:ef:21:23:75:1a:ad:2d:9b:
+                    86:35:8c:9c:77:b5:73:ad:d8:94:2d:e4:f3:0c:9d:
+                    ee:c1:4e:62:7e:17:c0:71:9e:2c:de:f1:f9:10:28:
+                    19:33
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.digicert.com/CPS
+
+            X509v3 Subject Key Identifier: 
+                3D:D3:50:A5:D6:A0:AD:EE:F3:4A:60:0A:65:D3:21:D4:F8:F8:D6:0F
+            X509v3 Authority Key Identifier: 
+                keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+    Signature Algorithm: sha256WithRSAEncryption
+         9d:b6:d0:90:86:e1:86:02:ed:c5:a0:f0:34:1c:74:c1:8d:76:
+         cc:86:0a:a8:f0:4a:8a:42:d6:3f:c8:a9:4d:ad:7c:08:ad:e6:
+         b6:50:b8:a2:1a:4d:88:07:b1:29:21:dc:e7:da:c6:3c:21:e0:
+         e3:11:49:70:ac:7a:1d:01:a4:ca:11:3a:57:ab:7d:57:2a:40:
+         74:fd:d3:1d:85:18:50:df:57:47:75:a1:7d:55:20:2e:47:37:
+         50:72:8c:7f:82:1b:d2:62:8f:2d:03:5a:da:c3:c8:a1:ce:2c:
+         52:a2:00:63:eb:73:ba:71:c8:49:27:23:97:64:85:9e:38:0e:
+         ad:63:68:3c:ba:52:81:58:79:a3:2c:0c:df:de:6d:eb:31:f2:
+         ba:a0:7c:6c:f1:2c:d4:e1:bd:77:84:37:03:ce:32:b5:c8:9a:
+         81:1a:4a:92:4e:3b:46:9a:85:fe:83:a2:f9:9e:8c:a3:cc:0d:
+         5e:b3:3d:cf:04:78:8f:14:14:7b:32:9c:c7:00:a6:5c:c4:b5:
+         a1:55:8d:5a:56:68:a4:22:70:aa:3c:81:71:d9:9d:a8:45:3b:
+         f4:e5:f6:a2:51:dd:c7:7b:62:e8:6f:0c:74:eb:b8:da:f8:bf:
+         87:0d:79:50:91:90:9b:18:3b:91:59:27:f1:35:28:13:ab:26:
+         7e:d5:f7:7a
+-----BEGIN CERTIFICATE-----
+MIIEtjCCA56gAwIBAgIQDHmpRLCMEZUgkmFf4msdgzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowdTEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTE0MDIGA1UEAxMrRGlnaUNlcnQgU0hBMiBFeHRlbmRlZCBW
+YWxpZGF0aW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBANdTpARR+JmmFkhLZyeqk0nQOe0MsLAAh/FnKIaFjI5j2ryxQDji0/XspQUY
+uD0+xZkXMuwYjPrxDKZkIYXLBxA0sFKIKx9om9KxjxKws9LniB8f7zh3VFNfgHk/
+LhqqqB5LKw2rt2O5Nbd9FLxZS99RStKh4gzikIKHaq7q12TWmFXo/a8aUGxUvBHy
+/Urynbt/DvTVvo4WiRJV2MBxNO723C3sxIclho3YIeSwTQyJ3DkmF93215SF2AQh
+cJ1vb/9cuhnhRctWVyh+HA1BV6q3uCe7seT6Ku8hI3UarS2bhjWMnHe1c63YlC3k
+8wyd7sFOYn4XwHGeLN7x+RAoGTMCAwEAAaOCAUkwggFFMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
+BQcDAjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
+Z2ljZXJ0LmNvbTBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsNC5kaWdpY2Vy
+dC5jb20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3JsMD0GA1UdIAQ2
+MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j
+b20vQ1BTMB0GA1UdDgQWBBQ901Cl1qCt7vNKYApl0yHU+PjWDzAfBgNVHSMEGDAW
+gBSxPsNpA/i/RwHUmCYaCALvY2QrwzANBgkqhkiG9w0BAQsFAAOCAQEAnbbQkIbh
+hgLtxaDwNBx0wY12zIYKqPBKikLWP8ipTa18CK3mtlC4ohpNiAexKSHc59rGPCHg
+4xFJcKx6HQGkyhE6V6t9VypAdP3THYUYUN9XR3WhfVUgLkc3UHKMf4Ib0mKPLQNa
+2sPIoc4sUqIAY+tzunHISScjl2SFnjgOrWNoPLpSgVh5oywM395t6zHyuqB8bPEs
+1OG9d4Q3A84ytciagRpKkk47RpqF/oOi+Z6Mo8wNXrM9zwR4jxQUezKcxwCmXMS1
+oVWNWlZopCJwqjyBcdmdqEU79OX2olHdx3ti6G8MdOu42vi/hw15UJGQmxg7kVkn
+8TUoE6smftX3eg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert28[] = {
+  0x30, 0x82, 0x04, 0xb6, 0x30, 0x82, 0x03, 0x9e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x0c, 0x79, 0xa9, 0x44, 0xb0, 0x8c, 0x11, 0x95, 0x20,
+  0x92, 0x61, 0x5f, 0xe2, 0x6b, 0x1d, 0x83, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+  0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+  0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+  0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+  0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x75, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+  0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x31, 0x34, 0x30, 0x32, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+  0x32, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56,
+  0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65,
+  0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xd7, 0x53, 0xa4, 0x04, 0x51, 0xf8, 0x99, 0xa6,
+  0x16, 0x48, 0x4b, 0x67, 0x27, 0xaa, 0x93, 0x49, 0xd0, 0x39, 0xed, 0x0c,
+  0xb0, 0xb0, 0x00, 0x87, 0xf1, 0x67, 0x28, 0x86, 0x85, 0x8c, 0x8e, 0x63,
+  0xda, 0xbc, 0xb1, 0x40, 0x38, 0xe2, 0xd3, 0xf5, 0xec, 0xa5, 0x05, 0x18,
+  0xb8, 0x3d, 0x3e, 0xc5, 0x99, 0x17, 0x32, 0xec, 0x18, 0x8c, 0xfa, 0xf1,
+  0x0c, 0xa6, 0x64, 0x21, 0x85, 0xcb, 0x07, 0x10, 0x34, 0xb0, 0x52, 0x88,
+  0x2b, 0x1f, 0x68, 0x9b, 0xd2, 0xb1, 0x8f, 0x12, 0xb0, 0xb3, 0xd2, 0xe7,
+  0x88, 0x1f, 0x1f, 0xef, 0x38, 0x77, 0x54, 0x53, 0x5f, 0x80, 0x79, 0x3f,
+  0x2e, 0x1a, 0xaa, 0xa8, 0x1e, 0x4b, 0x2b, 0x0d, 0xab, 0xb7, 0x63, 0xb9,
+  0x35, 0xb7, 0x7d, 0x14, 0xbc, 0x59, 0x4b, 0xdf, 0x51, 0x4a, 0xd2, 0xa1,
+  0xe2, 0x0c, 0xe2, 0x90, 0x82, 0x87, 0x6a, 0xae, 0xea, 0xd7, 0x64, 0xd6,
+  0x98, 0x55, 0xe8, 0xfd, 0xaf, 0x1a, 0x50, 0x6c, 0x54, 0xbc, 0x11, 0xf2,
+  0xfd, 0x4a, 0xf2, 0x9d, 0xbb, 0x7f, 0x0e, 0xf4, 0xd5, 0xbe, 0x8e, 0x16,
+  0x89, 0x12, 0x55, 0xd8, 0xc0, 0x71, 0x34, 0xee, 0xf6, 0xdc, 0x2d, 0xec,
+  0xc4, 0x87, 0x25, 0x86, 0x8d, 0xd8, 0x21, 0xe4, 0xb0, 0x4d, 0x0c, 0x89,
+  0xdc, 0x39, 0x26, 0x17, 0xdd, 0xf6, 0xd7, 0x94, 0x85, 0xd8, 0x04, 0x21,
+  0x70, 0x9d, 0x6f, 0x6f, 0xff, 0x5c, 0xba, 0x19, 0xe1, 0x45, 0xcb, 0x56,
+  0x57, 0x28, 0x7e, 0x1c, 0x0d, 0x41, 0x57, 0xaa, 0xb7, 0xb8, 0x27, 0xbb,
+  0xb1, 0xe4, 0xfa, 0x2a, 0xef, 0x21, 0x23, 0x75, 0x1a, 0xad, 0x2d, 0x9b,
+  0x86, 0x35, 0x8c, 0x9c, 0x77, 0xb5, 0x73, 0xad, 0xd8, 0x94, 0x2d, 0xe4,
+  0xf3, 0x0c, 0x9d, 0xee, 0xc1, 0x4e, 0x62, 0x7e, 0x17, 0xc0, 0x71, 0x9e,
+  0x2c, 0xde, 0xf1, 0xf9, 0x10, 0x28, 0x19, 0x33, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x82, 0x01, 0x49, 0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06,
+  0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,
+  0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+  0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06,
+  0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x02, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69,
+  0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b,
+  0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0,
+  0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65,
+  0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61,
+  0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36,
+  0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a,
+  0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+  0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x3d, 0xd3, 0x50, 0xa5, 0xd6, 0xa0, 0xad,
+  0xee, 0xf3, 0x4a, 0x60, 0x0a, 0x65, 0xd3, 0x21, 0xd4, 0xf8, 0xf8, 0xd6,
+  0x0f, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xb1, 0x3e, 0xc3, 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4,
+  0x98, 0x26, 0x1a, 0x08, 0x02, 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x9d, 0xb6, 0xd0, 0x90, 0x86, 0xe1,
+  0x86, 0x02, 0xed, 0xc5, 0xa0, 0xf0, 0x34, 0x1c, 0x74, 0xc1, 0x8d, 0x76,
+  0xcc, 0x86, 0x0a, 0xa8, 0xf0, 0x4a, 0x8a, 0x42, 0xd6, 0x3f, 0xc8, 0xa9,
+  0x4d, 0xad, 0x7c, 0x08, 0xad, 0xe6, 0xb6, 0x50, 0xb8, 0xa2, 0x1a, 0x4d,
+  0x88, 0x07, 0xb1, 0x29, 0x21, 0xdc, 0xe7, 0xda, 0xc6, 0x3c, 0x21, 0xe0,
+  0xe3, 0x11, 0x49, 0x70, 0xac, 0x7a, 0x1d, 0x01, 0xa4, 0xca, 0x11, 0x3a,
+  0x57, 0xab, 0x7d, 0x57, 0x2a, 0x40, 0x74, 0xfd, 0xd3, 0x1d, 0x85, 0x18,
+  0x50, 0xdf, 0x57, 0x47, 0x75, 0xa1, 0x7d, 0x55, 0x20, 0x2e, 0x47, 0x37,
+  0x50, 0x72, 0x8c, 0x7f, 0x82, 0x1b, 0xd2, 0x62, 0x8f, 0x2d, 0x03, 0x5a,
+  0xda, 0xc3, 0xc8, 0xa1, 0xce, 0x2c, 0x52, 0xa2, 0x00, 0x63, 0xeb, 0x73,
+  0xba, 0x71, 0xc8, 0x49, 0x27, 0x23, 0x97, 0x64, 0x85, 0x9e, 0x38, 0x0e,
+  0xad, 0x63, 0x68, 0x3c, 0xba, 0x52, 0x81, 0x58, 0x79, 0xa3, 0x2c, 0x0c,
+  0xdf, 0xde, 0x6d, 0xeb, 0x31, 0xf2, 0xba, 0xa0, 0x7c, 0x6c, 0xf1, 0x2c,
+  0xd4, 0xe1, 0xbd, 0x77, 0x84, 0x37, 0x03, 0xce, 0x32, 0xb5, 0xc8, 0x9a,
+  0x81, 0x1a, 0x4a, 0x92, 0x4e, 0x3b, 0x46, 0x9a, 0x85, 0xfe, 0x83, 0xa2,
+  0xf9, 0x9e, 0x8c, 0xa3, 0xcc, 0x0d, 0x5e, 0xb3, 0x3d, 0xcf, 0x04, 0x78,
+  0x8f, 0x14, 0x14, 0x7b, 0x32, 0x9c, 0xc7, 0x00, 0xa6, 0x5c, 0xc4, 0xb5,
+  0xa1, 0x55, 0x8d, 0x5a, 0x56, 0x68, 0xa4, 0x22, 0x70, 0xaa, 0x3c, 0x81,
+  0x71, 0xd9, 0x9d, 0xa8, 0x45, 0x3b, 0xf4, 0xe5, 0xf6, 0xa2, 0x51, 0xdd,
+  0xc7, 0x7b, 0x62, 0xe8, 0x6f, 0x0c, 0x74, 0xeb, 0xb8, 0xda, 0xf8, 0xbf,
+  0x87, 0x0d, 0x79, 0x50, 0x91, 0x90, 0x9b, 0x18, 0x3b, 0x91, 0x59, 0x27,
+  0xf1, 0x35, 0x28, 0x13, 0xab, 0x26, 0x7e, 0xd5, 0xf7, 0x7a,
+};
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_2b.inc b/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_2b.inc
new file mode 100644 (file)
index 0000000..55f120d
--- /dev/null
@@ -0,0 +1,5744 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* This file contains common certificates. It's designed to be #included in
+ * another file, in a namespace. */
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            36:34:9e:18:c9:9c:26:69:b6:56:2e:6c:e5:ad:71:32
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
+        Validity
+            Not Before: May 23 00:00:00 2013 GMT
+            Not After : May 22 23:59:59 2023 GMT
+        Subject: C=US, O=thawte, Inc., CN=thawte SHA256 SSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a3:63:2b:d4:ba:5d:38:ae:b0:cf:b9:4c:38:df:
+                    20:7d:f1:2b:47:71:1d:8b:68:f3:56:f9:9c:da:aa:
+                    e5:84:26:de:a5:71:30:bc:f3:31:23:9d:e8:3b:80:
+                    c8:66:57:75:b6:57:0e:db:93:f5:26:8e:70:ba:64:
+                    52:66:8a:2a:88:5c:44:18:4d:a8:a2:7c:bd:56:61:
+                    32:90:12:f9:35:87:48:60:b0:6e:90:67:44:01:8d:
+                    e7:c9:0d:63:68:72:72:ab:63:3c:86:b8:1f:7d:ad:
+                    88:25:a7:6a:88:29:fb:59:c6:78:71:5f:2c:ba:89:
+                    e6:d3:80:fd:57:ec:b9:51:5f:43:33:2e:7e:25:3b:
+                    a4:04:d1:60:8c:b3:44:33:93:0c:ad:2a:b6:44:a2:
+                    19:3b:af:c4:90:6f:7b:05:87:86:9b:2c:6a:9d:2b:
+                    6c:77:c9:00:9f:c9:cf:ac:ed:3e:1b:f7:c3:f3:d9:
+                    f8:6c:d4:a0:57:c4:fb:28:32:aa:33:f0:e6:ba:98:
+                    df:e5:c2:4e:9c:74:bf:8a:48:c2:f2:1b:f0:77:40:
+                    41:07:04:b2:3a:d5:4c:c4:29:a9:11:40:3f:02:46:
+                    f0:91:d5:d2:81:83:86:13:b3:31:ed:46:ab:a8:87:
+                    76:a9:99:7d:bc:cd:31:50:f4:a5:b5:dc:a5:32:b3:
+                    8b:8b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.thawte.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.thawte.com/ThawtePCA-G3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-415
+            X509v3 Subject Key Identifier: 
+                2B:9A:35:AE:01:18:38:30:E1:70:7A:05:E0:11:76:A3:CE:BD:90:14
+            X509v3 Authority Key Identifier: 
+                keyid:AD:6C:AA:94:60:9C:ED:E4:FF:FA:3E:0A:74:2B:63:03:F7:B6:59:BF
+
+    Signature Algorithm: sha256WithRSAEncryption
+         74:a6:56:e8:af:93:96:19:fb:26:f9:0d:b0:44:a5:cd:e9:7a:
+         48:03:74:01:6c:13:71:b7:e0:82:90:99:62:23:e3:d6:99:af:
+         f0:c7:1e:9e:a8:18:21:db:b4:94:3f:34:56:1b:99:55:2f:8e:
+         f0:45:33:32:b7:72:c1:13:5b:34:d3:f5:60:e5:2e:18:d1:5c:
+         c5:6a:c1:aa:87:50:0c:1c:9d:64:2b:ff:1b:dc:d5:2e:61:0b:
+         e7:b9:b6:91:53:86:d9:03:2a:d1:3d:7b:4a:da:2b:07:be:29:
+         f2:60:42:a9:91:1a:0e:2e:3c:d1:7d:a5:13:14:02:fa:ee:8b:
+         8d:b6:c8:b8:3e:56:81:57:21:24:3f:65:c3:b4:c9:ce:5c:8d:
+         46:ac:53:f3:f9:55:74:c8:2b:fd:d2:78:70:f5:f8:11:e5:f4:
+         a7:ad:20:f5:9d:f1:ec:70:f6:13:ac:e6:8c:8d:db:3f:c6:f2:
+         79:0e:ab:52:f2:cc:1b:79:27:cf:16:b3:d6:f3:c6:36:80:43:
+         ec:c5:94:f0:dd:90:8d:f8:c6:52:46:56:eb:74:47:be:a6:f3:
+         19:ae:71:4c:c0:e1:e7:d4:cf:ed:d4:06:28:2a:11:3c:ba:d9:
+         41:6e:00:e7:81:37:93:e4:da:62:c6:1d:67:6f:63:b4:14:86:
+         d9:a6:62:f0
+-----BEGIN CERTIFICATE-----
+MIIEwjCCA6qgAwIBAgIQNjSeGMmcJmm2Vi5s5a1xMjANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0xMzA1MjMwMDAwMDBa
+Fw0yMzA1MjIyMzU5NTlaMEMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUs
+IEluYy4xHTAbBgNVBAMTFHRoYXd0ZSBTSEEyNTYgU1NMIENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo2Mr1LpdOK6wz7lMON8gffErR3Edi2jzVvmc
+2qrlhCbepXEwvPMxI53oO4DIZld1tlcO25P1Jo5wumRSZooqiFxEGE2oony9VmEy
+kBL5NYdIYLBukGdEAY3nyQ1jaHJyq2M8hrgffa2IJadqiCn7WcZ4cV8suonm04D9
+V+y5UV9DMy5+JTukBNFgjLNEM5MMrSq2RKIZO6/EkG97BYeGmyxqnStsd8kAn8nP
+rO0+G/fD89n4bNSgV8T7KDKqM/Dmupjf5cJOnHS/ikjC8hvwd0BBBwSyOtVMxCmp
+EUA/AkbwkdXSgYOGE7Mx7UarqId2qZl9vM0xUPSltdylMrOLiwIDAQABo4IBRDCC
+AUAwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3
+dGUuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwQQYDVR0gBDowODA2BgpghkgBhvhF
+AQc2MCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3BzMDcG
+A1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0Et
+RzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAqBgNVHREEIzAhpB8wHTEbMBkGA1UEAxMS
+VmVyaVNpZ25NUEtJLTItNDE1MB0GA1UdDgQWBBQrmjWuARg4MOFwegXgEXajzr2Q
+FDAfBgNVHSMEGDAWgBStbKqUYJzt5P/6Pgp0K2MD97ZZvzANBgkqhkiG9w0BAQsF
+AAOCAQEAdKZW6K+Tlhn7JvkNsESlzel6SAN0AWwTcbfggpCZYiPj1pmv8McenqgY
+Idu0lD80VhuZVS+O8EUzMrdywRNbNNP1YOUuGNFcxWrBqodQDBydZCv/G9zVLmEL
+57m2kVOG2QMq0T17StorB74p8mBCqZEaDi480X2lExQC+u6LjbbIuD5WgVchJD9l
+w7TJzlyNRqxT8/lVdMgr/dJ4cPX4EeX0p60g9Z3x7HD2E6zmjI3bP8byeQ6rUvLM
+G3knzxaz1vPGNoBD7MWU8N2QjfjGUkZW63RHvqbzGa5xTMDh59TP7dQGKCoRPLrZ
+QW4A54E3k+TaYsYdZ29jtBSG2aZi8A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert29[] = {
+  0x30, 0x82, 0x04, 0xc2, 0x30, 0x82, 0x03, 0xaa, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x36, 0x34, 0x9e, 0x18, 0xc9, 0x9c, 0x26, 0x69, 0xb6,
+  0x56, 0x2e, 0x6c, 0xe5, 0xad, 0x71, 0x32, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x38, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x1b, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+  0x33, 0x30, 0x35, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
+  0x17, 0x0d, 0x32, 0x33, 0x30, 0x35, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39,
+  0x35, 0x39, 0x5a, 0x30, 0x43, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03,
+  0x55, 0x04, 0x0a, 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x14, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53,
+  0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x63, 0x2b,
+  0xd4, 0xba, 0x5d, 0x38, 0xae, 0xb0, 0xcf, 0xb9, 0x4c, 0x38, 0xdf, 0x20,
+  0x7d, 0xf1, 0x2b, 0x47, 0x71, 0x1d, 0x8b, 0x68, 0xf3, 0x56, 0xf9, 0x9c,
+  0xda, 0xaa, 0xe5, 0x84, 0x26, 0xde, 0xa5, 0x71, 0x30, 0xbc, 0xf3, 0x31,
+  0x23, 0x9d, 0xe8, 0x3b, 0x80, 0xc8, 0x66, 0x57, 0x75, 0xb6, 0x57, 0x0e,
+  0xdb, 0x93, 0xf5, 0x26, 0x8e, 0x70, 0xba, 0x64, 0x52, 0x66, 0x8a, 0x2a,
+  0x88, 0x5c, 0x44, 0x18, 0x4d, 0xa8, 0xa2, 0x7c, 0xbd, 0x56, 0x61, 0x32,
+  0x90, 0x12, 0xf9, 0x35, 0x87, 0x48, 0x60, 0xb0, 0x6e, 0x90, 0x67, 0x44,
+  0x01, 0x8d, 0xe7, 0xc9, 0x0d, 0x63, 0x68, 0x72, 0x72, 0xab, 0x63, 0x3c,
+  0x86, 0xb8, 0x1f, 0x7d, 0xad, 0x88, 0x25, 0xa7, 0x6a, 0x88, 0x29, 0xfb,
+  0x59, 0xc6, 0x78, 0x71, 0x5f, 0x2c, 0xba, 0x89, 0xe6, 0xd3, 0x80, 0xfd,
+  0x57, 0xec, 0xb9, 0x51, 0x5f, 0x43, 0x33, 0x2e, 0x7e, 0x25, 0x3b, 0xa4,
+  0x04, 0xd1, 0x60, 0x8c, 0xb3, 0x44, 0x33, 0x93, 0x0c, 0xad, 0x2a, 0xb6,
+  0x44, 0xa2, 0x19, 0x3b, 0xaf, 0xc4, 0x90, 0x6f, 0x7b, 0x05, 0x87, 0x86,
+  0x9b, 0x2c, 0x6a, 0x9d, 0x2b, 0x6c, 0x77, 0xc9, 0x00, 0x9f, 0xc9, 0xcf,
+  0xac, 0xed, 0x3e, 0x1b, 0xf7, 0xc3, 0xf3, 0xd9, 0xf8, 0x6c, 0xd4, 0xa0,
+  0x57, 0xc4, 0xfb, 0x28, 0x32, 0xaa, 0x33, 0xf0, 0xe6, 0xba, 0x98, 0xdf,
+  0xe5, 0xc2, 0x4e, 0x9c, 0x74, 0xbf, 0x8a, 0x48, 0xc2, 0xf2, 0x1b, 0xf0,
+  0x77, 0x40, 0x41, 0x07, 0x04, 0xb2, 0x3a, 0xd5, 0x4c, 0xc4, 0x29, 0xa9,
+  0x11, 0x40, 0x3f, 0x02, 0x46, 0xf0, 0x91, 0xd5, 0xd2, 0x81, 0x83, 0x86,
+  0x13, 0xb3, 0x31, 0xed, 0x46, 0xab, 0xa8, 0x87, 0x76, 0xa9, 0x99, 0x7d,
+  0xbc, 0xcd, 0x31, 0x50, 0xf4, 0xa5, 0xb5, 0xdc, 0xa5, 0x32, 0xb3, 0x8b,
+  0x8b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x44, 0x30, 0x82,
+  0x01, 0x40, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x01, 0x01, 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77,
+  0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30,
+  0x38, 0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+  0x01, 0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+  0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x37, 0x06,
+  0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30, 0x30, 0x2e, 0x30, 0x2c, 0xa0, 0x2a,
+  0xa0, 0x28, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2d,
+  0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2a,
+  0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30,
+  0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+  0x2d, 0x32, 0x2d, 0x34, 0x31, 0x35, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x2b, 0x9a, 0x35, 0xae, 0x01, 0x18, 0x38,
+  0x30, 0xe1, 0x70, 0x7a, 0x05, 0xe0, 0x11, 0x76, 0xa3, 0xce, 0xbd, 0x90,
+  0x14, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xad, 0x6c, 0xaa, 0x94, 0x60, 0x9c, 0xed, 0xe4, 0xff, 0xfa,
+  0x3e, 0x0a, 0x74, 0x2b, 0x63, 0x03, 0xf7, 0xb6, 0x59, 0xbf, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x74, 0xa6, 0x56, 0xe8, 0xaf, 0x93,
+  0x96, 0x19, 0xfb, 0x26, 0xf9, 0x0d, 0xb0, 0x44, 0xa5, 0xcd, 0xe9, 0x7a,
+  0x48, 0x03, 0x74, 0x01, 0x6c, 0x13, 0x71, 0xb7, 0xe0, 0x82, 0x90, 0x99,
+  0x62, 0x23, 0xe3, 0xd6, 0x99, 0xaf, 0xf0, 0xc7, 0x1e, 0x9e, 0xa8, 0x18,
+  0x21, 0xdb, 0xb4, 0x94, 0x3f, 0x34, 0x56, 0x1b, 0x99, 0x55, 0x2f, 0x8e,
+  0xf0, 0x45, 0x33, 0x32, 0xb7, 0x72, 0xc1, 0x13, 0x5b, 0x34, 0xd3, 0xf5,
+  0x60, 0xe5, 0x2e, 0x18, 0xd1, 0x5c, 0xc5, 0x6a, 0xc1, 0xaa, 0x87, 0x50,
+  0x0c, 0x1c, 0x9d, 0x64, 0x2b, 0xff, 0x1b, 0xdc, 0xd5, 0x2e, 0x61, 0x0b,
+  0xe7, 0xb9, 0xb6, 0x91, 0x53, 0x86, 0xd9, 0x03, 0x2a, 0xd1, 0x3d, 0x7b,
+  0x4a, 0xda, 0x2b, 0x07, 0xbe, 0x29, 0xf2, 0x60, 0x42, 0xa9, 0x91, 0x1a,
+  0x0e, 0x2e, 0x3c, 0xd1, 0x7d, 0xa5, 0x13, 0x14, 0x02, 0xfa, 0xee, 0x8b,
+  0x8d, 0xb6, 0xc8, 0xb8, 0x3e, 0x56, 0x81, 0x57, 0x21, 0x24, 0x3f, 0x65,
+  0xc3, 0xb4, 0xc9, 0xce, 0x5c, 0x8d, 0x46, 0xac, 0x53, 0xf3, 0xf9, 0x55,
+  0x74, 0xc8, 0x2b, 0xfd, 0xd2, 0x78, 0x70, 0xf5, 0xf8, 0x11, 0xe5, 0xf4,
+  0xa7, 0xad, 0x20, 0xf5, 0x9d, 0xf1, 0xec, 0x70, 0xf6, 0x13, 0xac, 0xe6,
+  0x8c, 0x8d, 0xdb, 0x3f, 0xc6, 0xf2, 0x79, 0x0e, 0xab, 0x52, 0xf2, 0xcc,
+  0x1b, 0x79, 0x27, 0xcf, 0x16, 0xb3, 0xd6, 0xf3, 0xc6, 0x36, 0x80, 0x43,
+  0xec, 0xc5, 0x94, 0xf0, 0xdd, 0x90, 0x8d, 0xf8, 0xc6, 0x52, 0x46, 0x56,
+  0xeb, 0x74, 0x47, 0xbe, 0xa6, 0xf3, 0x19, 0xae, 0x71, 0x4c, 0xc0, 0xe1,
+  0xe7, 0xd4, 0xcf, 0xed, 0xd4, 0x06, 0x28, 0x2a, 0x11, 0x3c, 0xba, 0xd9,
+  0x41, 0x6e, 0x00, 0xe7, 0x81, 0x37, 0x93, 0xe4, 0xda, 0x62, 0xc6, 0x1d,
+  0x67, 0x6f, 0x63, 0xb4, 0x14, 0x86, 0xd9, 0xa6, 0x62, 0xf0,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            35:97:31:87:f3:87:3a:07:32:7e:ce:58:0c:9b:7e:da
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+        Validity
+            Not Before: Nov  8 00:00:00 2006 GMT
+            Not After : Nov  7 23:59:59 2021 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+                    4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+                    08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+                    2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+                    8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+                    a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+                    54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+                    d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+                    7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+                    bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+                    f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+                    ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+                    f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+                    21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+                    63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+                    ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+                    9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+                    25:15
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.verisign.com/pca3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.verisign.com/cps
+
+            X509v3 Subject Key Identifier: 
+                7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+            X509v3 Extended Key Usage: 
+                Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1, TLS Web Server Authentication, TLS Web Client Authentication
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.verisign.com
+
+    Signature Algorithm: sha1WithRSAEncryption
+         0f:25:ae:48:ed:1b:33:85:4c:0c:b5:c2:d7:fe:4d:d6:83:28:
+         4c:41:65:60:00:0b:77:48:71:82:fe:7f:db:5a:0e:20:cc:d2:
+         ea:47:bc:64:42:61:44:34:74:30:81:81:26:8a:4a:f7:44:5d:
+         7e:34:80:a8:b8:83:e2:09:d7:6d:23:dd:89:ed:28:08:bd:63:
+         5a:11:57:08:c4:9e:da:e2:68:28:af:dd:50:3c:ec:82:21:d8:
+         00:c2:55:44:50:70:41:ad:83:17:79:ba:08:f3:2b:de:ed:34:
+         1d:44:9e:d2:04:93:f4:cb:05:17:2d:09:2d:2d:63:ef:f6:26:
+         0b:7b
+-----BEGIN CERTIFICATE-----
+MIIExjCCBC+gAwIBAgIQNZcxh/OHOgcyfs5YDJt+2jANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggGRMIIBjTAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwNAYD
+VR0lBC0wKwYJYIZIAYb4QgQBBgpghkgBhvhFAQgBBggrBgEFBQcDAQYIKwYBBQUH
+AwIwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUr
+DgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNp
+Z24uY29tL3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhho
+dHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wDQYJKoZIhvcNAQEFBQADgYEADyWuSO0b
+M4VMDLXC1/5N1oMoTEFlYAALd0hxgv5/21oOIMzS6ke8ZEJhRDR0MIGBJopK90Rd
+fjSAqLiD4gnXbSPdie0oCL1jWhFXCMSe2uJoKK/dUDzsgiHYAMJVRFBwQa2DF3m6
+CPMr3u00HUSe0gST9MsFFy0JLS1j7/YmC3s=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert30[] = {
+  0x30, 0x82, 0x04, 0xc6, 0x30, 0x82, 0x04, 0x2f, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x35, 0x97, 0x31, 0x87, 0xf3, 0x87, 0x3a, 0x07, 0x32,
+  0x7e, 0xce, 0x58, 0x0c, 0x9b, 0x7e, 0xda, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+  0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+  0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+  0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+  0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+  0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+  0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+  0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+  0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+  0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+  0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+  0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+  0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+  0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+  0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+  0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+  0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+  0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+  0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+  0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+  0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+  0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+  0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+  0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+  0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+  0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+  0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+  0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+  0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+  0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+  0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x91, 0x30, 0x82, 0x01, 0x8d, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+  0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+  0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+  0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x34, 0x06, 0x03,
+  0x55, 0x1d, 0x25, 0x04, 0x2d, 0x30, 0x2b, 0x06, 0x09, 0x60, 0x86, 0x48,
+  0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01,
+  0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x02, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59,
+  0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+  0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b,
+  0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac,
+  0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b,
+  0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69,
+  0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67,
+  0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76,
+  0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
+  0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x0f, 0x25, 0xae, 0x48, 0xed, 0x1b,
+  0x33, 0x85, 0x4c, 0x0c, 0xb5, 0xc2, 0xd7, 0xfe, 0x4d, 0xd6, 0x83, 0x28,
+  0x4c, 0x41, 0x65, 0x60, 0x00, 0x0b, 0x77, 0x48, 0x71, 0x82, 0xfe, 0x7f,
+  0xdb, 0x5a, 0x0e, 0x20, 0xcc, 0xd2, 0xea, 0x47, 0xbc, 0x64, 0x42, 0x61,
+  0x44, 0x34, 0x74, 0x30, 0x81, 0x81, 0x26, 0x8a, 0x4a, 0xf7, 0x44, 0x5d,
+  0x7e, 0x34, 0x80, 0xa8, 0xb8, 0x83, 0xe2, 0x09, 0xd7, 0x6d, 0x23, 0xdd,
+  0x89, 0xed, 0x28, 0x08, 0xbd, 0x63, 0x5a, 0x11, 0x57, 0x08, 0xc4, 0x9e,
+  0xda, 0xe2, 0x68, 0x28, 0xaf, 0xdd, 0x50, 0x3c, 0xec, 0x82, 0x21, 0xd8,
+  0x00, 0xc2, 0x55, 0x44, 0x50, 0x70, 0x41, 0xad, 0x83, 0x17, 0x79, 0xba,
+  0x08, 0xf3, 0x2b, 0xde, 0xed, 0x34, 0x1d, 0x44, 0x9e, 0xd2, 0x04, 0x93,
+  0xf4, 0xcb, 0x05, 0x17, 0x2d, 0x09, 0x2d, 0x2d, 0x63, 0xef, 0xf6, 0x26,
+  0x0b, 0x7b,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7 (0x7)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+        Validity
+            Not Before: May  3 07:00:00 2011 GMT
+            Not After : May  3 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b9:e0:cb:10:d4:af:76:bd:d4:93:62:eb:30:64:
+                    b8:81:08:6c:c3:04:d9:62:17:8e:2f:ff:3e:65:cf:
+                    8f:ce:62:e6:3c:52:1c:da:16:45:4b:55:ab:78:6b:
+                    63:83:62:90:ce:0f:69:6c:99:c8:1a:14:8b:4c:cc:
+                    45:33:ea:88:dc:9e:a3:af:2b:fe:80:61:9d:79:57:
+                    c4:cf:2e:f4:3f:30:3c:5d:47:fc:9a:16:bc:c3:37:
+                    96:41:51:8e:11:4b:54:f8:28:be:d0:8c:be:f0:30:
+                    38:1e:f3:b0:26:f8:66:47:63:6d:de:71:26:47:8f:
+                    38:47:53:d1:46:1d:b4:e3:dc:00:ea:45:ac:bd:bc:
+                    71:d9:aa:6f:00:db:db:cd:30:3a:79:4f:5f:4c:47:
+                    f8:1d:ef:5b:c2:c4:9d:60:3b:b1:b2:43:91:d8:a4:
+                    33:4e:ea:b3:d6:27:4f:ad:25:8a:a5:c6:f4:d5:d0:
+                    a6:ae:74:05:64:57:88:b5:44:55:d4:2d:2a:3a:3e:
+                    f8:b8:bd:e9:32:0a:02:94:64:c4:16:3a:50:f1:4a:
+                    ae:e7:79:33:af:0c:20:07:7f:e8:df:04:39:c2:69:
+                    02:6c:63:52:fa:77:c1:1b:c8:74:87:c8:b9:93:18:
+                    50:54:35:4b:69:4e:bc:3b:d3:49:2e:1f:dc:c1:d2:
+                    52:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                40:C2:BD:27:8E:CC:34:83:30:A2:33:D7:FB:6C:B3:F0:B4:2C:80:CE
+            X509v3 Authority Key Identifier: 
+                keyid:3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.godaddy.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.godaddy.com/gdroot-g2.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.godaddy.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         08:7e:6c:93:10:c8:38:b8:96:a9:90:4b:ff:a1:5f:4f:04:ef:
+         6c:3e:9c:88:06:c9:50:8f:a6:73:f7:57:31:1b:be:bc:e4:2f:
+         db:f8:ba:d3:5b:e0:b4:e7:e6:79:62:0e:0c:a2:d7:6a:63:73:
+         31:b5:f5:a8:48:a4:3b:08:2d:a2:5d:90:d7:b4:7c:25:4f:11:
+         56:30:c4:b6:44:9d:7b:2c:9d:e5:5e:e6:ef:0c:61:aa:bf:e4:
+         2a:1b:ee:84:9e:b8:83:7d:c1:43:ce:44:a7:13:70:0d:91:1f:
+         f4:c8:13:ad:83:60:d9:d8:72:a8:73:24:1e:b5:ac:22:0e:ca:
+         17:89:62:58:44:1b:ab:89:25:01:00:0f:cd:c4:1b:62:db:51:
+         b4:d3:0f:51:2a:9b:f4:bc:73:fc:76:ce:36:a4:cd:d9:d8:2c:
+         ea:ae:9b:f5:2a:b2:90:d1:4d:75:18:8a:3f:8a:41:90:23:7d:
+         5b:4b:fe:a4:03:58:9b:46:b2:c3:60:60:83:f8:7d:50:41:ce:
+         c2:a1:90:c3:bb:ef:02:2f:d2:15:54:ee:44:15:d9:0a:ae:a7:
+         8a:33:ed:b1:2d:76:36:26:dc:04:eb:9f:f7:61:1f:15:dc:87:
+         6f:ee:46:96:28:ad:a1:26:7d:0a:09:a7:2e:04:a3:8d:bc:f8:
+         bc:04:30:01
+-----BEGIN CERTIFICATE-----
+MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
+MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
+CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
+EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
+BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
+K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
+cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
+pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
+eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
+AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
+HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
+9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
+b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
+CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
+91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
+RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
+DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
+GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
+LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert31[] = {
+  0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x03, 0xb8, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x83, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+  0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+  0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+  0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64,
+  0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xb4, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+  0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+  0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x47,
+  0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2c, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65,
+  0x72, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+  0x72, 0x79, 0x2f, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x2a, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x53,
+  0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0xe0, 0xcb, 0x10, 0xd4, 0xaf, 0x76,
+  0xbd, 0xd4, 0x93, 0x62, 0xeb, 0x30, 0x64, 0xb8, 0x81, 0x08, 0x6c, 0xc3,
+  0x04, 0xd9, 0x62, 0x17, 0x8e, 0x2f, 0xff, 0x3e, 0x65, 0xcf, 0x8f, 0xce,
+  0x62, 0xe6, 0x3c, 0x52, 0x1c, 0xda, 0x16, 0x45, 0x4b, 0x55, 0xab, 0x78,
+  0x6b, 0x63, 0x83, 0x62, 0x90, 0xce, 0x0f, 0x69, 0x6c, 0x99, 0xc8, 0x1a,
+  0x14, 0x8b, 0x4c, 0xcc, 0x45, 0x33, 0xea, 0x88, 0xdc, 0x9e, 0xa3, 0xaf,
+  0x2b, 0xfe, 0x80, 0x61, 0x9d, 0x79, 0x57, 0xc4, 0xcf, 0x2e, 0xf4, 0x3f,
+  0x30, 0x3c, 0x5d, 0x47, 0xfc, 0x9a, 0x16, 0xbc, 0xc3, 0x37, 0x96, 0x41,
+  0x51, 0x8e, 0x11, 0x4b, 0x54, 0xf8, 0x28, 0xbe, 0xd0, 0x8c, 0xbe, 0xf0,
+  0x30, 0x38, 0x1e, 0xf3, 0xb0, 0x26, 0xf8, 0x66, 0x47, 0x63, 0x6d, 0xde,
+  0x71, 0x26, 0x47, 0x8f, 0x38, 0x47, 0x53, 0xd1, 0x46, 0x1d, 0xb4, 0xe3,
+  0xdc, 0x00, 0xea, 0x45, 0xac, 0xbd, 0xbc, 0x71, 0xd9, 0xaa, 0x6f, 0x00,
+  0xdb, 0xdb, 0xcd, 0x30, 0x3a, 0x79, 0x4f, 0x5f, 0x4c, 0x47, 0xf8, 0x1d,
+  0xef, 0x5b, 0xc2, 0xc4, 0x9d, 0x60, 0x3b, 0xb1, 0xb2, 0x43, 0x91, 0xd8,
+  0xa4, 0x33, 0x4e, 0xea, 0xb3, 0xd6, 0x27, 0x4f, 0xad, 0x25, 0x8a, 0xa5,
+  0xc6, 0xf4, 0xd5, 0xd0, 0xa6, 0xae, 0x74, 0x05, 0x64, 0x57, 0x88, 0xb5,
+  0x44, 0x55, 0xd4, 0x2d, 0x2a, 0x3a, 0x3e, 0xf8, 0xb8, 0xbd, 0xe9, 0x32,
+  0x0a, 0x02, 0x94, 0x64, 0xc4, 0x16, 0x3a, 0x50, 0xf1, 0x4a, 0xae, 0xe7,
+  0x79, 0x33, 0xaf, 0x0c, 0x20, 0x07, 0x7f, 0xe8, 0xdf, 0x04, 0x39, 0xc2,
+  0x69, 0x02, 0x6c, 0x63, 0x52, 0xfa, 0x77, 0xc1, 0x1b, 0xc8, 0x74, 0x87,
+  0xc8, 0xb9, 0x93, 0x18, 0x50, 0x54, 0x35, 0x4b, 0x69, 0x4e, 0xbc, 0x3b,
+  0xd3, 0x49, 0x2e, 0x1f, 0xdc, 0xc1, 0xd2, 0x52, 0xfb, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x1a, 0x30, 0x82, 0x01, 0x16, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x40, 0xc2, 0xbd, 0x27, 0x8e, 0xcc,
+  0x34, 0x83, 0x30, 0xa2, 0x33, 0xd7, 0xfb, 0x6c, 0xb3, 0xf0, 0xb4, 0x2c,
+  0x80, 0xce, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0x3a, 0x9a, 0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef,
+  0xf6, 0xbd, 0x05, 0x41, 0x6e, 0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+  0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67,
+  0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2d, 0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30,
+  0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68,
+  0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73,
+  0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x08, 0x7e, 0x6c, 0x93,
+  0x10, 0xc8, 0x38, 0xb8, 0x96, 0xa9, 0x90, 0x4b, 0xff, 0xa1, 0x5f, 0x4f,
+  0x04, 0xef, 0x6c, 0x3e, 0x9c, 0x88, 0x06, 0xc9, 0x50, 0x8f, 0xa6, 0x73,
+  0xf7, 0x57, 0x31, 0x1b, 0xbe, 0xbc, 0xe4, 0x2f, 0xdb, 0xf8, 0xba, 0xd3,
+  0x5b, 0xe0, 0xb4, 0xe7, 0xe6, 0x79, 0x62, 0x0e, 0x0c, 0xa2, 0xd7, 0x6a,
+  0x63, 0x73, 0x31, 0xb5, 0xf5, 0xa8, 0x48, 0xa4, 0x3b, 0x08, 0x2d, 0xa2,
+  0x5d, 0x90, 0xd7, 0xb4, 0x7c, 0x25, 0x4f, 0x11, 0x56, 0x30, 0xc4, 0xb6,
+  0x44, 0x9d, 0x7b, 0x2c, 0x9d, 0xe5, 0x5e, 0xe6, 0xef, 0x0c, 0x61, 0xaa,
+  0xbf, 0xe4, 0x2a, 0x1b, 0xee, 0x84, 0x9e, 0xb8, 0x83, 0x7d, 0xc1, 0x43,
+  0xce, 0x44, 0xa7, 0x13, 0x70, 0x0d, 0x91, 0x1f, 0xf4, 0xc8, 0x13, 0xad,
+  0x83, 0x60, 0xd9, 0xd8, 0x72, 0xa8, 0x73, 0x24, 0x1e, 0xb5, 0xac, 0x22,
+  0x0e, 0xca, 0x17, 0x89, 0x62, 0x58, 0x44, 0x1b, 0xab, 0x89, 0x25, 0x01,
+  0x00, 0x0f, 0xcd, 0xc4, 0x1b, 0x62, 0xdb, 0x51, 0xb4, 0xd3, 0x0f, 0x51,
+  0x2a, 0x9b, 0xf4, 0xbc, 0x73, 0xfc, 0x76, 0xce, 0x36, 0xa4, 0xcd, 0xd9,
+  0xd8, 0x2c, 0xea, 0xae, 0x9b, 0xf5, 0x2a, 0xb2, 0x90, 0xd1, 0x4d, 0x75,
+  0x18, 0x8a, 0x3f, 0x8a, 0x41, 0x90, 0x23, 0x7d, 0x5b, 0x4b, 0xfe, 0xa4,
+  0x03, 0x58, 0x9b, 0x46, 0xb2, 0xc3, 0x60, 0x60, 0x83, 0xf8, 0x7d, 0x50,
+  0x41, 0xce, 0xc2, 0xa1, 0x90, 0xc3, 0xbb, 0xef, 0x02, 0x2f, 0xd2, 0x15,
+  0x54, 0xee, 0x44, 0x15, 0xd9, 0x0a, 0xae, 0xa7, 0x8a, 0x33, 0xed, 0xb1,
+  0x2d, 0x76, 0x36, 0x26, 0xdc, 0x04, 0xeb, 0x9f, 0xf7, 0x61, 0x1f, 0x15,
+  0xdc, 0x87, 0x6f, 0xee, 0x46, 0x96, 0x28, 0xad, 0xa1, 0x26, 0x7d, 0x0a,
+  0x09, 0xa7, 0x2e, 0x04, 0xa3, 0x8d, 0xbc, 0xf8, 0xbc, 0x04, 0x30, 0x01,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            0a:48:9e:88:53:7e:8a:a6:45:4d:6e:2c:4b:2a:eb:20
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
+        Validity
+            Not Before: Apr  9 00:00:00 2013 GMT
+            Not After : Apr  8 23:59:59 2023 GMT
+        Subject: C=US, O=thawte, Inc., CN=thawte Extended Validation SHA256 SSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:f2:c4:bc:74:e8:25:f6:00:62:28:e3:4c:e8:b8:
+                    df:13:9f:8b:07:37:ef:62:4a:f1:57:09:f6:82:e8:
+                    75:f0:0a:a9:27:cf:93:3b:ec:36:89:a5:6e:1d:d6:
+                    54:f3:b8:04:97:72:b4:69:25:cc:d1:42:0e:5b:d5:
+                    1c:7f:a2:60:6e:b1:52:1a:db:93:2f:bb:0b:0d:64:
+                    53:16:cb:1c:09:24:95:29:22:b4:8a:18:00:89:fe:
+                    f7:1f:72:c8:e8:5c:2f:1a:1b:a2:18:b8:ef:18:5c:
+                    cb:b5:db:3a:4e:db:0f:ae:df:c4:79:e3:1e:aa:5c:
+                    a3:a4:e5:ac:61:9b:37:85:8f:48:75:1b:b9:d5:68:
+                    96:e9:27:79:70:57:23:1a:bb:6c:93:90:c7:45:d7:
+                    17:d2:37:2a:76:b3:cd:82:a9:4f:c0:03:7b:e1:3d:
+                    7a:7e:5b:b8:85:f2:f5:15:fb:70:a9:bd:f5:50:65:
+                    16:9d:e3:b6:6b:61:6e:a1:7a:9e:e8:0d:1c:f7:2a:
+                    8e:69:7e:43:30:8e:78:ce:ee:65:1e:3b:9b:87:1e:
+                    49:1c:f8:32:46:5d:28:46:79:2a:4e:27:5d:17:58:
+                    a8:37:fe:a8:13:a9:69:15:df:36:22:89:75:ba:ca:
+                    01:40:2e:ed:9d:d7:0c:aa:31:ce:27:ae:57:d5:d2:
+                    51:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.thawte.com
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.thawte.com/ThawtePCA-G3.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-374
+            X509v3 Subject Key Identifier: 
+                3B:24:C8:31:A0:B7:5A:D0:6A:B8:D2:CA:07:74:CC:1E:24:D4:C4:DC
+            X509v3 Authority Key Identifier: 
+                keyid:AD:6C:AA:94:60:9C:ED:E4:FF:FA:3E:0A:74:2B:63:03:F7:B6:59:BF
+
+    Signature Algorithm: sha256WithRSAEncryption
+         68:98:26:aa:d4:33:c9:ba:75:70:d4:9f:49:ad:d6:c1:54:dc:
+         ee:aa:56:1f:78:a7:f0:a1:a4:ee:0b:f9:12:af:df:a6:b8:ee:
+         c3:cb:35:13:6a:59:2a:f8:c9:e9:4c:2f:bc:b1:bc:2b:c2:02:
+         30:e1:c3:be:c2:f0:81:8c:99:77:89:58:00:a3:cc:7f:a3:02:
+         4c:53:b2:6e:36:4f:fe:df:87:76:b3:3f:ec:5a:62:50:b6:00:
+         45:58:f2:87:ac:77:e6:d0:20:50:63:c5:e4:b2:70:15:18:90:
+         05:7b:7b:af:2b:46:be:6b:4e:1f:53:fc:84:27:ae:83:d2:8d:
+         47:53:a7:0e:1f:63:b5:ba:db:16:d8:6a:09:25:55:7d:8f:3d:
+         4a:c1:83:f9:b3:b9:a7:04:5a:c8:f3:11:04:91:53:30:d9:52:
+         87:cb:39:00:9c:ec:53:c3:02:09:7e:a7:36:8e:72:21:2f:23:
+         bb:4c:c6:47:a5:a1:ee:67:c4:2f:5c:3a:47:38:61:e2:c3:1e:
+         37:92:9e:c8:2f:6b:fa:ef:d2:c3:cd:29:8d:98:f8:52:17:ed:
+         b5:53:3c:df:af:c9:1b:62:ad:df:02:ee:5d:34:f6:41:4b:cb:
+         c3:55:af:b1:cb:da:9c:73:d5:02:a8:2d:a7:ac:fc:e1:e5:07:
+         d0:51:e8:35
+-----BEGIN CERTIFICATE-----
+MIIE0DCCA7igAwIBAgIQCkieiFN+iqZFTW4sSyrrIDANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0xMzA0MDkwMDAwMDBa
+Fw0yMzA0MDgyMzU5NTlaMFcxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUs
+IEluYy4xMTAvBgNVBAMTKHRoYXd0ZSBFeHRlbmRlZCBWYWxpZGF0aW9uIFNIQTI1
+NiBTU0wgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDyxLx06CX2
+AGIo40zouN8Tn4sHN+9iSvFXCfaC6HXwCqknz5M77DaJpW4d1lTzuASXcrRpJczR
+Qg5b1Rx/omBusVIa25MvuwsNZFMWyxwJJJUpIrSKGACJ/vcfcsjoXC8aG6IYuO8Y
+XMu12zpO2w+u38R54x6qXKOk5axhmzeFj0h1G7nVaJbpJ3lwVyMau2yTkMdF1xfS
+Nyp2s82CqU/AA3vhPXp+W7iF8vUV+3CpvfVQZRad47ZrYW6hep7oDRz3Ko5pfkMw
+jnjO7mUeO5uHHkkc+DJGXShGeSpOJ10XWKg3/qgTqWkV3zYiiXW6ygFALu2d1wyq
+Mc4nrlfV0lH7AgMBAAGjggE+MIIBOjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud
+DwEB/wQEAwIBBjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9v
+Y3NwLnRoYXd0ZS5jb20wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEW
+Gmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3BzMDcGA1UdHwQwMC4wLKAqoCiGJmh0
+dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0EtRzMuY3JsMCoGA1UdEQQjMCGk
+HzAdMRswGQYDVQQDExJWZXJpU2lnbk1QS0ktMi0zNzQwHQYDVR0OBBYEFDskyDGg
+t1rQarjSygd0zB4k1MTcMB8GA1UdIwQYMBaAFK1sqpRgnO3k//o+CnQrYwP3tlm/
+MA0GCSqGSIb3DQEBCwUAA4IBAQBomCaq1DPJunVw1J9JrdbBVNzuqlYfeKfwoaTu
+C/kSr9+muO7DyzUTalkq+MnpTC+8sbwrwgIw4cO+wvCBjJl3iVgAo8x/owJMU7Ju
+Nk/+34d2sz/sWmJQtgBFWPKHrHfm0CBQY8XksnAVGJAFe3uvK0a+a04fU/yEJ66D
+0o1HU6cOH2O1utsW2GoJJVV9jz1KwYP5s7mnBFrI8xEEkVMw2VKHyzkAnOxTwwIJ
+fqc2jnIhLyO7TMZHpaHuZ8QvXDpHOGHiwx43kp7IL2v679LDzSmNmPhSF+21Uzzf
+r8kbYq3fAu5dNPZBS8vDVa+xy9qcc9UCqC2nrPzh5QfQUeg1
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert32[] = {
+  0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x03, 0xb8, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x0a, 0x48, 0x9e, 0x88, 0x53, 0x7e, 0x8a, 0xa6, 0x45,
+  0x4d, 0x6e, 0x2c, 0x4b, 0x2a, 0xeb, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x38, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x1b, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+  0x33, 0x30, 0x34, 0x30, 0x39, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
+  0x17, 0x0d, 0x32, 0x33, 0x30, 0x34, 0x30, 0x38, 0x32, 0x33, 0x35, 0x39,
+  0x35, 0x39, 0x5a, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03,
+  0x55, 0x04, 0x0a, 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x28, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x45,
+  0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56, 0x61, 0x6c, 0x69,
+  0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35,
+  0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xf2, 0xc4, 0xbc, 0x74, 0xe8, 0x25, 0xf6,
+  0x00, 0x62, 0x28, 0xe3, 0x4c, 0xe8, 0xb8, 0xdf, 0x13, 0x9f, 0x8b, 0x07,
+  0x37, 0xef, 0x62, 0x4a, 0xf1, 0x57, 0x09, 0xf6, 0x82, 0xe8, 0x75, 0xf0,
+  0x0a, 0xa9, 0x27, 0xcf, 0x93, 0x3b, 0xec, 0x36, 0x89, 0xa5, 0x6e, 0x1d,
+  0xd6, 0x54, 0xf3, 0xb8, 0x04, 0x97, 0x72, 0xb4, 0x69, 0x25, 0xcc, 0xd1,
+  0x42, 0x0e, 0x5b, 0xd5, 0x1c, 0x7f, 0xa2, 0x60, 0x6e, 0xb1, 0x52, 0x1a,
+  0xdb, 0x93, 0x2f, 0xbb, 0x0b, 0x0d, 0x64, 0x53, 0x16, 0xcb, 0x1c, 0x09,
+  0x24, 0x95, 0x29, 0x22, 0xb4, 0x8a, 0x18, 0x00, 0x89, 0xfe, 0xf7, 0x1f,
+  0x72, 0xc8, 0xe8, 0x5c, 0x2f, 0x1a, 0x1b, 0xa2, 0x18, 0xb8, 0xef, 0x18,
+  0x5c, 0xcb, 0xb5, 0xdb, 0x3a, 0x4e, 0xdb, 0x0f, 0xae, 0xdf, 0xc4, 0x79,
+  0xe3, 0x1e, 0xaa, 0x5c, 0xa3, 0xa4, 0xe5, 0xac, 0x61, 0x9b, 0x37, 0x85,
+  0x8f, 0x48, 0x75, 0x1b, 0xb9, 0xd5, 0x68, 0x96, 0xe9, 0x27, 0x79, 0x70,
+  0x57, 0x23, 0x1a, 0xbb, 0x6c, 0x93, 0x90, 0xc7, 0x45, 0xd7, 0x17, 0xd2,
+  0x37, 0x2a, 0x76, 0xb3, 0xcd, 0x82, 0xa9, 0x4f, 0xc0, 0x03, 0x7b, 0xe1,
+  0x3d, 0x7a, 0x7e, 0x5b, 0xb8, 0x85, 0xf2, 0xf5, 0x15, 0xfb, 0x70, 0xa9,
+  0xbd, 0xf5, 0x50, 0x65, 0x16, 0x9d, 0xe3, 0xb6, 0x6b, 0x61, 0x6e, 0xa1,
+  0x7a, 0x9e, 0xe8, 0x0d, 0x1c, 0xf7, 0x2a, 0x8e, 0x69, 0x7e, 0x43, 0x30,
+  0x8e, 0x78, 0xce, 0xee, 0x65, 0x1e, 0x3b, 0x9b, 0x87, 0x1e, 0x49, 0x1c,
+  0xf8, 0x32, 0x46, 0x5d, 0x28, 0x46, 0x79, 0x2a, 0x4e, 0x27, 0x5d, 0x17,
+  0x58, 0xa8, 0x37, 0xfe, 0xa8, 0x13, 0xa9, 0x69, 0x15, 0xdf, 0x36, 0x22,
+  0x89, 0x75, 0xba, 0xca, 0x01, 0x40, 0x2e, 0xed, 0x9d, 0xd7, 0x0c, 0xaa,
+  0x31, 0xce, 0x27, 0xae, 0x57, 0xd5, 0xd2, 0x51, 0xfb, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x3e, 0x30, 0x82, 0x01, 0x3a, 0x30, 0x12,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+  0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x32,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x26,
+  0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f,
+  0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63,
+  0x6f, 0x6d, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30,
+  0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30,
+  0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+  0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+  0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x70, 0x73, 0x30, 0x37, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30,
+  0x30, 0x2e, 0x30, 0x2c, 0xa0, 0x2a, 0xa0, 0x28, 0x86, 0x26, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61,
+  0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77,
+  0x74, 0x65, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21, 0xa4,
+  0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50,
+  0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x33, 0x37, 0x34, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3b, 0x24, 0xc8, 0x31, 0xa0,
+  0xb7, 0x5a, 0xd0, 0x6a, 0xb8, 0xd2, 0xca, 0x07, 0x74, 0xcc, 0x1e, 0x24,
+  0xd4, 0xc4, 0xdc, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+  0x30, 0x16, 0x80, 0x14, 0xad, 0x6c, 0xaa, 0x94, 0x60, 0x9c, 0xed, 0xe4,
+  0xff, 0xfa, 0x3e, 0x0a, 0x74, 0x2b, 0x63, 0x03, 0xf7, 0xb6, 0x59, 0xbf,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x68, 0x98, 0x26, 0xaa,
+  0xd4, 0x33, 0xc9, 0xba, 0x75, 0x70, 0xd4, 0x9f, 0x49, 0xad, 0xd6, 0xc1,
+  0x54, 0xdc, 0xee, 0xaa, 0x56, 0x1f, 0x78, 0xa7, 0xf0, 0xa1, 0xa4, 0xee,
+  0x0b, 0xf9, 0x12, 0xaf, 0xdf, 0xa6, 0xb8, 0xee, 0xc3, 0xcb, 0x35, 0x13,
+  0x6a, 0x59, 0x2a, 0xf8, 0xc9, 0xe9, 0x4c, 0x2f, 0xbc, 0xb1, 0xbc, 0x2b,
+  0xc2, 0x02, 0x30, 0xe1, 0xc3, 0xbe, 0xc2, 0xf0, 0x81, 0x8c, 0x99, 0x77,
+  0x89, 0x58, 0x00, 0xa3, 0xcc, 0x7f, 0xa3, 0x02, 0x4c, 0x53, 0xb2, 0x6e,
+  0x36, 0x4f, 0xfe, 0xdf, 0x87, 0x76, 0xb3, 0x3f, 0xec, 0x5a, 0x62, 0x50,
+  0xb6, 0x00, 0x45, 0x58, 0xf2, 0x87, 0xac, 0x77, 0xe6, 0xd0, 0x20, 0x50,
+  0x63, 0xc5, 0xe4, 0xb2, 0x70, 0x15, 0x18, 0x90, 0x05, 0x7b, 0x7b, 0xaf,
+  0x2b, 0x46, 0xbe, 0x6b, 0x4e, 0x1f, 0x53, 0xfc, 0x84, 0x27, 0xae, 0x83,
+  0xd2, 0x8d, 0x47, 0x53, 0xa7, 0x0e, 0x1f, 0x63, 0xb5, 0xba, 0xdb, 0x16,
+  0xd8, 0x6a, 0x09, 0x25, 0x55, 0x7d, 0x8f, 0x3d, 0x4a, 0xc1, 0x83, 0xf9,
+  0xb3, 0xb9, 0xa7, 0x04, 0x5a, 0xc8, 0xf3, 0x11, 0x04, 0x91, 0x53, 0x30,
+  0xd9, 0x52, 0x87, 0xcb, 0x39, 0x00, 0x9c, 0xec, 0x53, 0xc3, 0x02, 0x09,
+  0x7e, 0xa7, 0x36, 0x8e, 0x72, 0x21, 0x2f, 0x23, 0xbb, 0x4c, 0xc6, 0x47,
+  0xa5, 0xa1, 0xee, 0x67, 0xc4, 0x2f, 0x5c, 0x3a, 0x47, 0x38, 0x61, 0xe2,
+  0xc3, 0x1e, 0x37, 0x92, 0x9e, 0xc8, 0x2f, 0x6b, 0xfa, 0xef, 0xd2, 0xc3,
+  0xcd, 0x29, 0x8d, 0x98, 0xf8, 0x52, 0x17, 0xed, 0xb5, 0x53, 0x3c, 0xdf,
+  0xaf, 0xc9, 0x1b, 0x62, 0xad, 0xdf, 0x02, 0xee, 0x5d, 0x34, 0xf6, 0x41,
+  0x4b, 0xcb, 0xc3, 0x55, 0xaf, 0xb1, 0xcb, 0xda, 0x9c, 0x73, 0xd5, 0x02,
+  0xa8, 0x2d, 0xa7, 0xac, 0xfc, 0xe1, 0xe5, 0x07, 0xd0, 0x51, 0xe8, 0x35,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            25:0c:e8:e0:30:61:2e:9f:2b:89:f7:05:4d:7c:f8:fd
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+        Validity
+            Not Before: Nov  8 00:00:00 2006 GMT
+            Not After : Nov  7 23:59:59 2021 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+                    4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+                    08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+                    2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+                    8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+                    a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+                    54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+                    d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+                    7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+                    bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+                    f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+                    ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+                    f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+                    21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+                    63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+                    ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+                    9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+                    25:15
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.verisign.com/pca3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.verisign.com/cps
+
+            X509v3 Subject Key Identifier: 
+                7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.verisign.com
+
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication, Code Signing, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1
+    Signature Algorithm: sha1WithRSAEncryption
+         13:02:dd:f8:e8:86:00:f2:5a:f8:f8:20:0c:59:88:62:07:ce:
+         ce:f7:4e:f9:bb:59:a1:98:e5:e1:38:dd:4e:bc:66:18:d3:ad:
+         eb:18:f2:0d:c9:6d:3e:4a:94:20:c3:3c:ba:bd:65:54:c6:af:
+         44:b3:10:ad:2c:6b:3e:ab:d7:07:b6:b8:81:63:c5:f9:5e:2e:
+         e5:2a:67:ce:cd:33:0c:2a:d7:89:56:03:23:1f:b3:be:e8:3a:
+         08:59:b4:ec:45:35:f7:8a:5b:ff:66:cf:50:af:c6:6d:57:8d:
+         19:78:b7:b9:a2:d1:57:ea:1f:9a:4b:af:ba:c9:8e:12:7e:c6:
+         bd:ff
+-----BEGIN CERTIFICATE-----
+MIIE0DCCBDmgAwIBAgIQJQzo4DBhLp8rifcFTXz4/TANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggGbMIIBlzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wPgYDVR0lBDcwNQYIKwYBBQUHAwEGCCsGAQUFBwMC
+BggrBgEFBQcDAwYJYIZIAYb4QgQBBgpghkgBhvhFAQgBMA0GCSqGSIb3DQEBBQUA
+A4GBABMC3fjohgDyWvj4IAxZiGIHzs73Tvm7WaGY5eE43U68ZhjTresY8g3JbT5K
+lCDDPLq9ZVTGr0SzEK0saz6r1we2uIFjxfleLuUqZ87NMwwq14lWAyMfs77oOghZ
+tOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert33[] = {
+  0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x04, 0x39, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x25, 0x0c, 0xe8, 0xe0, 0x30, 0x61, 0x2e, 0x9f, 0x2b,
+  0x89, 0xf7, 0x05, 0x4d, 0x7c, 0xf8, 0xfd, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+  0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+  0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+  0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+  0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+  0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+  0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+  0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+  0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+  0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+  0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+  0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+  0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+  0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+  0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+  0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+  0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+  0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+  0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+  0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+  0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+  0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+  0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+  0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+  0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+  0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+  0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+  0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+  0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+  0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+  0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x9b, 0x30, 0x82, 0x01, 0x97, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+  0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+  0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+  0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+  0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+  0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+  0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+  0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+  0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x1d, 0x25,
+  0x04, 0x37, 0x30, 0x35, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06, 0x09,
+  0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60,
+  0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+  0x03, 0x81, 0x81, 0x00, 0x13, 0x02, 0xdd, 0xf8, 0xe8, 0x86, 0x00, 0xf2,
+  0x5a, 0xf8, 0xf8, 0x20, 0x0c, 0x59, 0x88, 0x62, 0x07, 0xce, 0xce, 0xf7,
+  0x4e, 0xf9, 0xbb, 0x59, 0xa1, 0x98, 0xe5, 0xe1, 0x38, 0xdd, 0x4e, 0xbc,
+  0x66, 0x18, 0xd3, 0xad, 0xeb, 0x18, 0xf2, 0x0d, 0xc9, 0x6d, 0x3e, 0x4a,
+  0x94, 0x20, 0xc3, 0x3c, 0xba, 0xbd, 0x65, 0x54, 0xc6, 0xaf, 0x44, 0xb3,
+  0x10, 0xad, 0x2c, 0x6b, 0x3e, 0xab, 0xd7, 0x07, 0xb6, 0xb8, 0x81, 0x63,
+  0xc5, 0xf9, 0x5e, 0x2e, 0xe5, 0x2a, 0x67, 0xce, 0xcd, 0x33, 0x0c, 0x2a,
+  0xd7, 0x89, 0x56, 0x03, 0x23, 0x1f, 0xb3, 0xbe, 0xe8, 0x3a, 0x08, 0x59,
+  0xb4, 0xec, 0x45, 0x35, 0xf7, 0x8a, 0x5b, 0xff, 0x66, 0xcf, 0x50, 0xaf,
+  0xc6, 0x6d, 0x57, 0x8d, 0x19, 0x78, 0xb7, 0xb9, 0xa2, 0xd1, 0x57, 0xea,
+  0x1f, 0x9a, 0x4b, 0xaf, 0xba, 0xc9, 0x8e, 0x12, 0x7e, 0xc6, 0xbd, 0xff,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            2c:69:e1:2f:6a:67:0b:d9:9d:d2:0f:91:9e:f0:9e:51
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Jun 10 00:00:00 2014 GMT
+            Not After : Jun  9 23:59:59 2024 GMT
+        Subject: C=US, O=thawte, Inc., OU=Domain Validated SSL, CN=thawte DV SSL CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ea:94:07:85:c8:41:2c:f6:83:12:6c:92:5f:ab:
+                    1f:00:d4:96:6f:74:cd:2e:11:e9:6c:0f:39:01:b9:
+                    48:90:40:39:4d:c4:a2:c8:79:6a:a5:9a:bd:91:44:
+                    65:77:54:ad:ff:25:5f:ee:42:fb:b3:02:0f:ea:5d:
+                    7a:dd:1a:54:9e:d7:73:42:9b:cc:79:5f:c5:4d:f4:
+                    b7:0b:18:39:20:7a:dd:50:01:5d:34:45:5f:4c:11:
+                    0e:f5:87:26:26:b4:b0:f3:7e:71:a0:31:71:50:89:
+                    68:5a:63:8a:14:62:e5:8c:3a:16:55:0d:3e:eb:aa:
+                    80:1d:71:7a:e3:87:07:ab:bd:a2:74:cd:da:08:01:
+                    9d:1b:cc:27:88:8c:47:d4:69:25:42:d6:bb:50:6d:
+                    85:50:d0:48:82:0d:08:9f:e9:23:e3:42:c6:3c:98:
+                    b8:bb:6e:c5:70:13:df:19:1d:01:fd:d2:b5:4e:e6:
+                    62:f4:07:fa:6b:7d:11:77:c4:62:4f:40:4e:a5:78:
+                    97:ab:2c:4d:0c:a7:7c:c3:c4:50:32:9f:d0:70:9b:
+                    0f:ff:ff:75:59:34:85:ad:49:d5:35:ee:4f:5b:d4:
+                    d4:36:95:a0:7e:e8:c5:a1:1c:bd:13:4e:7d:ee:63:
+                    6a:96:19:99:c8:a7:2a:00:e6:51:8d:46:eb:30:58:
+                    e8:2d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://t.symcd.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://t.symcb.com/ThawtePCA.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-698
+            X509v3 Subject Key Identifier: 
+                9F:B8:C1:A9:6C:F2:F5:C0:22:2A:94:ED:5C:99:AC:D4:EC:D7:C6:07
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha256WithRSAEncryption
+         53:54:f2:47:a8:02:d7:ef:aa:35:78:be:4a:08:0d:90:18:4b:
+         6d:9e:2a:53:2b:e9:54:17:77:74:29:7e:d0:37:07:05:b8:e4:
+         fa:b8:b4:63:98:44:dc:c6:4f:81:06:8c:3a:be:c7:30:57:c6:
+         70:fc:d6:93:19:9f:c3:55:d7:3e:1f:72:8a:9d:30:5a:35:97:
+         32:cb:63:e4:c6:72:df:fb:68:ca:69:2f:db:cd:50:38:3e:2b:
+         bb:ab:3b:82:c7:fd:4b:9b:bd:7c:41:98:ef:01:53:d8:35:8f:
+         25:c9:03:06:e6:9c:57:c1:51:0f:9e:f6:7d:93:4d:f8:76:c8:
+         3a:6b:f4:c4:8f:33:32:7f:9d:21:84:34:d9:a7:f9:92:fa:41:
+         91:61:84:05:9d:a3:79:46:ce:67:e7:81:f2:5e:ac:4c:bc:a8:
+         ab:6a:6d:15:e2:9c:4e:5a:d9:63:80:bc:f7:42:eb:9a:44:c6:
+         8c:6b:06:36:b4:8b:32:89:de:c2:f1:a8:26:aa:a9:ac:ff:ea:
+         71:a6:e7:8c:41:fa:17:35:bb:b3:87:31:a9:93:c2:c8:58:e1:
+         0a:4e:95:83:9c:b9:ed:3b:a5:ef:08:e0:74:f9:c3:1b:e6:07:
+         a3:ee:07:d7:42:22:79:21:a0:a1:d4:1d:26:d3:d0:d6:a6:5d:
+         2b:41:c0:79
+-----BEGIN CERTIFICATE-----
+MIIE0jCCA7qgAwIBAgIQLGnhL2pnC9md0g+RnvCeUTANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTQwNjEwMDAwMDAwWhcNMjQw
+NjA5MjM1OTU5WjBjMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEeMBwGA1UEAxMVdGhhd3Rl
+IERWIFNTTCBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+6pQHhchBLPaDEmySX6sfANSWb3TNLhHpbA85AblIkEA5TcSiyHlqpZq9kURld1St
+/yVf7kL7swIP6l163RpUntdzQpvMeV/FTfS3Cxg5IHrdUAFdNEVfTBEO9YcmJrSw
+835xoDFxUIloWmOKFGLljDoWVQ0+66qAHXF644cHq72idM3aCAGdG8wniIxH1Gkl
+Qta7UG2FUNBIgg0In+kj40LGPJi4u27FcBPfGR0B/dK1TuZi9Af6a30Rd8RiT0BO
+pXiXqyxNDKd8w8RQMp/QcJsP//91WTSFrUnVNe5PW9TUNpWgfujFoRy9E0597mNq
+lhmZyKcqAOZRjUbrMFjoLQIDAQABo4IBOTCCATUwEgYDVR0TAQH/BAgwBgEB/wIB
+ADBBBgNVHSAEOjA4MDYGCmCGSAGG+EUBBzYwKDAmBggrBgEFBQcCARYaaHR0cHM6
+Ly93d3cudGhhd3RlLmNvbS9jcHMwDgYDVR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEB
+BCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL3Quc3ltY2QuY29tMDEGA1UdHwQqMCgw
+JqAkoCKGIGh0dHA6Ly90LnN5bWNiLmNvbS9UaGF3dGVQQ0EuY3JsMCkGA1UdEQQi
+MCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTY5ODAdBgNVHQ4EFgQUn7jB
+qWzy9cAiKpTtXJms1OzXxgcwHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutX
+SFAwDQYJKoZIhvcNAQELBQADggEBAFNU8keoAtfvqjV4vkoIDZAYS22eKlMr6VQX
+d3QpftA3BwW45Pq4tGOYRNzGT4EGjDq+xzBXxnD81pMZn8NV1z4fcoqdMFo1lzLL
+Y+TGct/7aMppL9vNUDg+K7urO4LH/UubvXxBmO8BU9g1jyXJAwbmnFfBUQ+e9n2T
+Tfh2yDpr9MSPMzJ/nSGENNmn+ZL6QZFhhAWdo3lGzmfngfJerEy8qKtqbRXinE5a
+2WOAvPdC65pExoxrBja0izKJ3sLxqCaqqaz/6nGm54xB+hc1u7OHMamTwshY4QpO
+lYOcue07pe8I4HT5wxvmB6PuB9dCInkhoKHUHSbT0NamXStBwHk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert34[] = {
+  0x30, 0x82, 0x04, 0xd2, 0x30, 0x82, 0x03, 0xba, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x2c, 0x69, 0xe1, 0x2f, 0x6a, 0x67, 0x0b, 0xd9, 0x9d,
+  0xd2, 0x0f, 0x91, 0x9e, 0xf0, 0x9e, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31, 0x30,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30,
+  0x36, 0x30, 0x39, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x63,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x14, 0x44,
+  0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+  0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31, 0x1e, 0x30, 0x1c, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x20, 0x44, 0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+  0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xea, 0x94, 0x07, 0x85, 0xc8, 0x41, 0x2c, 0xf6, 0x83, 0x12, 0x6c, 0x92,
+  0x5f, 0xab, 0x1f, 0x00, 0xd4, 0x96, 0x6f, 0x74, 0xcd, 0x2e, 0x11, 0xe9,
+  0x6c, 0x0f, 0x39, 0x01, 0xb9, 0x48, 0x90, 0x40, 0x39, 0x4d, 0xc4, 0xa2,
+  0xc8, 0x79, 0x6a, 0xa5, 0x9a, 0xbd, 0x91, 0x44, 0x65, 0x77, 0x54, 0xad,
+  0xff, 0x25, 0x5f, 0xee, 0x42, 0xfb, 0xb3, 0x02, 0x0f, 0xea, 0x5d, 0x7a,
+  0xdd, 0x1a, 0x54, 0x9e, 0xd7, 0x73, 0x42, 0x9b, 0xcc, 0x79, 0x5f, 0xc5,
+  0x4d, 0xf4, 0xb7, 0x0b, 0x18, 0x39, 0x20, 0x7a, 0xdd, 0x50, 0x01, 0x5d,
+  0x34, 0x45, 0x5f, 0x4c, 0x11, 0x0e, 0xf5, 0x87, 0x26, 0x26, 0xb4, 0xb0,
+  0xf3, 0x7e, 0x71, 0xa0, 0x31, 0x71, 0x50, 0x89, 0x68, 0x5a, 0x63, 0x8a,
+  0x14, 0x62, 0xe5, 0x8c, 0x3a, 0x16, 0x55, 0x0d, 0x3e, 0xeb, 0xaa, 0x80,
+  0x1d, 0x71, 0x7a, 0xe3, 0x87, 0x07, 0xab, 0xbd, 0xa2, 0x74, 0xcd, 0xda,
+  0x08, 0x01, 0x9d, 0x1b, 0xcc, 0x27, 0x88, 0x8c, 0x47, 0xd4, 0x69, 0x25,
+  0x42, 0xd6, 0xbb, 0x50, 0x6d, 0x85, 0x50, 0xd0, 0x48, 0x82, 0x0d, 0x08,
+  0x9f, 0xe9, 0x23, 0xe3, 0x42, 0xc6, 0x3c, 0x98, 0xb8, 0xbb, 0x6e, 0xc5,
+  0x70, 0x13, 0xdf, 0x19, 0x1d, 0x01, 0xfd, 0xd2, 0xb5, 0x4e, 0xe6, 0x62,
+  0xf4, 0x07, 0xfa, 0x6b, 0x7d, 0x11, 0x77, 0xc4, 0x62, 0x4f, 0x40, 0x4e,
+  0xa5, 0x78, 0x97, 0xab, 0x2c, 0x4d, 0x0c, 0xa7, 0x7c, 0xc3, 0xc4, 0x50,
+  0x32, 0x9f, 0xd0, 0x70, 0x9b, 0x0f, 0xff, 0xff, 0x75, 0x59, 0x34, 0x85,
+  0xad, 0x49, 0xd5, 0x35, 0xee, 0x4f, 0x5b, 0xd4, 0xd4, 0x36, 0x95, 0xa0,
+  0x7e, 0xe8, 0xc5, 0xa1, 0x1c, 0xbd, 0x13, 0x4e, 0x7d, 0xee, 0x63, 0x6a,
+  0x96, 0x19, 0x99, 0xc8, 0xa7, 0x2a, 0x00, 0xe6, 0x51, 0x8d, 0x46, 0xeb,
+  0x30, 0x58, 0xe8, 0x2d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+  0x39, 0x30, 0x82, 0x01, 0x35, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38,
+  0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01,
+  0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06, 0x03,
+  0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+  0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a, 0x30, 0x28, 0x30,
+  0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22,
+  0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65,
+  0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x36, 0x39, 0x38, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x9f, 0xb8, 0xc1,
+  0xa9, 0x6c, 0xf2, 0xf5, 0xc0, 0x22, 0x2a, 0x94, 0xed, 0x5c, 0x99, 0xac,
+  0xd4, 0xec, 0xd7, 0xc6, 0x07, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce,
+  0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57,
+  0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x53, 0x54,
+  0xf2, 0x47, 0xa8, 0x02, 0xd7, 0xef, 0xaa, 0x35, 0x78, 0xbe, 0x4a, 0x08,
+  0x0d, 0x90, 0x18, 0x4b, 0x6d, 0x9e, 0x2a, 0x53, 0x2b, 0xe9, 0x54, 0x17,
+  0x77, 0x74, 0x29, 0x7e, 0xd0, 0x37, 0x07, 0x05, 0xb8, 0xe4, 0xfa, 0xb8,
+  0xb4, 0x63, 0x98, 0x44, 0xdc, 0xc6, 0x4f, 0x81, 0x06, 0x8c, 0x3a, 0xbe,
+  0xc7, 0x30, 0x57, 0xc6, 0x70, 0xfc, 0xd6, 0x93, 0x19, 0x9f, 0xc3, 0x55,
+  0xd7, 0x3e, 0x1f, 0x72, 0x8a, 0x9d, 0x30, 0x5a, 0x35, 0x97, 0x32, 0xcb,
+  0x63, 0xe4, 0xc6, 0x72, 0xdf, 0xfb, 0x68, 0xca, 0x69, 0x2f, 0xdb, 0xcd,
+  0x50, 0x38, 0x3e, 0x2b, 0xbb, 0xab, 0x3b, 0x82, 0xc7, 0xfd, 0x4b, 0x9b,
+  0xbd, 0x7c, 0x41, 0x98, 0xef, 0x01, 0x53, 0xd8, 0x35, 0x8f, 0x25, 0xc9,
+  0x03, 0x06, 0xe6, 0x9c, 0x57, 0xc1, 0x51, 0x0f, 0x9e, 0xf6, 0x7d, 0x93,
+  0x4d, 0xf8, 0x76, 0xc8, 0x3a, 0x6b, 0xf4, 0xc4, 0x8f, 0x33, 0x32, 0x7f,
+  0x9d, 0x21, 0x84, 0x34, 0xd9, 0xa7, 0xf9, 0x92, 0xfa, 0x41, 0x91, 0x61,
+  0x84, 0x05, 0x9d, 0xa3, 0x79, 0x46, 0xce, 0x67, 0xe7, 0x81, 0xf2, 0x5e,
+  0xac, 0x4c, 0xbc, 0xa8, 0xab, 0x6a, 0x6d, 0x15, 0xe2, 0x9c, 0x4e, 0x5a,
+  0xd9, 0x63, 0x80, 0xbc, 0xf7, 0x42, 0xeb, 0x9a, 0x44, 0xc6, 0x8c, 0x6b,
+  0x06, 0x36, 0xb4, 0x8b, 0x32, 0x89, 0xde, 0xc2, 0xf1, 0xa8, 0x26, 0xaa,
+  0xa9, 0xac, 0xff, 0xea, 0x71, 0xa6, 0xe7, 0x8c, 0x41, 0xfa, 0x17, 0x35,
+  0xbb, 0xb3, 0x87, 0x31, 0xa9, 0x93, 0xc2, 0xc8, 0x58, 0xe1, 0x0a, 0x4e,
+  0x95, 0x83, 0x9c, 0xb9, 0xed, 0x3b, 0xa5, 0xef, 0x08, 0xe0, 0x74, 0xf9,
+  0xc3, 0x1b, 0xe6, 0x07, 0xa3, 0xee, 0x07, 0xd7, 0x42, 0x22, 0x79, 0x21,
+  0xa0, 0xa1, 0xd4, 0x1d, 0x26, 0xd3, 0xd0, 0xd6, 0xa6, 0x5d, 0x2b, 0x41,
+  0xc0, 0x79,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            4f:e3:e2:65:21:07:ab:20:37:41:6e:48:70:ce:d2:c2
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
+        Validity
+            Not Before: May 25 00:00:00 2010 GMT
+            Not After : May 30 10:48:38 2020 GMT
+        Subject: C=US, O=Trusted Secure Certificate Authority, CN=Trusted Secure Certificate Authority
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:80:0b:42:c6:06:6c:cf:22:b3:1a:9e:11:2e:42:
+                    6e:39:bf:e8:12:af:3c:42:21:12:95:40:5d:32:b1:
+                    6d:1c:21:d1:34:e5:4f:a8:d1:43:a2:26:4e:30:7d:
+                    73:44:2c:73:aa:c5:4d:66:01:19:d2:ea:50:59:65:
+                    d0:68:9d:05:a0:7c:a1:79:53:d0:21:90:59:0e:37:
+                    db:1e:dc:92:a7:8b:0d:c4:f5:f8:e6:ff:b5:35:1a:
+                    da:a8:b6:9b:20:85:65:c4:a2:4d:df:f3:94:4d:63:
+                    7e:ee:89:07:af:fe:e1:ba:00:15:2d:c6:77:8e:a3:
+                    fe:ad:cf:26:54:5a:df:fc:d2:de:c2:ad:f6:b2:23:
+                    fd:a8:83:e5:65:bd:27:f7:27:1a:18:59:6a:9e:14:
+                    f6:b4:86:ff:1c:58:14:43:73:96:24:bf:10:43:d5:
+                    5c:89:f0:ce:f7:e1:96:16:5e:18:4a:27:28:90:80:
+                    18:fc:32:fe:f4:c7:b8:d6:82:3d:35:af:bb:4a:1c:
+                    5b:05:78:f6:fd:55:3e:82:74:b2:73:b8:89:4e:f7:
+                    1b:85:9a:d8:ca:b1:5a:b1:00:20:41:14:30:2b:14:
+                    24:ed:37:0e:32:3e:23:88:39:7e:b9:d9:38:03:e2:
+                    4c:d9:0d:43:41:33:10:eb:30:72:53:88:f7:52:9b:
+                    4f:81
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A
+
+            X509v3 Subject Key Identifier: 
+                CC:03:5B:96:5A:9E:16:CC:26:1E:BD:A3:70:FB:E3:CB:79:19:FC:4D
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6449.1.2.2.8
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.usertrust.com/AddTrustExternalCARoot.crl
+
+            Authority Information Access: 
+                CA Issuers - URI:http://crt.usertrust.com/AddTrustExternalCARoot.p7c
+                CA Issuers - URI:http://crt.usertrust.com/AddTrustUTNSGCCA.crt
+                OCSP - URI:http://ocsp.usertrust.com
+
+    Signature Algorithm: sha1WithRSAEncryption
+         7b:f0:fc:a1:28:47:bc:2b:b4:04:73:3f:4b:dd:1e:d1:b9:cd:
+         1c:ed:7d:e5:e8:cb:51:f4:92:bf:dd:9c:0d:5c:6e:1d:95:ed:
+         5b:70:50:89:d4:67:9a:15:54:d1:90:0a:fa:09:68:06:18:bb:
+         d7:27:e4:93:ff:43:48:81:3b:c8:59:49:35:ea:ac:b6:ae:46:
+         b5:d4:f3:b8:c3:c6:e4:91:bf:c9:34:fd:7e:d0:59:6e:61:a1:
+         1f:48:63:54:b2:7d:46:bf:c8:fa:c3:bf:48:58:98:f6:69:84:
+         a7:16:69:08:27:a4:22:cb:a2:2c:c8:df:6e:a9:ee:f8:41:df:
+         1b:a8:b7:f3:e3:ae:ce:a3:fe:d9:27:60:50:3f:04:7d:7a:44:
+         ea:76:42:5c:d3:55:46:ef:27:c5:6a:4a:80:e7:35:a0:91:c6:
+         1b:a6:86:9c:5a:3b:04:83:54:34:d7:d1:88:a6:36:e9:7f:40:
+         27:da:56:0a:50:21:9d:29:8b:a0:84:ec:fe:71:23:53:04:18:
+         19:70:67:86:44:95:72:40:55:f6:dd:a3:b4:3d:2d:09:60:a5:
+         e7:5f:fc:ac:3b:ec:0c:91:9f:f8:ee:6a:ba:b2:3c:fd:95:7d:
+         9a:07:f4:b0:65:43:a2:f6:df:7d:b8:21:49:84:04:ee:bd:ce:
+         53:8f:0f:29
+-----BEGIN CERTIFICATE-----
+MIIE5DCCA8ygAwIBAgIQT+PiZSEHqyA3QW5IcM7SwjANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTEwMDUyNTAwMDAwMFoXDTIwMDUzMDEwNDgzOFow
+azELMAkGA1UEBhMCVVMxLTArBgNVBAoTJFRydXN0ZWQgU2VjdXJlIENlcnRpZmlj
+YXRlIEF1dGhvcml0eTEtMCsGA1UEAxMkVHJ1c3RlZCBTZWN1cmUgQ2VydGlmaWNh
+dGUgQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgAtC
+xgZszyKzGp4RLkJuOb/oEq88QiESlUBdMrFtHCHRNOVPqNFDoiZOMH1zRCxzqsVN
+ZgEZ0upQWWXQaJ0FoHyheVPQIZBZDjfbHtySp4sNxPX45v+1NRraqLabIIVlxKJN
+3/OUTWN+7okHr/7hugAVLcZ3jqP+rc8mVFrf/NLewq32siP9qIPlZb0n9ycaGFlq
+nhT2tIb/HFgUQ3OWJL8QQ9VcifDO9+GWFl4YSicokIAY/DL+9Me41oI9Na+7Shxb
+BXj2/VU+gnSyc7iJTvcbhZrYyrFasQAgQRQwKxQk7TcOMj4jiDl+udk4A+JM2Q1D
+QTMQ6zByU4j3UptPgQIDAQABo4IBfjCCAXowHwYDVR0jBBgwFoAUrb2YejS0Jvf6
+xCZU7wO94CTLVBowHQYDVR0OBBYEFMwDW5ZanhbMJh69o3D748t5GfxNMA4GA1Ud
+DwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMBgGA1UdIAQRMA8wDQYLKwYB
+BAGyMQECAggwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC51c2VydHJ1c3Qu
+Y29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3JsMIGzBggrBgEFBQcBAQSBpjCB
+ozA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL0FkZFRydXN0
+RXh0ZXJuYWxDQVJvb3QucDdjMDkGCCsGAQUFBzAChi1odHRwOi8vY3J0LnVzZXJ0
+cnVzdC5jb20vQWRkVHJ1c3RVVE5TR0NDQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6
+Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEFBQADggEBAHvw/KEoR7wr
+tARzP0vdHtG5zRztfeXoy1H0kr/dnA1cbh2V7VtwUInUZ5oVVNGQCvoJaAYYu9cn
+5JP/Q0iBO8hZSTXqrLauRrXU87jDxuSRv8k0/X7QWW5hoR9IY1SyfUa/yPrDv0hY
+mPZphKcWaQgnpCLLoizI326p7vhB3xuot/Pjrs6j/tknYFA/BH16ROp2QlzTVUbv
+J8VqSoDnNaCRxhumhpxaOwSDVDTX0YimNul/QCfaVgpQIZ0pi6CE7P5xI1MEGBlw
+Z4ZElXJAVfbdo7Q9LQlgpedf/Kw77AyRn/juarqyPP2VfZoH9LBlQ6L23324IUmE
+BO69zlOPDyk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert35[] = {
+  0x30, 0x82, 0x04, 0xe4, 0x30, 0x82, 0x03, 0xcc, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x4f, 0xe3, 0xe2, 0x65, 0x21, 0x07, 0xab, 0x20, 0x37,
+  0x41, 0x6e, 0x48, 0x70, 0xce, 0xd2, 0xc2, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6f,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x53,
+  0x45, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0b,
+  0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x41, 0x42, 0x31,
+  0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1d, 0x41, 0x64,
+  0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x78, 0x74, 0x65, 0x72,
+  0x6e, 0x61, 0x6c, 0x20, 0x54, 0x54, 0x50, 0x20, 0x4e, 0x65, 0x74, 0x77,
+  0x6f, 0x72, 0x6b, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x19, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+  0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x20, 0x52,
+  0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x35, 0x32,
+  0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+  0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33, 0x38, 0x5a, 0x30,
+  0x6b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x24, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x53, 0x65, 0x63,
+  0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+  0x79, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x24,
+  0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x53, 0x65, 0x63, 0x75,
+  0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x80, 0x0b, 0x42,
+  0xc6, 0x06, 0x6c, 0xcf, 0x22, 0xb3, 0x1a, 0x9e, 0x11, 0x2e, 0x42, 0x6e,
+  0x39, 0xbf, 0xe8, 0x12, 0xaf, 0x3c, 0x42, 0x21, 0x12, 0x95, 0x40, 0x5d,
+  0x32, 0xb1, 0x6d, 0x1c, 0x21, 0xd1, 0x34, 0xe5, 0x4f, 0xa8, 0xd1, 0x43,
+  0xa2, 0x26, 0x4e, 0x30, 0x7d, 0x73, 0x44, 0x2c, 0x73, 0xaa, 0xc5, 0x4d,
+  0x66, 0x01, 0x19, 0xd2, 0xea, 0x50, 0x59, 0x65, 0xd0, 0x68, 0x9d, 0x05,
+  0xa0, 0x7c, 0xa1, 0x79, 0x53, 0xd0, 0x21, 0x90, 0x59, 0x0e, 0x37, 0xdb,
+  0x1e, 0xdc, 0x92, 0xa7, 0x8b, 0x0d, 0xc4, 0xf5, 0xf8, 0xe6, 0xff, 0xb5,
+  0x35, 0x1a, 0xda, 0xa8, 0xb6, 0x9b, 0x20, 0x85, 0x65, 0xc4, 0xa2, 0x4d,
+  0xdf, 0xf3, 0x94, 0x4d, 0x63, 0x7e, 0xee, 0x89, 0x07, 0xaf, 0xfe, 0xe1,
+  0xba, 0x00, 0x15, 0x2d, 0xc6, 0x77, 0x8e, 0xa3, 0xfe, 0xad, 0xcf, 0x26,
+  0x54, 0x5a, 0xdf, 0xfc, 0xd2, 0xde, 0xc2, 0xad, 0xf6, 0xb2, 0x23, 0xfd,
+  0xa8, 0x83, 0xe5, 0x65, 0xbd, 0x27, 0xf7, 0x27, 0x1a, 0x18, 0x59, 0x6a,
+  0x9e, 0x14, 0xf6, 0xb4, 0x86, 0xff, 0x1c, 0x58, 0x14, 0x43, 0x73, 0x96,
+  0x24, 0xbf, 0x10, 0x43, 0xd5, 0x5c, 0x89, 0xf0, 0xce, 0xf7, 0xe1, 0x96,
+  0x16, 0x5e, 0x18, 0x4a, 0x27, 0x28, 0x90, 0x80, 0x18, 0xfc, 0x32, 0xfe,
+  0xf4, 0xc7, 0xb8, 0xd6, 0x82, 0x3d, 0x35, 0xaf, 0xbb, 0x4a, 0x1c, 0x5b,
+  0x05, 0x78, 0xf6, 0xfd, 0x55, 0x3e, 0x82, 0x74, 0xb2, 0x73, 0xb8, 0x89,
+  0x4e, 0xf7, 0x1b, 0x85, 0x9a, 0xd8, 0xca, 0xb1, 0x5a, 0xb1, 0x00, 0x20,
+  0x41, 0x14, 0x30, 0x2b, 0x14, 0x24, 0xed, 0x37, 0x0e, 0x32, 0x3e, 0x23,
+  0x88, 0x39, 0x7e, 0xb9, 0xd9, 0x38, 0x03, 0xe2, 0x4c, 0xd9, 0x0d, 0x43,
+  0x41, 0x33, 0x10, 0xeb, 0x30, 0x72, 0x53, 0x88, 0xf7, 0x52, 0x9b, 0x4f,
+  0x81, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x7e, 0x30, 0x82,
+  0x01, 0x7a, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0xad, 0xbd, 0x98, 0x7a, 0x34, 0xb4, 0x26, 0xf7, 0xfa,
+  0xc4, 0x26, 0x54, 0xef, 0x03, 0xbd, 0xe0, 0x24, 0xcb, 0x54, 0x1a, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xcc, 0x03,
+  0x5b, 0x96, 0x5a, 0x9e, 0x16, 0xcc, 0x26, 0x1e, 0xbd, 0xa3, 0x70, 0xfb,
+  0xe3, 0xcb, 0x79, 0x19, 0xfc, 0x4d, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+  0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x18, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x11, 0x30, 0x0f, 0x30, 0x0d, 0x06, 0x0b, 0x2b, 0x06, 0x01,
+  0x04, 0x01, 0xb2, 0x31, 0x01, 0x02, 0x02, 0x08, 0x30, 0x44, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x3d, 0x30, 0x3b, 0x30, 0x39, 0xa0, 0x37, 0xa0,
+  0x35, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+  0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+  0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x81, 0xb3, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xa6, 0x30, 0x81,
+  0xa3, 0x30, 0x3f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+  0x02, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+  0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+  0x6f, 0x74, 0x2e, 0x70, 0x37, 0x63, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64,
+  0x54, 0x72, 0x75, 0x73, 0x74, 0x55, 0x54, 0x4e, 0x53, 0x47, 0x43, 0x43,
+  0x41, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x25, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x7b, 0xf0, 0xfc, 0xa1, 0x28, 0x47, 0xbc, 0x2b,
+  0xb4, 0x04, 0x73, 0x3f, 0x4b, 0xdd, 0x1e, 0xd1, 0xb9, 0xcd, 0x1c, 0xed,
+  0x7d, 0xe5, 0xe8, 0xcb, 0x51, 0xf4, 0x92, 0xbf, 0xdd, 0x9c, 0x0d, 0x5c,
+  0x6e, 0x1d, 0x95, 0xed, 0x5b, 0x70, 0x50, 0x89, 0xd4, 0x67, 0x9a, 0x15,
+  0x54, 0xd1, 0x90, 0x0a, 0xfa, 0x09, 0x68, 0x06, 0x18, 0xbb, 0xd7, 0x27,
+  0xe4, 0x93, 0xff, 0x43, 0x48, 0x81, 0x3b, 0xc8, 0x59, 0x49, 0x35, 0xea,
+  0xac, 0xb6, 0xae, 0x46, 0xb5, 0xd4, 0xf3, 0xb8, 0xc3, 0xc6, 0xe4, 0x91,
+  0xbf, 0xc9, 0x34, 0xfd, 0x7e, 0xd0, 0x59, 0x6e, 0x61, 0xa1, 0x1f, 0x48,
+  0x63, 0x54, 0xb2, 0x7d, 0x46, 0xbf, 0xc8, 0xfa, 0xc3, 0xbf, 0x48, 0x58,
+  0x98, 0xf6, 0x69, 0x84, 0xa7, 0x16, 0x69, 0x08, 0x27, 0xa4, 0x22, 0xcb,
+  0xa2, 0x2c, 0xc8, 0xdf, 0x6e, 0xa9, 0xee, 0xf8, 0x41, 0xdf, 0x1b, 0xa8,
+  0xb7, 0xf3, 0xe3, 0xae, 0xce, 0xa3, 0xfe, 0xd9, 0x27, 0x60, 0x50, 0x3f,
+  0x04, 0x7d, 0x7a, 0x44, 0xea, 0x76, 0x42, 0x5c, 0xd3, 0x55, 0x46, 0xef,
+  0x27, 0xc5, 0x6a, 0x4a, 0x80, 0xe7, 0x35, 0xa0, 0x91, 0xc6, 0x1b, 0xa6,
+  0x86, 0x9c, 0x5a, 0x3b, 0x04, 0x83, 0x54, 0x34, 0xd7, 0xd1, 0x88, 0xa6,
+  0x36, 0xe9, 0x7f, 0x40, 0x27, 0xda, 0x56, 0x0a, 0x50, 0x21, 0x9d, 0x29,
+  0x8b, 0xa0, 0x84, 0xec, 0xfe, 0x71, 0x23, 0x53, 0x04, 0x18, 0x19, 0x70,
+  0x67, 0x86, 0x44, 0x95, 0x72, 0x40, 0x55, 0xf6, 0xdd, 0xa3, 0xb4, 0x3d,
+  0x2d, 0x09, 0x60, 0xa5, 0xe7, 0x5f, 0xfc, 0xac, 0x3b, 0xec, 0x0c, 0x91,
+  0x9f, 0xf8, 0xee, 0x6a, 0xba, 0xb2, 0x3c, 0xfd, 0x95, 0x7d, 0x9a, 0x07,
+  0xf4, 0xb0, 0x65, 0x43, 0xa2, 0xf6, 0xdf, 0x7d, 0xb8, 0x21, 0x49, 0x84,
+  0x04, 0xee, 0xbd, 0xce, 0x53, 0x8f, 0x0f, 0x29,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 946072060 (0x3863e9fc)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: O=Entrust.net, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Certification Authority (2048)
+        Validity
+            Not Before: Dec 10 20:43:54 2009 GMT
+            Not After : Dec 10 21:13:54 2019 GMT
+        Subject: C=US, O=Entrust, Inc., OU=www.entrust.net/rpa is incorporated by reference, OU=(c) 2009 Entrust, Inc., CN=Entrust Certification Authority - L1C
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:97:a3:2d:3c:9e:de:05:da:13:c2:11:8d:9d:8e:
+                    e3:7f:c7:4b:7e:5a:9f:b3:ff:62:ab:73:c8:28:6b:
+                    ba:10:64:82:87:13:cd:57:18:ff:28:ce:c0:e6:0e:
+                    06:91:50:29:83:d1:f2:c3:2a:db:d8:db:4e:04:cc:
+                    00:eb:8b:b6:96:dc:bc:aa:fa:52:77:04:c1:db:19:
+                    e4:ae:9c:fd:3c:8b:03:ef:4d:bc:1a:03:65:f9:c1:
+                    b1:3f:72:86:f2:38:aa:19:ae:10:88:78:28:da:75:
+                    c3:3d:02:82:02:9c:b9:c1:65:77:76:24:4c:98:f7:
+                    6d:31:38:fb:db:fe:db:37:02:76:a1:18:97:a6:cc:
+                    de:20:09:49:36:24:69:42:f6:e4:37:62:f1:59:6d:
+                    a9:3c:ed:34:9c:a3:8e:db:dc:3a:d7:f7:0a:6f:ef:
+                    2e:d8:d5:93:5a:7a:ed:08:49:68:e2:41:e3:5a:90:
+                    c1:86:55:fc:51:43:9d:e0:b2:c4:67:b4:cb:32:31:
+                    25:f0:54:9f:4b:d1:6f:db:d4:dd:fc:af:5e:6c:78:
+                    90:95:de:ca:3a:48:b9:79:3c:9b:19:d6:75:05:a0:
+                    f9:88:d7:c1:e8:a5:09:e4:1a:15:dc:87:23:aa:b2:
+                    75:8c:63:25:87:d8:f8:3d:a6:c2:cc:66:ff:a5:66:
+                    68:55
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.entrust.net
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.entrust.net/2048ca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.entrust.net/rpa
+
+            X509v3 Subject Key Identifier: 
+                1E:F1:AB:89:06:F8:49:0F:01:33:77:EE:14:7A:EE:19:7C:93:28:4D
+            X509v3 Authority Key Identifier: 
+                keyid:55:E4:81:D1:11:80:BE:D8:89:B9:08:A3:31:F9:A1:24:09:16:B9:70
+
+    Signature Algorithm: sha1WithRSAEncryption
+         07:f6:5f:82:84:7f:80:40:c7:90:34:46:42:24:03:ce:2f:ab:
+         ba:83:9e:25:73:0d:ed:ac:05:69:c6:87:ed:a3:5c:f2:57:c1:
+         b1:49:76:9a:4d:f2:3f:dd:e4:0e:fe:0b:3e:b9:98:d9:32:95:
+         1d:32:f4:01:ee:9c:c8:c8:e5:3f:e0:53:76:62:fc:dd:ab:6d:
+         3d:94:90:f2:c0:b3:3c:98:27:36:5e:28:97:22:fc:1b:40:d3:
+         2b:0d:ad:b5:57:6d:df:0f:e3:4b:ef:73:02:10:65:fa:1b:d0:
+         ac:31:d5:e3:0f:e8:ba:32:30:83:ee:4a:d0:bf:df:22:90:7a:
+         be:ec:3a:1b:c4:49:04:1d:f1:ae:80:77:3c:42:08:db:a7:3b:
+         28:a6:80:01:03:e6:39:a3:eb:df:80:59:1b:f3:2c:be:dc:72:
+         44:79:a0:6c:07:a5:6d:4d:44:8e:42:68:ca:94:7c:2e:36:ba:
+         85:9e:cd:aa:c4:5e:3c:54:be:fe:2f:ea:69:9d:1c:1e:29:9b:
+         96:d8:c8:fe:51:90:f1:24:a6:90:06:b3:f0:29:a2:ff:78:2e:
+         77:5c:45:21:d9:44:00:31:f3:be:32:4f:f5:0a:32:0d:fc:fc:
+         ba:16:76:56:b2:d6:48:92:f2:8b:a6:3e:b7:ac:5c:69:ea:0b:
+         3f:66:45:b9
+-----BEGIN CERTIFICATE-----
+MIIE8jCCA9qgAwIBAgIEOGPp/DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
+RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
+bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
+IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw0wOTEyMTAyMDQzNTRaFw0xOTEy
+MTAyMTEzNTRaMIGxMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5j
+LjE5MDcGA1UECxMwd3d3LmVudHJ1c3QubmV0L3JwYSBpcyBpbmNvcnBvcmF0ZWQg
+YnkgcmVmZXJlbmNlMR8wHQYDVQQLExYoYykgMjAwOSBFbnRydXN0LCBJbmMuMS4w
+LAYDVQQDEyVFbnRydXN0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gTDFDMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl6MtPJ7eBdoTwhGNnY7jf8dL
+flqfs/9iq3PIKGu6EGSChxPNVxj/KM7A5g4GkVApg9Hywyrb2NtOBMwA64u2lty8
+qvpSdwTB2xnkrpz9PIsD7028GgNl+cGxP3KG8jiqGa4QiHgo2nXDPQKCApy5wWV3
+diRMmPdtMTj72/7bNwJ2oRiXpszeIAlJNiRpQvbkN2LxWW2pPO00nKOO29w61/cK
+b+8u2NWTWnrtCElo4kHjWpDBhlX8UUOd4LLEZ7TLMjEl8FSfS9Fv29Td/K9ebHiQ
+ld7KOki5eTybGdZ1BaD5iNfB6KUJ5BoV3IcjqrJ1jGMlh9j4PabCzGb/pWZoVQID
+AQABo4IBCzCCAQcwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wMwYI
+KwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5l
+dDAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vY3JsLmVudHJ1c3QubmV0LzIwNDhj
+YS5jcmwwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly93
+d3cuZW50cnVzdC5uZXQvcnBhMB0GA1UdDgQWBBQe8auJBvhJDwEzd+4Ueu4ZfJMo
+TTAfBgNVHSMEGDAWgBRV5IHREYC+2Im5CKMx+aEkCRa5cDANBgkqhkiG9w0BAQUF
+AAOCAQEAB/ZfgoR/gEDHkDRGQiQDzi+ruoOeJXMN7awFacaH7aNc8lfBsUl2mk3y
+P93kDv4LPrmY2TKVHTL0Ae6cyMjlP+BTdmL83attPZSQ8sCzPJgnNl4olyL8G0DT
+Kw2ttVdt3w/jS+9zAhBl+hvQrDHV4w/oujIwg+5K0L/fIpB6vuw6G8RJBB3xroB3
+PEII26c7KKaAAQPmOaPr34BZG/MsvtxyRHmgbAelbU1EjkJoypR8Lja6hZ7NqsRe
+PFS+/i/qaZ0cHimbltjI/lGQ8SSmkAaz8Cmi/3gud1xFIdlEADHzvjJP9QoyDfz8
+uhZ2VrLWSJLyi6Y+t6xcaeoLP2ZFuQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert36[] = {
+  0x30, 0x82, 0x04, 0xf2, 0x30, 0x82, 0x03, 0xda, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x38, 0x63, 0xe9, 0xfc, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xb4, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0b,
+  0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x31,
+  0x40, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x14, 0x37, 0x77, 0x77,
+  0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+  0x74, 0x2f, 0x43, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x20, 0x69,
+  0x6e, 0x63, 0x6f, 0x72, 0x70, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65,
+  0x66, 0x2e, 0x20, 0x28, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x20, 0x6c,
+  0x69, 0x61, 0x62, 0x2e, 0x29, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x1c, 0x28, 0x63, 0x29, 0x20, 0x31, 0x39, 0x39, 0x39,
+  0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74,
+  0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x33, 0x30, 0x31,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2a, 0x45, 0x6e, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x28, 0x32, 0x30, 0x34, 0x38,
+  0x29, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x39, 0x31, 0x32, 0x31, 0x30, 0x32,
+  0x30, 0x34, 0x33, 0x35, 0x34, 0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32,
+  0x31, 0x30, 0x32, 0x31, 0x31, 0x33, 0x35, 0x34, 0x5a, 0x30, 0x81, 0xb1,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+  0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30,
+  0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x20, 0x69, 0x73, 0x20, 0x69,
+  0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20,
+  0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2e, 0x30,
+  0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x45, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x4c, 0x31, 0x43, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x97, 0xa3, 0x2d, 0x3c, 0x9e, 0xde,
+  0x05, 0xda, 0x13, 0xc2, 0x11, 0x8d, 0x9d, 0x8e, 0xe3, 0x7f, 0xc7, 0x4b,
+  0x7e, 0x5a, 0x9f, 0xb3, 0xff, 0x62, 0xab, 0x73, 0xc8, 0x28, 0x6b, 0xba,
+  0x10, 0x64, 0x82, 0x87, 0x13, 0xcd, 0x57, 0x18, 0xff, 0x28, 0xce, 0xc0,
+  0xe6, 0x0e, 0x06, 0x91, 0x50, 0x29, 0x83, 0xd1, 0xf2, 0xc3, 0x2a, 0xdb,
+  0xd8, 0xdb, 0x4e, 0x04, 0xcc, 0x00, 0xeb, 0x8b, 0xb6, 0x96, 0xdc, 0xbc,
+  0xaa, 0xfa, 0x52, 0x77, 0x04, 0xc1, 0xdb, 0x19, 0xe4, 0xae, 0x9c, 0xfd,
+  0x3c, 0x8b, 0x03, 0xef, 0x4d, 0xbc, 0x1a, 0x03, 0x65, 0xf9, 0xc1, 0xb1,
+  0x3f, 0x72, 0x86, 0xf2, 0x38, 0xaa, 0x19, 0xae, 0x10, 0x88, 0x78, 0x28,
+  0xda, 0x75, 0xc3, 0x3d, 0x02, 0x82, 0x02, 0x9c, 0xb9, 0xc1, 0x65, 0x77,
+  0x76, 0x24, 0x4c, 0x98, 0xf7, 0x6d, 0x31, 0x38, 0xfb, 0xdb, 0xfe, 0xdb,
+  0x37, 0x02, 0x76, 0xa1, 0x18, 0x97, 0xa6, 0xcc, 0xde, 0x20, 0x09, 0x49,
+  0x36, 0x24, 0x69, 0x42, 0xf6, 0xe4, 0x37, 0x62, 0xf1, 0x59, 0x6d, 0xa9,
+  0x3c, 0xed, 0x34, 0x9c, 0xa3, 0x8e, 0xdb, 0xdc, 0x3a, 0xd7, 0xf7, 0x0a,
+  0x6f, 0xef, 0x2e, 0xd8, 0xd5, 0x93, 0x5a, 0x7a, 0xed, 0x08, 0x49, 0x68,
+  0xe2, 0x41, 0xe3, 0x5a, 0x90, 0xc1, 0x86, 0x55, 0xfc, 0x51, 0x43, 0x9d,
+  0xe0, 0xb2, 0xc4, 0x67, 0xb4, 0xcb, 0x32, 0x31, 0x25, 0xf0, 0x54, 0x9f,
+  0x4b, 0xd1, 0x6f, 0xdb, 0xd4, 0xdd, 0xfc, 0xaf, 0x5e, 0x6c, 0x78, 0x90,
+  0x95, 0xde, 0xca, 0x3a, 0x48, 0xb9, 0x79, 0x3c, 0x9b, 0x19, 0xd6, 0x75,
+  0x05, 0xa0, 0xf9, 0x88, 0xd7, 0xc1, 0xe8, 0xa5, 0x09, 0xe4, 0x1a, 0x15,
+  0xdc, 0x87, 0x23, 0xaa, 0xb2, 0x75, 0x8c, 0x63, 0x25, 0x87, 0xd8, 0xf8,
+  0x3d, 0xa6, 0xc2, 0xcc, 0x66, 0xff, 0xa5, 0x66, 0x68, 0x55, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x0b, 0x30, 0x82, 0x01, 0x07, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x33, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25,
+  0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+  0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+  0x74, 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29,
+  0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x32, 0x30, 0x34, 0x38, 0x63,
+  0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20,
+  0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+  0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+  0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e,
+  0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x1e, 0xf1, 0xab, 0x89, 0x06, 0xf8, 0x49,
+  0x0f, 0x01, 0x33, 0x77, 0xee, 0x14, 0x7a, 0xee, 0x19, 0x7c, 0x93, 0x28,
+  0x4d, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0x55, 0xe4, 0x81, 0xd1, 0x11, 0x80, 0xbe, 0xd8, 0x89, 0xb9,
+  0x08, 0xa3, 0x31, 0xf9, 0xa1, 0x24, 0x09, 0x16, 0xb9, 0x70, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x07, 0xf6, 0x5f, 0x82, 0x84, 0x7f,
+  0x80, 0x40, 0xc7, 0x90, 0x34, 0x46, 0x42, 0x24, 0x03, 0xce, 0x2f, 0xab,
+  0xba, 0x83, 0x9e, 0x25, 0x73, 0x0d, 0xed, 0xac, 0x05, 0x69, 0xc6, 0x87,
+  0xed, 0xa3, 0x5c, 0xf2, 0x57, 0xc1, 0xb1, 0x49, 0x76, 0x9a, 0x4d, 0xf2,
+  0x3f, 0xdd, 0xe4, 0x0e, 0xfe, 0x0b, 0x3e, 0xb9, 0x98, 0xd9, 0x32, 0x95,
+  0x1d, 0x32, 0xf4, 0x01, 0xee, 0x9c, 0xc8, 0xc8, 0xe5, 0x3f, 0xe0, 0x53,
+  0x76, 0x62, 0xfc, 0xdd, 0xab, 0x6d, 0x3d, 0x94, 0x90, 0xf2, 0xc0, 0xb3,
+  0x3c, 0x98, 0x27, 0x36, 0x5e, 0x28, 0x97, 0x22, 0xfc, 0x1b, 0x40, 0xd3,
+  0x2b, 0x0d, 0xad, 0xb5, 0x57, 0x6d, 0xdf, 0x0f, 0xe3, 0x4b, 0xef, 0x73,
+  0x02, 0x10, 0x65, 0xfa, 0x1b, 0xd0, 0xac, 0x31, 0xd5, 0xe3, 0x0f, 0xe8,
+  0xba, 0x32, 0x30, 0x83, 0xee, 0x4a, 0xd0, 0xbf, 0xdf, 0x22, 0x90, 0x7a,
+  0xbe, 0xec, 0x3a, 0x1b, 0xc4, 0x49, 0x04, 0x1d, 0xf1, 0xae, 0x80, 0x77,
+  0x3c, 0x42, 0x08, 0xdb, 0xa7, 0x3b, 0x28, 0xa6, 0x80, 0x01, 0x03, 0xe6,
+  0x39, 0xa3, 0xeb, 0xdf, 0x80, 0x59, 0x1b, 0xf3, 0x2c, 0xbe, 0xdc, 0x72,
+  0x44, 0x79, 0xa0, 0x6c, 0x07, 0xa5, 0x6d, 0x4d, 0x44, 0x8e, 0x42, 0x68,
+  0xca, 0x94, 0x7c, 0x2e, 0x36, 0xba, 0x85, 0x9e, 0xcd, 0xaa, 0xc4, 0x5e,
+  0x3c, 0x54, 0xbe, 0xfe, 0x2f, 0xea, 0x69, 0x9d, 0x1c, 0x1e, 0x29, 0x9b,
+  0x96, 0xd8, 0xc8, 0xfe, 0x51, 0x90, 0xf1, 0x24, 0xa6, 0x90, 0x06, 0xb3,
+  0xf0, 0x29, 0xa2, 0xff, 0x78, 0x2e, 0x77, 0x5c, 0x45, 0x21, 0xd9, 0x44,
+  0x00, 0x31, 0xf3, 0xbe, 0x32, 0x4f, 0xf5, 0x0a, 0x32, 0x0d, 0xfc, 0xfc,
+  0xba, 0x16, 0x76, 0x56, 0xb2, 0xd6, 0x48, 0x92, 0xf2, 0x8b, 0xa6, 0x3e,
+  0xb7, 0xac, 0x5c, 0x69, 0xea, 0x0b, 0x3f, 0x66, 0x45, 0xb9,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            16:90:c3:29:b6:78:06:07:51:1f:05:b0:34:48:46:cb
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
+        Validity
+            Not Before: Apr 16 00:00:00 2010 GMT
+            Not After : May 30 10:48:38 2020 GMT
+        Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO High-Assurance Secure Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e7:87:da:c0:77:e4:bb:3a:fa:6a:24:c8:80:41:
+                    ac:d2:16:13:15:3d:fa:f7:f8:2a:76:dc:a8:2d:39:
+                    08:ce:48:4a:be:0f:7d:f0:de:ba:bb:47:d5:bd:2d:
+                    d7:1b:ab:0f:20:81:23:08:72:b1:c0:11:95:0d:e6:
+                    ea:a9:87:ff:c7:6e:1e:4f:66:32:ba:53:bc:05:aa:
+                    1c:2c:0c:ef:4d:37:47:6b:10:0c:db:c5:a0:98:7e:
+                    58:db:37:d6:ae:e9:06:bd:d7:a8:65:f3:37:b9:c7:
+                    6d:ce:77:c7:26:e0:d7:74:1f:a6:98:16:bb:0c:6b:
+                    c8:be:77:d0:ef:58:a7:29:a0:b9:b8:69:05:36:cb:
+                    b2:da:58:a3:0b:75:ad:3d:8b:22:82:20:3e:70:86:
+                    99:1c:b9:4f:cf:77:a4:07:1a:23:63:d1:38:56:84:
+                    ec:bf:8f:c5:4e:f4:18:96:9b:1a:e8:93:ec:8d:af:
+                    15:9c:24:f0:5a:3b:e8:0f:b9:a8:5a:01:d3:b2:1c:
+                    60:c9:9c:52:04:dd:92:a7:fe:0c:ac:e2:45:8d:03:
+                    61:bc:79:e0:77:2e:87:41:3c:58:5f:cb:f5:c5:77:
+                    f2:58:c8:4d:28:d0:9a:fa:f3:73:09:24:68:74:bc:
+                    20:4c:d8:2c:b0:aa:e8:d9:4e:6d:f2:8c:24:d3:93:
+                    5d:91
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A
+
+            X509v3 Subject Key Identifier: 
+                3F:D5:B5:D0:D6:44:79:50:4A:17:A3:9B:8C:4A:DC:B8:B0:22:64:6B
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.usertrust.com/AddTrustExternalCARoot.crl
+
+            Authority Information Access: 
+                CA Issuers - URI:http://crt.usertrust.com/AddTrustExternalCARoot.p7c
+                CA Issuers - URI:http://crt.usertrust.com/AddTrustUTNSGCCA.crt
+                OCSP - URI:http://ocsp.usertrust.com
+
+    Signature Algorithm: sha1WithRSAEncryption
+         13:85:1f:52:80:18:c9:53:f7:fe:2e:1a:af:cc:d9:0b:3c:c2:
+         d3:85:81:10:f0:28:8d:b9:40:7e:2c:9e:8f:d6:36:86:0a:4c:
+         14:2d:d6:97:43:92:41:19:37:4b:96:9e:eb:a9:30:79:12:95:
+         b3:02:36:57:ed:2b:b9:1d:98:1a:a3:18:0a:3f:9b:39:8b:cd:
+         a1:49:29:4c:2f:f9:d0:95:8c:c8:4d:95:ba:a8:43:cf:33:aa:
+         25:2a:5a:0e:aa:27:c9:4e:6b:b1:e6:73:1f:b3:74:04:c3:f3:
+         4c:e2:a8:eb:67:b7:5d:b8:08:05:1a:56:9a:54:29:85:f5:29:
+         4e:80:3b:95:d0:7b:53:96:11:56:c1:02:d3:ea:b2:7f:ca:8f:
+         9c:70:4a:14:8d:5a:b9:16:60:75:d6:cd:27:1e:16:cd:5b:33:
+         8e:79:40:cf:28:48:e7:dc:71:16:4e:74:91:75:b9:2a:8c:f1:
+         70:ac:26:dd:04:b9:40:c2:85:de:1c:93:40:d0:cc:6e:c3:9b:
+         aa:ef:60:65:df:60:22:f0:5a:a5:7a:a2:2f:e4:70:73:ee:3c:
+         d4:26:2b:68:07:c1:20:7a:e8:98:5a:3e:7b:9f:02:8b:62:c0:
+         85:81:80:60:35:7e:a5:1d:0c:d2:9c:df:62:45:0d:db:fc:37:
+         fb:f5:25:22
+-----BEGIN CERTIFICATE-----
+MIIE/DCCA+SgAwIBAgIQFpDDKbZ4BgdRHwWwNEhGyzANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTEwMDQxNjAwMDAwMFoXDTIwMDUzMDEwNDgzOFow
+gYkxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
+BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMS8wLQYD
+VQQDEyZDT01PRE8gSGlnaC1Bc3N1cmFuY2UgU2VjdXJlIFNlcnZlciBDQTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOeH2sB35Ls6+mokyIBBrNIWExU9
++vf4KnbcqC05CM5ISr4PffDeurtH1b0t1xurDyCBIwhyscARlQ3m6qmH/8duHk9m
+MrpTvAWqHCwM7003R2sQDNvFoJh+WNs31q7pBr3XqGXzN7nHbc53xybg13QfppgW
+uwxryL530O9YpymgubhpBTbLstpYowt1rT2LIoIgPnCGmRy5T893pAcaI2PROFaE
+7L+PxU70GJabGuiT7I2vFZwk8Fo76A+5qFoB07IcYMmcUgTdkqf+DKziRY0DYbx5
+4Hcuh0E8WF/L9cV38ljITSjQmvrzcwkkaHS8IEzYLLCq6NlObfKMJNOTXZECAwEA
+AaOCAXcwggFzMB8GA1UdIwQYMBaAFK29mHo0tCb3+sQmVO8DveAky1QaMB0GA1Ud
+DgQWBBQ/1bXQ1kR5UEoXo5uMSty4sCJkazAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0T
+AQH/BAgwBgEB/wIBADARBgNVHSAECjAIMAYGBFUdIAAwRAYDVR0fBD0wOzA5oDeg
+NYYzaHR0cDovL2NybC51c2VydHJ1c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJv
+b3QuY3JsMIGzBggrBgEFBQcBAQSBpjCBozA/BggrBgEFBQcwAoYzaHR0cDovL2Ny
+dC51c2VydHJ1c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QucDdjMDkGCCsG
+AQUFBzAChi1odHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vQWRkVHJ1c3RVVE5TR0ND
+QS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJ
+KoZIhvcNAQEFBQADggEBABOFH1KAGMlT9/4uGq/M2Qs8wtOFgRDwKI25QH4sno/W
+NoYKTBQt1pdDkkEZN0uWnuupMHkSlbMCNlftK7kdmBqjGAo/mzmLzaFJKUwv+dCV
+jMhNlbqoQ88zqiUqWg6qJ8lOa7Hmcx+zdATD80ziqOtnt124CAUaVppUKYX1KU6A
+O5XQe1OWEVbBAtPqsn/Kj5xwShSNWrkWYHXWzSceFs1bM455QM8oSOfccRZOdJF1
+uSqM8XCsJt0EuUDChd4ck0DQzG7Dm6rvYGXfYCLwWqV6oi/kcHPuPNQmK2gHwSB6
+6JhaPnufAotiwIWBgGA1fqUdDNKc32JFDdv8N/v1JSI=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert37[] = {
+  0x30, 0x82, 0x04, 0xfc, 0x30, 0x82, 0x03, 0xe4, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x16, 0x90, 0xc3, 0x29, 0xb6, 0x78, 0x06, 0x07, 0x51,
+  0x1f, 0x05, 0xb0, 0x34, 0x48, 0x46, 0xcb, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6f,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x53,
+  0x45, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0b,
+  0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x41, 0x42, 0x31,
+  0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1d, 0x41, 0x64,
+  0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x78, 0x74, 0x65, 0x72,
+  0x6e, 0x61, 0x6c, 0x20, 0x54, 0x54, 0x50, 0x20, 0x4e, 0x65, 0x74, 0x77,
+  0x6f, 0x72, 0x6b, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x19, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+  0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x20, 0x52,
+  0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x34, 0x31,
+  0x36, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+  0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33, 0x38, 0x5a, 0x30,
+  0x81, 0x89, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x47, 0x42, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x08,
+  0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4d, 0x61,
+  0x6e, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e,
+  0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6c, 0x66, 0x6f,
+  0x72, 0x64, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x11, 0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20, 0x43, 0x41, 0x20, 0x4c,
+  0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x26, 0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20,
+  0x48, 0x69, 0x67, 0x68, 0x2d, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e,
+  0x63, 0x65, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65,
+  0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xe7, 0x87, 0xda, 0xc0, 0x77, 0xe4, 0xbb, 0x3a,
+  0xfa, 0x6a, 0x24, 0xc8, 0x80, 0x41, 0xac, 0xd2, 0x16, 0x13, 0x15, 0x3d,
+  0xfa, 0xf7, 0xf8, 0x2a, 0x76, 0xdc, 0xa8, 0x2d, 0x39, 0x08, 0xce, 0x48,
+  0x4a, 0xbe, 0x0f, 0x7d, 0xf0, 0xde, 0xba, 0xbb, 0x47, 0xd5, 0xbd, 0x2d,
+  0xd7, 0x1b, 0xab, 0x0f, 0x20, 0x81, 0x23, 0x08, 0x72, 0xb1, 0xc0, 0x11,
+  0x95, 0x0d, 0xe6, 0xea, 0xa9, 0x87, 0xff, 0xc7, 0x6e, 0x1e, 0x4f, 0x66,
+  0x32, 0xba, 0x53, 0xbc, 0x05, 0xaa, 0x1c, 0x2c, 0x0c, 0xef, 0x4d, 0x37,
+  0x47, 0x6b, 0x10, 0x0c, 0xdb, 0xc5, 0xa0, 0x98, 0x7e, 0x58, 0xdb, 0x37,
+  0xd6, 0xae, 0xe9, 0x06, 0xbd, 0xd7, 0xa8, 0x65, 0xf3, 0x37, 0xb9, 0xc7,
+  0x6d, 0xce, 0x77, 0xc7, 0x26, 0xe0, 0xd7, 0x74, 0x1f, 0xa6, 0x98, 0x16,
+  0xbb, 0x0c, 0x6b, 0xc8, 0xbe, 0x77, 0xd0, 0xef, 0x58, 0xa7, 0x29, 0xa0,
+  0xb9, 0xb8, 0x69, 0x05, 0x36, 0xcb, 0xb2, 0xda, 0x58, 0xa3, 0x0b, 0x75,
+  0xad, 0x3d, 0x8b, 0x22, 0x82, 0x20, 0x3e, 0x70, 0x86, 0x99, 0x1c, 0xb9,
+  0x4f, 0xcf, 0x77, 0xa4, 0x07, 0x1a, 0x23, 0x63, 0xd1, 0x38, 0x56, 0x84,
+  0xec, 0xbf, 0x8f, 0xc5, 0x4e, 0xf4, 0x18, 0x96, 0x9b, 0x1a, 0xe8, 0x93,
+  0xec, 0x8d, 0xaf, 0x15, 0x9c, 0x24, 0xf0, 0x5a, 0x3b, 0xe8, 0x0f, 0xb9,
+  0xa8, 0x5a, 0x01, 0xd3, 0xb2, 0x1c, 0x60, 0xc9, 0x9c, 0x52, 0x04, 0xdd,
+  0x92, 0xa7, 0xfe, 0x0c, 0xac, 0xe2, 0x45, 0x8d, 0x03, 0x61, 0xbc, 0x79,
+  0xe0, 0x77, 0x2e, 0x87, 0x41, 0x3c, 0x58, 0x5f, 0xcb, 0xf5, 0xc5, 0x77,
+  0xf2, 0x58, 0xc8, 0x4d, 0x28, 0xd0, 0x9a, 0xfa, 0xf3, 0x73, 0x09, 0x24,
+  0x68, 0x74, 0xbc, 0x20, 0x4c, 0xd8, 0x2c, 0xb0, 0xaa, 0xe8, 0xd9, 0x4e,
+  0x6d, 0xf2, 0x8c, 0x24, 0xd3, 0x93, 0x5d, 0x91, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x82, 0x01, 0x77, 0x30, 0x82, 0x01, 0x73, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xad, 0xbd,
+  0x98, 0x7a, 0x34, 0xb4, 0x26, 0xf7, 0xfa, 0xc4, 0x26, 0x54, 0xef, 0x03,
+  0xbd, 0xe0, 0x24, 0xcb, 0x54, 0x1a, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x3f, 0xd5, 0xb5, 0xd0, 0xd6, 0x44, 0x79,
+  0x50, 0x4a, 0x17, 0xa3, 0x9b, 0x8c, 0x4a, 0xdc, 0xb8, 0xb0, 0x22, 0x64,
+  0x6b, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x11, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0a, 0x30, 0x08,
+  0x30, 0x06, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x44, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x3d, 0x30, 0x3b, 0x30, 0x39, 0xa0, 0x37, 0xa0,
+  0x35, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+  0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+  0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x81, 0xb3, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xa6, 0x30, 0x81,
+  0xa3, 0x30, 0x3f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+  0x02, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+  0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x41, 0x52, 0x6f,
+  0x6f, 0x74, 0x2e, 0x70, 0x37, 0x63, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x74, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x64, 0x64,
+  0x54, 0x72, 0x75, 0x73, 0x74, 0x55, 0x54, 0x4e, 0x53, 0x47, 0x43, 0x43,
+  0x41, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x25, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x13, 0x85, 0x1f, 0x52, 0x80, 0x18, 0xc9, 0x53,
+  0xf7, 0xfe, 0x2e, 0x1a, 0xaf, 0xcc, 0xd9, 0x0b, 0x3c, 0xc2, 0xd3, 0x85,
+  0x81, 0x10, 0xf0, 0x28, 0x8d, 0xb9, 0x40, 0x7e, 0x2c, 0x9e, 0x8f, 0xd6,
+  0x36, 0x86, 0x0a, 0x4c, 0x14, 0x2d, 0xd6, 0x97, 0x43, 0x92, 0x41, 0x19,
+  0x37, 0x4b, 0x96, 0x9e, 0xeb, 0xa9, 0x30, 0x79, 0x12, 0x95, 0xb3, 0x02,
+  0x36, 0x57, 0xed, 0x2b, 0xb9, 0x1d, 0x98, 0x1a, 0xa3, 0x18, 0x0a, 0x3f,
+  0x9b, 0x39, 0x8b, 0xcd, 0xa1, 0x49, 0x29, 0x4c, 0x2f, 0xf9, 0xd0, 0x95,
+  0x8c, 0xc8, 0x4d, 0x95, 0xba, 0xa8, 0x43, 0xcf, 0x33, 0xaa, 0x25, 0x2a,
+  0x5a, 0x0e, 0xaa, 0x27, 0xc9, 0x4e, 0x6b, 0xb1, 0xe6, 0x73, 0x1f, 0xb3,
+  0x74, 0x04, 0xc3, 0xf3, 0x4c, 0xe2, 0xa8, 0xeb, 0x67, 0xb7, 0x5d, 0xb8,
+  0x08, 0x05, 0x1a, 0x56, 0x9a, 0x54, 0x29, 0x85, 0xf5, 0x29, 0x4e, 0x80,
+  0x3b, 0x95, 0xd0, 0x7b, 0x53, 0x96, 0x11, 0x56, 0xc1, 0x02, 0xd3, 0xea,
+  0xb2, 0x7f, 0xca, 0x8f, 0x9c, 0x70, 0x4a, 0x14, 0x8d, 0x5a, 0xb9, 0x16,
+  0x60, 0x75, 0xd6, 0xcd, 0x27, 0x1e, 0x16, 0xcd, 0x5b, 0x33, 0x8e, 0x79,
+  0x40, 0xcf, 0x28, 0x48, 0xe7, 0xdc, 0x71, 0x16, 0x4e, 0x74, 0x91, 0x75,
+  0xb9, 0x2a, 0x8c, 0xf1, 0x70, 0xac, 0x26, 0xdd, 0x04, 0xb9, 0x40, 0xc2,
+  0x85, 0xde, 0x1c, 0x93, 0x40, 0xd0, 0xcc, 0x6e, 0xc3, 0x9b, 0xaa, 0xef,
+  0x60, 0x65, 0xdf, 0x60, 0x22, 0xf0, 0x5a, 0xa5, 0x7a, 0xa2, 0x2f, 0xe4,
+  0x70, 0x73, 0xee, 0x3c, 0xd4, 0x26, 0x2b, 0x68, 0x07, 0xc1, 0x20, 0x7a,
+  0xe8, 0x98, 0x5a, 0x3e, 0x7b, 0x9f, 0x02, 0x8b, 0x62, 0xc0, 0x85, 0x81,
+  0x80, 0x60, 0x35, 0x7e, 0xa5, 0x1d, 0x0c, 0xd2, 0x9c, 0xdf, 0x62, 0x45,
+  0x0d, 0xdb, 0xfc, 0x37, 0xfb, 0xf5, 0x25, 0x22,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1372799044 (0x51d34044)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Entrust, Inc., OU=www.entrust.net/CPS is incorporated by reference, OU=(c) 2006 Entrust, Inc., CN=Entrust Root Certification Authority
+        Validity
+            Not Before: Sep 22 17:14:57 2014 GMT
+            Not After : Sep 23 01:31:53 2024 GMT
+        Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ba:84:b6:72:db:9e:0c:6b:e2:99:e9:30:01:a7:
+                    76:ea:32:b8:95:41:1a:c9:da:61:4e:58:72:cf:fe:
+                    f6:82:79:bf:73:61:06:0a:a5:27:d8:b3:5f:d3:45:
+                    4e:1c:72:d6:4e:32:f2:72:8a:0f:f7:83:19:d0:6a:
+                    80:80:00:45:1e:b0:c7:e7:9a:bf:12:57:27:1c:a3:
+                    68:2f:0a:87:bd:6a:6b:0e:5e:65:f3:1c:77:d5:d4:
+                    85:8d:70:21:b4:b3:32:e7:8b:a2:d5:86:39:02:b1:
+                    b8:d2:47:ce:e4:c9:49:c4:3b:a7:de:fb:54:7d:57:
+                    be:f0:e8:6e:c2:79:b2:3a:0b:55:e2:50:98:16:32:
+                    13:5c:2f:78:56:c1:c2:94:b3:f2:5a:e4:27:9a:9f:
+                    24:d7:c6:ec:d0:9b:25:82:e3:cc:c2:c4:45:c5:8c:
+                    97:7a:06:6b:2a:11:9f:a9:0a:6e:48:3b:6f:db:d4:
+                    11:19:42:f7:8f:07:bf:f5:53:5f:9c:3e:f4:17:2c:
+                    e6:69:ac:4e:32:4c:62:77:ea:b7:e8:e5:bb:34:bc:
+                    19:8b:ae:9c:51:e7:b7:7e:b5:53:b1:33:22:e5:6d:
+                    cf:70:3c:1a:fa:e2:9b:67:b6:83:f4:8d:a5:af:62:
+                    4c:4d:e0:58:ac:64:34:12:03:f8:b6:8d:94:63:24:
+                    a4:71
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:1
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.entrust.net
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.entrust.net/rootca1.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.entrust.net/CPS
+
+            X509v3 Subject Key Identifier: 
+                6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+            X509v3 Authority Key Identifier: 
+                keyid:68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
+
+    Signature Algorithm: sha256WithRSAEncryption
+         69:33:83:fc:28:7a:6f:7d:ef:9d:55:eb:c5:3e:7a:9d:75:b3:
+         cc:c3:38:36:d9:34:a2:28:68:18:ea:1e:69:d3:bd:e7:d0:77:
+         da:b8:00:83:4e:4a:cf:6f:d1:f1:c1:22:3f:74:e4:f7:98:49:
+         9e:9b:b6:9e:e1:db:98:77:2d:56:34:b1:a8:3c:d9:fd:c0:cd:
+         c7:bf:05:03:d4:02:c5:f1:e5:c6:da:08:a5:13:c7:62:23:11:
+         d1:61:30:1d:60:84:45:ef:79:a8:c6:26:93:a4:b7:cd:34:b8:
+         69:c5:13:f6:91:b3:c9:45:73:76:b6:92:f6:76:0a:5b:e1:03:
+         47:b7:e9:29:4c:91:32:23:37:4a:9c:35:d8:78:fd:1d:1f:e4:
+         83:89:24:80:ad:b7:f9:cf:e4:5d:a5:d4:71:c4:85:5b:70:1f:
+         db:3f:1c:01:eb:1a:45:26:31:14:cc:65:bf:67:de:ca:cc:33:
+         65:e5:41:91:d7:37:be:41:1a:96:9d:e6:8a:97:9d:a7:ce:ac:
+         4e:9a:3d:bd:01:a0:6a:d9:4f:22:00:8b:44:d5:69:62:7b:2e:
+         eb:cc:ba:e7:92:7d:69:67:3d:fc:b8:7c:de:41:87:d0:69:ea:
+         ba:0a:18:7a:1a:95:43:b3:79:71:28:76:6d:a1:fb:57:4a:ec:
+         4d:c8:0e:10
+-----BEGIN CERTIFICATE-----
+MIIE/zCCA+egAwIBAgIEUdNARDANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
+Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
+KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE0MDkyMjE3MTQ1N1oXDTI0MDkyMzAx
+MzE1M1owgb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgw
+JgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQL
+EzAoYykgMjAwOSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9u
+bHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuoS2ctueDGvi
+mekwAad26jK4lUEaydphTlhyz/72gnm/c2EGCqUn2LNf00VOHHLWTjLycooP94MZ
+0GqAgABFHrDH55q/ElcnHKNoLwqHvWprDl5l8xx31dSFjXAhtLMy54ui1YY5ArG4
+0kfO5MlJxDun3vtUfVe+8OhuwnmyOgtV4lCYFjITXC94VsHClLPyWuQnmp8k18bs
+0JslguPMwsRFxYyXegZrKhGfqQpuSDtv29QRGUL3jwe/9VNfnD70FyzmaaxOMkxi
+d+q36OW7NLwZi66cUee3frVTsTMi5W3PcDwa+uKbZ7aD9I2lr2JMTeBYrGQ0EgP4
+to2UYySkcQIDAQABo4IBDzCCAQswDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQEwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz
+cC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVudHJ1
+c3QubmV0L3Jvb3RjYTEuY3JsMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUF
+BwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NQUzAdBgNVHQ4EFgQUanImetAe
+733nO2lR1GyNn5ASZqswHwYDVR0jBBgwFoAUaJDkZ6SmU4DHhmak8fdLQ/uEvW0w
+DQYJKoZIhvcNAQELBQADggEBAGkzg/woem99751V68U+ep11s8zDODbZNKIoaBjq
+HmnTvefQd9q4AINOSs9v0fHBIj905PeYSZ6btp7h25h3LVY0sag82f3Azce/BQPU
+AsXx5cbaCKUTx2IjEdFhMB1ghEXveajGJpOkt800uGnFE/aRs8lFc3a2kvZ2Clvh
+A0e36SlMkTIjN0qcNdh4/R0f5IOJJICtt/nP5F2l1HHEhVtwH9s/HAHrGkUmMRTM
+Zb9n3srMM2XlQZHXN75BGpad5oqXnafOrE6aPb0BoGrZTyIAi0TVaWJ7LuvMuueS
+fWlnPfy4fN5Bh9Bp6roKGHoalUOzeXEodm2h+1dK7E3IDhA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert38[] = {
+  0x30, 0x82, 0x04, 0xff, 0x30, 0x82, 0x03, 0xe7, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x51, 0xd3, 0x40, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xb0, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x30, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x20, 0x69, 0x73, 0x20,
+  0x69, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64,
+  0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+  0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16,
+  0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x45, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d,
+  0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x24, 0x45, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x34, 0x30, 0x39, 0x32, 0x32, 0x31, 0x37, 0x31, 0x34, 0x35,
+  0x37, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x39, 0x32, 0x33, 0x30, 0x31,
+  0x33, 0x31, 0x35, 0x33, 0x5a, 0x30, 0x81, 0xbe, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30,
+  0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28, 0x30,
+  0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65, 0x20,
+  0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74, 0x65,
+  0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20, 0x45,
+  0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e,
+  0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+  0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+  0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0xba, 0x84, 0xb6, 0x72, 0xdb, 0x9e, 0x0c, 0x6b, 0xe2,
+  0x99, 0xe9, 0x30, 0x01, 0xa7, 0x76, 0xea, 0x32, 0xb8, 0x95, 0x41, 0x1a,
+  0xc9, 0xda, 0x61, 0x4e, 0x58, 0x72, 0xcf, 0xfe, 0xf6, 0x82, 0x79, 0xbf,
+  0x73, 0x61, 0x06, 0x0a, 0xa5, 0x27, 0xd8, 0xb3, 0x5f, 0xd3, 0x45, 0x4e,
+  0x1c, 0x72, 0xd6, 0x4e, 0x32, 0xf2, 0x72, 0x8a, 0x0f, 0xf7, 0x83, 0x19,
+  0xd0, 0x6a, 0x80, 0x80, 0x00, 0x45, 0x1e, 0xb0, 0xc7, 0xe7, 0x9a, 0xbf,
+  0x12, 0x57, 0x27, 0x1c, 0xa3, 0x68, 0x2f, 0x0a, 0x87, 0xbd, 0x6a, 0x6b,
+  0x0e, 0x5e, 0x65, 0xf3, 0x1c, 0x77, 0xd5, 0xd4, 0x85, 0x8d, 0x70, 0x21,
+  0xb4, 0xb3, 0x32, 0xe7, 0x8b, 0xa2, 0xd5, 0x86, 0x39, 0x02, 0xb1, 0xb8,
+  0xd2, 0x47, 0xce, 0xe4, 0xc9, 0x49, 0xc4, 0x3b, 0xa7, 0xde, 0xfb, 0x54,
+  0x7d, 0x57, 0xbe, 0xf0, 0xe8, 0x6e, 0xc2, 0x79, 0xb2, 0x3a, 0x0b, 0x55,
+  0xe2, 0x50, 0x98, 0x16, 0x32, 0x13, 0x5c, 0x2f, 0x78, 0x56, 0xc1, 0xc2,
+  0x94, 0xb3, 0xf2, 0x5a, 0xe4, 0x27, 0x9a, 0x9f, 0x24, 0xd7, 0xc6, 0xec,
+  0xd0, 0x9b, 0x25, 0x82, 0xe3, 0xcc, 0xc2, 0xc4, 0x45, 0xc5, 0x8c, 0x97,
+  0x7a, 0x06, 0x6b, 0x2a, 0x11, 0x9f, 0xa9, 0x0a, 0x6e, 0x48, 0x3b, 0x6f,
+  0xdb, 0xd4, 0x11, 0x19, 0x42, 0xf7, 0x8f, 0x07, 0xbf, 0xf5, 0x53, 0x5f,
+  0x9c, 0x3e, 0xf4, 0x17, 0x2c, 0xe6, 0x69, 0xac, 0x4e, 0x32, 0x4c, 0x62,
+  0x77, 0xea, 0xb7, 0xe8, 0xe5, 0xbb, 0x34, 0xbc, 0x19, 0x8b, 0xae, 0x9c,
+  0x51, 0xe7, 0xb7, 0x7e, 0xb5, 0x53, 0xb1, 0x33, 0x22, 0xe5, 0x6d, 0xcf,
+  0x70, 0x3c, 0x1a, 0xfa, 0xe2, 0x9b, 0x67, 0xb6, 0x83, 0xf4, 0x8d, 0xa5,
+  0xaf, 0x62, 0x4c, 0x4d, 0xe0, 0x58, 0xac, 0x64, 0x34, 0x12, 0x03, 0xf8,
+  0xb6, 0x8d, 0x94, 0x63, 0x24, 0xa4, 0x71, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x01, 0x0f, 0x30, 0x82, 0x01, 0x0b, 0x30, 0x0e, 0x06, 0x03,
+  0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+  0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+  0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x01, 0x30, 0x33, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25,
+  0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+  0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+  0x74, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a,
+  0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x63,
+  0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20,
+  0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0, 0x1e,
+  0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90, 0x12,
+  0x66, 0xab, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0x68, 0x90, 0xe4, 0x67, 0xa4, 0xa6, 0x53, 0x80, 0xc7,
+  0x86, 0x66, 0xa4, 0xf1, 0xf7, 0x4b, 0x43, 0xfb, 0x84, 0xbd, 0x6d, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x33, 0x83, 0xfc, 0x28,
+  0x7a, 0x6f, 0x7d, 0xef, 0x9d, 0x55, 0xeb, 0xc5, 0x3e, 0x7a, 0x9d, 0x75,
+  0xb3, 0xcc, 0xc3, 0x38, 0x36, 0xd9, 0x34, 0xa2, 0x28, 0x68, 0x18, 0xea,
+  0x1e, 0x69, 0xd3, 0xbd, 0xe7, 0xd0, 0x77, 0xda, 0xb8, 0x00, 0x83, 0x4e,
+  0x4a, 0xcf, 0x6f, 0xd1, 0xf1, 0xc1, 0x22, 0x3f, 0x74, 0xe4, 0xf7, 0x98,
+  0x49, 0x9e, 0x9b, 0xb6, 0x9e, 0xe1, 0xdb, 0x98, 0x77, 0x2d, 0x56, 0x34,
+  0xb1, 0xa8, 0x3c, 0xd9, 0xfd, 0xc0, 0xcd, 0xc7, 0xbf, 0x05, 0x03, 0xd4,
+  0x02, 0xc5, 0xf1, 0xe5, 0xc6, 0xda, 0x08, 0xa5, 0x13, 0xc7, 0x62, 0x23,
+  0x11, 0xd1, 0x61, 0x30, 0x1d, 0x60, 0x84, 0x45, 0xef, 0x79, 0xa8, 0xc6,
+  0x26, 0x93, 0xa4, 0xb7, 0xcd, 0x34, 0xb8, 0x69, 0xc5, 0x13, 0xf6, 0x91,
+  0xb3, 0xc9, 0x45, 0x73, 0x76, 0xb6, 0x92, 0xf6, 0x76, 0x0a, 0x5b, 0xe1,
+  0x03, 0x47, 0xb7, 0xe9, 0x29, 0x4c, 0x91, 0x32, 0x23, 0x37, 0x4a, 0x9c,
+  0x35, 0xd8, 0x78, 0xfd, 0x1d, 0x1f, 0xe4, 0x83, 0x89, 0x24, 0x80, 0xad,
+  0xb7, 0xf9, 0xcf, 0xe4, 0x5d, 0xa5, 0xd4, 0x71, 0xc4, 0x85, 0x5b, 0x70,
+  0x1f, 0xdb, 0x3f, 0x1c, 0x01, 0xeb, 0x1a, 0x45, 0x26, 0x31, 0x14, 0xcc,
+  0x65, 0xbf, 0x67, 0xde, 0xca, 0xcc, 0x33, 0x65, 0xe5, 0x41, 0x91, 0xd7,
+  0x37, 0xbe, 0x41, 0x1a, 0x96, 0x9d, 0xe6, 0x8a, 0x97, 0x9d, 0xa7, 0xce,
+  0xac, 0x4e, 0x9a, 0x3d, 0xbd, 0x01, 0xa0, 0x6a, 0xd9, 0x4f, 0x22, 0x00,
+  0x8b, 0x44, 0xd5, 0x69, 0x62, 0x7b, 0x2e, 0xeb, 0xcc, 0xba, 0xe7, 0x92,
+  0x7d, 0x69, 0x67, 0x3d, 0xfc, 0xb8, 0x7c, 0xde, 0x41, 0x87, 0xd0, 0x69,
+  0xea, 0xba, 0x0a, 0x18, 0x7a, 0x1a, 0x95, 0x43, 0xb3, 0x79, 0x71, 0x28,
+  0x76, 0x6d, 0xa1, 0xfb, 0x57, 0x4a, 0xec, 0x4d, 0xc8, 0x0e, 0x10,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7 (0x7)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+        Validity
+            Not Before: May  3 07:00:00 2011 GMT
+            Not After : May  3 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., OU=http://certs.starfieldtech.com/repository/, CN=Starfield Secure Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e5:90:66:4b:ec:f9:46:71:a9:20:83:be:e9:6c:
+                    bf:4a:c9:48:69:81:75:4e:6d:24:f6:cb:17:13:f8:
+                    b0:71:59:84:7a:6b:2b:85:a4:34:b5:16:e5:cb:cc:
+                    e9:41:70:2c:a4:2e:d6:fa:32:7d:e1:a8:de:94:10:
+                    ac:31:c1:c0:d8:6a:ff:59:27:ab:76:d6:fc:0b:74:
+                    6b:b8:a7:ae:3f:c4:54:f4:b4:31:44:dd:93:56:8c:
+                    a4:4c:5e:9b:89:cb:24:83:9b:e2:57:7d:b7:d8:12:
+                    1f:c9:85:6d:f4:d1:80:f1:50:9b:87:ae:d4:0b:10:
+                    05:fb:27:ba:28:6d:17:e9:0e:d6:4d:b9:39:55:06:
+                    ff:0a:24:05:7e:2f:c6:1d:72:6c:d4:8b:29:8c:57:
+                    7d:da:d9:eb:66:1a:d3:4f:a7:df:7f:52:c4:30:c5:
+                    a5:c9:0e:02:c5:53:bf:77:38:68:06:24:c3:66:c8:
+                    37:7e:30:1e:45:71:23:35:ff:90:d8:2a:9d:8d:e7:
+                    b0:92:4d:3c:7f:2a:0a:93:dc:cd:16:46:65:f7:60:
+                    84:8b:76:4b:91:27:73:14:92:e0:ea:ee:8f:16:ea:
+                    8d:0e:3e:76:17:bf:7d:89:80:80:44:43:e7:2d:e0:
+                    43:09:75:da:36:e8:ad:db:89:3a:f5:5d:12:8e:23:
+                    04:83
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                25:45:81:68:50:26:38:3D:3B:2D:2C:BE:CD:6A:D9:B6:3D:B3:66:63
+            X509v3 Authority Key Identifier: 
+                keyid:7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.starfieldtech.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.starfieldtech.com/sfroot-g2.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.starfieldtech.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         56:65:ca:fe:f3:3f:0a:a8:93:8b:18:c7:de:43:69:13:34:20:
+         be:4e:5f:78:a8:6b:9c:db:6a:4d:41:db:c1:13:ec:dc:31:00:
+         22:5e:f7:00:9e:0c:e0:34:65:34:f9:b1:3a:4e:48:c8:12:81:
+         88:5c:5b:3e:08:53:7a:f7:1a:64:df:b8:50:61:cc:53:51:40:
+         29:4b:c2:f4:ae:3a:5f:e4:ca:ad:26:cc:4e:61:43:e5:fd:57:
+         a6:37:70:ce:43:2b:b0:94:c3:92:e9:e1:5f:aa:10:49:b7:69:
+         e4:e0:d0:1f:64:a4:2b:cd:1f:6f:a0:f8:84:24:18:ce:79:3d:
+         a9:91:bf:54:18:13:89:99:54:11:0d:55:c5:26:0b:79:4f:5a:
+         1c:6e:f9:63:db:14:80:a4:07:ab:fa:b2:a5:b9:88:dd:91:fe:
+         65:3b:a4:a3:79:be:89:4d:e1:d0:b0:f4:c8:17:0c:0a:96:14:
+         7c:09:b7:6c:e1:c2:d8:55:d4:18:a0:aa:41:69:70:24:a3:b9:
+         ef:e9:5a:dc:3e:eb:94:4a:f0:b7:de:5f:0e:76:fa:fb:fb:69:
+         03:45:40:50:ee:72:0c:a4:12:86:81:cd:13:d1:4e:c4:3c:ca:
+         4e:0d:d2:26:f1:00:b7:b4:a6:a2:e1:6e:7a:81:fd:30:ac:7a:
+         1f:c7:59:7b
+-----BEGIN CERTIFICATE-----
+MIIFADCCA+igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
+ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAw
+MFoXDTMxMDUwMzA3MDAwMFowgcYxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
+aG5vbG9naWVzLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydHMuc3RhcmZpZWxk
+dGVjaC5jb20vcmVwb3NpdG9yeS8xNDAyBgNVBAMTK1N0YXJmaWVsZCBTZWN1cmUg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDlkGZL7PlGcakgg77pbL9KyUhpgXVObST2yxcT+LBxWYR6ayuF
+pDS1FuXLzOlBcCykLtb6Mn3hqN6UEKwxwcDYav9ZJ6t21vwLdGu4p64/xFT0tDFE
+3ZNWjKRMXpuJyySDm+JXfbfYEh/JhW300YDxUJuHrtQLEAX7J7oobRfpDtZNuTlV
+Bv8KJAV+L8YdcmzUiymMV33a2etmGtNPp99/UsQwxaXJDgLFU793OGgGJMNmyDd+
+MB5FcSM1/5DYKp2N57CSTTx/KgqT3M0WRmX3YISLdkuRJ3MUkuDq7o8W6o0OPnYX
+v32JgIBEQ+ct4EMJddo26K3biTr1XRKOIwSDAgMBAAGjggEsMIIBKDAPBgNVHRMB
+Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJUWBaFAmOD07LSy+
+zWrZtj2zZmMwHwYDVR0jBBgwFoAUfAwyH6fZMH/EfWijYqihzqsHWycwOgYIKwYB
+BQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0ZWNo
+LmNvbS8wOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zdGFyZmllbGR0ZWNo
+LmNvbS9zZnJvb3QtZzIuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQBWZcr+8z8KqJOLGMfeQ2kTNCC+Tl94qGuc22pN
+QdvBE+zcMQAiXvcAngzgNGU0+bE6TkjIEoGIXFs+CFN69xpk37hQYcxTUUApS8L0
+rjpf5MqtJsxOYUPl/VemN3DOQyuwlMOS6eFfqhBJt2nk4NAfZKQrzR9voPiEJBjO
+eT2pkb9UGBOJmVQRDVXFJgt5T1ocbvlj2xSApAer+rKluYjdkf5lO6Sjeb6JTeHQ
+sPTIFwwKlhR8Cbds4cLYVdQYoKpBaXAko7nv6VrcPuuUSvC33l8Odvr7+2kDRUBQ
+7nIMpBKGgc0T0U7EPMpODdIm8QC3tKai4W56gf0wrHofx1l7
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert39[] = {
+  0x30, 0x82, 0x05, 0x00, 0x30, 0x82, 0x03, 0xe8, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8f, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+  0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+  0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+  0x6c, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54,
+  0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c,
+  0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xc6, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+  0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+  0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+  0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72,
+  0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64,
+  0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+  0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x31, 0x34, 0x30, 0x32,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b, 0x53, 0x74, 0x61, 0x72, 0x66,
+  0x69, 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20,
+  0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe5,
+  0x90, 0x66, 0x4b, 0xec, 0xf9, 0x46, 0x71, 0xa9, 0x20, 0x83, 0xbe, 0xe9,
+  0x6c, 0xbf, 0x4a, 0xc9, 0x48, 0x69, 0x81, 0x75, 0x4e, 0x6d, 0x24, 0xf6,
+  0xcb, 0x17, 0x13, 0xf8, 0xb0, 0x71, 0x59, 0x84, 0x7a, 0x6b, 0x2b, 0x85,
+  0xa4, 0x34, 0xb5, 0x16, 0xe5, 0xcb, 0xcc, 0xe9, 0x41, 0x70, 0x2c, 0xa4,
+  0x2e, 0xd6, 0xfa, 0x32, 0x7d, 0xe1, 0xa8, 0xde, 0x94, 0x10, 0xac, 0x31,
+  0xc1, 0xc0, 0xd8, 0x6a, 0xff, 0x59, 0x27, 0xab, 0x76, 0xd6, 0xfc, 0x0b,
+  0x74, 0x6b, 0xb8, 0xa7, 0xae, 0x3f, 0xc4, 0x54, 0xf4, 0xb4, 0x31, 0x44,
+  0xdd, 0x93, 0x56, 0x8c, 0xa4, 0x4c, 0x5e, 0x9b, 0x89, 0xcb, 0x24, 0x83,
+  0x9b, 0xe2, 0x57, 0x7d, 0xb7, 0xd8, 0x12, 0x1f, 0xc9, 0x85, 0x6d, 0xf4,
+  0xd1, 0x80, 0xf1, 0x50, 0x9b, 0x87, 0xae, 0xd4, 0x0b, 0x10, 0x05, 0xfb,
+  0x27, 0xba, 0x28, 0x6d, 0x17, 0xe9, 0x0e, 0xd6, 0x4d, 0xb9, 0x39, 0x55,
+  0x06, 0xff, 0x0a, 0x24, 0x05, 0x7e, 0x2f, 0xc6, 0x1d, 0x72, 0x6c, 0xd4,
+  0x8b, 0x29, 0x8c, 0x57, 0x7d, 0xda, 0xd9, 0xeb, 0x66, 0x1a, 0xd3, 0x4f,
+  0xa7, 0xdf, 0x7f, 0x52, 0xc4, 0x30, 0xc5, 0xa5, 0xc9, 0x0e, 0x02, 0xc5,
+  0x53, 0xbf, 0x77, 0x38, 0x68, 0x06, 0x24, 0xc3, 0x66, 0xc8, 0x37, 0x7e,
+  0x30, 0x1e, 0x45, 0x71, 0x23, 0x35, 0xff, 0x90, 0xd8, 0x2a, 0x9d, 0x8d,
+  0xe7, 0xb0, 0x92, 0x4d, 0x3c, 0x7f, 0x2a, 0x0a, 0x93, 0xdc, 0xcd, 0x16,
+  0x46, 0x65, 0xf7, 0x60, 0x84, 0x8b, 0x76, 0x4b, 0x91, 0x27, 0x73, 0x14,
+  0x92, 0xe0, 0xea, 0xee, 0x8f, 0x16, 0xea, 0x8d, 0x0e, 0x3e, 0x76, 0x17,
+  0xbf, 0x7d, 0x89, 0x80, 0x80, 0x44, 0x43, 0xe7, 0x2d, 0xe0, 0x43, 0x09,
+  0x75, 0xda, 0x36, 0xe8, 0xad, 0xdb, 0x89, 0x3a, 0xf5, 0x5d, 0x12, 0x8e,
+  0x23, 0x04, 0x83, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x2c,
+  0x30, 0x82, 0x01, 0x28, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x25, 0x45, 0x81, 0x68, 0x50, 0x26, 0x38, 0x3d, 0x3b, 0x2d, 0x2c, 0xbe,
+  0xcd, 0x6a, 0xd9, 0xb6, 0x3d, 0xb3, 0x66, 0x63, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7c, 0x0c, 0x32,
+  0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4, 0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1,
+  0xce, 0xab, 0x07, 0x5b, 0x27, 0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1e, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0xa0, 0x2e, 0xa0, 0x2c, 0x86, 0x2a,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f, 0x6f, 0x74, 0x2d,
+  0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+  0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+  0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x56, 0x65, 0xca, 0xfe,
+  0xf3, 0x3f, 0x0a, 0xa8, 0x93, 0x8b, 0x18, 0xc7, 0xde, 0x43, 0x69, 0x13,
+  0x34, 0x20, 0xbe, 0x4e, 0x5f, 0x78, 0xa8, 0x6b, 0x9c, 0xdb, 0x6a, 0x4d,
+  0x41, 0xdb, 0xc1, 0x13, 0xec, 0xdc, 0x31, 0x00, 0x22, 0x5e, 0xf7, 0x00,
+  0x9e, 0x0c, 0xe0, 0x34, 0x65, 0x34, 0xf9, 0xb1, 0x3a, 0x4e, 0x48, 0xc8,
+  0x12, 0x81, 0x88, 0x5c, 0x5b, 0x3e, 0x08, 0x53, 0x7a, 0xf7, 0x1a, 0x64,
+  0xdf, 0xb8, 0x50, 0x61, 0xcc, 0x53, 0x51, 0x40, 0x29, 0x4b, 0xc2, 0xf4,
+  0xae, 0x3a, 0x5f, 0xe4, 0xca, 0xad, 0x26, 0xcc, 0x4e, 0x61, 0x43, 0xe5,
+  0xfd, 0x57, 0xa6, 0x37, 0x70, 0xce, 0x43, 0x2b, 0xb0, 0x94, 0xc3, 0x92,
+  0xe9, 0xe1, 0x5f, 0xaa, 0x10, 0x49, 0xb7, 0x69, 0xe4, 0xe0, 0xd0, 0x1f,
+  0x64, 0xa4, 0x2b, 0xcd, 0x1f, 0x6f, 0xa0, 0xf8, 0x84, 0x24, 0x18, 0xce,
+  0x79, 0x3d, 0xa9, 0x91, 0xbf, 0x54, 0x18, 0x13, 0x89, 0x99, 0x54, 0x11,
+  0x0d, 0x55, 0xc5, 0x26, 0x0b, 0x79, 0x4f, 0x5a, 0x1c, 0x6e, 0xf9, 0x63,
+  0xdb, 0x14, 0x80, 0xa4, 0x07, 0xab, 0xfa, 0xb2, 0xa5, 0xb9, 0x88, 0xdd,
+  0x91, 0xfe, 0x65, 0x3b, 0xa4, 0xa3, 0x79, 0xbe, 0x89, 0x4d, 0xe1, 0xd0,
+  0xb0, 0xf4, 0xc8, 0x17, 0x0c, 0x0a, 0x96, 0x14, 0x7c, 0x09, 0xb7, 0x6c,
+  0xe1, 0xc2, 0xd8, 0x55, 0xd4, 0x18, 0xa0, 0xaa, 0x41, 0x69, 0x70, 0x24,
+  0xa3, 0xb9, 0xef, 0xe9, 0x5a, 0xdc, 0x3e, 0xeb, 0x94, 0x4a, 0xf0, 0xb7,
+  0xde, 0x5f, 0x0e, 0x76, 0xfa, 0xfb, 0xfb, 0x69, 0x03, 0x45, 0x40, 0x50,
+  0xee, 0x72, 0x0c, 0xa4, 0x12, 0x86, 0x81, 0xcd, 0x13, 0xd1, 0x4e, 0xc4,
+  0x3c, 0xca, 0x4e, 0x0d, 0xd2, 0x26, 0xf1, 0x00, 0xb7, 0xb4, 0xa6, 0xa2,
+  0xe1, 0x6e, 0x7a, 0x81, 0xfd, 0x30, 0xac, 0x7a, 0x1f, 0xc7, 0x59, 0x7b,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1372807406 (0x51d360ee)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+        Validity
+            Not Before: Oct 22 17:05:14 2014 GMT
+            Not After : Oct 23 07:33:22 2024 GMT
+        Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
+                    ee:5c:a5:61:da:41:67:53:09:aa:00:9a:8e:57:7f:
+                    29:6b:db:c7:e1:21:24:aa:3a:d0:8d:47:23:d2:ed:
+                    72:16:f0:91:21:d2:5d:b7:b8:4b:a8:83:8f:b7:91:
+                    32:68:cf:ce:25:93:2c:b2:7d:97:c8:fe:c1:b4:17:
+                    ba:09:9e:03:90:93:7b:7c:49:83:22:68:8a:9b:de:
+                    47:c3:31:98:7a:2e:7d:40:0b:d2:ef:3e:d3:b2:8c:
+                    aa:8f:48:a9:ff:00:e8:29:58:06:f7:b6:93:5a:94:
+                    73:26:26:ad:58:0e:e5:42:b8:d5:ea:73:79:64:68:
+                    53:25:b8:84:cf:94:7a:ae:06:45:0c:a3:6b:4d:d0:
+                    c6:be:ea:18:a4:36:f0:92:b2:ba:1c:88:8f:3a:52:
+                    7f:f7:5e:6d:83:1c:9d:f0:1f:e5:c3:d6:dd:a5:78:
+                    92:3d:b0:6d:2c:ea:c9:cf:94:41:19:71:44:68:ba:
+                    47:3c:04:e9:5d:ba:3e:f0:35:f7:15:b6:9e:f2:2e:
+                    15:1e:3f:47:c8:c8:38:a7:73:45:5d:4d:b0:3b:b1:
+                    8e:17:29:37:ea:dd:05:01:22:bb:94:36:2a:8d:5b:
+                    35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
+                    d9:1b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: 
+                CA:TRUE, pathlen:0
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.entrust.net
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.entrust.net/g2ca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.entrust.net/rpa
+
+            X509v3 Subject Key Identifier: 
+                82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
+            X509v3 Authority Key Identifier: 
+                keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+
+    Signature Algorithm: sha256WithRSAEncryption
+         3f:1c:1a:5b:ff:40:22:1d:8f:35:0c:2d:aa:99:27:ab:c0:11:
+         32:70:d7:36:28:69:a5:8d:b1:27:99:42:be:c4:93:eb:48:57:
+         43:71:23:c4:e5:4e:ad:ae:43:6f:92:76:c5:19:ef:ca:bc:6f:
+         42:4c:16:9a:86:a9:04:38:c7:65:f0:f5:0c:e0:4a:df:a2:fa:
+         ce:1a:11:a8:9c:69:2f:1b:df:ea:e2:32:f3:ce:4c:bc:46:0c:
+         c0:89:80:d1:87:6b:a2:cf:6b:d4:7f:fd:f5:60:52:67:57:a0:
+         6d:d1:64:41:14:6d:34:62:ed:06:6c:24:f2:06:bc:28:02:af:
+         03:2d:c2:33:05:fb:cb:aa:16:e8:65:10:43:f5:69:5c:e3:81:
+         58:99:cd:6b:d3:b8:c7:7b:19:55:c9:40:ce:79:55:b8:73:89:
+         e9:5c:40:66:43:12:7f:07:b8:65:56:d5:8d:c3:a7:f5:b1:b6:
+         65:9e:c0:83:36:7f:16:45:3c:74:4b:93:8a:3c:f1:2b:f5:35:
+         70:73:7b:e7:82:04:b1:18:98:0e:d4:9c:6f:1a:fc:fc:a7:33:
+         a5:bb:bb:18:f3:6b:7a:5d:32:87:f7:6d:25:e4:e2:76:86:21:
+         1e:11:46:cd:76:0e:6f:4f:a4:21:71:0a:84:a7:2d:36:a9:48:
+         22:51:7e:82
+-----BEGIN CERTIFICATE-----
+MIIFAzCCA+ugAwIBAgIEUdNg7jANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
+cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
+IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
+dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMTQxMDIyMTcw
+NTE0WhcNMjQxMDIzMDczMzIyWjCBujELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
+dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
+dGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
+aG9yaXplZCB1c2Ugb25seTEuMCwGA1UEAxMlRW50cnVzdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eSAtIEwxSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANo/ltBNuS9E59s5XptQ7lylYdpBZ1MJqgCajld/KWvbx+EhJKo60I1HI9Ltchbw
+kSHSXbe4S6iDj7eRMmjPziWTLLJ9l8j+wbQXugmeA5CTe3xJgyJoipveR8MxmHou
+fUAL0u8+07KMqo9Iqf8A6ClYBve2k1qUcyYmrVgO5UK41epzeWRoUyW4hM+Ueq4G
+RQyja03Qxr7qGKQ28JKyuhyIjzpSf/debYMcnfAf5cPW3aV4kj2wbSzqyc+UQRlx
+RGi6RzwE6V26PvA19xW2nvIuFR4/R8jIOKdzRV1NsDuxjhcpN+rdBQEiu5Q2Ko1b
+Nf5TGS8IRsEqsxpiHU4r2RsCAwEAAaOCAQkwggEFMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0
+cDovL29jc3AuZW50cnVzdC5uZXQwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL2Ny
+bC5lbnRydXN0Lm5ldC9nMmNhLmNybDA7BgNVHSAENDAyMDAGBFUdIAAwKDAmBggr
+BgEFBQcCARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwHQYDVR0OBBYEFIKi
+cHTdvFM/z3vU981/p2DGCky/MB8GA1UdIwQYMBaAFGpyJnrQHu995ztpUdRsjZ+Q
+EmarMA0GCSqGSIb3DQEBCwUAA4IBAQA/HBpb/0AiHY81DC2qmSerwBEycNc2KGml
+jbEnmUK+xJPrSFdDcSPE5U6trkNvknbFGe/KvG9CTBaahqkEOMdl8PUM4ErfovrO
+GhGonGkvG9/q4jLzzky8RgzAiYDRh2uiz2vUf/31YFJnV6Bt0WRBFG00Yu0GbCTy
+BrwoAq8DLcIzBfvLqhboZRBD9Wlc44FYmc1r07jHexlVyUDOeVW4c4npXEBmQxJ/
+B7hlVtWNw6f1sbZlnsCDNn8WRTx0S5OKPPEr9TVwc3vnggSxGJgO1JxvGvz8pzOl
+u7sY82t6XTKH920l5OJ2hiEeEUbNdg5vT6QhcQqEpy02qUgiUX6C
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert40[] = {
+  0x30, 0x82, 0x05, 0x03, 0x30, 0x82, 0x03, 0xeb, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x51, 0xd3, 0x60, 0xee, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xbe, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x1f, 0x53, 0x65, 0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67,
+  0x61, 0x6c, 0x2d, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37,
+  0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32,
+  0x30, 0x30, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75,
+  0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x30, 0x32, 0x32, 0x31, 0x37, 0x30,
+  0x35, 0x31, 0x34, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x31, 0x30, 0x32, 0x33,
+  0x30, 0x37, 0x33, 0x33, 0x32, 0x32, 0x5a, 0x30, 0x81, 0xba, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+  0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65,
+  0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d,
+  0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x32,
+  0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20,
+  0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x25, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43,
+  0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d,
+  0x20, 0x4c, 0x31, 0x4b, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xda, 0x3f, 0x96, 0xd0, 0x4d, 0xb9, 0x2f, 0x44, 0xe7, 0xdb, 0x39,
+  0x5e, 0x9b, 0x50, 0xee, 0x5c, 0xa5, 0x61, 0xda, 0x41, 0x67, 0x53, 0x09,
+  0xaa, 0x00, 0x9a, 0x8e, 0x57, 0x7f, 0x29, 0x6b, 0xdb, 0xc7, 0xe1, 0x21,
+  0x24, 0xaa, 0x3a, 0xd0, 0x8d, 0x47, 0x23, 0xd2, 0xed, 0x72, 0x16, 0xf0,
+  0x91, 0x21, 0xd2, 0x5d, 0xb7, 0xb8, 0x4b, 0xa8, 0x83, 0x8f, 0xb7, 0x91,
+  0x32, 0x68, 0xcf, 0xce, 0x25, 0x93, 0x2c, 0xb2, 0x7d, 0x97, 0xc8, 0xfe,
+  0xc1, 0xb4, 0x17, 0xba, 0x09, 0x9e, 0x03, 0x90, 0x93, 0x7b, 0x7c, 0x49,
+  0x83, 0x22, 0x68, 0x8a, 0x9b, 0xde, 0x47, 0xc3, 0x31, 0x98, 0x7a, 0x2e,
+  0x7d, 0x40, 0x0b, 0xd2, 0xef, 0x3e, 0xd3, 0xb2, 0x8c, 0xaa, 0x8f, 0x48,
+  0xa9, 0xff, 0x00, 0xe8, 0x29, 0x58, 0x06, 0xf7, 0xb6, 0x93, 0x5a, 0x94,
+  0x73, 0x26, 0x26, 0xad, 0x58, 0x0e, 0xe5, 0x42, 0xb8, 0xd5, 0xea, 0x73,
+  0x79, 0x64, 0x68, 0x53, 0x25, 0xb8, 0x84, 0xcf, 0x94, 0x7a, 0xae, 0x06,
+  0x45, 0x0c, 0xa3, 0x6b, 0x4d, 0xd0, 0xc6, 0xbe, 0xea, 0x18, 0xa4, 0x36,
+  0xf0, 0x92, 0xb2, 0xba, 0x1c, 0x88, 0x8f, 0x3a, 0x52, 0x7f, 0xf7, 0x5e,
+  0x6d, 0x83, 0x1c, 0x9d, 0xf0, 0x1f, 0xe5, 0xc3, 0xd6, 0xdd, 0xa5, 0x78,
+  0x92, 0x3d, 0xb0, 0x6d, 0x2c, 0xea, 0xc9, 0xcf, 0x94, 0x41, 0x19, 0x71,
+  0x44, 0x68, 0xba, 0x47, 0x3c, 0x04, 0xe9, 0x5d, 0xba, 0x3e, 0xf0, 0x35,
+  0xf7, 0x15, 0xb6, 0x9e, 0xf2, 0x2e, 0x15, 0x1e, 0x3f, 0x47, 0xc8, 0xc8,
+  0x38, 0xa7, 0x73, 0x45, 0x5d, 0x4d, 0xb0, 0x3b, 0xb1, 0x8e, 0x17, 0x29,
+  0x37, 0xea, 0xdd, 0x05, 0x01, 0x22, 0xbb, 0x94, 0x36, 0x2a, 0x8d, 0x5b,
+  0x35, 0xfe, 0x53, 0x19, 0x2f, 0x08, 0x46, 0xc1, 0x2a, 0xb3, 0x1a, 0x62,
+  0x1d, 0x4e, 0x2b, 0xd9, 0x1b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x09, 0x30, 0x82, 0x01, 0x05, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+  0x02, 0x01, 0x00, 0x30, 0x33, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x17, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x65, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x30, 0x30, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0,
+  0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+  0x74, 0x2f, 0x67, 0x32, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x82, 0xa2,
+  0x70, 0x74, 0xdd, 0xbc, 0x53, 0x3f, 0xcf, 0x7b, 0xd4, 0xf7, 0xcd, 0x7f,
+  0xa7, 0x60, 0xc6, 0x0a, 0x4c, 0xbf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0,
+  0x1e, 0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90,
+  0x12, 0x66, 0xab, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3f,
+  0x1c, 0x1a, 0x5b, 0xff, 0x40, 0x22, 0x1d, 0x8f, 0x35, 0x0c, 0x2d, 0xaa,
+  0x99, 0x27, 0xab, 0xc0, 0x11, 0x32, 0x70, 0xd7, 0x36, 0x28, 0x69, 0xa5,
+  0x8d, 0xb1, 0x27, 0x99, 0x42, 0xbe, 0xc4, 0x93, 0xeb, 0x48, 0x57, 0x43,
+  0x71, 0x23, 0xc4, 0xe5, 0x4e, 0xad, 0xae, 0x43, 0x6f, 0x92, 0x76, 0xc5,
+  0x19, 0xef, 0xca, 0xbc, 0x6f, 0x42, 0x4c, 0x16, 0x9a, 0x86, 0xa9, 0x04,
+  0x38, 0xc7, 0x65, 0xf0, 0xf5, 0x0c, 0xe0, 0x4a, 0xdf, 0xa2, 0xfa, 0xce,
+  0x1a, 0x11, 0xa8, 0x9c, 0x69, 0x2f, 0x1b, 0xdf, 0xea, 0xe2, 0x32, 0xf3,
+  0xce, 0x4c, 0xbc, 0x46, 0x0c, 0xc0, 0x89, 0x80, 0xd1, 0x87, 0x6b, 0xa2,
+  0xcf, 0x6b, 0xd4, 0x7f, 0xfd, 0xf5, 0x60, 0x52, 0x67, 0x57, 0xa0, 0x6d,
+  0xd1, 0x64, 0x41, 0x14, 0x6d, 0x34, 0x62, 0xed, 0x06, 0x6c, 0x24, 0xf2,
+  0x06, 0xbc, 0x28, 0x02, 0xaf, 0x03, 0x2d, 0xc2, 0x33, 0x05, 0xfb, 0xcb,
+  0xaa, 0x16, 0xe8, 0x65, 0x10, 0x43, 0xf5, 0x69, 0x5c, 0xe3, 0x81, 0x58,
+  0x99, 0xcd, 0x6b, 0xd3, 0xb8, 0xc7, 0x7b, 0x19, 0x55, 0xc9, 0x40, 0xce,
+  0x79, 0x55, 0xb8, 0x73, 0x89, 0xe9, 0x5c, 0x40, 0x66, 0x43, 0x12, 0x7f,
+  0x07, 0xb8, 0x65, 0x56, 0xd5, 0x8d, 0xc3, 0xa7, 0xf5, 0xb1, 0xb6, 0x65,
+  0x9e, 0xc0, 0x83, 0x36, 0x7f, 0x16, 0x45, 0x3c, 0x74, 0x4b, 0x93, 0x8a,
+  0x3c, 0xf1, 0x2b, 0xf5, 0x35, 0x70, 0x73, 0x7b, 0xe7, 0x82, 0x04, 0xb1,
+  0x18, 0x98, 0x0e, 0xd4, 0x9c, 0x6f, 0x1a, 0xfc, 0xfc, 0xa7, 0x33, 0xa5,
+  0xbb, 0xbb, 0x18, 0xf3, 0x6b, 0x7a, 0x5d, 0x32, 0x87, 0xf7, 0x6d, 0x25,
+  0xe4, 0xe2, 0x76, 0x86, 0x21, 0x1e, 0x11, 0x46, 0xcd, 0x76, 0x0e, 0x6f,
+  0x4f, 0xa4, 0x21, 0x71, 0x0a, 0x84, 0xa7, 0x2d, 0x36, 0xa9, 0x48, 0x22,
+  0x51, 0x7e, 0x82,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120038507 (0x727a46b)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Validity
+            Not Before: Apr  2 14:36:10 2014 GMT
+            Not After : Apr  2 14:35:52 2021 GMT
+        Subject: C=NL, L=Amsterdam, O=Verizon Enterprise Solutions, OU=Cybertrust, CN=Verizon Akamai SureServer CA G14-SHA2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:dd:6e:9e:02:69:02:b5:a3:99:2e:08:64:32:6a:
+                    59:f3:c6:9e:a6:20:07:d2:48:d1:a8:93:c7:ea:47:
+                    8f:83:39:40:d7:20:5d:8d:9a:ba:ab:d8:70:ec:9d:
+                    88:d1:bd:62:f6:db:ec:9d:5e:35:01:76:03:23:e5:
+                    6f:d2:af:46:35:59:5a:5c:d1:a8:23:c1:eb:e9:20:
+                    d4:49:d6:3f:00:d8:a8:22:de:43:79:81:ac:e9:a4:
+                    92:f5:77:70:05:1e:5c:b6:a0:f7:90:a4:cd:ab:28:
+                    2c:90:c2:e7:0f:c3:af:1c:47:59:d5:84:2e:df:26:
+                    07:45:23:5a:c6:e8:90:c8:85:4b:8c:16:1e:60:f9:
+                    01:13:f1:14:1f:e6:e8:14:ed:c5:d2:6f:63:28:6e:
+                    72:8c:49:ae:08:72:c7:93:95:b4:0b:0c:ae:8f:9a:
+                    67:84:f5:57:1b:db:81:d7:17:9d:41:11:43:19:bd:
+                    6d:4a:85:ed:8f:70:25:ab:66:ab:f6:fa:6d:1c:3c:
+                    ab:ed:17:bd:56:84:e1:db:75:33:b2:28:4b:99:8e:
+                    f9:4b:82:33:50:9f:92:53:ed:fa:ad:0f:95:9c:a3:
+                    f2:cb:60:f0:77:1d:c9:01:8b:5f:2d:86:be:bf:36:
+                    b8:24:96:13:7c:c1:86:5a:6c:c1:48:2a:7f:3e:93:
+                    60:c5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:2
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6334.1.50
+                  CPS: https://secure.omniroot.com/repository
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+                CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.crt
+                CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.der
+
+            X509v3 Key Usage: critical
+                Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
+            X509v3 Authority Key Identifier: 
+                keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+            X509v3 Subject Key Identifier: 
+                F8:BD:FA:AF:73:77:C6:C7:1B:F9:4B:4D:11:A7:D1:33:AF:AF:72:11
+    Signature Algorithm: sha256WithRSAEncryption
+         80:d9:7a:ed:72:05:37:8f:61:aa:73:7c:9a:6a:fc:fe:01:e2:
+         19:81:70:07:25:32:b0:f0:6f:3b:c7:6a:28:3d:e4:51:87:e6:
+         7e:82:ec:ae:48:a7:b1:77:38:c2:d6:56:af:8f:f2:01:fc:65:
+         65:10:09:f7:74:29:b5:0e:92:ee:90:98:d1:88:a2:65:b7:cd:
+         9c:0e:a7:86:98:28:bc:ae:15:83:b6:1a:d7:1d:ec:19:da:7a:
+         8e:40:f9:99:15:d5:7d:a5:ba:ab:fd:26:98:6e:9c:41:3b:b6:
+         81:18:ec:70:48:d7:6e:7f:a6:e1:77:25:d6:dd:62:e8:52:f3:
+         8c:16:39:67:e2:22:0d:77:2e:fb:11:6c:e4:dd:38:b4:27:5f:
+         03:a8:3d:44:e2:f2:84:4b:84:fd:56:a6:9e:4d:7b:a2:16:4f:
+         07:f5:34:24:72:a5:a2:fa:16:66:2a:a4:4a:0e:c8:0d:27:44:
+         9c:77:d4:12:10:87:d2:00:2c:7a:bb:8e:88:22:91:15:be:a2:
+         59:ca:34:e0:1c:61:94:86:20:33:cd:e7:4c:5d:3b:92:3e:cb:
+         d6:2d:ea:54:fa:fb:af:54:f5:a8:c5:0b:ca:8b:87:00:e6:9f:
+         e6:95:bf:b7:c4:a3:59:f5:16:6c:5f:3e:69:55:80:39:f6:75:
+         50:14:3e:32
+-----BEGIN CERTIFICATE-----
+MIIFHzCCBAegAwIBAgIEByekazANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDQwMjE0MzYxMFoX
+DTIxMDQwMjE0MzU1MlowgY0xCzAJBgNVBAYTAk5MMRIwEAYDVQQHEwlBbXN0ZXJk
+YW0xJTAjBgNVBAoTHFZlcml6b24gRW50ZXJwcmlzZSBTb2x1dGlvbnMxEzARBgNV
+BAsTCkN5YmVydHJ1c3QxLjAsBgNVBAMTJVZlcml6b24gQWthbWFpIFN1cmVTZXJ2
+ZXIgQ0EgRzE0LVNIQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDd
+bp4CaQK1o5kuCGQyalnzxp6mIAfSSNGok8fqR4+DOUDXIF2Nmrqr2HDsnYjRvWL2
+2+ydXjUBdgMj5W/Sr0Y1WVpc0agjwevpINRJ1j8A2Kgi3kN5gazppJL1d3AFHly2
+oPeQpM2rKCyQwucPw68cR1nVhC7fJgdFI1rG6JDIhUuMFh5g+QET8RQf5ugU7cXS
+b2MobnKMSa4IcseTlbQLDK6PmmeE9Vcb24HXF51BEUMZvW1Khe2PcCWrZqv2+m0c
+PKvtF71WhOHbdTOyKEuZjvlLgjNQn5JT7fqtD5Wco/LLYPB3HckBi18thr6/Nrgk
+lhN8wYZabMFIKn8+k2DFAgMBAAGjggG3MIIBszASBgNVHRMBAf8ECDAGAQH/AgEC
+MEwGA1UdIARFMEMwQQYJKwYBBAGxPgEyMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+c2VjdXJlLm9tbmlyb290LmNvbS9yZXBvc2l0b3J5MIG6BggrBgEFBQcBAQSBrTCB
+qjAyBggrBgEFBQcwAYYmaHR0cDovL29jc3Aub21uaXJvb3QuY29tL2JhbHRpbW9y
+ZXJvb3QwOQYIKwYBBQUHMAKGLWh0dHBzOi8vY2FjZXJ0Lm9tbmlyb290LmNvbS9i
+YWx0aW1vcmVyb290LmNydDA5BggrBgEFBQcwAoYtaHR0cHM6Ly9jYWNlcnQub21u
+aXJvb3QuY29tL2JhbHRpbW9yZXJvb3QuZGVyMA4GA1UdDwEB/wQEAwIBxjAfBgNV
+HSMEGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DBCBgNVHR8EOzA5MDegNaAzhjFo
+dHRwOi8vY2RwMS5wdWJsaWMtdHJ1c3QuY29tL0NSTC9PbW5pcm9vdDIwMjUuY3Js
+MB0GA1UdDgQWBBT4vfqvc3fGxxv5S00Rp9Ezr69yETANBgkqhkiG9w0BAQsFAAOC
+AQEAgNl67XIFN49hqnN8mmr8/gHiGYFwByUysPBvO8dqKD3kUYfmfoLsrkinsXc4
+wtZWr4/yAfxlZRAJ93QptQ6S7pCY0YiiZbfNnA6nhpgovK4Vg7Ya1x3sGdp6jkD5
+mRXVfaW6q/0mmG6cQTu2gRjscEjXbn+m4Xcl1t1i6FLzjBY5Z+IiDXcu+xFs5N04
+tCdfA6g9ROLyhEuE/Vamnk17ohZPB/U0JHKlovoWZiqkSg7IDSdEnHfUEhCH0gAs
+eruOiCKRFb6iWco04BxhlIYgM83nTF07kj7L1i3qVPr7r1T1qMULyouHAOaf5pW/
+t8SjWfUWbF8+aVWAOfZ1UBQ+Mg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert41[] = {
+  0x30, 0x82, 0x05, 0x1f, 0x30, 0x82, 0x04, 0x07, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0xa4, 0x6b, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+  0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+  0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+  0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x36, 0x31, 0x30, 0x5a, 0x17,
+  0x0d, 0x32, 0x31, 0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x35, 0x35,
+  0x32, 0x5a, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,
+  0x55, 0x04, 0x07, 0x13, 0x09, 0x41, 0x6d, 0x73, 0x74, 0x65, 0x72, 0x64,
+  0x61, 0x6d, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x1c, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x45, 0x6e, 0x74,
+  0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x20, 0x53, 0x6f, 0x6c, 0x75,
+  0x74, 0x69, 0x6f, 0x6e, 0x73, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x25, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x41, 0x6b, 0x61,
+  0x6d, 0x61, 0x69, 0x20, 0x53, 0x75, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76,
+  0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x47, 0x31, 0x34, 0x2d, 0x53, 0x48,
+  0x41, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdd,
+  0x6e, 0x9e, 0x02, 0x69, 0x02, 0xb5, 0xa3, 0x99, 0x2e, 0x08, 0x64, 0x32,
+  0x6a, 0x59, 0xf3, 0xc6, 0x9e, 0xa6, 0x20, 0x07, 0xd2, 0x48, 0xd1, 0xa8,
+  0x93, 0xc7, 0xea, 0x47, 0x8f, 0x83, 0x39, 0x40, 0xd7, 0x20, 0x5d, 0x8d,
+  0x9a, 0xba, 0xab, 0xd8, 0x70, 0xec, 0x9d, 0x88, 0xd1, 0xbd, 0x62, 0xf6,
+  0xdb, 0xec, 0x9d, 0x5e, 0x35, 0x01, 0x76, 0x03, 0x23, 0xe5, 0x6f, 0xd2,
+  0xaf, 0x46, 0x35, 0x59, 0x5a, 0x5c, 0xd1, 0xa8, 0x23, 0xc1, 0xeb, 0xe9,
+  0x20, 0xd4, 0x49, 0xd6, 0x3f, 0x00, 0xd8, 0xa8, 0x22, 0xde, 0x43, 0x79,
+  0x81, 0xac, 0xe9, 0xa4, 0x92, 0xf5, 0x77, 0x70, 0x05, 0x1e, 0x5c, 0xb6,
+  0xa0, 0xf7, 0x90, 0xa4, 0xcd, 0xab, 0x28, 0x2c, 0x90, 0xc2, 0xe7, 0x0f,
+  0xc3, 0xaf, 0x1c, 0x47, 0x59, 0xd5, 0x84, 0x2e, 0xdf, 0x26, 0x07, 0x45,
+  0x23, 0x5a, 0xc6, 0xe8, 0x90, 0xc8, 0x85, 0x4b, 0x8c, 0x16, 0x1e, 0x60,
+  0xf9, 0x01, 0x13, 0xf1, 0x14, 0x1f, 0xe6, 0xe8, 0x14, 0xed, 0xc5, 0xd2,
+  0x6f, 0x63, 0x28, 0x6e, 0x72, 0x8c, 0x49, 0xae, 0x08, 0x72, 0xc7, 0x93,
+  0x95, 0xb4, 0x0b, 0x0c, 0xae, 0x8f, 0x9a, 0x67, 0x84, 0xf5, 0x57, 0x1b,
+  0xdb, 0x81, 0xd7, 0x17, 0x9d, 0x41, 0x11, 0x43, 0x19, 0xbd, 0x6d, 0x4a,
+  0x85, 0xed, 0x8f, 0x70, 0x25, 0xab, 0x66, 0xab, 0xf6, 0xfa, 0x6d, 0x1c,
+  0x3c, 0xab, 0xed, 0x17, 0xbd, 0x56, 0x84, 0xe1, 0xdb, 0x75, 0x33, 0xb2,
+  0x28, 0x4b, 0x99, 0x8e, 0xf9, 0x4b, 0x82, 0x33, 0x50, 0x9f, 0x92, 0x53,
+  0xed, 0xfa, 0xad, 0x0f, 0x95, 0x9c, 0xa3, 0xf2, 0xcb, 0x60, 0xf0, 0x77,
+  0x1d, 0xc9, 0x01, 0x8b, 0x5f, 0x2d, 0x86, 0xbe, 0xbf, 0x36, 0xb8, 0x24,
+  0x96, 0x13, 0x7c, 0xc1, 0x86, 0x5a, 0x6c, 0xc1, 0x48, 0x2a, 0x7f, 0x3e,
+  0x93, 0x60, 0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xb7,
+  0x30, 0x82, 0x01, 0xb3, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02,
+  0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+  0x41, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e, 0x01, 0x32,
+  0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+  0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72,
+  0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+  0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x81, 0xba, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xad, 0x30, 0x81,
+  0xaa, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+  0x01, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63,
+  0x73, 0x70, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72,
+  0x65, 0x72, 0x6f, 0x6f, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73,
+  0x3a, 0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d,
+  0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+  0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+  0x2e, 0x63, 0x72, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+  0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d, 0x6e,
+  0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61,
+  0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+  0x64, 0x65, 0x72, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0xc6, 0x30, 0x1f, 0x06, 0x03, 0x55,
+  0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30,
+  0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a,
+  0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+  0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70,
+  0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69,
+  0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf8,
+  0xbd, 0xfa, 0xaf, 0x73, 0x77, 0xc6, 0xc7, 0x1b, 0xf9, 0x4b, 0x4d, 0x11,
+  0xa7, 0xd1, 0x33, 0xaf, 0xaf, 0x72, 0x11, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x01, 0x00, 0x80, 0xd9, 0x7a, 0xed, 0x72, 0x05, 0x37, 0x8f, 0x61,
+  0xaa, 0x73, 0x7c, 0x9a, 0x6a, 0xfc, 0xfe, 0x01, 0xe2, 0x19, 0x81, 0x70,
+  0x07, 0x25, 0x32, 0xb0, 0xf0, 0x6f, 0x3b, 0xc7, 0x6a, 0x28, 0x3d, 0xe4,
+  0x51, 0x87, 0xe6, 0x7e, 0x82, 0xec, 0xae, 0x48, 0xa7, 0xb1, 0x77, 0x38,
+  0xc2, 0xd6, 0x56, 0xaf, 0x8f, 0xf2, 0x01, 0xfc, 0x65, 0x65, 0x10, 0x09,
+  0xf7, 0x74, 0x29, 0xb5, 0x0e, 0x92, 0xee, 0x90, 0x98, 0xd1, 0x88, 0xa2,
+  0x65, 0xb7, 0xcd, 0x9c, 0x0e, 0xa7, 0x86, 0x98, 0x28, 0xbc, 0xae, 0x15,
+  0x83, 0xb6, 0x1a, 0xd7, 0x1d, 0xec, 0x19, 0xda, 0x7a, 0x8e, 0x40, 0xf9,
+  0x99, 0x15, 0xd5, 0x7d, 0xa5, 0xba, 0xab, 0xfd, 0x26, 0x98, 0x6e, 0x9c,
+  0x41, 0x3b, 0xb6, 0x81, 0x18, 0xec, 0x70, 0x48, 0xd7, 0x6e, 0x7f, 0xa6,
+  0xe1, 0x77, 0x25, 0xd6, 0xdd, 0x62, 0xe8, 0x52, 0xf3, 0x8c, 0x16, 0x39,
+  0x67, 0xe2, 0x22, 0x0d, 0x77, 0x2e, 0xfb, 0x11, 0x6c, 0xe4, 0xdd, 0x38,
+  0xb4, 0x27, 0x5f, 0x03, 0xa8, 0x3d, 0x44, 0xe2, 0xf2, 0x84, 0x4b, 0x84,
+  0xfd, 0x56, 0xa6, 0x9e, 0x4d, 0x7b, 0xa2, 0x16, 0x4f, 0x07, 0xf5, 0x34,
+  0x24, 0x72, 0xa5, 0xa2, 0xfa, 0x16, 0x66, 0x2a, 0xa4, 0x4a, 0x0e, 0xc8,
+  0x0d, 0x27, 0x44, 0x9c, 0x77, 0xd4, 0x12, 0x10, 0x87, 0xd2, 0x00, 0x2c,
+  0x7a, 0xbb, 0x8e, 0x88, 0x22, 0x91, 0x15, 0xbe, 0xa2, 0x59, 0xca, 0x34,
+  0xe0, 0x1c, 0x61, 0x94, 0x86, 0x20, 0x33, 0xcd, 0xe7, 0x4c, 0x5d, 0x3b,
+  0x92, 0x3e, 0xcb, 0xd6, 0x2d, 0xea, 0x54, 0xfa, 0xfb, 0xaf, 0x54, 0xf5,
+  0xa8, 0xc5, 0x0b, 0xca, 0x8b, 0x87, 0x00, 0xe6, 0x9f, 0xe6, 0x95, 0xbf,
+  0xb7, 0xc4, 0xa3, 0x59, 0xf5, 0x16, 0x6c, 0x5f, 0x3e, 0x69, 0x55, 0x80,
+  0x39, 0xf6, 0x75, 0x50, 0x14, 0x3e, 0x32,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            7e:e1:4a:6f:6f:ef:f2:d3:7f:3f:ad:65:4d:3a:da:b4
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 EV SSL CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d8:a1:65:74:23:e8:2b:64:e2:32:d7:33:37:3d:
+                    8e:f5:34:16:48:dd:4f:7f:87:1c:f8:44:23:13:8e:
+                    fb:11:d8:44:5a:18:71:8e:60:16:26:92:9b:fd:17:
+                    0b:e1:71:70:42:fe:bf:fa:1c:c0:aa:a3:a7:b5:71:
+                    e8:ff:18:83:f6:df:10:0a:13:62:c8:3d:9c:a7:de:
+                    2e:3f:0c:d9:1d:e7:2e:fb:2a:ce:c8:9a:7f:87:bf:
+                    d8:4c:04:15:32:c9:d1:cc:95:71:a0:4e:28:4f:84:
+                    d9:35:fb:e3:86:6f:94:53:e6:72:8a:63:67:2e:be:
+                    69:f6:f7:6e:8e:9c:60:04:eb:29:fa:c4:47:42:d2:
+                    78:98:e3:ec:0b:a5:92:dc:b7:9a:bd:80:64:2b:38:
+                    7c:38:09:5b:66:f6:2d:95:7a:86:b2:34:2e:85:9e:
+                    90:0e:5f:b7:5d:a4:51:72:46:70:13:bf:67:f2:b6:
+                    a7:4d:14:1e:6c:b9:53:ee:23:1a:4e:8d:48:55:43:
+                    41:b1:89:75:6a:40:28:c5:7d:dd:d2:6e:d2:02:19:
+                    2f:7b:24:94:4b:eb:f1:1a:a9:9b:e3:23:9a:ea:fa:
+                    33:ab:0a:2c:b7:f4:60:08:dd:9f:1c:cd:dd:2d:01:
+                    66:80:af:b3:2f:29:1d:23:b8:8a:e1:a1:70:07:0c:
+                    34:0f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://s2.symcb.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.symauth.com/cps
+                  User Notice:
+                    Explicit Text: http://www.symauth.com/rpa
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://s1.symcb.com/pca3-g5.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-533
+            X509v3 Subject Key Identifier: 
+                01:59:AB:E7:DD:3A:0B:59:A6:64:63:D6:CF:20:07:57:D5:91:E7:6A
+            X509v3 Authority Key Identifier: 
+                keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+    Signature Algorithm: sha256WithRSAEncryption
+         42:01:55:7b:d0:16:1a:5d:58:e8:bb:9b:a8:4d:d7:f3:d7:eb:
+         13:94:86:d6:7f:21:0b:47:bc:57:9b:92:5d:4f:05:9f:38:a4:
+         10:7c:cf:83:be:06:43:46:8d:08:bc:6a:d7:10:a6:fa:ab:af:
+         2f:61:a8:63:f2:65:df:7f:4c:88:12:88:4f:b3:69:d9:ff:27:
+         c0:0a:97:91:8f:56:fb:89:c4:a8:bb:92:2d:1b:73:b0:c6:ab:
+         36:f4:96:6c:20:08:ef:0a:1e:66:24:45:4f:67:00:40:c8:07:
+         54:74:33:3b:a6:ad:bb:23:9f:66:ed:a2:44:70:34:fb:0e:ea:
+         01:fd:cf:78:74:df:a7:ad:55:b7:5f:4d:f6:d6:3f:e0:86:ce:
+         24:c7:42:a9:13:14:44:35:4b:b6:df:c9:60:ac:0c:7f:d9:93:
+         21:4b:ee:9c:e4:49:02:98:d3:60:7b:5c:bc:d5:30:2f:07:ce:
+         44:42:c4:0b:99:fe:e6:9f:fc:b0:78:86:51:6d:d1:2c:9d:c6:
+         96:fb:85:82:bb:04:2f:f7:62:80:ef:62:da:7f:f6:0e:ac:90:
+         b8:56:bd:79:3f:f2:80:6e:a3:d9:b9:0f:5d:3a:07:1d:91:93:
+         86:4b:29:4c:e1:dc:b5:e1:e0:33:9d:b3:cb:36:91:4b:fe:a1:
+         b4:ee:f0:f9
+-----BEGIN CERTIFICATE-----
+MIIFKzCCBBOgAwIBAgIQfuFKb2/v8tN/P61lTTratDANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB3MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIENs
+YXNzIDMgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDYoWV0I+grZOIy1zM3PY71NBZI3U9/hxz4RCMTjvsR2ERaGHGOYBYmkpv9
+FwvhcXBC/r/6HMCqo6e1cej/GIP23xAKE2LIPZyn3i4/DNkd5y77Ks7Imn+Hv9hM
+BBUyydHMlXGgTihPhNk1++OGb5RT5nKKY2cuvmn2926OnGAE6yn6xEdC0niY4+wL
+pZLct5q9gGQrOHw4CVtm9i2VeoayNC6FnpAOX7ddpFFyRnATv2fytqdNFB5suVPu
+IxpOjUhVQ0GxiXVqQCjFfd3SbtICGS97JJRL6/EaqZvjI5rq+jOrCiy39GAI3Z8c
+zd0tAWaAr7MvKR0juIrhoXAHDDQPAgMBAAGjggFdMIIBWTAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wEgYDVR0TAQH/BAgw
+BgEB/wIBADBlBgNVHSAEXjBcMFoGBFUdIAAwUjAmBggrBgEFBQcCARYaaHR0cDov
+L3d3dy5zeW1hdXRoLmNvbS9jcHMwKAYIKwYBBQUHAgIwHBoaaHR0cDovL3d3dy5z
+eW1hdXRoLmNvbS9ycGEwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3MxLnN5bWNi
+LmNvbS9wY2EzLWc1LmNybDAOBgNVHQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwx
+GjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTMzMB0GA1UdDgQWBBQBWavn3ToLWaZk
+Y9bPIAdX1ZHnajAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzANBgkq
+hkiG9w0BAQsFAAOCAQEAQgFVe9AWGl1Y6LubqE3X89frE5SG1n8hC0e8V5uSXU8F
+nzikEHzPg74GQ0aNCLxq1xCm+quvL2GoY/Jl339MiBKIT7Np2f8nwAqXkY9W+4nE
+qLuSLRtzsMarNvSWbCAI7woeZiRFT2cAQMgHVHQzO6atuyOfZu2iRHA0+w7qAf3P
+eHTfp61Vt19N9tY/4IbOJMdCqRMURDVLtt/JYKwMf9mTIUvunORJApjTYHtcvNUw
+LwfORELEC5n+5p/8sHiGUW3RLJ3GlvuFgrsEL/digO9i2n/2DqyQuFa9eT/ygG6j
+2bkPXToHHZGThkspTOHcteHgM52zyzaRS/6htO7w+Q==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert42[] = {
+  0x30, 0x82, 0x05, 0x2b, 0x30, 0x82, 0x04, 0x13, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x7e, 0xe1, 0x4a, 0x6f, 0x6f, 0xef, 0xf2, 0xd3, 0x7f,
+  0x3f, 0xad, 0x65, 0x4d, 0x3a, 0xda, 0xb4, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+  0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x77, 0x31, 0x0b, 0x30,
+  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+  0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+  0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+  0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+  0x72, 0x6b, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x1f, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+  0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+  0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xd8, 0xa1, 0x65, 0x74, 0x23, 0xe8, 0x2b,
+  0x64, 0xe2, 0x32, 0xd7, 0x33, 0x37, 0x3d, 0x8e, 0xf5, 0x34, 0x16, 0x48,
+  0xdd, 0x4f, 0x7f, 0x87, 0x1c, 0xf8, 0x44, 0x23, 0x13, 0x8e, 0xfb, 0x11,
+  0xd8, 0x44, 0x5a, 0x18, 0x71, 0x8e, 0x60, 0x16, 0x26, 0x92, 0x9b, 0xfd,
+  0x17, 0x0b, 0xe1, 0x71, 0x70, 0x42, 0xfe, 0xbf, 0xfa, 0x1c, 0xc0, 0xaa,
+  0xa3, 0xa7, 0xb5, 0x71, 0xe8, 0xff, 0x18, 0x83, 0xf6, 0xdf, 0x10, 0x0a,
+  0x13, 0x62, 0xc8, 0x3d, 0x9c, 0xa7, 0xde, 0x2e, 0x3f, 0x0c, 0xd9, 0x1d,
+  0xe7, 0x2e, 0xfb, 0x2a, 0xce, 0xc8, 0x9a, 0x7f, 0x87, 0xbf, 0xd8, 0x4c,
+  0x04, 0x15, 0x32, 0xc9, 0xd1, 0xcc, 0x95, 0x71, 0xa0, 0x4e, 0x28, 0x4f,
+  0x84, 0xd9, 0x35, 0xfb, 0xe3, 0x86, 0x6f, 0x94, 0x53, 0xe6, 0x72, 0x8a,
+  0x63, 0x67, 0x2e, 0xbe, 0x69, 0xf6, 0xf7, 0x6e, 0x8e, 0x9c, 0x60, 0x04,
+  0xeb, 0x29, 0xfa, 0xc4, 0x47, 0x42, 0xd2, 0x78, 0x98, 0xe3, 0xec, 0x0b,
+  0xa5, 0x92, 0xdc, 0xb7, 0x9a, 0xbd, 0x80, 0x64, 0x2b, 0x38, 0x7c, 0x38,
+  0x09, 0x5b, 0x66, 0xf6, 0x2d, 0x95, 0x7a, 0x86, 0xb2, 0x34, 0x2e, 0x85,
+  0x9e, 0x90, 0x0e, 0x5f, 0xb7, 0x5d, 0xa4, 0x51, 0x72, 0x46, 0x70, 0x13,
+  0xbf, 0x67, 0xf2, 0xb6, 0xa7, 0x4d, 0x14, 0x1e, 0x6c, 0xb9, 0x53, 0xee,
+  0x23, 0x1a, 0x4e, 0x8d, 0x48, 0x55, 0x43, 0x41, 0xb1, 0x89, 0x75, 0x6a,
+  0x40, 0x28, 0xc5, 0x7d, 0xdd, 0xd2, 0x6e, 0xd2, 0x02, 0x19, 0x2f, 0x7b,
+  0x24, 0x94, 0x4b, 0xeb, 0xf1, 0x1a, 0xa9, 0x9b, 0xe3, 0x23, 0x9a, 0xea,
+  0xfa, 0x33, 0xab, 0x0a, 0x2c, 0xb7, 0xf4, 0x60, 0x08, 0xdd, 0x9f, 0x1c,
+  0xcd, 0xdd, 0x2d, 0x01, 0x66, 0x80, 0xaf, 0xb3, 0x2f, 0x29, 0x1d, 0x23,
+  0xb8, 0x8a, 0xe1, 0xa1, 0x70, 0x07, 0x0c, 0x34, 0x0f, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x5d, 0x30, 0x82, 0x01, 0x59, 0x30, 0x2f,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+  0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73,
+  0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+  0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x65, 0x06, 0x03, 0x55,
+  0x1d, 0x20, 0x04, 0x5e, 0x30, 0x5c, 0x30, 0x5a, 0x06, 0x04, 0x55, 0x1d,
+  0x20, 0x00, 0x30, 0x52, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+  0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72,
+  0x70, 0x61, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30,
+  0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35,
+  0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x29, 0x06, 0x03,
+  0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+  0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+  0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+  0x35, 0x33, 0x33, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+  0x04, 0x14, 0x01, 0x59, 0xab, 0xe7, 0xdd, 0x3a, 0x0b, 0x59, 0xa6, 0x64,
+  0x63, 0xd6, 0xcf, 0x20, 0x07, 0x57, 0xd5, 0x91, 0xe7, 0x6a, 0x30, 0x1f,
+  0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7f,
+  0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3, 0x43,
+  0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x01, 0x00, 0x42, 0x01, 0x55, 0x7b, 0xd0, 0x16, 0x1a, 0x5d, 0x58,
+  0xe8, 0xbb, 0x9b, 0xa8, 0x4d, 0xd7, 0xf3, 0xd7, 0xeb, 0x13, 0x94, 0x86,
+  0xd6, 0x7f, 0x21, 0x0b, 0x47, 0xbc, 0x57, 0x9b, 0x92, 0x5d, 0x4f, 0x05,
+  0x9f, 0x38, 0xa4, 0x10, 0x7c, 0xcf, 0x83, 0xbe, 0x06, 0x43, 0x46, 0x8d,
+  0x08, 0xbc, 0x6a, 0xd7, 0x10, 0xa6, 0xfa, 0xab, 0xaf, 0x2f, 0x61, 0xa8,
+  0x63, 0xf2, 0x65, 0xdf, 0x7f, 0x4c, 0x88, 0x12, 0x88, 0x4f, 0xb3, 0x69,
+  0xd9, 0xff, 0x27, 0xc0, 0x0a, 0x97, 0x91, 0x8f, 0x56, 0xfb, 0x89, 0xc4,
+  0xa8, 0xbb, 0x92, 0x2d, 0x1b, 0x73, 0xb0, 0xc6, 0xab, 0x36, 0xf4, 0x96,
+  0x6c, 0x20, 0x08, 0xef, 0x0a, 0x1e, 0x66, 0x24, 0x45, 0x4f, 0x67, 0x00,
+  0x40, 0xc8, 0x07, 0x54, 0x74, 0x33, 0x3b, 0xa6, 0xad, 0xbb, 0x23, 0x9f,
+  0x66, 0xed, 0xa2, 0x44, 0x70, 0x34, 0xfb, 0x0e, 0xea, 0x01, 0xfd, 0xcf,
+  0x78, 0x74, 0xdf, 0xa7, 0xad, 0x55, 0xb7, 0x5f, 0x4d, 0xf6, 0xd6, 0x3f,
+  0xe0, 0x86, 0xce, 0x24, 0xc7, 0x42, 0xa9, 0x13, 0x14, 0x44, 0x35, 0x4b,
+  0xb6, 0xdf, 0xc9, 0x60, 0xac, 0x0c, 0x7f, 0xd9, 0x93, 0x21, 0x4b, 0xee,
+  0x9c, 0xe4, 0x49, 0x02, 0x98, 0xd3, 0x60, 0x7b, 0x5c, 0xbc, 0xd5, 0x30,
+  0x2f, 0x07, 0xce, 0x44, 0x42, 0xc4, 0x0b, 0x99, 0xfe, 0xe6, 0x9f, 0xfc,
+  0xb0, 0x78, 0x86, 0x51, 0x6d, 0xd1, 0x2c, 0x9d, 0xc6, 0x96, 0xfb, 0x85,
+  0x82, 0xbb, 0x04, 0x2f, 0xf7, 0x62, 0x80, 0xef, 0x62, 0xda, 0x7f, 0xf6,
+  0x0e, 0xac, 0x90, 0xb8, 0x56, 0xbd, 0x79, 0x3f, 0xf2, 0x80, 0x6e, 0xa3,
+  0xd9, 0xb9, 0x0f, 0x5d, 0x3a, 0x07, 0x1d, 0x91, 0x93, 0x86, 0x4b, 0x29,
+  0x4c, 0xe1, 0xdc, 0xb5, 0xe1, 0xe0, 0x33, 0x9d, 0xb3, 0xcb, 0x36, 0x91,
+  0x4b, 0xfe, 0xa1, 0xb4, 0xee, 0xf0, 0xf9,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            51:3f:b9:74:38:70:b7:34:40:41:8d:30:93:06:99:ff
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 Secure Server CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b2:d8:05:ca:1c:74:2d:b5:17:56:39:c5:4a:52:
+                    09:96:e8:4b:d8:0c:f1:68:9f:9a:42:28:62:c3:a5:
+                    30:53:7e:55:11:82:5b:03:7a:0d:2f:e1:79:04:c9:
+                    b4:96:77:19:81:01:94:59:f9:bc:f7:7a:99:27:82:
+                    2d:b7:83:dd:5a:27:7f:b2:03:7a:9c:53:25:e9:48:
+                    1f:46:4f:c8:9d:29:f8:be:79:56:f6:f7:fd:d9:3a:
+                    68:da:8b:4b:82:33:41:12:c3:c8:3c:cc:d6:96:7a:
+                    84:21:1a:22:04:03:27:17:8b:1c:68:61:93:0f:0e:
+                    51:80:33:1d:b4:b5:ce:eb:7e:d0:62:ac:ee:b3:7b:
+                    01:74:ef:69:35:eb:ca:d5:3d:a9:ee:97:98:ca:8d:
+                    aa:44:0e:25:99:4a:15:96:a4:ce:6d:02:54:1f:2a:
+                    6a:26:e2:06:3a:63:48:ac:b4:4c:d1:75:93:50:ff:
+                    13:2f:d6:da:e1:c6:18:f5:9f:c9:25:5d:f3:00:3a:
+                    de:26:4d:b4:29:09:cd:0f:3d:23:6f:16:4a:81:16:
+                    fb:f2:83:10:c3:b8:d6:d8:55:32:3d:f1:bd:0f:bd:
+                    8c:52:95:4a:16:97:7a:52:21:63:75:2f:16:f9:c4:
+                    66:be:f5:b5:09:d8:ff:27:00:cd:44:7c:6f:4b:3f:
+                    b0:f7
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://s1.symcb.com/pca3-g5.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://s2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.symauth.com/cps
+                  User Notice:
+                    Explicit Text: http://www.symauth.com/rpa
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-534
+            X509v3 Subject Key Identifier: 
+                5F:60:CF:61:90:55:DF:84:43:14:8A:60:2A:B2:F5:7A:F4:43:18:EF
+            X509v3 Authority Key Identifier: 
+                keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+    Signature Algorithm: sha256WithRSAEncryption
+         5e:94:56:49:dd:8e:2d:65:f5:c1:36:51:b6:03:e3:da:9e:73:
+         19:f2:1f:59:ab:58:7e:6c:26:05:2c:fa:81:d7:5c:23:17:22:
+         2c:37:93:f7:86:ec:85:e6:b0:a3:fd:1f:e2:32:a8:45:6f:e1:
+         d9:fb:b9:af:d2:70:a0:32:42:65:bf:84:fe:16:2a:8f:3f:c5:
+         a6:d6:a3:93:7d:43:e9:74:21:91:35:28:f4:63:e9:2e:ed:f7:
+         f5:5c:7f:4b:9a:b5:20:e9:0a:bd:e0:45:10:0c:14:94:9a:5d:
+         a5:e3:4b:91:e8:24:9b:46:40:65:f4:22:72:cd:99:f8:88:11:
+         f5:f3:7f:e6:33:82:e6:a8:c5:7e:fe:d0:08:e2:25:58:08:71:
+         68:e6:cd:a2:e6:14:de:4e:52:24:2d:fd:e5:79:13:53:e7:5e:
+         2f:2d:4d:1b:6d:40:15:52:2b:f7:87:89:78:12:81:6e:d9:4d:
+         aa:2d:78:d4:c2:2c:3d:08:5f:87:91:9e:1f:0e:b0:de:30:52:
+         64:86:89:aa:9d:66:9c:0e:76:0c:80:f2:74:d8:2a:f8:b8:3a:
+         ce:d7:d6:0f:11:be:6b:ab:14:f5:bd:41:a0:22:63:89:f1:ba:
+         0f:6f:29:63:66:2d:3f:ac:8c:72:c5:fb:c7:e4:d4:0f:f2:3b:
+         4f:8c:29:c7
+-----BEGIN CERTIFICATE-----
+MIIFODCCBCCgAwIBAgIQUT+5dDhwtzRAQY0wkwaZ/zANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB+MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxLzAtBgNVBAMTJlN5bWFudGVjIENs
+YXNzIDMgU2VjdXJlIFNlcnZlciBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAstgFyhx0LbUXVjnFSlIJluhL2AzxaJ+aQihiw6UwU35VEYJb
+A3oNL+F5BMm0lncZgQGUWfm893qZJ4Itt4PdWid/sgN6nFMl6UgfRk/InSn4vnlW
+9vf92Tpo2otLgjNBEsPIPMzWlnqEIRoiBAMnF4scaGGTDw5RgDMdtLXO637QYqzu
+s3sBdO9pNevK1T2p7peYyo2qRA4lmUoVlqTObQJUHypqJuIGOmNIrLRM0XWTUP8T
+L9ba4cYY9Z/JJV3zADreJk20KQnNDz0jbxZKgRb78oMQw7jW2FUyPfG9D72MUpVK
+Fpd6UiFjdS8W+cRmvvW1Cdj/JwDNRHxvSz+w9wIDAQABo4IBYzCCAV8wEgYDVR0T
+AQH/BAgwBgEB/wIBADAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vczEuc3ltY2Iu
+Y29tL3BjYTMtZzUuY3JsMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQjMCEw
+HwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wawYDVR0gBGQwYjBgBgpg
+hkgBhvhFAQc2MFIwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20v
+Y3BzMCgGCCsGAQUFBwICMBwaGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20vcnBhMCkG
+A1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTUzNDAdBgNVHQ4E
+FgQUX2DPYZBV34RDFIpgKrL1evRDGO8wHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnz
+Qzn6Aq8zMTMwDQYJKoZIhvcNAQELBQADggEBAF6UVkndji1l9cE2UbYD49qecxny
+H1mrWH5sJgUs+oHXXCMXIiw3k/eG7IXmsKP9H+IyqEVv4dn7ua/ScKAyQmW/hP4W
+Ko8/xabWo5N9Q+l0IZE1KPRj6S7t9/Vcf0uatSDpCr3gRRAMFJSaXaXjS5HoJJtG
+QGX0InLNmfiIEfXzf+YzguaoxX7+0AjiJVgIcWjmzaLmFN5OUiQt/eV5E1PnXi8t
+TRttQBVSK/eHiXgSgW7ZTaoteNTCLD0IX4eRnh8OsN4wUmSGiaqdZpwOdgyA8nTY
+Kvi4Os7X1g8RvmurFPW9QaAiY4nxug9vKWNmLT+sjHLF+8fk1A/yO0+MKcc=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert43[] = {
+  0x30, 0x82, 0x05, 0x38, 0x30, 0x82, 0x04, 0x20, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x51, 0x3f, 0xb9, 0x74, 0x38, 0x70, 0xb7, 0x34, 0x40,
+  0x41, 0x8d, 0x30, 0x93, 0x06, 0x99, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+  0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x7e, 0x31, 0x0b, 0x30,
+  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+  0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+  0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+  0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+  0x72, 0x6b, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x26, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+  0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65,
+  0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d,
+  0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xb2, 0xd8, 0x05, 0xca, 0x1c, 0x74, 0x2d, 0xb5, 0x17, 0x56, 0x39, 0xc5,
+  0x4a, 0x52, 0x09, 0x96, 0xe8, 0x4b, 0xd8, 0x0c, 0xf1, 0x68, 0x9f, 0x9a,
+  0x42, 0x28, 0x62, 0xc3, 0xa5, 0x30, 0x53, 0x7e, 0x55, 0x11, 0x82, 0x5b,
+  0x03, 0x7a, 0x0d, 0x2f, 0xe1, 0x79, 0x04, 0xc9, 0xb4, 0x96, 0x77, 0x19,
+  0x81, 0x01, 0x94, 0x59, 0xf9, 0xbc, 0xf7, 0x7a, 0x99, 0x27, 0x82, 0x2d,
+  0xb7, 0x83, 0xdd, 0x5a, 0x27, 0x7f, 0xb2, 0x03, 0x7a, 0x9c, 0x53, 0x25,
+  0xe9, 0x48, 0x1f, 0x46, 0x4f, 0xc8, 0x9d, 0x29, 0xf8, 0xbe, 0x79, 0x56,
+  0xf6, 0xf7, 0xfd, 0xd9, 0x3a, 0x68, 0xda, 0x8b, 0x4b, 0x82, 0x33, 0x41,
+  0x12, 0xc3, 0xc8, 0x3c, 0xcc, 0xd6, 0x96, 0x7a, 0x84, 0x21, 0x1a, 0x22,
+  0x04, 0x03, 0x27, 0x17, 0x8b, 0x1c, 0x68, 0x61, 0x93, 0x0f, 0x0e, 0x51,
+  0x80, 0x33, 0x1d, 0xb4, 0xb5, 0xce, 0xeb, 0x7e, 0xd0, 0x62, 0xac, 0xee,
+  0xb3, 0x7b, 0x01, 0x74, 0xef, 0x69, 0x35, 0xeb, 0xca, 0xd5, 0x3d, 0xa9,
+  0xee, 0x97, 0x98, 0xca, 0x8d, 0xaa, 0x44, 0x0e, 0x25, 0x99, 0x4a, 0x15,
+  0x96, 0xa4, 0xce, 0x6d, 0x02, 0x54, 0x1f, 0x2a, 0x6a, 0x26, 0xe2, 0x06,
+  0x3a, 0x63, 0x48, 0xac, 0xb4, 0x4c, 0xd1, 0x75, 0x93, 0x50, 0xff, 0x13,
+  0x2f, 0xd6, 0xda, 0xe1, 0xc6, 0x18, 0xf5, 0x9f, 0xc9, 0x25, 0x5d, 0xf3,
+  0x00, 0x3a, 0xde, 0x26, 0x4d, 0xb4, 0x29, 0x09, 0xcd, 0x0f, 0x3d, 0x23,
+  0x6f, 0x16, 0x4a, 0x81, 0x16, 0xfb, 0xf2, 0x83, 0x10, 0xc3, 0xb8, 0xd6,
+  0xd8, 0x55, 0x32, 0x3d, 0xf1, 0xbd, 0x0f, 0xbd, 0x8c, 0x52, 0x95, 0x4a,
+  0x16, 0x97, 0x7a, 0x52, 0x21, 0x63, 0x75, 0x2f, 0x16, 0xf9, 0xc4, 0x66,
+  0xbe, 0xf5, 0xb5, 0x09, 0xd8, 0xff, 0x27, 0x00, 0xcd, 0x44, 0x7c, 0x6f,
+  0x4b, 0x3f, 0xb0, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+  0x63, 0x30, 0x82, 0x01, 0x5f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27,
+  0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30,
+  0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+  0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x32, 0x2e, 0x73,
+  0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x6b, 0x06, 0x03,
+  0x55, 0x1d, 0x20, 0x04, 0x64, 0x30, 0x62, 0x30, 0x60, 0x06, 0x0a, 0x60,
+  0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x52, 0x30,
+  0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+  0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+  0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74,
+  0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x29, 0x06,
+  0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c,
+  0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53,
+  0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31,
+  0x2d, 0x35, 0x33, 0x34, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0x5f, 0x60, 0xcf, 0x61, 0x90, 0x55, 0xdf, 0x84, 0x43,
+  0x14, 0x8a, 0x60, 0x2a, 0xb2, 0xf5, 0x7a, 0xf4, 0x43, 0x18, 0xef, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x5e, 0x94, 0x56, 0x49, 0xdd, 0x8e, 0x2d, 0x65,
+  0xf5, 0xc1, 0x36, 0x51, 0xb6, 0x03, 0xe3, 0xda, 0x9e, 0x73, 0x19, 0xf2,
+  0x1f, 0x59, 0xab, 0x58, 0x7e, 0x6c, 0x26, 0x05, 0x2c, 0xfa, 0x81, 0xd7,
+  0x5c, 0x23, 0x17, 0x22, 0x2c, 0x37, 0x93, 0xf7, 0x86, 0xec, 0x85, 0xe6,
+  0xb0, 0xa3, 0xfd, 0x1f, 0xe2, 0x32, 0xa8, 0x45, 0x6f, 0xe1, 0xd9, 0xfb,
+  0xb9, 0xaf, 0xd2, 0x70, 0xa0, 0x32, 0x42, 0x65, 0xbf, 0x84, 0xfe, 0x16,
+  0x2a, 0x8f, 0x3f, 0xc5, 0xa6, 0xd6, 0xa3, 0x93, 0x7d, 0x43, 0xe9, 0x74,
+  0x21, 0x91, 0x35, 0x28, 0xf4, 0x63, 0xe9, 0x2e, 0xed, 0xf7, 0xf5, 0x5c,
+  0x7f, 0x4b, 0x9a, 0xb5, 0x20, 0xe9, 0x0a, 0xbd, 0xe0, 0x45, 0x10, 0x0c,
+  0x14, 0x94, 0x9a, 0x5d, 0xa5, 0xe3, 0x4b, 0x91, 0xe8, 0x24, 0x9b, 0x46,
+  0x40, 0x65, 0xf4, 0x22, 0x72, 0xcd, 0x99, 0xf8, 0x88, 0x11, 0xf5, 0xf3,
+  0x7f, 0xe6, 0x33, 0x82, 0xe6, 0xa8, 0xc5, 0x7e, 0xfe, 0xd0, 0x08, 0xe2,
+  0x25, 0x58, 0x08, 0x71, 0x68, 0xe6, 0xcd, 0xa2, 0xe6, 0x14, 0xde, 0x4e,
+  0x52, 0x24, 0x2d, 0xfd, 0xe5, 0x79, 0x13, 0x53, 0xe7, 0x5e, 0x2f, 0x2d,
+  0x4d, 0x1b, 0x6d, 0x40, 0x15, 0x52, 0x2b, 0xf7, 0x87, 0x89, 0x78, 0x12,
+  0x81, 0x6e, 0xd9, 0x4d, 0xaa, 0x2d, 0x78, 0xd4, 0xc2, 0x2c, 0x3d, 0x08,
+  0x5f, 0x87, 0x91, 0x9e, 0x1f, 0x0e, 0xb0, 0xde, 0x30, 0x52, 0x64, 0x86,
+  0x89, 0xaa, 0x9d, 0x66, 0x9c, 0x0e, 0x76, 0x0c, 0x80, 0xf2, 0x74, 0xd8,
+  0x2a, 0xf8, 0xb8, 0x3a, 0xce, 0xd7, 0xd6, 0x0f, 0x11, 0xbe, 0x6b, 0xab,
+  0x14, 0xf5, 0xbd, 0x41, 0xa0, 0x22, 0x63, 0x89, 0xf1, 0xba, 0x0f, 0x6f,
+  0x29, 0x63, 0x66, 0x2d, 0x3f, 0xac, 0x8c, 0x72, 0xc5, 0xfb, 0xc7, 0xe4,
+  0xd4, 0x0f, 0xf2, 0x3b, 0x4f, 0x8c, 0x29, 0xc7,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120036009 (0x7279aa9)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Validity
+            Not Before: Dec 19 20:07:32 2013 GMT
+            Not After : Dec 19 20:06:55 2017 GMT
+        Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (4096 bit)
+                Modulus:
+                    00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+                    37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+                    6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+                    6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+                    d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+                    e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+                    f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+                    3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+                    e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+                    57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+                    af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+                    33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+                    78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+                    60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+                    35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+                    9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+                    ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+                    ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+                    96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+                    e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+                    64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+                    57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+                    80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+                    ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+                    25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+                    90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+                    16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+                    36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+                    d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+                    c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+                    09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+                    a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+                    3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+                    a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+                    4a:a8:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6334.1.0
+                  CPS: http://cybertrust.omniroot.com/repository.cfm
+
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            X509v3 Authority Key Identifier: 
+                keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+            X509v3 Subject Key Identifier: 
+                51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+    Signature Algorithm: sha256WithRSAEncryption
+         76:85:c5:23:31:1f:b4:73:ea:a0:bc:a5:ed:df:45:43:6a:7f:
+         69:20:1b:80:b2:fb:1c:dd:aa:7f:88:d3:31:41:36:f7:fb:fb:
+         6b:ad:98:8c:78:1f:9d:11:67:3a:cd:4b:ec:a8:bc:9d:15:19:
+         c4:3b:0b:a7:93:ce:e8:fc:9d:5b:e8:1f:cb:56:ae:76:43:2b:
+         c7:13:51:77:41:a8:66:4c:5f:a7:d1:d7:aa:75:c5:1b:29:4c:
+         c9:f4:6d:a1:5e:a1:85:93:16:c2:cb:3b:ab:14:7d:44:fd:da:
+         25:29:86:2a:fe:63:20:ca:d2:0b:c2:34:15:bb:af:5b:7f:8a:
+         e0:aa:ed:45:a6:ea:79:db:d8:35:66:54:43:de:37:33:d1:e4:
+         e0:cd:57:ca:71:b0:7d:e9:16:77:64:e8:59:97:b9:d5:2e:d1:
+         b4:91:da:77:71:f3:4a:0f:48:d2:34:99:60:95:37:ac:1f:01:
+         cd:10:9d:e8:2a:a5:20:c7:50:9b:b3:6c:49:78:2b:58:92:64:
+         89:b8:95:36:a8:34:aa:f0:41:d2:95:5a:24:54:97:4d:6e:05:
+         c4:95:ad:c4:7a:a3:39:fb:79:06:8a:9b:a6:4f:d9:22:fa:44:
+         4e:36:f3:c9:0f:a6:39:e7:80:b2:5e:bf:bd:39:d1:46:e5:55:
+         47:db:bc:6e
+-----BEGIN CERTIFICATE-----
+MIIFhjCCBG6gAwIBAgIEByeaqTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTEzMTIxOTIwMDczMloX
+DTE3MTIxOTIwMDY1NVowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCASAwggEcMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwUwYDVR0gBEwwSjBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
+AwIwHwYDVR0jBBgwFoAU5Z1ZMIJHWMys+ghUNoZ7OrUETfAwQgYDVR0fBDswOTA3
+oDWgM4YxaHR0cDovL2NkcDEucHVibGljLXRydXN0LmNvbS9DUkwvT21uaXJvb3Qy
+MDI1LmNybDAdBgNVHQ4EFgQUUa8kJpz0aCJXgCYrO0ZiFXsezKUwDQYJKoZIhvcN
+AQELBQADggEBAHaFxSMxH7Rz6qC8pe3fRUNqf2kgG4Cy+xzdqn+I0zFBNvf7+2ut
+mIx4H50RZzrNS+yovJ0VGcQ7C6eTzuj8nVvoH8tWrnZDK8cTUXdBqGZMX6fR16p1
+xRspTMn0baFeoYWTFsLLO6sUfUT92iUphir+YyDK0gvCNBW7r1t/iuCq7UWm6nnb
+2DVmVEPeNzPR5ODNV8pxsH3pFndk6FmXudUu0bSR2ndx80oPSNI0mWCVN6wfAc0Q
+negqpSDHUJuzbEl4K1iSZIm4lTaoNKrwQdKVWiRUl01uBcSVrcR6ozn7eQaKm6ZP
+2SL6RE4288kPpjnngLJev7050UblVUfbvG4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert44[] = {
+  0x30, 0x82, 0x05, 0x86, 0x30, 0x82, 0x04, 0x6e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0x9a, 0xa9, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+  0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+  0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33,
+  0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x37, 0x33, 0x32, 0x5a, 0x17,
+  0x0d, 0x31, 0x37, 0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x36, 0x35,
+  0x35, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+  0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+  0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+  0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+  0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+  0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+  0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+  0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+  0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+  0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+  0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+  0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+  0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+  0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+  0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+  0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+  0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+  0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+  0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+  0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+  0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+  0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+  0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+  0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+  0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+  0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+  0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+  0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+  0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+  0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+  0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+  0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+  0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+  0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+  0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+  0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+  0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+  0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+  0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+  0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+  0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+  0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+  0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+  0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+  0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+  0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+  0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+  0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+  0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+  0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+  0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x20, 0x30, 0x82, 0x01, 0x1c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x53, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4c, 0x30,
+  0x4a, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+  0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+  0x63, 0x66, 0x6d, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x02, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac,
+  0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30,
+  0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37,
+  0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
+  0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43,
+  0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32,
+  0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4,
+  0x68, 0x22, 0x57, 0x80, 0x26, 0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e,
+  0xcc, 0xa5, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x76, 0x85,
+  0xc5, 0x23, 0x31, 0x1f, 0xb4, 0x73, 0xea, 0xa0, 0xbc, 0xa5, 0xed, 0xdf,
+  0x45, 0x43, 0x6a, 0x7f, 0x69, 0x20, 0x1b, 0x80, 0xb2, 0xfb, 0x1c, 0xdd,
+  0xaa, 0x7f, 0x88, 0xd3, 0x31, 0x41, 0x36, 0xf7, 0xfb, 0xfb, 0x6b, 0xad,
+  0x98, 0x8c, 0x78, 0x1f, 0x9d, 0x11, 0x67, 0x3a, 0xcd, 0x4b, 0xec, 0xa8,
+  0xbc, 0x9d, 0x15, 0x19, 0xc4, 0x3b, 0x0b, 0xa7, 0x93, 0xce, 0xe8, 0xfc,
+  0x9d, 0x5b, 0xe8, 0x1f, 0xcb, 0x56, 0xae, 0x76, 0x43, 0x2b, 0xc7, 0x13,
+  0x51, 0x77, 0x41, 0xa8, 0x66, 0x4c, 0x5f, 0xa7, 0xd1, 0xd7, 0xaa, 0x75,
+  0xc5, 0x1b, 0x29, 0x4c, 0xc9, 0xf4, 0x6d, 0xa1, 0x5e, 0xa1, 0x85, 0x93,
+  0x16, 0xc2, 0xcb, 0x3b, 0xab, 0x14, 0x7d, 0x44, 0xfd, 0xda, 0x25, 0x29,
+  0x86, 0x2a, 0xfe, 0x63, 0x20, 0xca, 0xd2, 0x0b, 0xc2, 0x34, 0x15, 0xbb,
+  0xaf, 0x5b, 0x7f, 0x8a, 0xe0, 0xaa, 0xed, 0x45, 0xa6, 0xea, 0x79, 0xdb,
+  0xd8, 0x35, 0x66, 0x54, 0x43, 0xde, 0x37, 0x33, 0xd1, 0xe4, 0xe0, 0xcd,
+  0x57, 0xca, 0x71, 0xb0, 0x7d, 0xe9, 0x16, 0x77, 0x64, 0xe8, 0x59, 0x97,
+  0xb9, 0xd5, 0x2e, 0xd1, 0xb4, 0x91, 0xda, 0x77, 0x71, 0xf3, 0x4a, 0x0f,
+  0x48, 0xd2, 0x34, 0x99, 0x60, 0x95, 0x37, 0xac, 0x1f, 0x01, 0xcd, 0x10,
+  0x9d, 0xe8, 0x2a, 0xa5, 0x20, 0xc7, 0x50, 0x9b, 0xb3, 0x6c, 0x49, 0x78,
+  0x2b, 0x58, 0x92, 0x64, 0x89, 0xb8, 0x95, 0x36, 0xa8, 0x34, 0xaa, 0xf0,
+  0x41, 0xd2, 0x95, 0x5a, 0x24, 0x54, 0x97, 0x4d, 0x6e, 0x05, 0xc4, 0x95,
+  0xad, 0xc4, 0x7a, 0xa3, 0x39, 0xfb, 0x79, 0x06, 0x8a, 0x9b, 0xa6, 0x4f,
+  0xd9, 0x22, 0xfa, 0x44, 0x4e, 0x36, 0xf3, 0xc9, 0x0f, 0xa6, 0x39, 0xe7,
+  0x80, 0xb2, 0x5e, 0xbf, 0xbd, 0x39, 0xd1, 0x46, 0xe5, 0x55, 0x47, 0xdb,
+  0xbc, 0x6e,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            67:3f:33:4f:21:53:36:52:c3:5e:15:d2:fd:b3:02:0f
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+        Validity
+            Not Before: Aug  8 01:00:05 2009 GMT
+            Not After : Aug  8 01:00:05 2024 GMT
+        Subject: C=CN, O=WoSign CA Limited, CN=WoSign Class 3 OV Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bc:89:be:61:51:53:c8:2b:96:75:b3:5a:d3:0e:
+                    34:fe:4a:c2:9f:a3:18:83:a2:ac:e3:2e:5e:93:79:
+                    0b:13:49:5e:93:b2:8f:84:10:ed:91:8f:82:ba:ad:
+                    67:df:33:1b:ae:84:f2:55:b0:5b:f4:b3:9e:bc:e6:
+                    04:0f:1d:ef:04:5a:a8:0b:ec:12:6d:56:19:64:70:
+                    49:0f:57:92:f3:5f:21:a6:4d:b4:d2:96:2b:3c:32:
+                    b3:ef:8f:59:0b:14:ba:6e:a2:9e:71:db:f2:88:3f:
+                    28:3b:ec:ce:be:47:ac:45:c7:8a:9e:fa:61:93:c5:
+                    49:17:b6:46:b6:f7:99:16:8c:1c:6e:31:ae:69:ce:
+                    ed:c6:24:92:70:a1:cb:96:c3:6c:16:d0:ee:cc:4f:
+                    86:33:b3:41:e6:3d:3d:db:0e:8c:33:74:bb:c3:fc:
+                    0b:a7:fc:d1:71:e2:c1:0c:d4:f7:ba:3e:80:90:d4:
+                    48:eb:a2:83:70:d8:db:30:07:29:89:f9:81:21:2c:
+                    ff:eb:47:f6:7a:6d:43:96:67:17:3e:f3:e2:73:51:
+                    c7:76:1e:e9:1c:a0:ec:11:1a:b1:cf:1e:2d:9c:55:
+                    ee:3b:c6:2d:ae:dc:66:65:91:a2:66:9c:ac:82:f1:
+                    a4:17:b5:d7:43:83:c3:88:a0:64:de:ca:72:45:dc:
+                    38:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Client Authentication, TLS Web Server Authentication
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crls1.wosign.com/ca1.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp1.wosign.com/ca1
+                CA Issuers - URI:http://aia1.wosign.com/ca1-class3-server.cer
+
+            X509v3 Subject Key Identifier: 
+                62:2E:81:D9:E3:42:79:14:A3:CD:D9:54:8A:6E:F8:DE:95:AA:8F:98
+            X509v3 Authority Key Identifier: 
+                keyid:E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.36305.1.3.2
+                  CPS: http://www.wosign.com/policy/
+
+    Signature Algorithm: sha1WithRSAEncryption
+         ab:70:aa:64:c4:0b:34:91:b9:63:20:5e:b0:9c:21:ff:25:79:
+         6c:57:4e:56:44:58:83:b9:00:ce:2d:65:a8:6d:95:38:ea:82:
+         2d:55:18:60:12:7e:1a:1d:6b:62:34:2c:d9:cd:17:00:43:84:
+         3e:ad:bc:ff:26:85:1f:4a:a7:46:13:b0:7d:3b:0b:d9:4b:9d:
+         b0:cf:8d:f4:05:cb:12:29:fe:e1:97:c7:b7:c7:aa:53:7e:39:
+         2d:9d:f6:d4:5e:b7:8c:15:6a:81:d2:37:1a:43:0e:cb:e6:30:
+         21:43:83:69:0f:ef:6b:cd:10:f9:84:60:cf:89:e9:88:10:01:
+         af:09:f3:48:bb:07:09:75:01:84:fa:b1:1e:51:19:8f:c6:c9:
+         85:65:16:5f:e0:56:7e:b7:bf:40:c2:d4:d0:05:1f:93:63:c9:
+         24:08:3b:91:b2:35:e1:a4:8f:35:db:24:58:75:39:e4:dd:10:
+         1a:b0:df:13:12:73:9e:6d:e7:67:3c:db:1c:1c:dd:10:dd:cc:
+         f4:07:09:b9:2e:e5:75:6d:97:b7:60:5b:89:70:81:d2:26:d8:
+         c6:09:2b:b2:05:7f:c4:b8:14:41:1e:07:f0:48:41:63:cb:0c:
+         aa:45:7e:84:f9:33:b3:58:87:bc:b1:d6:c2:65:c7:57:c6:95:
+         e8:85:90:b0:62:50:f5:ee:12:f1:d8:7e:73:cb:c0:c3:a0:25:
+         17:23:37:91:ba:63:bd:84:af:f3:89:e0:51:c2:73:35:6d:63:
+         86:21:f2:73:bd:c2:47:e0:4d:7e:46:37:4b:d0:f7:61:2a:c7:
+         94:50:25:36:e8:ae:da:2e:1f:b8:08:b2:55:7c:6b:66:43:8f:
+         02:1d:dd:a7:eb:98:00:a7:25:74:f5:93:1b:6d:26:bb:1d:e5:
+         b7:fc:21:25:26:d1:77:1b:a8:6e:aa:c3:4b:64:51:7f:91:0e:
+         41:5c:19:83:a1:a8:1f:94:99:43:0f:99:db:18:dc:21:6f:76:
+         d1:9e:ea:a3:76:e0:f0:09:bc:b9:b4:f7:43:6c:1f:d3:2a:86:
+         6a:2f:e0:6c:f1:83:39:d7:70:db:a2:91:ab:54:be:f4:47:88:
+         8c:f0:10:d2:e4:ad:eb:7e:b1:ba:08:4b:67:04:a3:f2:e9:90:
+         2b:81:e3:74:76:3d:00:9d:d2:bb:fc:a5:a0:15:1c:28:df:10:
+         4f:47:d7:33:46:9d:b2:57:d2:c6:1f:fb:e4:59:4a:2b:28:a9:
+         13:dd:b9:e9:93:b4:88:ee:e2:5b:a0:07:25:fe:8a:2e:78:e4:
+         b4:e1:d5:1d:f6:1a:3a:e3:1c:01:2a:1e:a1:86:54:9e:49:dc:
+         c9:59:e3:0d:6d:5a:13:36
+-----BEGIN CERTIFICATE-----
+MIIFozCCA4ugAwIBAgIQZz8zTyFTNlLDXhXS/bMCDzANBgkqhkiG9w0BAQUFADBV
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
+BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw
+MTAwMDVaFw0yNDA4MDgwMTAwMDVaME8xCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
+b1NpZ24gQ0EgTGltaXRlZDEkMCIGA1UEAxMbV29TaWduIENsYXNzIDMgT1YgU2Vy
+dmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvIm+YVFTyCuW
+dbNa0w40/krCn6MYg6Ks4y5ek3kLE0lek7KPhBDtkY+Cuq1n3zMbroTyVbBb9LOe
+vOYEDx3vBFqoC+wSbVYZZHBJD1eS818hpk200pYrPDKz749ZCxS6bqKecdvyiD8o
+O+zOvkesRceKnvphk8VJF7ZGtveZFowcbjGuac7txiSScKHLlsNsFtDuzE+GM7NB
+5j092w6MM3S7w/wLp/zRceLBDNT3uj6AkNRI66KDcNjbMAcpifmBISz/60f2em1D
+lmcXPvPic1HHdh7pHKDsERqxzx4tnFXuO8YtrtxmZZGiZpysgvGkF7XXQ4PDiKBk
+3spyRdw4+wIDAQABo4IBczCCAW8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQG
+CCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdHwQp
+MCcwJaAjoCGGH2h0dHA6Ly9jcmxzMS53b3NpZ24uY29tL2NhMS5jcmwwcQYIKwYB
+BQUHAQEEZTBjMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcDEud29zaWduLmNvbS9j
+YTEwOAYIKwYBBQUHMAKGLGh0dHA6Ly9haWExLndvc2lnbi5jb20vY2ExLWNsYXNz
+My1zZXJ2ZXIuY2VyMB0GA1UdDgQWBBRiLoHZ40J5FKPN2VSKbvjelaqPmDAfBgNV
+HSMEGDAWgBThZs8O0fGzS7cGIBT+hxLV9v77PjBFBgNVHSAEPjA8MDoGCysGAQQB
+gptRAQMCMCswKQYIKwYBBQUHAgEWHWh0dHA6Ly93d3cud29zaWduLmNvbS9wb2xp
+Y3kvMA0GCSqGSIb3DQEBBQUAA4ICAQCrcKpkxAs0kbljIF6wnCH/JXlsV05WRFiD
+uQDOLWWobZU46oItVRhgEn4aHWtiNCzZzRcAQ4Q+rbz/JoUfSqdGE7B9OwvZS52w
+z430BcsSKf7hl8e3x6pTfjktnfbUXreMFWqB0jcaQw7L5jAhQ4NpD+9rzRD5hGDP
+iemIEAGvCfNIuwcJdQGE+rEeURmPxsmFZRZf4FZ+t79AwtTQBR+TY8kkCDuRsjXh
+pI812yRYdTnk3RAasN8TEnOebednPNscHN0Q3cz0Bwm5LuV1bZe3YFuJcIHSJtjG
+CSuyBX/EuBRBHgfwSEFjywyqRX6E+TOzWIe8sdbCZcdXxpXohZCwYlD17hLx2H5z
+y8DDoCUXIzeRumO9hK/zieBRwnM1bWOGIfJzvcJH4E1+RjdL0PdhKseUUCU26K7a
+Lh+4CLJVfGtmQ48CHd2n65gApyV09ZMbbSa7HeW3/CElJtF3G6huqsNLZFF/kQ5B
+XBmDoagflJlDD5nbGNwhb3bRnuqjduDwCby5tPdDbB/TKoZqL+Bs8YM513DbopGr
+VL70R4iM8BDS5K3rfrG6CEtnBKPy6ZArgeN0dj0AndK7/KWgFRwo3xBPR9czRp2y
+V9LGH/vkWUorKKkT3bnpk7SI7uJboAcl/ooueOS04dUd9ho64xwBKh6hhlSeSdzJ
+WeMNbVoTNg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert45[] = {
+  0x30, 0x82, 0x05, 0xa3, 0x30, 0x82, 0x03, 0x8b, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x67, 0x3f, 0x33, 0x4f, 0x21, 0x53, 0x36, 0x52, 0xc3,
+  0x5e, 0x15, 0xd2, 0xfd, 0xb3, 0x02, 0x0f, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x55,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43,
+  0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11,
+  0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69,
+  0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x21, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x57, 0x6f, 0x53, 0x69, 0x67,
+  0x6e, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x39, 0x30, 0x38, 0x30, 0x38, 0x30,
+  0x31, 0x30, 0x30, 0x30, 0x35, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x38,
+  0x30, 0x38, 0x30, 0x31, 0x30, 0x30, 0x30, 0x35, 0x5a, 0x30, 0x4f, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e,
+  0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57,
+  0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d,
+  0x69, 0x74, 0x65, 0x64, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x1b, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c,
+  0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x4f, 0x56, 0x20, 0x53, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0xbc, 0x89, 0xbe, 0x61, 0x51, 0x53, 0xc8, 0x2b, 0x96,
+  0x75, 0xb3, 0x5a, 0xd3, 0x0e, 0x34, 0xfe, 0x4a, 0xc2, 0x9f, 0xa3, 0x18,
+  0x83, 0xa2, 0xac, 0xe3, 0x2e, 0x5e, 0x93, 0x79, 0x0b, 0x13, 0x49, 0x5e,
+  0x93, 0xb2, 0x8f, 0x84, 0x10, 0xed, 0x91, 0x8f, 0x82, 0xba, 0xad, 0x67,
+  0xdf, 0x33, 0x1b, 0xae, 0x84, 0xf2, 0x55, 0xb0, 0x5b, 0xf4, 0xb3, 0x9e,
+  0xbc, 0xe6, 0x04, 0x0f, 0x1d, 0xef, 0x04, 0x5a, 0xa8, 0x0b, 0xec, 0x12,
+  0x6d, 0x56, 0x19, 0x64, 0x70, 0x49, 0x0f, 0x57, 0x92, 0xf3, 0x5f, 0x21,
+  0xa6, 0x4d, 0xb4, 0xd2, 0x96, 0x2b, 0x3c, 0x32, 0xb3, 0xef, 0x8f, 0x59,
+  0x0b, 0x14, 0xba, 0x6e, 0xa2, 0x9e, 0x71, 0xdb, 0xf2, 0x88, 0x3f, 0x28,
+  0x3b, 0xec, 0xce, 0xbe, 0x47, 0xac, 0x45, 0xc7, 0x8a, 0x9e, 0xfa, 0x61,
+  0x93, 0xc5, 0x49, 0x17, 0xb6, 0x46, 0xb6, 0xf7, 0x99, 0x16, 0x8c, 0x1c,
+  0x6e, 0x31, 0xae, 0x69, 0xce, 0xed, 0xc6, 0x24, 0x92, 0x70, 0xa1, 0xcb,
+  0x96, 0xc3, 0x6c, 0x16, 0xd0, 0xee, 0xcc, 0x4f, 0x86, 0x33, 0xb3, 0x41,
+  0xe6, 0x3d, 0x3d, 0xdb, 0x0e, 0x8c, 0x33, 0x74, 0xbb, 0xc3, 0xfc, 0x0b,
+  0xa7, 0xfc, 0xd1, 0x71, 0xe2, 0xc1, 0x0c, 0xd4, 0xf7, 0xba, 0x3e, 0x80,
+  0x90, 0xd4, 0x48, 0xeb, 0xa2, 0x83, 0x70, 0xd8, 0xdb, 0x30, 0x07, 0x29,
+  0x89, 0xf9, 0x81, 0x21, 0x2c, 0xff, 0xeb, 0x47, 0xf6, 0x7a, 0x6d, 0x43,
+  0x96, 0x67, 0x17, 0x3e, 0xf3, 0xe2, 0x73, 0x51, 0xc7, 0x76, 0x1e, 0xe9,
+  0x1c, 0xa0, 0xec, 0x11, 0x1a, 0xb1, 0xcf, 0x1e, 0x2d, 0x9c, 0x55, 0xee,
+  0x3b, 0xc6, 0x2d, 0xae, 0xdc, 0x66, 0x65, 0x91, 0xa2, 0x66, 0x9c, 0xac,
+  0x82, 0xf1, 0xa4, 0x17, 0xb5, 0xd7, 0x43, 0x83, 0xc3, 0x88, 0xa0, 0x64,
+  0xde, 0xca, 0x72, 0x45, 0xdc, 0x38, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x01, 0x73, 0x30, 0x82, 0x01, 0x6f, 0x30, 0x0e, 0x06, 0x03,
+  0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+  0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x12, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+  0x02, 0x01, 0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29,
+  0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x31, 0x2e, 0x77,
+  0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61,
+  0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x71, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x65, 0x30, 0x63, 0x30, 0x27, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x31, 0x2e,
+  0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
+  0x61, 0x31, 0x30, 0x38, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x02, 0x86, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61,
+  0x69, 0x61, 0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x31, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73,
+  0x33, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x63, 0x65, 0x72,
+  0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x62,
+  0x2e, 0x81, 0xd9, 0xe3, 0x42, 0x79, 0x14, 0xa3, 0xcd, 0xd9, 0x54, 0x8a,
+  0x6e, 0xf8, 0xde, 0x95, 0xaa, 0x8f, 0x98, 0x30, 0x1f, 0x06, 0x03, 0x55,
+  0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe1, 0x66, 0xcf, 0x0e,
+  0xd1, 0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14, 0xfe, 0x87, 0x12, 0xd5,
+  0xf6, 0xfe, 0xfb, 0x3e, 0x30, 0x45, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x3e, 0x30, 0x3c, 0x30, 0x3a, 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01,
+  0x82, 0x9b, 0x51, 0x01, 0x03, 0x02, 0x30, 0x2b, 0x30, 0x29, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1d, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x6f, 0x73,
+  0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x69,
+  0x63, 0x79, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0xab,
+  0x70, 0xaa, 0x64, 0xc4, 0x0b, 0x34, 0x91, 0xb9, 0x63, 0x20, 0x5e, 0xb0,
+  0x9c, 0x21, 0xff, 0x25, 0x79, 0x6c, 0x57, 0x4e, 0x56, 0x44, 0x58, 0x83,
+  0xb9, 0x00, 0xce, 0x2d, 0x65, 0xa8, 0x6d, 0x95, 0x38, 0xea, 0x82, 0x2d,
+  0x55, 0x18, 0x60, 0x12, 0x7e, 0x1a, 0x1d, 0x6b, 0x62, 0x34, 0x2c, 0xd9,
+  0xcd, 0x17, 0x00, 0x43, 0x84, 0x3e, 0xad, 0xbc, 0xff, 0x26, 0x85, 0x1f,
+  0x4a, 0xa7, 0x46, 0x13, 0xb0, 0x7d, 0x3b, 0x0b, 0xd9, 0x4b, 0x9d, 0xb0,
+  0xcf, 0x8d, 0xf4, 0x05, 0xcb, 0x12, 0x29, 0xfe, 0xe1, 0x97, 0xc7, 0xb7,
+  0xc7, 0xaa, 0x53, 0x7e, 0x39, 0x2d, 0x9d, 0xf6, 0xd4, 0x5e, 0xb7, 0x8c,
+  0x15, 0x6a, 0x81, 0xd2, 0x37, 0x1a, 0x43, 0x0e, 0xcb, 0xe6, 0x30, 0x21,
+  0x43, 0x83, 0x69, 0x0f, 0xef, 0x6b, 0xcd, 0x10, 0xf9, 0x84, 0x60, 0xcf,
+  0x89, 0xe9, 0x88, 0x10, 0x01, 0xaf, 0x09, 0xf3, 0x48, 0xbb, 0x07, 0x09,
+  0x75, 0x01, 0x84, 0xfa, 0xb1, 0x1e, 0x51, 0x19, 0x8f, 0xc6, 0xc9, 0x85,
+  0x65, 0x16, 0x5f, 0xe0, 0x56, 0x7e, 0xb7, 0xbf, 0x40, 0xc2, 0xd4, 0xd0,
+  0x05, 0x1f, 0x93, 0x63, 0xc9, 0x24, 0x08, 0x3b, 0x91, 0xb2, 0x35, 0xe1,
+  0xa4, 0x8f, 0x35, 0xdb, 0x24, 0x58, 0x75, 0x39, 0xe4, 0xdd, 0x10, 0x1a,
+  0xb0, 0xdf, 0x13, 0x12, 0x73, 0x9e, 0x6d, 0xe7, 0x67, 0x3c, 0xdb, 0x1c,
+  0x1c, 0xdd, 0x10, 0xdd, 0xcc, 0xf4, 0x07, 0x09, 0xb9, 0x2e, 0xe5, 0x75,
+  0x6d, 0x97, 0xb7, 0x60, 0x5b, 0x89, 0x70, 0x81, 0xd2, 0x26, 0xd8, 0xc6,
+  0x09, 0x2b, 0xb2, 0x05, 0x7f, 0xc4, 0xb8, 0x14, 0x41, 0x1e, 0x07, 0xf0,
+  0x48, 0x41, 0x63, 0xcb, 0x0c, 0xaa, 0x45, 0x7e, 0x84, 0xf9, 0x33, 0xb3,
+  0x58, 0x87, 0xbc, 0xb1, 0xd6, 0xc2, 0x65, 0xc7, 0x57, 0xc6, 0x95, 0xe8,
+  0x85, 0x90, 0xb0, 0x62, 0x50, 0xf5, 0xee, 0x12, 0xf1, 0xd8, 0x7e, 0x73,
+  0xcb, 0xc0, 0xc3, 0xa0, 0x25, 0x17, 0x23, 0x37, 0x91, 0xba, 0x63, 0xbd,
+  0x84, 0xaf, 0xf3, 0x89, 0xe0, 0x51, 0xc2, 0x73, 0x35, 0x6d, 0x63, 0x86,
+  0x21, 0xf2, 0x73, 0xbd, 0xc2, 0x47, 0xe0, 0x4d, 0x7e, 0x46, 0x37, 0x4b,
+  0xd0, 0xf7, 0x61, 0x2a, 0xc7, 0x94, 0x50, 0x25, 0x36, 0xe8, 0xae, 0xda,
+  0x2e, 0x1f, 0xb8, 0x08, 0xb2, 0x55, 0x7c, 0x6b, 0x66, 0x43, 0x8f, 0x02,
+  0x1d, 0xdd, 0xa7, 0xeb, 0x98, 0x00, 0xa7, 0x25, 0x74, 0xf5, 0x93, 0x1b,
+  0x6d, 0x26, 0xbb, 0x1d, 0xe5, 0xb7, 0xfc, 0x21, 0x25, 0x26, 0xd1, 0x77,
+  0x1b, 0xa8, 0x6e, 0xaa, 0xc3, 0x4b, 0x64, 0x51, 0x7f, 0x91, 0x0e, 0x41,
+  0x5c, 0x19, 0x83, 0xa1, 0xa8, 0x1f, 0x94, 0x99, 0x43, 0x0f, 0x99, 0xdb,
+  0x18, 0xdc, 0x21, 0x6f, 0x76, 0xd1, 0x9e, 0xea, 0xa3, 0x76, 0xe0, 0xf0,
+  0x09, 0xbc, 0xb9, 0xb4, 0xf7, 0x43, 0x6c, 0x1f, 0xd3, 0x2a, 0x86, 0x6a,
+  0x2f, 0xe0, 0x6c, 0xf1, 0x83, 0x39, 0xd7, 0x70, 0xdb, 0xa2, 0x91, 0xab,
+  0x54, 0xbe, 0xf4, 0x47, 0x88, 0x8c, 0xf0, 0x10, 0xd2, 0xe4, 0xad, 0xeb,
+  0x7e, 0xb1, 0xba, 0x08, 0x4b, 0x67, 0x04, 0xa3, 0xf2, 0xe9, 0x90, 0x2b,
+  0x81, 0xe3, 0x74, 0x76, 0x3d, 0x00, 0x9d, 0xd2, 0xbb, 0xfc, 0xa5, 0xa0,
+  0x15, 0x1c, 0x28, 0xdf, 0x10, 0x4f, 0x47, 0xd7, 0x33, 0x46, 0x9d, 0xb2,
+  0x57, 0xd2, 0xc6, 0x1f, 0xfb, 0xe4, 0x59, 0x4a, 0x2b, 0x28, 0xa9, 0x13,
+  0xdd, 0xb9, 0xe9, 0x93, 0xb4, 0x88, 0xee, 0xe2, 0x5b, 0xa0, 0x07, 0x25,
+  0xfe, 0x8a, 0x2e, 0x78, 0xe4, 0xb4, 0xe1, 0xd5, 0x1d, 0xf6, 0x1a, 0x3a,
+  0xe3, 0x1c, 0x01, 0x2a, 0x1e, 0xa1, 0x86, 0x54, 0x9e, 0x49, 0xdc, 0xc9,
+  0x59, 0xe3, 0x0d, 0x6d, 0x5a, 0x13, 0x36,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120040007 (0x727aa47)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Validity
+            Not Before: May  7 17:04:09 2014 GMT
+            Not After : May  7 17:03:30 2018 GMT
+        Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (4096 bit)
+                Modulus:
+                    00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+                    37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+                    6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+                    6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+                    d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+                    e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+                    f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+                    3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+                    e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+                    57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+                    af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+                    33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+                    78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+                    60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+                    35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+                    9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+                    ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+                    ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+                    96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+                    e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+                    64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+                    57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+                    80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+                    ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+                    25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+                    90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+                    16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+                    36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+                    d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+                    c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+                    09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+                    a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+                    3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+                    a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+                    4a:a8:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6334.1.0
+                  CPS: http://cybertrust.omniroot.com/repository.cfm
+                Policy: 1.3.6.1.4.1.311.42.1
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication, OCSP Signing
+            X509v3 Authority Key Identifier: 
+                keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+            X509v3 Subject Key Identifier: 
+                51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+    Signature Algorithm: sha256WithRSAEncryption
+         69:62:f6:84:91:00:c4:6f:82:7b:24:e1:42:a2:a5:8b:82:5c:
+         a7:c5:44:cb:e7:52:76:63:d3:76:9e:78:e2:69:35:b1:38:ba:
+         b0:96:c6:1f:ac:7b:c6:b2:65:77:8b:7d:8d:ae:64:b9:a5:8c:
+         17:ca:58:65:c3:ad:82:f5:c5:a2:f5:01:13:93:c6:7e:44:e5:
+         c4:61:fa:03:b6:56:c1:72:e1:c8:28:c5:69:21:8f:ac:6e:fd:
+         7f:43:83:36:b8:c0:d6:a0:28:fe:1a:45:be:fd:93:8c:8d:a4:
+         64:79:1f:14:db:a1:9f:21:dc:c0:4e:7b:17:22:17:b1:b6:3c:
+         d3:9b:e2:0a:a3:7e:99:b0:c1:ac:d8:f4:86:df:3c:da:7d:14:
+         9c:40:c1:7c:d2:18:6f:f1:4f:26:45:09:95:94:5c:da:d0:98:
+         f8:f4:4c:82:96:10:de:ac:30:cb:2b:ae:f9:92:ea:bf:79:03:
+         fc:1e:3f:ac:09:a4:3f:65:fd:91:4f:96:24:a7:ce:b4:4e:6a:
+         96:29:17:ae:c0:a8:df:17:22:f4:17:e3:dc:1c:39:06:56:10:
+         ea:ea:b5:74:17:3c:4e:dd:7e:91:0a:a8:0b:78:07:a7:31:44:
+         08:31:ab:18:84:0f:12:9c:e7:de:84:2c:e9:6d:93:45:bf:a8:
+         c1:3f:34:dc
+-----BEGIN CERTIFICATE-----
+MIIF4TCCBMmgAwIBAgIEByeqRzANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDUwNzE3MDQwOVoX
+DTE4MDUwNzE3MDMzMFowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCAXswggF3MBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwYAYDVR0gBFkwVzBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMAsGCSsGAQQBgjcqATBCBggrBgEFBQcBAQQ2MDQwMgYIKwYBBQUHMAGGJmh0
+dHA6Ly9vY3NwLm9tbmlyb290LmNvbS9iYWx0aW1vcmVyb290MA4GA1UdDwEB/wQE
+AwIBhjAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMJMB8G
+A1UdIwQYMBaAFOWdWTCCR1jMrPoIVDaGezq1BE3wMEIGA1UdHwQ7MDkwN6A1oDOG
+MWh0dHA6Ly9jZHAxLnB1YmxpYy10cnVzdC5jb20vQ1JML09tbmlyb290MjAyNS5j
+cmwwHQYDVR0OBBYEFFGvJCac9GgiV4AmKztGYhV7HsylMA0GCSqGSIb3DQEBCwUA
+A4IBAQBpYvaEkQDEb4J7JOFCoqWLglynxUTL51J2Y9N2nnjiaTWxOLqwlsYfrHvG
+smV3i32NrmS5pYwXylhlw62C9cWi9QETk8Z+ROXEYfoDtlbBcuHIKMVpIY+sbv1/
+Q4M2uMDWoCj+GkW+/ZOMjaRkeR8U26GfIdzATnsXIhextjzTm+IKo36ZsMGs2PSG
+3zzafRScQMF80hhv8U8mRQmVlFza0Jj49EyClhDerDDLK675kuq/eQP8Hj+sCaQ/
+Zf2RT5Ykp860TmqWKReuwKjfFyL0F+PcHDkGVhDq6rV0FzxO3X6RCqgLeAenMUQI
+MasYhA8SnOfehCzpbZNFv6jBPzTc
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert46[] = {
+  0x30, 0x82, 0x05, 0xe1, 0x30, 0x82, 0x04, 0xc9, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0xaa, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+  0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+  0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+  0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x34, 0x30, 0x39, 0x5a, 0x17,
+  0x0d, 0x31, 0x38, 0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x33, 0x33,
+  0x30, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+  0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+  0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+  0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+  0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+  0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+  0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+  0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+  0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+  0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+  0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+  0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+  0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+  0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+  0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+  0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+  0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+  0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+  0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+  0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+  0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+  0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+  0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+  0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+  0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+  0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+  0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+  0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+  0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+  0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+  0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+  0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+  0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+  0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+  0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+  0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+  0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+  0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+  0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+  0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+  0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+  0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+  0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+  0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+  0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+  0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+  0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+  0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+  0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+  0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+  0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x7b, 0x30, 0x82, 0x01, 0x77, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x60, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x59, 0x30,
+  0x57, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+  0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+  0x63, 0x66, 0x6d, 0x30, 0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
+  0x82, 0x37, 0x2a, 0x01, 0x30, 0x42, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x01, 0x01, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x26, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x6f, 0x6d,
+  0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+  0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+  0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+  0x03, 0x02, 0x01, 0x86, 0x30, 0x27, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+  0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+  0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d,
+  0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86,
+  0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86,
+  0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31,
+  0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d,
+  0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4, 0x68, 0x22, 0x57, 0x80, 0x26,
+  0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e, 0xcc, 0xa5, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x62, 0xf6, 0x84, 0x91, 0x00, 0xc4,
+  0x6f, 0x82, 0x7b, 0x24, 0xe1, 0x42, 0xa2, 0xa5, 0x8b, 0x82, 0x5c, 0xa7,
+  0xc5, 0x44, 0xcb, 0xe7, 0x52, 0x76, 0x63, 0xd3, 0x76, 0x9e, 0x78, 0xe2,
+  0x69, 0x35, 0xb1, 0x38, 0xba, 0xb0, 0x96, 0xc6, 0x1f, 0xac, 0x7b, 0xc6,
+  0xb2, 0x65, 0x77, 0x8b, 0x7d, 0x8d, 0xae, 0x64, 0xb9, 0xa5, 0x8c, 0x17,
+  0xca, 0x58, 0x65, 0xc3, 0xad, 0x82, 0xf5, 0xc5, 0xa2, 0xf5, 0x01, 0x13,
+  0x93, 0xc6, 0x7e, 0x44, 0xe5, 0xc4, 0x61, 0xfa, 0x03, 0xb6, 0x56, 0xc1,
+  0x72, 0xe1, 0xc8, 0x28, 0xc5, 0x69, 0x21, 0x8f, 0xac, 0x6e, 0xfd, 0x7f,
+  0x43, 0x83, 0x36, 0xb8, 0xc0, 0xd6, 0xa0, 0x28, 0xfe, 0x1a, 0x45, 0xbe,
+  0xfd, 0x93, 0x8c, 0x8d, 0xa4, 0x64, 0x79, 0x1f, 0x14, 0xdb, 0xa1, 0x9f,
+  0x21, 0xdc, 0xc0, 0x4e, 0x7b, 0x17, 0x22, 0x17, 0xb1, 0xb6, 0x3c, 0xd3,
+  0x9b, 0xe2, 0x0a, 0xa3, 0x7e, 0x99, 0xb0, 0xc1, 0xac, 0xd8, 0xf4, 0x86,
+  0xdf, 0x3c, 0xda, 0x7d, 0x14, 0x9c, 0x40, 0xc1, 0x7c, 0xd2, 0x18, 0x6f,
+  0xf1, 0x4f, 0x26, 0x45, 0x09, 0x95, 0x94, 0x5c, 0xda, 0xd0, 0x98, 0xf8,
+  0xf4, 0x4c, 0x82, 0x96, 0x10, 0xde, 0xac, 0x30, 0xcb, 0x2b, 0xae, 0xf9,
+  0x92, 0xea, 0xbf, 0x79, 0x03, 0xfc, 0x1e, 0x3f, 0xac, 0x09, 0xa4, 0x3f,
+  0x65, 0xfd, 0x91, 0x4f, 0x96, 0x24, 0xa7, 0xce, 0xb4, 0x4e, 0x6a, 0x96,
+  0x29, 0x17, 0xae, 0xc0, 0xa8, 0xdf, 0x17, 0x22, 0xf4, 0x17, 0xe3, 0xdc,
+  0x1c, 0x39, 0x06, 0x56, 0x10, 0xea, 0xea, 0xb5, 0x74, 0x17, 0x3c, 0x4e,
+  0xdd, 0x7e, 0x91, 0x0a, 0xa8, 0x0b, 0x78, 0x07, 0xa7, 0x31, 0x44, 0x08,
+  0x31, 0xab, 0x18, 0x84, 0x0f, 0x12, 0x9c, 0xe7, 0xde, 0x84, 0x2c, 0xe9,
+  0x6d, 0x93, 0x45, 0xbf, 0xa8, 0xc1, 0x3f, 0x34, 0xdc,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            6e:cc:7a:a5:a7:03:20:09:b8:ce:bc:f4:e9:52:d4:91
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Validity
+            Not Before: Feb  8 00:00:00 2010 GMT
+            Not After : Feb  7 23:59:59 2020 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)10, CN=VeriSign Class 3 Secure Server CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b1:87:84:1f:c2:0c:45:f5:bc:ab:25:97:a7:ad:
+                    a2:3e:9c:ba:f6:c1:39:b8:8b:ca:c2:ac:56:c6:e5:
+                    bb:65:8e:44:4f:4d:ce:6f:ed:09:4a:d4:af:4e:10:
+                    9c:68:8b:2e:95:7b:89:9b:13:ca:e2:34:34:c1:f3:
+                    5b:f3:49:7b:62:83:48:81:74:d1:88:78:6c:02:53:
+                    f9:bc:7f:43:26:57:58:33:83:3b:33:0a:17:b0:d0:
+                    4e:91:24:ad:86:7d:64:12:dc:74:4a:34:a1:1d:0a:
+                    ea:96:1d:0b:15:fc:a3:4b:3b:ce:63:88:d0:f8:2d:
+                    0c:94:86:10:ca:b6:9a:3d:ca:eb:37:9c:00:48:35:
+                    86:29:50:78:e8:45:63:cd:19:41:4f:f5:95:ec:7b:
+                    98:d4:c4:71:b3:50:be:28:b3:8f:a0:b9:53:9c:f5:
+                    ca:2c:23:a9:fd:14:06:e8:18:b4:9a:e8:3c:6e:81:
+                    fd:e4:cd:35:36:b3:51:d3:69:ec:12:ba:56:6e:6f:
+                    9b:57:c5:8b:14:e7:0e:c7:9c:ed:4a:54:6a:c9:4d:
+                    c5:bf:11:b1:ae:1c:67:81:cb:44:55:33:99:7f:24:
+                    9b:3f:53:45:7f:86:1a:f3:3c:fa:6d:7f:81:f5:b8:
+                    4a:d3:f5:85:37:1c:b5:a6:d0:09:e4:18:7b:38:4e:
+                    fa:0f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.verisign.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.23.3
+                  CPS: https://www.verisign.com/cps
+                  User Notice:
+                    Explicit Text: https://www.verisign.com/rpa
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.verisign.com/pca3-g5.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-6
+            X509v3 Subject Key Identifier: 
+                0D:44:5C:16:53:44:C1:82:7E:1D:20:AB:25:F4:01:63:D8:BE:79:A5
+            X509v3 Authority Key Identifier: 
+                keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+    Signature Algorithm: sha1WithRSAEncryption
+         0c:83:24:ef:dd:c3:0c:d9:58:9c:fe:36:b6:eb:8a:80:4b:d1:
+         a3:f7:9d:f3:cc:53:ef:82:9e:a3:a1:e6:97:c1:58:9d:75:6c:
+         e0:1d:1b:4c:fa:d1:c1:2d:05:c0:ea:6e:b2:22:70:55:d9:20:
+         33:40:33:07:c2:65:83:fa:8f:43:37:9b:ea:0e:9a:6c:70:ee:
+         f6:9c:80:3b:d9:37:f4:7a:6d:ec:d0:18:7d:49:4a:ca:99:c7:
+         19:28:a2:be:d8:77:24:f7:85:26:86:6d:87:05:40:41:67:d1:
+         27:3a:ed:dc:48:1d:22:cd:0b:0b:8b:bc:f4:b1:7b:fd:b4:99:
+         a8:e9:76:2a:e1:1a:2d:87:6e:74:d3:88:dd:1e:22:c6:df:16:
+         b6:2b:82:14:0a:94:5c:f2:50:ec:af:ce:ff:62:37:0d:ad:65:
+         d3:06:41:53:ed:02:14:c8:b5:58:28:a1:ac:e0:5b:ec:b3:7f:
+         95:4a:fb:03:c8:ad:26:db:e6:66:78:12:4a:d9:9f:42:fb:e1:
+         98:e6:42:83:9b:8f:8f:67:24:e8:61:19:b5:dd:cd:b5:0b:26:
+         05:8e:c3:6e:c4:c8:75:b8:46:cf:e2:18:06:5e:a9:ae:a8:81:
+         9a:47:16:de:0c:28:6c:25:27:b9:de:b7:84:58:c6:1f:38:1e:
+         a4:c4:cb:66
+-----BEGIN CERTIFICATE-----
+MIIF7DCCBNSgAwIBAgIQbsx6pacDIAm4zrz06VLUkTANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTAwMjA4MDAwMDAwWhcNMjAwMjA3MjM1OTU5WjCBtTEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDEvMC0GA1UEAxMmVmVy
+aVNpZ24gQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCxh4QfwgxF9byrJZenraI+nLr2wTm4i8rCrFbG
+5btljkRPTc5v7QlK1K9OEJxoiy6Ve4mbE8riNDTB81vzSXtig0iBdNGIeGwCU/m8
+f0MmV1gzgzszChew0E6RJK2GfWQS3HRKNKEdCuqWHQsV/KNLO85jiND4LQyUhhDK
+tpo9yus3nABINYYpUHjoRWPNGUFP9ZXse5jUxHGzUL4os4+guVOc9cosI6n9FAbo
+GLSa6Dxugf3kzTU2s1HTaewSulZub5tXxYsU5w7HnO1KVGrJTcW/EbGuHGeBy0RV
+M5l/JJs/U0V/hhrzPPptf4H1uErT9YU3HLWm0AnkGHs4TvoPAgMBAAGjggHfMIIB
+2zA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnZlcmlz
+aWduLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMHAGA1UdIARpMGcwZQYLYIZIAYb4
+RQEHFwMwVjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2Nw
+czAqBggrBgEFBQcCAjAeGhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDQG
+A1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMtZzUu
+Y3JsMA4GA1UdDwEB/wQEAwIBBjBtBggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglp
+bWFnZS9naWYwITAfMAcGBSsOAwIaBBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNo
+dHRwOi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvLmdpZjAoBgNVHREEITAfpB0w
+GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItNjAdBgNVHQ4EFgQUDURcFlNEwYJ+
+HSCrJfQBY9i+eaUwHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwDQYJ
+KoZIhvcNAQEFBQADggEBAAyDJO/dwwzZWJz+NrbrioBL0aP3nfPMU++CnqOh5pfB
+WJ11bOAdG0z60cEtBcDqbrIicFXZIDNAMwfCZYP6j0M3m+oOmmxw7vacgDvZN/R6
+bezQGH1JSsqZxxkoor7YdyT3hSaGbYcFQEFn0Sc67dxIHSLNCwuLvPSxe/20majp
+dirhGi2HbnTTiN0eIsbfFrYrghQKlFzyUOyvzv9iNw2tZdMGQVPtAhTItVgooazg
+W+yzf5VK+wPIrSbb5mZ4EkrZn0L74ZjmQoObj49nJOhhGbXdzbULJgWOw27EyHW4
+Rs/iGAZeqa6ogZpHFt4MKGwlJ7net4RYxh84HqTEy2Y=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert47[] = {
+  0x30, 0x82, 0x05, 0xec, 0x30, 0x82, 0x04, 0xd4, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x6e, 0xcc, 0x7a, 0xa5, 0xa7, 0x03, 0x20, 0x09, 0xb8,
+  0xce, 0xbc, 0xf4, 0xe9, 0x52, 0xd4, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+  0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30, 0x32, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xb5, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
+  0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
+  0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
+  0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, 0x30, 0x31, 0x2f,
+  0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26, 0x56, 0x65, 0x72,
+  0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+  0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb1, 0x87, 0x84, 0x1f,
+  0xc2, 0x0c, 0x45, 0xf5, 0xbc, 0xab, 0x25, 0x97, 0xa7, 0xad, 0xa2, 0x3e,
+  0x9c, 0xba, 0xf6, 0xc1, 0x39, 0xb8, 0x8b, 0xca, 0xc2, 0xac, 0x56, 0xc6,
+  0xe5, 0xbb, 0x65, 0x8e, 0x44, 0x4f, 0x4d, 0xce, 0x6f, 0xed, 0x09, 0x4a,
+  0xd4, 0xaf, 0x4e, 0x10, 0x9c, 0x68, 0x8b, 0x2e, 0x95, 0x7b, 0x89, 0x9b,
+  0x13, 0xca, 0xe2, 0x34, 0x34, 0xc1, 0xf3, 0x5b, 0xf3, 0x49, 0x7b, 0x62,
+  0x83, 0x48, 0x81, 0x74, 0xd1, 0x88, 0x78, 0x6c, 0x02, 0x53, 0xf9, 0xbc,
+  0x7f, 0x43, 0x26, 0x57, 0x58, 0x33, 0x83, 0x3b, 0x33, 0x0a, 0x17, 0xb0,
+  0xd0, 0x4e, 0x91, 0x24, 0xad, 0x86, 0x7d, 0x64, 0x12, 0xdc, 0x74, 0x4a,
+  0x34, 0xa1, 0x1d, 0x0a, 0xea, 0x96, 0x1d, 0x0b, 0x15, 0xfc, 0xa3, 0x4b,
+  0x3b, 0xce, 0x63, 0x88, 0xd0, 0xf8, 0x2d, 0x0c, 0x94, 0x86, 0x10, 0xca,
+  0xb6, 0x9a, 0x3d, 0xca, 0xeb, 0x37, 0x9c, 0x00, 0x48, 0x35, 0x86, 0x29,
+  0x50, 0x78, 0xe8, 0x45, 0x63, 0xcd, 0x19, 0x41, 0x4f, 0xf5, 0x95, 0xec,
+  0x7b, 0x98, 0xd4, 0xc4, 0x71, 0xb3, 0x50, 0xbe, 0x28, 0xb3, 0x8f, 0xa0,
+  0xb9, 0x53, 0x9c, 0xf5, 0xca, 0x2c, 0x23, 0xa9, 0xfd, 0x14, 0x06, 0xe8,
+  0x18, 0xb4, 0x9a, 0xe8, 0x3c, 0x6e, 0x81, 0xfd, 0xe4, 0xcd, 0x35, 0x36,
+  0xb3, 0x51, 0xd3, 0x69, 0xec, 0x12, 0xba, 0x56, 0x6e, 0x6f, 0x9b, 0x57,
+  0xc5, 0x8b, 0x14, 0xe7, 0x0e, 0xc7, 0x9c, 0xed, 0x4a, 0x54, 0x6a, 0xc9,
+  0x4d, 0xc5, 0xbf, 0x11, 0xb1, 0xae, 0x1c, 0x67, 0x81, 0xcb, 0x44, 0x55,
+  0x33, 0x99, 0x7f, 0x24, 0x9b, 0x3f, 0x53, 0x45, 0x7f, 0x86, 0x1a, 0xf3,
+  0x3c, 0xfa, 0x6d, 0x7f, 0x81, 0xf5, 0xb8, 0x4a, 0xd3, 0xf5, 0x85, 0x37,
+  0x1c, 0xb5, 0xa6, 0xd0, 0x09, 0xe4, 0x18, 0x7b, 0x38, 0x4e, 0xfa, 0x0f,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xdf, 0x30, 0x82, 0x01,
+  0xdb, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+  0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73,
+  0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+  0x02, 0x01, 0x00, 0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x69,
+  0x30, 0x67, 0x30, 0x65, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
+  0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x56, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+  0x73, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x02, 0x30, 0x1e, 0x1a, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+  0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x34, 0x06,
+  0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27,
+  0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1,
+  0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69,
+  0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f,
+  0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f,
+  0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a,
+  0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76,
+  0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x28,
+  0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d, 0x30,
+  0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+  0x2d, 0x32, 0x2d, 0x36, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0x0d, 0x44, 0x5c, 0x16, 0x53, 0x44, 0xc1, 0x82, 0x7e,
+  0x1d, 0x20, 0xab, 0x25, 0xf4, 0x01, 0x63, 0xd8, 0xbe, 0x79, 0xa5, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x0c, 0x83, 0x24, 0xef, 0xdd, 0xc3, 0x0c, 0xd9,
+  0x58, 0x9c, 0xfe, 0x36, 0xb6, 0xeb, 0x8a, 0x80, 0x4b, 0xd1, 0xa3, 0xf7,
+  0x9d, 0xf3, 0xcc, 0x53, 0xef, 0x82, 0x9e, 0xa3, 0xa1, 0xe6, 0x97, 0xc1,
+  0x58, 0x9d, 0x75, 0x6c, 0xe0, 0x1d, 0x1b, 0x4c, 0xfa, 0xd1, 0xc1, 0x2d,
+  0x05, 0xc0, 0xea, 0x6e, 0xb2, 0x22, 0x70, 0x55, 0xd9, 0x20, 0x33, 0x40,
+  0x33, 0x07, 0xc2, 0x65, 0x83, 0xfa, 0x8f, 0x43, 0x37, 0x9b, 0xea, 0x0e,
+  0x9a, 0x6c, 0x70, 0xee, 0xf6, 0x9c, 0x80, 0x3b, 0xd9, 0x37, 0xf4, 0x7a,
+  0x6d, 0xec, 0xd0, 0x18, 0x7d, 0x49, 0x4a, 0xca, 0x99, 0xc7, 0x19, 0x28,
+  0xa2, 0xbe, 0xd8, 0x77, 0x24, 0xf7, 0x85, 0x26, 0x86, 0x6d, 0x87, 0x05,
+  0x40, 0x41, 0x67, 0xd1, 0x27, 0x3a, 0xed, 0xdc, 0x48, 0x1d, 0x22, 0xcd,
+  0x0b, 0x0b, 0x8b, 0xbc, 0xf4, 0xb1, 0x7b, 0xfd, 0xb4, 0x99, 0xa8, 0xe9,
+  0x76, 0x2a, 0xe1, 0x1a, 0x2d, 0x87, 0x6e, 0x74, 0xd3, 0x88, 0xdd, 0x1e,
+  0x22, 0xc6, 0xdf, 0x16, 0xb6, 0x2b, 0x82, 0x14, 0x0a, 0x94, 0x5c, 0xf2,
+  0x50, 0xec, 0xaf, 0xce, 0xff, 0x62, 0x37, 0x0d, 0xad, 0x65, 0xd3, 0x06,
+  0x41, 0x53, 0xed, 0x02, 0x14, 0xc8, 0xb5, 0x58, 0x28, 0xa1, 0xac, 0xe0,
+  0x5b, 0xec, 0xb3, 0x7f, 0x95, 0x4a, 0xfb, 0x03, 0xc8, 0xad, 0x26, 0xdb,
+  0xe6, 0x66, 0x78, 0x12, 0x4a, 0xd9, 0x9f, 0x42, 0xfb, 0xe1, 0x98, 0xe6,
+  0x42, 0x83, 0x9b, 0x8f, 0x8f, 0x67, 0x24, 0xe8, 0x61, 0x19, 0xb5, 0xdd,
+  0xcd, 0xb5, 0x0b, 0x26, 0x05, 0x8e, 0xc3, 0x6e, 0xc4, 0xc8, 0x75, 0xb8,
+  0x46, 0xcf, 0xe2, 0x18, 0x06, 0x5e, 0xa9, 0xae, 0xa8, 0x81, 0x9a, 0x47,
+  0x16, 0xde, 0x0c, 0x28, 0x6c, 0x25, 0x27, 0xb9, 0xde, 0xb7, 0x84, 0x58,
+  0xc6, 0x1f, 0x38, 0x1e, 0xa4, 0xc4, 0xcb, 0x66,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            2c:48:dd:93:0d:f5:59:8e:f9:3c:99:54:7a:60:ed:43
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Validity
+            Not Before: Nov  8 00:00:00 2006 GMT
+            Not After : Nov  7 23:59:59 2016 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)06, CN=VeriSign Class 3 Extended Validation SSL SGC CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bd:56:88:ba:88:34:64:64:cf:cd:ca:b0:ee:e7:
+                    19:73:c5:72:d9:bb:45:bc:b5:a8:ff:83:be:1c:03:
+                    db:ed:89:b7:2e:10:1a:25:bc:55:ca:41:a1:9f:0b:
+                    cf:19:5e:70:b9:5e:39:4b:9e:31:1c:5f:87:ae:2a:
+                    aa:a8:2b:a2:1b:3b:10:23:5f:13:b1:dd:08:8c:4e:
+                    14:da:83:81:e3:b5:8c:e3:68:ed:24:67:ce:56:b6:
+                    ac:9b:73:96:44:db:8a:8c:b3:d6:f0:71:93:8e:db:
+                    71:54:4a:eb:73:59:6a:8f:70:51:2c:03:9f:97:d1:
+                    cc:11:7a:bc:62:0d:95:2a:c9:1c:75:57:e9:f5:c7:
+                    ea:ba:84:35:cb:c7:85:5a:7e:e4:4d:e1:11:97:7d:
+                    0e:20:34:45:db:f1:a2:09:eb:eb:3d:9e:b8:96:43:
+                    5e:34:4b:08:25:1e:43:1a:a2:d9:b7:8a:01:34:3d:
+                    c3:f8:e5:af:4f:8c:ff:cd:65:f0:23:4e:c5:97:b3:
+                    5c:da:90:1c:82:85:0d:06:0d:c1:22:b6:7b:28:a4:
+                    03:c3:4c:53:d1:58:bc:72:bc:08:39:fc:a0:76:a8:
+                    a8:e9:4b:6e:88:3d:e3:b3:31:25:8c:73:29:48:0e:
+                    32:79:06:ed:3d:43:f4:f6:e4:e9:fc:7d:be:8e:08:
+                    d5:1f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Subject Key Identifier: 
+                4E:43:C8:1D:76:EF:37:53:7A:4F:F2:58:6F:94:F3:38:E2:D5:BD:DF
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.verisign.com/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://EVSecure-crl.verisign.com/pca3-g5.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Netscape Cert Type: 
+                SSL CA, S/MIME CA
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=Class3CA2048-1-48
+            X509v3 Authority Key Identifier: 
+                keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+            Authority Information Access: 
+                OCSP - URI:http://EVSecure-ocsp.verisign.com
+
+            X509v3 Extended Key Usage: 
+                Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1, TLS Web Server Authentication, TLS Web Client Authentication
+    Signature Algorithm: sha1WithRSAEncryption
+         27:74:a6:34:ea:1d:9d:e1:53:d6:1c:9d:0c:a7:5b:4c:a9:67:
+         f2:f0:32:b7:01:0f:fb:42:18:38:de:e4:ee:49:c8:13:c9:0b:
+         ec:04:c3:40:71:18:72:76:43:02:23:5d:ab:7b:c8:48:14:1a:
+         c8:7b:1d:fc:f6:0a:9f:36:a1:d2:09:73:71:66:96:75:51:34:
+         bf:99:30:51:67:9d:54:b7:26:45:ac:73:08:23:86:26:99:71:
+         f4:8e:d7:ea:39:9b:06:09:23:bf:62:dd:a8:c4:b6:7d:a4:89:
+         07:3e:f3:6d:ae:40:59:50:79:97:37:3d:32:78:7d:b2:63:4b:
+         f9:ea:08:69:0e:13:ed:e8:cf:bb:ac:05:86:ca:22:cf:88:62:
+         5d:3c:22:49:d8:63:d5:24:a6:bd:ef:5c:e3:cc:20:3b:22:ea:
+         fc:44:c6:a8:e5:1f:e1:86:cd:0c:4d:8f:93:53:d9:7f:ee:a1:
+         08:a7:b3:30:96:49:70:6e:a3:6c:3d:d0:63:ef:25:66:63:cc:
+         aa:b7:18:17:4e:ea:70:76:f6:ba:42:a6:80:37:09:4e:9f:66:
+         88:2e:6b:33:66:c8:c0:71:a4:41:eb:5a:e3:fc:14:2e:4b:88:
+         fd:ae:6e:5b:65:e9:27:e4:bf:e4:b0:23:c1:b2:7d:5b:62:25:
+         d7:3e:10:d4
+-----BEGIN CERTIFICATE-----
+MIIGHjCCBQagAwIBAgIQLEjdkw31WY75PJlUemDtQzANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBvjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMvVmVy
+aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Voi6iDRkZM/NyrDu5xlzxXLZ
+u0W8taj/g74cA9vtibcuEBolvFXKQaGfC88ZXnC5XjlLnjEcX4euKqqoK6IbOxAj
+XxOx3QiMThTag4HjtYzjaO0kZ85Wtqybc5ZE24qMs9bwcZOO23FUSutzWWqPcFEs
+A5+X0cwRerxiDZUqyRx1V+n1x+q6hDXLx4VafuRN4RGXfQ4gNEXb8aIJ6+s9nriW
+Q140SwglHkMaotm3igE0PcP45a9PjP/NZfAjTsWXs1zakByChQ0GDcEitnsopAPD
+TFPRWLxyvAg5/KB2qKjpS26IPeOzMSWMcylIDjJ5Bu09Q/T25On8fb6OCNUfAgMB
+AAGjggIIMIICBDAdBgNVHQ4EFgQUTkPIHXbvN1N6T/JYb5TzOOLVvd8wEgYDVR0T
+AQH/BAgwBgEB/wIBADA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczA9BgNVHR8ENjA0MDKgMKAuhixo
+dHRwOi8vRVZTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9wY2EzLWc1LmNybDAOBgNV
+HQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMG0GCCsGAQUFBwEMBGEwX6Fd
+oFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrU
+SBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMCkG
+A1UdEQQiMCCkHjAcMRowGAYDVQQDExFDbGFzczNDQTIwNDgtMS00ODAfBgNVHSME
+GDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzA9BggrBgEFBQcBAQQxMC8wLQYIKwYB
+BQUHMAGGIWh0dHA6Ly9FVlNlY3VyZS1vY3NwLnZlcmlzaWduLmNvbTA0BgNVHSUE
+LTArBglghkgBhvhCBAEGCmCGSAGG+EUBCAEGCCsGAQUFBwMBBggrBgEFBQcDAjAN
+BgkqhkiG9w0BAQUFAAOCAQEAJ3SmNOodneFT1hydDKdbTKln8vAytwEP+0IYON7k
+7knIE8kL7ATDQHEYcnZDAiNdq3vISBQayHsd/PYKnzah0glzcWaWdVE0v5kwUWed
+VLcmRaxzCCOGJplx9I7X6jmbBgkjv2LdqMS2faSJBz7zba5AWVB5lzc9Mnh9smNL
++eoIaQ4T7ejPu6wFhsoiz4hiXTwiSdhj1SSmve9c48wgOyLq/ETGqOUf4YbNDE2P
+k1PZf+6hCKezMJZJcG6jbD3QY+8lZmPMqrcYF07qcHb2ukKmgDcJTp9miC5rM2bI
+wHGkQeta4/wULkuI/a5uW2XpJ+S/5LAjwbJ9W2Il1z4Q1A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert48[] = {
+  0x30, 0x82, 0x06, 0x1e, 0x30, 0x82, 0x05, 0x06, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x2c, 0x48, 0xdd, 0x93, 0x0d, 0xf5, 0x59, 0x8e, 0xf9,
+  0x3c, 0x99, 0x54, 0x7a, 0x60, 0xed, 0x43, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+  0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+  0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x31, 0x36, 0x31, 0x31, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xbe, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
+  0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
+  0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
+  0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x30, 0x36, 0x31, 0x38,
+  0x30, 0x36, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x56, 0x65, 0x72,
+  0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+  0x33, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56,
+  0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x53,
+  0x4c, 0x20, 0x53, 0x47, 0x43, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xbd, 0x56, 0x88, 0xba, 0x88, 0x34, 0x64,
+  0x64, 0xcf, 0xcd, 0xca, 0xb0, 0xee, 0xe7, 0x19, 0x73, 0xc5, 0x72, 0xd9,
+  0xbb, 0x45, 0xbc, 0xb5, 0xa8, 0xff, 0x83, 0xbe, 0x1c, 0x03, 0xdb, 0xed,
+  0x89, 0xb7, 0x2e, 0x10, 0x1a, 0x25, 0xbc, 0x55, 0xca, 0x41, 0xa1, 0x9f,
+  0x0b, 0xcf, 0x19, 0x5e, 0x70, 0xb9, 0x5e, 0x39, 0x4b, 0x9e, 0x31, 0x1c,
+  0x5f, 0x87, 0xae, 0x2a, 0xaa, 0xa8, 0x2b, 0xa2, 0x1b, 0x3b, 0x10, 0x23,
+  0x5f, 0x13, 0xb1, 0xdd, 0x08, 0x8c, 0x4e, 0x14, 0xda, 0x83, 0x81, 0xe3,
+  0xb5, 0x8c, 0xe3, 0x68, 0xed, 0x24, 0x67, 0xce, 0x56, 0xb6, 0xac, 0x9b,
+  0x73, 0x96, 0x44, 0xdb, 0x8a, 0x8c, 0xb3, 0xd6, 0xf0, 0x71, 0x93, 0x8e,
+  0xdb, 0x71, 0x54, 0x4a, 0xeb, 0x73, 0x59, 0x6a, 0x8f, 0x70, 0x51, 0x2c,
+  0x03, 0x9f, 0x97, 0xd1, 0xcc, 0x11, 0x7a, 0xbc, 0x62, 0x0d, 0x95, 0x2a,
+  0xc9, 0x1c, 0x75, 0x57, 0xe9, 0xf5, 0xc7, 0xea, 0xba, 0x84, 0x35, 0xcb,
+  0xc7, 0x85, 0x5a, 0x7e, 0xe4, 0x4d, 0xe1, 0x11, 0x97, 0x7d, 0x0e, 0x20,
+  0x34, 0x45, 0xdb, 0xf1, 0xa2, 0x09, 0xeb, 0xeb, 0x3d, 0x9e, 0xb8, 0x96,
+  0x43, 0x5e, 0x34, 0x4b, 0x08, 0x25, 0x1e, 0x43, 0x1a, 0xa2, 0xd9, 0xb7,
+  0x8a, 0x01, 0x34, 0x3d, 0xc3, 0xf8, 0xe5, 0xaf, 0x4f, 0x8c, 0xff, 0xcd,
+  0x65, 0xf0, 0x23, 0x4e, 0xc5, 0x97, 0xb3, 0x5c, 0xda, 0x90, 0x1c, 0x82,
+  0x85, 0x0d, 0x06, 0x0d, 0xc1, 0x22, 0xb6, 0x7b, 0x28, 0xa4, 0x03, 0xc3,
+  0x4c, 0x53, 0xd1, 0x58, 0xbc, 0x72, 0xbc, 0x08, 0x39, 0xfc, 0xa0, 0x76,
+  0xa8, 0xa8, 0xe9, 0x4b, 0x6e, 0x88, 0x3d, 0xe3, 0xb3, 0x31, 0x25, 0x8c,
+  0x73, 0x29, 0x48, 0x0e, 0x32, 0x79, 0x06, 0xed, 0x3d, 0x43, 0xf4, 0xf6,
+  0xe4, 0xe9, 0xfc, 0x7d, 0xbe, 0x8e, 0x08, 0xd5, 0x1f, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x02, 0x08, 0x30, 0x82, 0x02, 0x04, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x4e, 0x43, 0xc8,
+  0x1d, 0x76, 0xef, 0x37, 0x53, 0x7a, 0x4f, 0xf2, 0x58, 0x6f, 0x94, 0xf3,
+  0x38, 0xe2, 0xd5, 0xbd, 0xdf, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34,
+  0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c,
+  0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x63, 0x70, 0x73, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+  0x36, 0x30, 0x34, 0x30, 0x32, 0xa0, 0x30, 0xa0, 0x2e, 0x86, 0x2c, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x45, 0x56, 0x53, 0x65, 0x63, 0x75,
+  0x72, 0x65, 0x2d, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73,
+  0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33,
+  0x2d, 0x67, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+  0x11, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x01, 0x01,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d,
+  0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d,
+  0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30,
+  0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5,
+  0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4,
+  0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65,
+  0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76,
+  0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x29, 0x06,
+  0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c,
+  0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x43,
+  0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x41, 0x32, 0x30, 0x34, 0x38, 0x2d,
+  0x31, 0x2d, 0x34, 0x38, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec,
+  0xbb, 0xf0, 0x30, 0x09, 0xf3, 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31,
+  0x33, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+  0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x45, 0x56, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x6f,
+  0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e,
+  0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+  0x2d, 0x30, 0x2b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42,
+  0x04, 0x01, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01,
+  0x08, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x27, 0x74, 0xa6, 0x34, 0xea, 0x1d,
+  0x9d, 0xe1, 0x53, 0xd6, 0x1c, 0x9d, 0x0c, 0xa7, 0x5b, 0x4c, 0xa9, 0x67,
+  0xf2, 0xf0, 0x32, 0xb7, 0x01, 0x0f, 0xfb, 0x42, 0x18, 0x38, 0xde, 0xe4,
+  0xee, 0x49, 0xc8, 0x13, 0xc9, 0x0b, 0xec, 0x04, 0xc3, 0x40, 0x71, 0x18,
+  0x72, 0x76, 0x43, 0x02, 0x23, 0x5d, 0xab, 0x7b, 0xc8, 0x48, 0x14, 0x1a,
+  0xc8, 0x7b, 0x1d, 0xfc, 0xf6, 0x0a, 0x9f, 0x36, 0xa1, 0xd2, 0x09, 0x73,
+  0x71, 0x66, 0x96, 0x75, 0x51, 0x34, 0xbf, 0x99, 0x30, 0x51, 0x67, 0x9d,
+  0x54, 0xb7, 0x26, 0x45, 0xac, 0x73, 0x08, 0x23, 0x86, 0x26, 0x99, 0x71,
+  0xf4, 0x8e, 0xd7, 0xea, 0x39, 0x9b, 0x06, 0x09, 0x23, 0xbf, 0x62, 0xdd,
+  0xa8, 0xc4, 0xb6, 0x7d, 0xa4, 0x89, 0x07, 0x3e, 0xf3, 0x6d, 0xae, 0x40,
+  0x59, 0x50, 0x79, 0x97, 0x37, 0x3d, 0x32, 0x78, 0x7d, 0xb2, 0x63, 0x4b,
+  0xf9, 0xea, 0x08, 0x69, 0x0e, 0x13, 0xed, 0xe8, 0xcf, 0xbb, 0xac, 0x05,
+  0x86, 0xca, 0x22, 0xcf, 0x88, 0x62, 0x5d, 0x3c, 0x22, 0x49, 0xd8, 0x63,
+  0xd5, 0x24, 0xa6, 0xbd, 0xef, 0x5c, 0xe3, 0xcc, 0x20, 0x3b, 0x22, 0xea,
+  0xfc, 0x44, 0xc6, 0xa8, 0xe5, 0x1f, 0xe1, 0x86, 0xcd, 0x0c, 0x4d, 0x8f,
+  0x93, 0x53, 0xd9, 0x7f, 0xee, 0xa1, 0x08, 0xa7, 0xb3, 0x30, 0x96, 0x49,
+  0x70, 0x6e, 0xa3, 0x6c, 0x3d, 0xd0, 0x63, 0xef, 0x25, 0x66, 0x63, 0xcc,
+  0xaa, 0xb7, 0x18, 0x17, 0x4e, 0xea, 0x70, 0x76, 0xf6, 0xba, 0x42, 0xa6,
+  0x80, 0x37, 0x09, 0x4e, 0x9f, 0x66, 0x88, 0x2e, 0x6b, 0x33, 0x66, 0xc8,
+  0xc0, 0x71, 0xa4, 0x41, 0xeb, 0x5a, 0xe3, 0xfc, 0x14, 0x2e, 0x4b, 0x88,
+  0xfd, 0xae, 0x6e, 0x5b, 0x65, 0xe9, 0x27, 0xe4, 0xbf, 0xe4, 0xb0, 0x23,
+  0xc1, 0xb2, 0x7d, 0x5b, 0x62, 0x25, 0xd7, 0x3e, 0x10, 0xd4,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            64:1b:e8:20:ce:02:08:13:f3:2d:4d:2d:95:d6:7e:67
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Validity
+            Not Before: Feb  8 00:00:00 2010 GMT
+            Not After : Feb  7 23:59:59 2020 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)10, CN=VeriSign Class 3 International Server CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:99:d6:9c:62:f0:15:f4:81:9a:41:08:59:8f:13:
+                    9d:17:c9:9f:51:dc:da:b1:52:ef:ff:e3:41:dd:e0:
+                    df:c4:28:c6:e3:ad:79:1f:27:10:98:b8:bb:20:97:
+                    c1:28:44:41:0f:ea:a9:a8:52:cf:4d:4e:1b:8b:bb:
+                    b5:c4:76:d9:cc:56:06:ee:b3:55:20:2a:de:15:8d:
+                    71:cb:54:c8:6f:17:cd:89:00:e4:dc:ff:e1:c0:1f:
+                    68:71:e9:c7:29:2e:7e:bc:3b:fc:e5:bb:ab:26:54:
+                    8b:66:90:cd:f6:92:b9:31:24:80:bc:9e:6c:d5:fc:
+                    7e:d2:e1:4b:8c:dc:42:fa:44:4b:5f:f8:18:b5:2e:
+                    30:f4:3d:12:98:d3:62:05:73:54:a6:9c:a2:1d:be:
+                    52:83:3a:07:46:c4:3b:02:56:21:bf:f2:51:4f:d0:
+                    a6:99:39:e9:ae:a5:3f:89:9b:9c:7d:fe:4d:60:07:
+                    25:20:f7:bb:d7:69:83:2b:82:93:43:37:d9:83:41:
+                    1b:6b:0b:ab:4a:66:84:4f:4a:8e:de:7e:34:99:8e:
+                    68:d6:ca:39:06:9b:4c:b3:9a:48:4d:13:46:b4:58:
+                    21:04:c4:fb:a0:4d:ac:2e:4b:62:12:e3:fb:4d:f6:
+                    c9:51:00:01:1f:fc:1e:6a:81:2a:38:e0:b9:4f:d6:
+                    2d:45
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.23.3
+                  CPS: https://www.verisign.com/cps
+                  User Notice:
+                    Explicit Text: https://www.verisign.com/rpa
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.verisign.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.verisign.com/pca3-g5.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-7
+            X509v3 Subject Key Identifier: 
+                D7:9B:7C:D8:22:A0:15:F7:DD:AD:5F:CE:29:9B:58:C3:BC:46:00:B5
+            X509v3 Authority Key Identifier: 
+                keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+    Signature Algorithm: sha1WithRSAEncryption
+         71:b5:7d:73:52:4a:dd:d7:4d:34:2b:2e:af:94:46:a5:49:50:
+         02:4f:f8:2f:17:70:f2:13:dc:1f:21:86:aa:c2:4f:7c:37:3c:
+         d4:46:78:ae:5d:78:6f:d1:ba:5a:bc:10:ab:58:36:c5:8c:62:
+         15:45:60:17:21:e2:d5:42:a8:77:a1:55:d8:43:04:51:f6:6e:
+         ba:48:e6:5d:4c:b7:44:d3:3e:a4:d5:d6:33:9a:9f:0d:e6:d7:
+         4e:96:44:95:5a:6c:d6:a3:16:53:0e:98:43:ce:a4:b8:c3:66:
+         7a:05:5c:62:10:e8:1b:12:db:7d:2e:76:50:ff:df:d7:6b:1b:
+         cc:8a:cc:71:fa:b3:40:56:7c:33:7a:77:94:5b:f5:0b:53:fb:
+         0e:5f:bc:68:fb:af:2a:ee:30:37:79:16:93:25:7f:4d:10:ff:
+         57:fb:bf:6e:3b:33:21:de:79:dc:86:17:59:2d:43:64:b7:a6:
+         66:87:ea:bc:96:46:19:1a:86:8b:6f:d7:b7:49:00:5b:db:a3:
+         bf:29:9a:ee:f7:d3:33:ae:a3:f4:9e:4c:ca:5e:69:d4:1b:ad:
+         b7:90:77:6a:d8:59:6f:79:ab:01:fa:55:f0:8a:21:66:e5:65:
+         6e:fd:7c:d3:df:1e:eb:7e:3f:06:90:fb:19:0b:d3:06:02:1b:
+         78:43:99:a8
+-----BEGIN CERTIFICATE-----
+MIIGKTCCBRGgAwIBAgIQZBvoIM4CCBPzLU0tldZ+ZzANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTAwMjA4MDAwMDAwWhcNMjAwMjA3MjM1OTU5WjCBvDEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg
+aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDE2MDQGA1UEAxMtVmVy
+aVNpZ24gQ2xhc3MgMyBJbnRlcm5hdGlvbmFsIFNlcnZlciBDQSAtIEczMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmdacYvAV9IGaQQhZjxOdF8mfUdza
+sVLv/+NB3eDfxCjG4615HycQmLi7IJfBKERBD+qpqFLPTU4bi7u1xHbZzFYG7rNV
+ICreFY1xy1TIbxfNiQDk3P/hwB9ocenHKS5+vDv85burJlSLZpDN9pK5MSSAvJ5s
+1fx+0uFLjNxC+kRLX/gYtS4w9D0SmNNiBXNUppyiHb5SgzoHRsQ7AlYhv/JRT9Cm
+mTnprqU/iZucff5NYAclIPe712mDK4KTQzfZg0EbawurSmaET0qO3n40mY5o1so5
+BptMs5pITRNGtFghBMT7oE2sLktiEuP7TfbJUQABH/weaoEqOOC5T9YtRQIDAQAB
+o4ICFTCCAhEwEgYDVR0TAQH/BAgwBgEB/wIBADBwBgNVHSAEaTBnMGUGC2CGSAGG
++EUBBxcDMFYwKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9j
+cHMwKgYIKwYBBQUHAgIwHhocaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYTAO
+BgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
+Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDov
+L2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwNAYDVR0lBC0wKwYIKwYBBQUH
+AwEGCCsGAQUFBwMCBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwNAYIKwYBBQUHAQEE
+KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wNAYDVR0f
+BC0wKzApoCegJYYjaHR0cDovL2NybC52ZXJpc2lnbi5jb20vcGNhMy1nNS5jcmww
+KAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFZlcmlTaWduTVBLSS0yLTcwHQYDVR0O
+BBYEFNebfNgioBX33a1fzimbWMO8RgC1MB8GA1UdIwQYMBaAFH/TZafC3ey78DAJ
+80M5+gKvMzEzMA0GCSqGSIb3DQEBBQUAA4IBAQBxtX1zUkrd1000Ky6vlEalSVAC
+T/gvF3DyE9wfIYaqwk98NzzURniuXXhv0bpavBCrWDbFjGIVRWAXIeLVQqh3oVXY
+QwRR9m66SOZdTLdE0z6k1dYzmp8N5tdOlkSVWmzWoxZTDphDzqS4w2Z6BVxiEOgb
+Ett9LnZQ/9/XaxvMisxx+rNAVnwzeneUW/ULU/sOX7xo+68q7jA3eRaTJX9NEP9X
++79uOzMh3nnchhdZLUNkt6Zmh+q8lkYZGoaLb9e3SQBb26O/KZru99MzrqP0nkzK
+XmnUG623kHdq2FlveasB+lXwiiFm5WVu/XzT3x7rfj8GkPsZC9MGAht4Q5mo
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert49[] = {
+  0x30, 0x82, 0x06, 0x29, 0x30, 0x82, 0x05, 0x11, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x64, 0x1b, 0xe8, 0x20, 0xce, 0x02, 0x08, 0x13, 0xf3,
+  0x2d, 0x4d, 0x2d, 0x95, 0xd6, 0x7e, 0x67, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+  0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30, 0x32, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xbc, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
+  0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
+  0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
+  0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, 0x30, 0x31, 0x36,
+  0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, 0x56, 0x65, 0x72,
+  0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+  0x33, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43,
+  0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0x99, 0xd6, 0x9c, 0x62, 0xf0, 0x15, 0xf4, 0x81, 0x9a,
+  0x41, 0x08, 0x59, 0x8f, 0x13, 0x9d, 0x17, 0xc9, 0x9f, 0x51, 0xdc, 0xda,
+  0xb1, 0x52, 0xef, 0xff, 0xe3, 0x41, 0xdd, 0xe0, 0xdf, 0xc4, 0x28, 0xc6,
+  0xe3, 0xad, 0x79, 0x1f, 0x27, 0x10, 0x98, 0xb8, 0xbb, 0x20, 0x97, 0xc1,
+  0x28, 0x44, 0x41, 0x0f, 0xea, 0xa9, 0xa8, 0x52, 0xcf, 0x4d, 0x4e, 0x1b,
+  0x8b, 0xbb, 0xb5, 0xc4, 0x76, 0xd9, 0xcc, 0x56, 0x06, 0xee, 0xb3, 0x55,
+  0x20, 0x2a, 0xde, 0x15, 0x8d, 0x71, 0xcb, 0x54, 0xc8, 0x6f, 0x17, 0xcd,
+  0x89, 0x00, 0xe4, 0xdc, 0xff, 0xe1, 0xc0, 0x1f, 0x68, 0x71, 0xe9, 0xc7,
+  0x29, 0x2e, 0x7e, 0xbc, 0x3b, 0xfc, 0xe5, 0xbb, 0xab, 0x26, 0x54, 0x8b,
+  0x66, 0x90, 0xcd, 0xf6, 0x92, 0xb9, 0x31, 0x24, 0x80, 0xbc, 0x9e, 0x6c,
+  0xd5, 0xfc, 0x7e, 0xd2, 0xe1, 0x4b, 0x8c, 0xdc, 0x42, 0xfa, 0x44, 0x4b,
+  0x5f, 0xf8, 0x18, 0xb5, 0x2e, 0x30, 0xf4, 0x3d, 0x12, 0x98, 0xd3, 0x62,
+  0x05, 0x73, 0x54, 0xa6, 0x9c, 0xa2, 0x1d, 0xbe, 0x52, 0x83, 0x3a, 0x07,
+  0x46, 0xc4, 0x3b, 0x02, 0x56, 0x21, 0xbf, 0xf2, 0x51, 0x4f, 0xd0, 0xa6,
+  0x99, 0x39, 0xe9, 0xae, 0xa5, 0x3f, 0x89, 0x9b, 0x9c, 0x7d, 0xfe, 0x4d,
+  0x60, 0x07, 0x25, 0x20, 0xf7, 0xbb, 0xd7, 0x69, 0x83, 0x2b, 0x82, 0x93,
+  0x43, 0x37, 0xd9, 0x83, 0x41, 0x1b, 0x6b, 0x0b, 0xab, 0x4a, 0x66, 0x84,
+  0x4f, 0x4a, 0x8e, 0xde, 0x7e, 0x34, 0x99, 0x8e, 0x68, 0xd6, 0xca, 0x39,
+  0x06, 0x9b, 0x4c, 0xb3, 0x9a, 0x48, 0x4d, 0x13, 0x46, 0xb4, 0x58, 0x21,
+  0x04, 0xc4, 0xfb, 0xa0, 0x4d, 0xac, 0x2e, 0x4b, 0x62, 0x12, 0xe3, 0xfb,
+  0x4d, 0xf6, 0xc9, 0x51, 0x00, 0x01, 0x1f, 0xfc, 0x1e, 0x6a, 0x81, 0x2a,
+  0x38, 0xe0, 0xb9, 0x4f, 0xd6, 0x2d, 0x45, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x02, 0x15, 0x30, 0x82, 0x02, 0x11, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x70, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x69, 0x30, 0x67, 0x30, 0x65, 0x06, 0x0b, 0x60, 0x86, 0x48, 0x01, 0x86,
+  0xf8, 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x56, 0x30, 0x28, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74,
+  0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65,
+  0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
+  0x70, 0x73, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x02, 0x30, 0x1e, 0x1a, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69,
+  0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x0e,
+  0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+  0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59,
+  0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+  0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b,
+  0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac,
+  0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b,
+  0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69,
+  0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67,
+  0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x25,
+  0x04, 0x2d, 0x30, 0x2b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+  0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06,
+  0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+  0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76,
+  0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x28, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d,
+  0x30, 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x10, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b,
+  0x49, 0x2d, 0x32, 0x2d, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+  0x04, 0x16, 0x04, 0x14, 0xd7, 0x9b, 0x7c, 0xd8, 0x22, 0xa0, 0x15, 0xf7,
+  0xdd, 0xad, 0x5f, 0xce, 0x29, 0x9b, 0x58, 0xc3, 0xbc, 0x46, 0x00, 0xb5,
+  0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+  0x14, 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09,
+  0xf3, 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0x71, 0xb5, 0x7d, 0x73, 0x52, 0x4a, 0xdd,
+  0xd7, 0x4d, 0x34, 0x2b, 0x2e, 0xaf, 0x94, 0x46, 0xa5, 0x49, 0x50, 0x02,
+  0x4f, 0xf8, 0x2f, 0x17, 0x70, 0xf2, 0x13, 0xdc, 0x1f, 0x21, 0x86, 0xaa,
+  0xc2, 0x4f, 0x7c, 0x37, 0x3c, 0xd4, 0x46, 0x78, 0xae, 0x5d, 0x78, 0x6f,
+  0xd1, 0xba, 0x5a, 0xbc, 0x10, 0xab, 0x58, 0x36, 0xc5, 0x8c, 0x62, 0x15,
+  0x45, 0x60, 0x17, 0x21, 0xe2, 0xd5, 0x42, 0xa8, 0x77, 0xa1, 0x55, 0xd8,
+  0x43, 0x04, 0x51, 0xf6, 0x6e, 0xba, 0x48, 0xe6, 0x5d, 0x4c, 0xb7, 0x44,
+  0xd3, 0x3e, 0xa4, 0xd5, 0xd6, 0x33, 0x9a, 0x9f, 0x0d, 0xe6, 0xd7, 0x4e,
+  0x96, 0x44, 0x95, 0x5a, 0x6c, 0xd6, 0xa3, 0x16, 0x53, 0x0e, 0x98, 0x43,
+  0xce, 0xa4, 0xb8, 0xc3, 0x66, 0x7a, 0x05, 0x5c, 0x62, 0x10, 0xe8, 0x1b,
+  0x12, 0xdb, 0x7d, 0x2e, 0x76, 0x50, 0xff, 0xdf, 0xd7, 0x6b, 0x1b, 0xcc,
+  0x8a, 0xcc, 0x71, 0xfa, 0xb3, 0x40, 0x56, 0x7c, 0x33, 0x7a, 0x77, 0x94,
+  0x5b, 0xf5, 0x0b, 0x53, 0xfb, 0x0e, 0x5f, 0xbc, 0x68, 0xfb, 0xaf, 0x2a,
+  0xee, 0x30, 0x37, 0x79, 0x16, 0x93, 0x25, 0x7f, 0x4d, 0x10, 0xff, 0x57,
+  0xfb, 0xbf, 0x6e, 0x3b, 0x33, 0x21, 0xde, 0x79, 0xdc, 0x86, 0x17, 0x59,
+  0x2d, 0x43, 0x64, 0xb7, 0xa6, 0x66, 0x87, 0xea, 0xbc, 0x96, 0x46, 0x19,
+  0x1a, 0x86, 0x8b, 0x6f, 0xd7, 0xb7, 0x49, 0x00, 0x5b, 0xdb, 0xa3, 0xbf,
+  0x29, 0x9a, 0xee, 0xf7, 0xd3, 0x33, 0xae, 0xa3, 0xf4, 0x9e, 0x4c, 0xca,
+  0x5e, 0x69, 0xd4, 0x1b, 0xad, 0xb7, 0x90, 0x77, 0x6a, 0xd8, 0x59, 0x6f,
+  0x79, 0xab, 0x01, 0xfa, 0x55, 0xf0, 0x8a, 0x21, 0x66, 0xe5, 0x65, 0x6e,
+  0xfd, 0x7c, 0xd3, 0xdf, 0x1e, 0xeb, 0x7e, 0x3f, 0x06, 0x90, 0xfb, 0x19,
+  0x0b, 0xd3, 0x06, 0x02, 0x1b, 0x78, 0x43, 0x99, 0xa8,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 26 (0x1a)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+        Validity
+            Not Before: Oct 24 20:57:09 2007 GMT
+            Not After : Oct 24 20:57:09 2017 GMT
+        Subject: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Class 2 Primary Intermediate Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e2:4f:39:2f:a1:8c:9a:85:ad:08:0e:08:3e:57:
+                    f2:88:01:21:1b:94:a9:6c:e2:b8:db:aa:19:18:46:
+                    3a:52:a1:f5:0f:f4:6e:8c:ea:96:8c:96:87:79:13:
+                    40:51:2f:22:f2:0c:8b:87:0f:65:df:71:74:34:43:
+                    55:b1:35:09:9b:d9:bc:1f:fa:eb:42:d0:97:40:72:
+                    b7:43:96:3d:ba:96:9d:5d:50:02:1c:9b:91:8d:9c:
+                    c0:ac:d7:bb:2f:17:d7:cb:3e:82:9d:73:eb:07:42:
+                    92:b2:cd:64:b3:74:55:1b:b4:4b:86:21:2c:f7:78:
+                    87:32:e0:16:e4:da:bd:4c:95:ea:a4:0a:7e:b6:0a:
+                    0d:2e:8a:cf:55:ab:c3:e5:dd:41:8a:4e:e6:6f:65:
+                    6c:b2:40:cf:17:5d:b9:c3:6a:0b:27:11:84:77:61:
+                    f6:c2:7c:ed:c0:8d:78:14:18:99:81:99:75:63:b7:
+                    e8:53:d3:ba:61:e9:0e:fa:a2:30:f3:46:a2:b9:c9:
+                    1f:6c:80:5a:40:ac:27:ed:48:47:33:b0:54:c6:46:
+                    1a:f3:35:61:c1:02:29:90:54:7e:64:4d:c4:30:52:
+                    02:82:d7:df:ce:21:6e:18:91:d7:b8:ab:8c:27:17:
+                    b5:f0:a3:01:2f:8e:d2:2e:87:3a:3d:b4:29:67:8a:
+                    c4:03
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                11:DB:23:45:FD:54:CC:6A:71:6F:84:8A:03:D7:BE:F7:01:2F:26:86
+            X509v3 Authority Key Identifier: 
+                keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.startssl.com/ca
+                CA Issuers - URI:http://www.startssl.com/sfsca.crt
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://www.startssl.com/sfsca.crl
+
+                Full Name:
+                  URI:http://crl.startssl.com/sfsca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.23223.1.2.1
+                  CPS: http://www.startssl.com/policy.pdf
+                  CPS: http://www.startssl.com/intermediate.pdf
+
+    Signature Algorithm: sha1WithRSAEncryption
+         9d:07:e1:ee:90:76:31:67:16:45:70:8c:cb:84:8b:4b:57:68:
+         44:a5:89:c1:f2:7e:cb:28:8b:f5:e7:70:77:d5:b6:f4:0b:21:
+         60:a5:a1:74:73:24:22:80:d6:d8:ba:8d:a2:62:5d:09:35:42:
+         29:fb:39:63:45:0b:a4:b0:38:1a:68:f4:95:13:cc:e0:43:94:
+         ec:eb:39:1a:ec:57:29:d9:99:6d:f5:84:cd:8e:73:ae:c9:dc:
+         6a:fa:9e:9d:16:64:93:08:c7:1c:c2:89:54:9e:77:80:90:f6:
+         b9:29:76:eb:13:67:48:59:f8:2e:3a:31:b8:c9:d3:88:e5:5f:
+         4e:d2:19:3d:43:8e:d7:92:ff:cf:38:b6:e1:5b:8a:53:1d:ce:
+         ac:b4:76:2f:d8:f7:40:63:d5:ee:69:f3:45:7d:a0:62:c1:61:
+         c3:75:ed:b2:7b:4d:ac:21:27:30:4e:59:46:6a:93:17:ca:c8:
+         39:2d:01:73:65:5b:e9:41:9b:11:17:9c:c8:c8:4a:ef:a1:76:
+         60:2d:ae:93:ff:0c:d5:33:13:9f:4f:13:ce:dd:86:f1:fc:f8:
+         35:54:15:a8:5b:e7:85:7e:fa:37:09:ff:8b:b8:31:49:9e:0d:
+         6e:de:b4:d2:12:2d:b8:ed:c8:c3:f1:b6:42:a0:4c:97:79:df:
+         fe:c3:a3:9f:a1:f4:6d:2c:84:77:a4:a2:05:e1:17:ff:31:dd:
+         9a:f3:b8:7a:c3:52:c2:11:11:b7:50:31:8a:7f:cc:e7:5a:89:
+         cc:f7:86:9a:61:92:4f:2f:94:b6:98:c7:78:e0:62:4b:43:7d:
+         3c:de:d6:9a:b4:10:a1:40:9c:4b:2a:dc:b8:d0:d4:9e:fd:f1:
+         84:78:1b:0e:57:8f:69:54:42:68:7b:ea:a0:ef:75:0f:07:a2:
+         8c:73:99:ab:55:f5:07:09:d2:af:38:03:6a:90:03:0c:2f:8f:
+         e2:e8:43:c2:31:e9:6f:ad:87:e5:8d:bd:4e:2c:89:4b:51:e6:
+         9c:4c:54:76:c0:12:81:53:9b:ec:a0:fc:2c:9c:da:18:95:6e:
+         1e:38:26:42:27:78:60:08:df:7f:6d:32:e8:d8:c0:6f:1f:eb:
+         26:75:9f:93:fc:7b:1b:fe:35:90:dc:53:a3:07:a6:3f:83:55:
+         0a:2b:4e:62:82:25:ce:66:30:5d:2c:e0:f9:19:1b:75:b9:9d:
+         98:56:a6:83:27:7a:d1:8f:8d:59:93:fc:3f:73:d7:2e:b4:2c:
+         95:d8:8b:f7:c9:7e:c7:fc:9d:ac:72:04:1f:d2:cc:17:f4:ed:
+         34:60:9b:9e:4a:97:04:fe:dd:72:0e:57:54:51:06:70:4d:ef:
+         aa:1c:a4:82:e0:33:c7:f4
+-----BEGIN CERTIFICATE-----
+MIIGNDCCBBygAwIBAgIBGjANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
+MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
+Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDcxMDI0MjA1NzA5WhcNMTcxMDI0MjA1NzA5WjCB
+jDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsT
+IlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0
+YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgU2VydmVyIENBMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4k85L6GMmoWtCA4IPlfyiAEh
+G5SpbOK426oZGEY6UqH1D/RujOqWjJaHeRNAUS8i8gyLhw9l33F0NENVsTUJm9m8
+H/rrQtCXQHK3Q5Y9upadXVACHJuRjZzArNe7LxfXyz6CnXPrB0KSss1ks3RVG7RL
+hiEs93iHMuAW5Nq9TJXqpAp+tgoNLorPVavD5d1Bik7mb2VsskDPF125w2oLJxGE
+d2H2wnztwI14FBiZgZl1Y7foU9O6YekO+qIw80aiuckfbIBaQKwn7UhHM7BUxkYa
+8zVhwQIpkFR+ZE3EMFICgtffziFuGJHXuKuMJxe18KMBL47SLoc6PbQpZ4rEAwID
+AQABo4IBrTCCAakwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFBHbI0X9VMxqcW+EigPXvvcBLyaGMB8GA1UdIwQYMBaAFE4L7xqkQFul
+F2mHMMo0aEPQQa7yMGYGCCsGAQUFBwEBBFowWDAnBggrBgEFBQcwAYYbaHR0cDov
+L29jc3Auc3RhcnRzc2wuY29tL2NhMC0GCCsGAQUFBzAChiFodHRwOi8vd3d3LnN0
+YXJ0c3NsLmNvbS9zZnNjYS5jcnQwWwYDVR0fBFQwUjAnoCWgI4YhaHR0cDovL3d3
+dy5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0
+c3NsLmNvbS9zZnNjYS5jcmwwgYAGA1UdIAR5MHcwdQYLKwYBBAGBtTcBAgEwZjAu
+BggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjA0
+BggrBgEFBQcCARYoaHR0cDovL3d3dy5zdGFydHNzbC5jb20vaW50ZXJtZWRpYXRl
+LnBkZjANBgkqhkiG9w0BAQUFAAOCAgEAnQfh7pB2MWcWRXCMy4SLS1doRKWJwfJ+
+yyiL9edwd9W29AshYKWhdHMkIoDW2LqNomJdCTVCKfs5Y0ULpLA4Gmj0lRPM4EOU
+7Os5GuxXKdmZbfWEzY5zrsncavqenRZkkwjHHMKJVJ53gJD2uSl26xNnSFn4Ljox
+uMnTiOVfTtIZPUOO15L/zzi24VuKUx3OrLR2L9j3QGPV7mnzRX2gYsFhw3XtsntN
+rCEnME5ZRmqTF8rIOS0Bc2Vb6UGbERecyMhK76F2YC2uk/8M1TMTn08Tzt2G8fz4
+NVQVqFvnhX76Nwn/i7gxSZ4Nbt600hItuO3Iw/G2QqBMl3nf/sOjn6H0bSyEd6Si
+BeEX/zHdmvO4esNSwhERt1Axin/M51qJzPeGmmGSTy+UtpjHeOBiS0N9PN7WmrQQ
+oUCcSyrcuNDUnv3xhHgbDlePaVRCaHvqoO91DweijHOZq1X1BwnSrzgDapADDC+P
+4uhDwjHpb62H5Y29TiyJS1HmnExUdsASgVOb7KD8LJzaGJVuHjgmQid4YAjff20y
+6NjAbx/rJnWfk/x7G/41kNxTowemP4NVCitOYoIlzmYwXSzg+RkbdbmdmFamgyd6
+0Y+NWZP8P3PXLrQsldiL98l+x/ydrHIEH9LMF/TtNGCbnkqXBP7dcg5XVFEGcE3v
+qhykguAzx/Q=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert50[] = {
+  0x30, 0x82, 0x06, 0x34, 0x30, 0x82, 0x04, 0x1c, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x01, 0x1a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x7d, 0x31, 0x0b, 0x30,
+  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x16,
+  0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61,
+  0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x2b,
+  0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x22, 0x53, 0x65, 0x63,
+  0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
+  0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x29, 0x30, 0x27, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43,
+  0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x31, 0x30, 0x32, 0x34,
+  0x32, 0x30, 0x35, 0x37, 0x30, 0x39, 0x5a, 0x17, 0x0d, 0x31, 0x37, 0x31,
+  0x30, 0x32, 0x34, 0x32, 0x30, 0x35, 0x37, 0x30, 0x39, 0x5a, 0x30, 0x81,
+  0x8c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74,
+  0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, 0x69,
+  0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31,
+  0x38, 0x30, 0x36, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x53, 0x74,
+  0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+  0x20, 0x32, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x49,
+  0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x20,
+  0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe2, 0x4f, 0x39, 0x2f, 0xa1, 0x8c,
+  0x9a, 0x85, 0xad, 0x08, 0x0e, 0x08, 0x3e, 0x57, 0xf2, 0x88, 0x01, 0x21,
+  0x1b, 0x94, 0xa9, 0x6c, 0xe2, 0xb8, 0xdb, 0xaa, 0x19, 0x18, 0x46, 0x3a,
+  0x52, 0xa1, 0xf5, 0x0f, 0xf4, 0x6e, 0x8c, 0xea, 0x96, 0x8c, 0x96, 0x87,
+  0x79, 0x13, 0x40, 0x51, 0x2f, 0x22, 0xf2, 0x0c, 0x8b, 0x87, 0x0f, 0x65,
+  0xdf, 0x71, 0x74, 0x34, 0x43, 0x55, 0xb1, 0x35, 0x09, 0x9b, 0xd9, 0xbc,
+  0x1f, 0xfa, 0xeb, 0x42, 0xd0, 0x97, 0x40, 0x72, 0xb7, 0x43, 0x96, 0x3d,
+  0xba, 0x96, 0x9d, 0x5d, 0x50, 0x02, 0x1c, 0x9b, 0x91, 0x8d, 0x9c, 0xc0,
+  0xac, 0xd7, 0xbb, 0x2f, 0x17, 0xd7, 0xcb, 0x3e, 0x82, 0x9d, 0x73, 0xeb,
+  0x07, 0x42, 0x92, 0xb2, 0xcd, 0x64, 0xb3, 0x74, 0x55, 0x1b, 0xb4, 0x4b,
+  0x86, 0x21, 0x2c, 0xf7, 0x78, 0x87, 0x32, 0xe0, 0x16, 0xe4, 0xda, 0xbd,
+  0x4c, 0x95, 0xea, 0xa4, 0x0a, 0x7e, 0xb6, 0x0a, 0x0d, 0x2e, 0x8a, 0xcf,
+  0x55, 0xab, 0xc3, 0xe5, 0xdd, 0x41, 0x8a, 0x4e, 0xe6, 0x6f, 0x65, 0x6c,
+  0xb2, 0x40, 0xcf, 0x17, 0x5d, 0xb9, 0xc3, 0x6a, 0x0b, 0x27, 0x11, 0x84,
+  0x77, 0x61, 0xf6, 0xc2, 0x7c, 0xed, 0xc0, 0x8d, 0x78, 0x14, 0x18, 0x99,
+  0x81, 0x99, 0x75, 0x63, 0xb7, 0xe8, 0x53, 0xd3, 0xba, 0x61, 0xe9, 0x0e,
+  0xfa, 0xa2, 0x30, 0xf3, 0x46, 0xa2, 0xb9, 0xc9, 0x1f, 0x6c, 0x80, 0x5a,
+  0x40, 0xac, 0x27, 0xed, 0x48, 0x47, 0x33, 0xb0, 0x54, 0xc6, 0x46, 0x1a,
+  0xf3, 0x35, 0x61, 0xc1, 0x02, 0x29, 0x90, 0x54, 0x7e, 0x64, 0x4d, 0xc4,
+  0x30, 0x52, 0x02, 0x82, 0xd7, 0xdf, 0xce, 0x21, 0x6e, 0x18, 0x91, 0xd7,
+  0xb8, 0xab, 0x8c, 0x27, 0x17, 0xb5, 0xf0, 0xa3, 0x01, 0x2f, 0x8e, 0xd2,
+  0x2e, 0x87, 0x3a, 0x3d, 0xb4, 0x29, 0x67, 0x8a, 0xc4, 0x03, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xad, 0x30, 0x82, 0x01, 0xa9, 0x30,
+  0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30,
+  0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x11, 0xdb, 0x23, 0x45, 0xfd,
+  0x54, 0xcc, 0x6a, 0x71, 0x6f, 0x84, 0x8a, 0x03, 0xd7, 0xbe, 0xf7, 0x01,
+  0x2f, 0x26, 0x86, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+  0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef, 0x1a, 0xa4, 0x40, 0x5b, 0xa5,
+  0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68, 0x43, 0xd0, 0x41, 0xae, 0xf2,
+  0x30, 0x66, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x5a, 0x30, 0x58, 0x30, 0x27, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73,
+  0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x30, 0x2d, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x21, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x74,
+  0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+  0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x5b, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x54, 0x30, 0x52, 0x30, 0x27, 0xa0, 0x25, 0xa0,
+  0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74,
+  0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x73, 0x63,
+  0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x81, 0x80, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x79, 0x30, 0x77, 0x30, 0x75, 0x06, 0x0b, 0x2b, 0x06, 0x01,
+  0x04, 0x01, 0x81, 0xb5, 0x37, 0x01, 0x02, 0x01, 0x30, 0x66, 0x30, 0x2e,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x22,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x64, 0x66, 0x30, 0x34,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x28,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
+  0x2e, 0x70, 0x64, 0x66, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00,
+  0x9d, 0x07, 0xe1, 0xee, 0x90, 0x76, 0x31, 0x67, 0x16, 0x45, 0x70, 0x8c,
+  0xcb, 0x84, 0x8b, 0x4b, 0x57, 0x68, 0x44, 0xa5, 0x89, 0xc1, 0xf2, 0x7e,
+  0xcb, 0x28, 0x8b, 0xf5, 0xe7, 0x70, 0x77, 0xd5, 0xb6, 0xf4, 0x0b, 0x21,
+  0x60, 0xa5, 0xa1, 0x74, 0x73, 0x24, 0x22, 0x80, 0xd6, 0xd8, 0xba, 0x8d,
+  0xa2, 0x62, 0x5d, 0x09, 0x35, 0x42, 0x29, 0xfb, 0x39, 0x63, 0x45, 0x0b,
+  0xa4, 0xb0, 0x38, 0x1a, 0x68, 0xf4, 0x95, 0x13, 0xcc, 0xe0, 0x43, 0x94,
+  0xec, 0xeb, 0x39, 0x1a, 0xec, 0x57, 0x29, 0xd9, 0x99, 0x6d, 0xf5, 0x84,
+  0xcd, 0x8e, 0x73, 0xae, 0xc9, 0xdc, 0x6a, 0xfa, 0x9e, 0x9d, 0x16, 0x64,
+  0x93, 0x08, 0xc7, 0x1c, 0xc2, 0x89, 0x54, 0x9e, 0x77, 0x80, 0x90, 0xf6,
+  0xb9, 0x29, 0x76, 0xeb, 0x13, 0x67, 0x48, 0x59, 0xf8, 0x2e, 0x3a, 0x31,
+  0xb8, 0xc9, 0xd3, 0x88, 0xe5, 0x5f, 0x4e, 0xd2, 0x19, 0x3d, 0x43, 0x8e,
+  0xd7, 0x92, 0xff, 0xcf, 0x38, 0xb6, 0xe1, 0x5b, 0x8a, 0x53, 0x1d, 0xce,
+  0xac, 0xb4, 0x76, 0x2f, 0xd8, 0xf7, 0x40, 0x63, 0xd5, 0xee, 0x69, 0xf3,
+  0x45, 0x7d, 0xa0, 0x62, 0xc1, 0x61, 0xc3, 0x75, 0xed, 0xb2, 0x7b, 0x4d,
+  0xac, 0x21, 0x27, 0x30, 0x4e, 0x59, 0x46, 0x6a, 0x93, 0x17, 0xca, 0xc8,
+  0x39, 0x2d, 0x01, 0x73, 0x65, 0x5b, 0xe9, 0x41, 0x9b, 0x11, 0x17, 0x9c,
+  0xc8, 0xc8, 0x4a, 0xef, 0xa1, 0x76, 0x60, 0x2d, 0xae, 0x93, 0xff, 0x0c,
+  0xd5, 0x33, 0x13, 0x9f, 0x4f, 0x13, 0xce, 0xdd, 0x86, 0xf1, 0xfc, 0xf8,
+  0x35, 0x54, 0x15, 0xa8, 0x5b, 0xe7, 0x85, 0x7e, 0xfa, 0x37, 0x09, 0xff,
+  0x8b, 0xb8, 0x31, 0x49, 0x9e, 0x0d, 0x6e, 0xde, 0xb4, 0xd2, 0x12, 0x2d,
+  0xb8, 0xed, 0xc8, 0xc3, 0xf1, 0xb6, 0x42, 0xa0, 0x4c, 0x97, 0x79, 0xdf,
+  0xfe, 0xc3, 0xa3, 0x9f, 0xa1, 0xf4, 0x6d, 0x2c, 0x84, 0x77, 0xa4, 0xa2,
+  0x05, 0xe1, 0x17, 0xff, 0x31, 0xdd, 0x9a, 0xf3, 0xb8, 0x7a, 0xc3, 0x52,
+  0xc2, 0x11, 0x11, 0xb7, 0x50, 0x31, 0x8a, 0x7f, 0xcc, 0xe7, 0x5a, 0x89,
+  0xcc, 0xf7, 0x86, 0x9a, 0x61, 0x92, 0x4f, 0x2f, 0x94, 0xb6, 0x98, 0xc7,
+  0x78, 0xe0, 0x62, 0x4b, 0x43, 0x7d, 0x3c, 0xde, 0xd6, 0x9a, 0xb4, 0x10,
+  0xa1, 0x40, 0x9c, 0x4b, 0x2a, 0xdc, 0xb8, 0xd0, 0xd4, 0x9e, 0xfd, 0xf1,
+  0x84, 0x78, 0x1b, 0x0e, 0x57, 0x8f, 0x69, 0x54, 0x42, 0x68, 0x7b, 0xea,
+  0xa0, 0xef, 0x75, 0x0f, 0x07, 0xa2, 0x8c, 0x73, 0x99, 0xab, 0x55, 0xf5,
+  0x07, 0x09, 0xd2, 0xaf, 0x38, 0x03, 0x6a, 0x90, 0x03, 0x0c, 0x2f, 0x8f,
+  0xe2, 0xe8, 0x43, 0xc2, 0x31, 0xe9, 0x6f, 0xad, 0x87, 0xe5, 0x8d, 0xbd,
+  0x4e, 0x2c, 0x89, 0x4b, 0x51, 0xe6, 0x9c, 0x4c, 0x54, 0x76, 0xc0, 0x12,
+  0x81, 0x53, 0x9b, 0xec, 0xa0, 0xfc, 0x2c, 0x9c, 0xda, 0x18, 0x95, 0x6e,
+  0x1e, 0x38, 0x26, 0x42, 0x27, 0x78, 0x60, 0x08, 0xdf, 0x7f, 0x6d, 0x32,
+  0xe8, 0xd8, 0xc0, 0x6f, 0x1f, 0xeb, 0x26, 0x75, 0x9f, 0x93, 0xfc, 0x7b,
+  0x1b, 0xfe, 0x35, 0x90, 0xdc, 0x53, 0xa3, 0x07, 0xa6, 0x3f, 0x83, 0x55,
+  0x0a, 0x2b, 0x4e, 0x62, 0x82, 0x25, 0xce, 0x66, 0x30, 0x5d, 0x2c, 0xe0,
+  0xf9, 0x19, 0x1b, 0x75, 0xb9, 0x9d, 0x98, 0x56, 0xa6, 0x83, 0x27, 0x7a,
+  0xd1, 0x8f, 0x8d, 0x59, 0x93, 0xfc, 0x3f, 0x73, 0xd7, 0x2e, 0xb4, 0x2c,
+  0x95, 0xd8, 0x8b, 0xf7, 0xc9, 0x7e, 0xc7, 0xfc, 0x9d, 0xac, 0x72, 0x04,
+  0x1f, 0xd2, 0xcc, 0x17, 0xf4, 0xed, 0x34, 0x60, 0x9b, 0x9e, 0x4a, 0x97,
+  0x04, 0xfe, 0xdd, 0x72, 0x0e, 0x57, 0x54, 0x51, 0x06, 0x70, 0x4d, 0xef,
+  0xaa, 0x1c, 0xa4, 0x82, 0xe0, 0x33, 0xc7, 0xf4,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            0a:5f:11:4d:03:5b:17:91:17:d2:ef:d4:03:8c:3f:3b
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+        Validity
+            Not Before: Apr  2 12:00:00 2008 GMT
+            Not After : Apr  3 00:00:00 2022 GMT
+        Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance CA-3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bf:61:0a:29:10:1f:5e:fe:34:37:51:08:f8:1e:
+                    fb:22:ed:61:be:0b:0d:70:4c:50:63:26:75:15:b9:
+                    41:88:97:b6:f0:a0:15:bb:08:60:e0:42:e8:05:29:
+                    10:87:36:8a:28:65:a8:ef:31:07:74:6d:36:97:2f:
+                    28:46:66:04:c7:2a:79:26:7a:99:d5:8e:c3:6d:4f:
+                    a0:5e:ad:bc:3d:91:c2:59:7b:5e:36:6c:c0:53:cf:
+                    00:08:32:3e:10:64:58:10:13:69:c7:0c:ee:9c:42:
+                    51:00:f9:05:44:ee:24:ce:7a:1f:ed:8c:11:bd:12:
+                    a8:f3:15:f4:1c:7a:31:69:01:1b:a7:e6:5d:c0:9a:
+                    6c:7e:09:9e:e7:52:44:4a:10:3a:23:e4:9b:b6:03:
+                    af:a8:9c:b4:5b:9f:d4:4b:ad:92:8c:ce:b5:11:2a:
+                    aa:37:18:8d:b4:c2:b8:d8:5c:06:8c:f8:ff:23:bd:
+                    35:5e:d4:7c:3e:7e:83:0e:91:96:05:98:c3:b2:1f:
+                    e3:c8:65:eb:a9:7b:5d:a0:2c:cc:fc:3c:d9:6d:ed:
+                    cc:fa:4b:43:8c:c9:d4:b8:a5:61:1c:b2:40:b6:28:
+                    12:df:b9:f8:5f:fe:d3:b2:c9:ef:3d:b4:1e:4b:7c:
+                    1c:4c:99:36:9e:3d:eb:ec:a7:68:5e:1d:df:67:6e:
+                    5e:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.114412.1.3.0.2
+                  CPS: http://www.digicert.com/ssl-cps-repository.htm
+                  User Notice:
+                    Explicit Text: 
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl3.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+            X509v3 Authority Key Identifier: 
+                keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+            X509v3 Subject Key Identifier: 
+                50:EA:73:89:DB:29:FB:10:8F:9E:E5:01:20:D4:DE:79:99:48:83:F7
+    Signature Algorithm: sha1WithRSAEncryption
+         1e:e2:a5:48:9e:6c:db:53:38:0f:ef:a6:1a:2a:ac:e2:03:43:
+         ed:9a:bc:3e:8e:75:1b:f0:fd:2e:22:59:ac:13:c0:61:e2:e7:
+         fa:e9:99:cd:87:09:75:54:28:bf:46:60:dc:be:51:2c:92:f3:
+         1b:91:7c:31:08:70:e2:37:b9:c1:5b:a8:bd:a3:0b:00:fb:1a:
+         15:fd:03:ad:58:6a:c5:c7:24:99:48:47:46:31:1e:92:ef:b4:
+         5f:4e:34:c7:90:bf:31:c1:f8:b1:84:86:d0:9c:01:aa:df:8a:
+         56:06:ce:3a:e9:0e:ae:97:74:5d:d7:71:9a:42:74:5f:de:8d:
+         43:7c:de:e9:55:ed:69:00:cb:05:e0:7a:61:61:33:d1:19:4d:
+         f9:08:ee:a0:39:c5:25:35:b7:2b:c4:0f:b2:dd:f1:a5:b7:0e:
+         24:c4:26:28:8d:79:77:f5:2f:f0:57:ba:7c:07:d4:e1:fc:cd:
+         5a:30:57:7e:86:10:47:dd:31:1f:d7:fc:a2:c2:bf:30:7c:5d:
+         24:aa:e8:f9:ae:5f:6a:74:c2:ce:6b:b3:46:d8:21:be:29:d4:
+         8e:5e:15:d6:42:4a:e7:32:6f:a4:b1:6b:51:83:58:be:3f:6d:
+         c7:fb:da:03:21:cb:6a:16:19:4e:0a:f0:ad:84:ca:5d:94:b3:
+         5a:76:f7:61
+-----BEGIN CERTIFICATE-----
+MIIGWDCCBUCgAwIBAgIQCl8RTQNbF5EX0u/UA4w/OzANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA4MDQwMjEyMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+Q0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR
+CPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv
+KEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5
+BUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf
+1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs
+zPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d
+32duXvsCAwEAAaOCAvowggL2MA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w
+ggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3
+LmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH
+AgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy
+AHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj
+AGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg
+AEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ
+AGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt
+AGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj
+AG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl
+AHIAZQBuAGMAZQAuMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYIKwYBBQUHAQEEKDAm
+MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSB
+hzCBhDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGln
+aEFzc3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNl
+cnQuY29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSME
+GDAWgBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUB
+INTeeZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAB7ipUiebNtTOA/vphoqrOIDQ+2a
+vD6OdRvw/S4iWawTwGHi5/rpmc2HCXVUKL9GYNy+USyS8xuRfDEIcOI3ucFbqL2j
+CwD7GhX9A61YasXHJJlIR0YxHpLvtF9ONMeQvzHB+LGEhtCcAarfilYGzjrpDq6X
+dF3XcZpCdF/ejUN83ulV7WkAywXgemFhM9EZTfkI7qA5xSU1tyvED7Ld8aW3DiTE
+JiiNeXf1L/BXunwH1OH8zVowV36GEEfdMR/X/KLCvzB8XSSq6PmuX2p0ws5rs0bY
+Ib4p1I5eFdZCSucyb6Sxa1GDWL4/bcf72gMhy2oWGU4K8K2Eyl2Us1p292E=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert51[] = {
+  0x30, 0x82, 0x06, 0x58, 0x30, 0x82, 0x05, 0x40, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x0a, 0x5f, 0x11, 0x4d, 0x03, 0x5b, 0x17, 0x91, 0x17,
+  0xd2, 0xef, 0xd4, 0x03, 0x8c, 0x3f, 0x3b, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+  0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+  0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+  0x30, 0x1e, 0x17, 0x0d, 0x30, 0x38, 0x30, 0x34, 0x30, 0x32, 0x31, 0x32,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x32, 0x30, 0x34, 0x30,
+  0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x66, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+  0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48, 0x69, 0x67,
+  0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20,
+  0x43, 0x41, 0x2d, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xbf, 0x61, 0x0a, 0x29, 0x10, 0x1f, 0x5e, 0xfe, 0x34, 0x37, 0x51,
+  0x08, 0xf8, 0x1e, 0xfb, 0x22, 0xed, 0x61, 0xbe, 0x0b, 0x0d, 0x70, 0x4c,
+  0x50, 0x63, 0x26, 0x75, 0x15, 0xb9, 0x41, 0x88, 0x97, 0xb6, 0xf0, 0xa0,
+  0x15, 0xbb, 0x08, 0x60, 0xe0, 0x42, 0xe8, 0x05, 0x29, 0x10, 0x87, 0x36,
+  0x8a, 0x28, 0x65, 0xa8, 0xef, 0x31, 0x07, 0x74, 0x6d, 0x36, 0x97, 0x2f,
+  0x28, 0x46, 0x66, 0x04, 0xc7, 0x2a, 0x79, 0x26, 0x7a, 0x99, 0xd5, 0x8e,
+  0xc3, 0x6d, 0x4f, 0xa0, 0x5e, 0xad, 0xbc, 0x3d, 0x91, 0xc2, 0x59, 0x7b,
+  0x5e, 0x36, 0x6c, 0xc0, 0x53, 0xcf, 0x00, 0x08, 0x32, 0x3e, 0x10, 0x64,
+  0x58, 0x10, 0x13, 0x69, 0xc7, 0x0c, 0xee, 0x9c, 0x42, 0x51, 0x00, 0xf9,
+  0x05, 0x44, 0xee, 0x24, 0xce, 0x7a, 0x1f, 0xed, 0x8c, 0x11, 0xbd, 0x12,
+  0xa8, 0xf3, 0x15, 0xf4, 0x1c, 0x7a, 0x31, 0x69, 0x01, 0x1b, 0xa7, 0xe6,
+  0x5d, 0xc0, 0x9a, 0x6c, 0x7e, 0x09, 0x9e, 0xe7, 0x52, 0x44, 0x4a, 0x10,
+  0x3a, 0x23, 0xe4, 0x9b, 0xb6, 0x03, 0xaf, 0xa8, 0x9c, 0xb4, 0x5b, 0x9f,
+  0xd4, 0x4b, 0xad, 0x92, 0x8c, 0xce, 0xb5, 0x11, 0x2a, 0xaa, 0x37, 0x18,
+  0x8d, 0xb4, 0xc2, 0xb8, 0xd8, 0x5c, 0x06, 0x8c, 0xf8, 0xff, 0x23, 0xbd,
+  0x35, 0x5e, 0xd4, 0x7c, 0x3e, 0x7e, 0x83, 0x0e, 0x91, 0x96, 0x05, 0x98,
+  0xc3, 0xb2, 0x1f, 0xe3, 0xc8, 0x65, 0xeb, 0xa9, 0x7b, 0x5d, 0xa0, 0x2c,
+  0xcc, 0xfc, 0x3c, 0xd9, 0x6d, 0xed, 0xcc, 0xfa, 0x4b, 0x43, 0x8c, 0xc9,
+  0xd4, 0xb8, 0xa5, 0x61, 0x1c, 0xb2, 0x40, 0xb6, 0x28, 0x12, 0xdf, 0xb9,
+  0xf8, 0x5f, 0xfe, 0xd3, 0xb2, 0xc9, 0xef, 0x3d, 0xb4, 0x1e, 0x4b, 0x7c,
+  0x1c, 0x4c, 0x99, 0x36, 0x9e, 0x3d, 0xeb, 0xec, 0xa7, 0x68, 0x5e, 0x1d,
+  0xdf, 0x67, 0x6e, 0x5e, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x02, 0xfa, 0x30, 0x82, 0x02, 0xf6, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x82,
+  0x01, 0xc6, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x82, 0x01, 0xbd, 0x30,
+  0x82, 0x01, 0xb9, 0x30, 0x82, 0x01, 0xb5, 0x06, 0x0b, 0x60, 0x86, 0x48,
+  0x01, 0x86, 0xfd, 0x6c, 0x01, 0x03, 0x00, 0x02, 0x30, 0x82, 0x01, 0xa4,
+  0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+  0x16, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x73, 0x73, 0x6c, 0x2d, 0x63, 0x70, 0x73, 0x2d, 0x72, 0x65,
+  0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x68, 0x74, 0x6d,
+  0x30, 0x82, 0x01, 0x64, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x02, 0x30, 0x82, 0x01, 0x56, 0x1e, 0x82, 0x01, 0x52, 0x00, 0x41,
+  0x00, 0x6e, 0x00, 0x79, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65,
+  0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68,
+  0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x65, 0x00, 0x72,
+  0x00, 0x74, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61,
+  0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6e,
+  0x00, 0x73, 0x00, 0x74, 0x00, 0x69, 0x00, 0x74, 0x00, 0x75, 0x00, 0x74,
+  0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63, 0x00, 0x63,
+  0x00, 0x65, 0x00, 0x70, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x63,
+  0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74,
+  0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x69, 0x00, 0x67,
+  0x00, 0x69, 0x00, 0x43, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74, 0x00, 0x20,
+  0x00, 0x43, 0x00, 0x50, 0x00, 0x2f, 0x00, 0x43, 0x00, 0x50, 0x00, 0x53,
+  0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x74,
+  0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x00, 0x6c,
+  0x00, 0x79, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x50,
+  0x00, 0x61, 0x00, 0x72, 0x00, 0x74, 0x00, 0x79, 0x00, 0x20, 0x00, 0x41,
+  0x00, 0x67, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x65,
+  0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x77, 0x00, 0x68, 0x00, 0x69,
+  0x00, 0x63, 0x00, 0x68, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x6d,
+  0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x61,
+  0x00, 0x62, 0x00, 0x69, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x74, 0x00, 0x79,
+  0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20, 0x00, 0x61,
+  0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x63,
+  0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61,
+  0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x68, 0x00, 0x65,
+  0x00, 0x72, 0x00, 0x65, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x62,
+  0x00, 0x79, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x66, 0x00, 0x65,
+  0x00, 0x72, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x65, 0x00, 0x2e,
+  0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+  0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x34, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26,
+  0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+  0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x30, 0x81, 0x8f, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x81,
+  0x87, 0x30, 0x81, 0x84, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e,
+  0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67,
+  0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56,
+  0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x40,
+  0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65,
+  0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43,
+  0x65, 0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72,
+  0x61, 0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41,
+  0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e, 0xc3, 0x69, 0x03, 0xf8, 0xbf,
+  0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08, 0x02, 0xef, 0x63, 0x64, 0x2b,
+  0xc3, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x50, 0xea, 0x73, 0x89, 0xdb, 0x29, 0xfb, 0x10, 0x8f, 0x9e, 0xe5, 0x01,
+  0x20, 0xd4, 0xde, 0x79, 0x99, 0x48, 0x83, 0xf7, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x1e, 0xe2, 0xa5, 0x48, 0x9e, 0x6c, 0xdb, 0x53,
+  0x38, 0x0f, 0xef, 0xa6, 0x1a, 0x2a, 0xac, 0xe2, 0x03, 0x43, 0xed, 0x9a,
+  0xbc, 0x3e, 0x8e, 0x75, 0x1b, 0xf0, 0xfd, 0x2e, 0x22, 0x59, 0xac, 0x13,
+  0xc0, 0x61, 0xe2, 0xe7, 0xfa, 0xe9, 0x99, 0xcd, 0x87, 0x09, 0x75, 0x54,
+  0x28, 0xbf, 0x46, 0x60, 0xdc, 0xbe, 0x51, 0x2c, 0x92, 0xf3, 0x1b, 0x91,
+  0x7c, 0x31, 0x08, 0x70, 0xe2, 0x37, 0xb9, 0xc1, 0x5b, 0xa8, 0xbd, 0xa3,
+  0x0b, 0x00, 0xfb, 0x1a, 0x15, 0xfd, 0x03, 0xad, 0x58, 0x6a, 0xc5, 0xc7,
+  0x24, 0x99, 0x48, 0x47, 0x46, 0x31, 0x1e, 0x92, 0xef, 0xb4, 0x5f, 0x4e,
+  0x34, 0xc7, 0x90, 0xbf, 0x31, 0xc1, 0xf8, 0xb1, 0x84, 0x86, 0xd0, 0x9c,
+  0x01, 0xaa, 0xdf, 0x8a, 0x56, 0x06, 0xce, 0x3a, 0xe9, 0x0e, 0xae, 0x97,
+  0x74, 0x5d, 0xd7, 0x71, 0x9a, 0x42, 0x74, 0x5f, 0xde, 0x8d, 0x43, 0x7c,
+  0xde, 0xe9, 0x55, 0xed, 0x69, 0x00, 0xcb, 0x05, 0xe0, 0x7a, 0x61, 0x61,
+  0x33, 0xd1, 0x19, 0x4d, 0xf9, 0x08, 0xee, 0xa0, 0x39, 0xc5, 0x25, 0x35,
+  0xb7, 0x2b, 0xc4, 0x0f, 0xb2, 0xdd, 0xf1, 0xa5, 0xb7, 0x0e, 0x24, 0xc4,
+  0x26, 0x28, 0x8d, 0x79, 0x77, 0xf5, 0x2f, 0xf0, 0x57, 0xba, 0x7c, 0x07,
+  0xd4, 0xe1, 0xfc, 0xcd, 0x5a, 0x30, 0x57, 0x7e, 0x86, 0x10, 0x47, 0xdd,
+  0x31, 0x1f, 0xd7, 0xfc, 0xa2, 0xc2, 0xbf, 0x30, 0x7c, 0x5d, 0x24, 0xaa,
+  0xe8, 0xf9, 0xae, 0x5f, 0x6a, 0x74, 0xc2, 0xce, 0x6b, 0xb3, 0x46, 0xd8,
+  0x21, 0xbe, 0x29, 0xd4, 0x8e, 0x5e, 0x15, 0xd6, 0x42, 0x4a, 0xe7, 0x32,
+  0x6f, 0xa4, 0xb1, 0x6b, 0x51, 0x83, 0x58, 0xbe, 0x3f, 0x6d, 0xc7, 0xfb,
+  0xda, 0x03, 0x21, 0xcb, 0x6a, 0x16, 0x19, 0x4e, 0x0a, 0xf0, 0xad, 0x84,
+  0xca, 0x5d, 0x94, 0xb3, 0x5a, 0x76, 0xf7, 0x61,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7250751724796726 (0x19c28530e93b36)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+        Validity
+            Not Before: Sep 17 22:46:36 2006 GMT
+            Not After : Dec 31 23:59:59 2019 GMT
+        Subject: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (4096 bit)
+                Modulus:
+                    00:bd:ca:8d:ac:b8:91:15:56:97:7b:6b:5c:7a:c2:
+                    de:6b:d9:a1:b0:c3:10:23:fa:a7:a1:b2:cc:31:fa:
+                    3e:d9:a6:29:6f:16:3d:e0:6b:f8:b8:40:5f:db:39:
+                    a8:00:7a:8b:a0:4d:54:7d:c2:22:78:fc:8e:09:b8:
+                    a8:85:d7:cc:95:97:4b:74:d8:9e:7e:f0:00:e4:0e:
+                    89:ae:49:28:44:1a:10:99:32:0f:25:88:53:a4:0d:
+                    b3:0f:12:08:16:0b:03:71:27:1c:7f:e1:db:d2:fd:
+                    67:68:c4:05:5d:0a:0e:5d:70:d7:d8:97:a0:bc:53:
+                    41:9a:91:8d:f4:9e:36:66:7a:7e:56:c1:90:5f:e6:
+                    b1:68:20:36:a4:8c:24:2c:2c:47:0b:59:76:66:30:
+                    b5:be:de:ed:8f:f8:9d:d3:bb:01:30:e6:f2:f3:0e:
+                    e0:2c:92:80:f3:85:f9:28:8a:b4:54:2e:9a:ed:f7:
+                    76:fc:15:68:16:eb:4a:6c:eb:2e:12:8f:d4:cf:fe:
+                    0c:c7:5c:1d:0b:7e:05:32:be:5e:b0:09:2a:42:d5:
+                    c9:4e:90:b3:59:0d:bb:7a:7e:cd:d5:08:5a:b4:7f:
+                    d8:1c:69:11:f9:27:0f:7b:06:af:54:83:18:7b:e1:
+                    dd:54:7a:51:68:6e:77:fc:c6:bf:52:4a:66:46:a1:
+                    b2:67:1a:bb:a3:4f:77:a0:be:5d:ff:fc:56:0b:43:
+                    72:77:90:ca:9e:f9:f2:39:f5:0d:a9:f4:ea:d7:e7:
+                    b3:10:2f:30:42:37:21:cc:30:70:c9:86:98:0f:cc:
+                    58:4d:83:bb:7d:e5:1a:a5:37:8d:b6:ac:32:97:00:
+                    3a:63:71:24:1e:9e:37:c4:ff:74:d4:37:c0:e2:fe:
+                    88:46:60:11:dd:08:3f:50:36:ab:b8:7a:a4:95:62:
+                    6a:6e:b0:ca:6a:21:5a:69:f3:f3:fb:1d:70:39:95:
+                    f3:a7:6e:a6:81:89:a1:88:c5:3b:71:ca:a3:52:ee:
+                    83:bb:fd:a0:77:f4:e4:6f:e7:42:db:6d:4a:99:8a:
+                    34:48:bc:17:dc:e4:80:08:22:b6:f2:31:c0:3f:04:
+                    3e:eb:9f:20:79:d6:b8:06:64:64:02:31:d7:a9:cd:
+                    52:fb:84:45:69:09:00:2a:dc:55:8b:c4:06:46:4b:
+                    c0:4a:1d:09:5b:39:28:fd:a9:ab:ce:00:f9:2e:48:
+                    4b:26:e6:30:4c:a5:58:ca:b4:44:82:4f:e7:91:1e:
+                    33:c3:b0:93:ff:11:fc:81:d2:ca:1f:71:29:dd:76:
+                    4f:92:25:af:1d:81:b7:0f:2f:8c:c3:06:cc:2f:27:
+                    a3:4a:e4:0e:99:ba:7c:1e:45:1f:7f:aa:19:45:96:
+                    fd:fc:3d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:2
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+            X509v3 Authority Key Identifier: 
+                keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.startssl.com/ca
+                CA Issuers - URI:http://aia.startssl.com/certs/ca.crt
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.startssl.com/sfsca.crl
+
+    Signature Algorithm: sha256WithRSAEncryption
+         b6:6d:f8:70:fb:e2:0d:4c:98:b3:07:49:15:f5:04:c4:6c:ca:
+         ca:f5:68:a0:08:fe:12:6d:9c:04:06:c9:ad:9a:91:52:3e:78:
+         c4:5c:ee:9f:54:1d:ee:e3:f1:5e:30:c9:49:e1:39:e0:a6:9d:
+         36:6c:57:fa:e6:34:4f:55:e8:87:a8:2c:dd:05:f1:58:12:91:
+         e8:ca:ce:28:78:8f:df:07:85:01:a5:dc:45:96:05:d4:80:b2:
+         2b:05:9a:cb:9a:a5:8b:e0:3a:67:e6:73:47:be:4a:fd:27:b1:
+         88:ef:e6:ca:cf:8d:0e:26:9f:fa:5f:57:78:ad:6d:fe:ae:9b:
+         35:08:b1:c3:ba:c1:00:4a:4b:7d:14:bd:f7:f1:d3:55:18:ac:
+         d0:33:70:88:6d:c4:09:71:14:a6:2b:4f:88:81:e7:0b:00:37:
+         a9:15:7d:7e:d7:01:96:3f:2f:af:7b:62:ae:0a:4a:bf:4b:39:
+         2e:35:10:8b:fe:04:39:e4:3c:3a:0c:09:56:40:3a:b5:f4:c2:
+         68:0c:b5:f9:52:cd:ee:9d:f8:98:fc:78:e7:58:47:8f:1c:73:
+         58:69:33:ab:ff:dd:df:8e:24:01:77:98:19:3a:b0:66:79:bc:
+         e1:08:a3:0e:4f:c1:04:b3:f3:01:c8:eb:d3:59:1c:35:d2:93:
+         1e:70:65:82:7f:db:cf:fb:c8:99:12:60:c3:44:6f:3a:80:4b:
+         d7:be:21:aa:14:7a:64:cb:dd:37:43:45:5b:32:2e:45:f0:d9:
+         59:1f:6b:18:f0:7c:e9:55:36:19:61:5f:b5:7d:f1:8d:bd:88:
+         e4:75:4b:98:dd:27:b0:e4:84:44:2a:61:84:57:05:82:11:1f:
+         aa:35:58:f3:20:0e:af:59:ef:fa:55:72:72:0d:26:d0:9b:53:
+         49:ac:ce:37:2e:65:61:ff:f6:ec:1b:ea:f6:f1:a6:d3:d1:b5:
+         7b:be:35:f4:22:c1:bc:8d:01:bd:68:5e:83:0d:2f:ec:d6:da:
+         63:0c:27:d1:54:3e:e4:a8:d3:ce:4b:32:b8:91:94:ff:fb:5b:
+         49:2d:75:18:a8:ba:71:9a:3b:ae:d9:c0:a9:4f:87:91:ed:8b:
+         7b:6b:20:98:89:39:83:4f:80:c4:69:cc:17:c9:c8:4e:be:e4:
+         a9:a5:81:76:70:06:04:32:cd:83:65:f4:bc:7d:3e:13:bc:d2:
+         e8:6f:63:aa:b5:3b:da:8d:86:32:82:78:9d:d9:cc:ff:bf:57:
+         64:74:ed:28:3d:44:62:15:61:4b:f7:94:b0:0d:2a:67:1c:f0:
+         cb:9b:a5:92:bf:f8:41:5a:c1:3d:60:ed:9f:bb:b8:6d:9b:ce:
+         a9:6a:16:3f:7e:ea:06:f1
+-----BEGIN CERTIFICATE-----
+MIIGXDCCBESgAwIBAgIHGcKFMOk7NjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQG
+EwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERp
+Z2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MjI0NjM2WhcNMTkxMjMxMjM1
+OTU5WjBVMQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQx
+KjAoBgNVBAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL3Kjay4kRVWl3trXHrC3mvZobDD
+ECP6p6GyzDH6PtmmKW8WPeBr+LhAX9s5qAB6i6BNVH3CInj8jgm4qIXXzJWXS3TY
+nn7wAOQOia5JKEQaEJkyDyWIU6QNsw8SCBYLA3EnHH/h29L9Z2jEBV0KDl1w19iX
+oLxTQZqRjfSeNmZ6flbBkF/msWggNqSMJCwsRwtZdmYwtb7e7Y/4ndO7ATDm8vMO
+4CySgPOF+SiKtFQumu33dvwVaBbrSmzrLhKP1M/+DMdcHQt+BTK+XrAJKkLVyU6Q
+s1kNu3p+zdUIWrR/2BxpEfknD3sGr1SDGHvh3VR6UWhud/zGv1JKZkahsmcau6NP
+d6C+Xf/8VgtDcneQyp758jn1Dan06tfnsxAvMEI3IcwwcMmGmA/MWE2Du33lGqU3
+jbasMpcAOmNxJB6eN8T/dNQ3wOL+iEZgEd0IP1A2q7h6pJViam6wymohWmnz8/sd
+cDmV86dupoGJoYjFO3HKo1Lug7v9oHf05G/nQtttSpmKNEi8F9zkgAgitvIxwD8E
+PuufIHnWuAZkZAIx16nNUvuERWkJACrcVYvEBkZLwEodCVs5KP2pq84A+S5ISybm
+MEylWMq0RIJP55EeM8Owk/8R/IHSyh9xKd12T5Ilrx2Btw8vjMMGzC8no0rkDpm6
+fB5FH3+qGUWW/fw9AgMBAAGjggEHMIIBAzASBgNVHRMBAf8ECDAGAQH/AgECMA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU4WbPDtHxs0u3BiAU/ocS1fb++z4wHwYD
+VR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwaQYIKwYBBQUHAQEEXTBbMCcG
+CCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwMAYIKwYBBQUH
+MAKGJGh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRzL2NhLmNydDAyBgNVHR8E
+KzApMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwDQYJ
+KoZIhvcNAQELBQADggIBALZt+HD74g1MmLMHSRX1BMRsysr1aKAI/hJtnAQGya2a
+kVI+eMRc7p9UHe7j8V4wyUnhOeCmnTZsV/rmNE9V6IeoLN0F8VgSkejKzih4j98H
+hQGl3EWWBdSAsisFmsuapYvgOmfmc0e+Sv0nsYjv5srPjQ4mn/pfV3itbf6umzUI
+scO6wQBKS30Uvffx01UYrNAzcIhtxAlxFKYrT4iB5wsAN6kVfX7XAZY/L697Yq4K
+Sr9LOS41EIv+BDnkPDoMCVZAOrX0wmgMtflSze6d+Jj8eOdYR48cc1hpM6v/3d+O
+JAF3mBk6sGZ5vOEIow5PwQSz8wHI69NZHDXSkx5wZYJ/28/7yJkSYMNEbzqAS9e+
+IaoUemTL3TdDRVsyLkXw2VkfaxjwfOlVNhlhX7V98Y29iOR1S5jdJ7DkhEQqYYRX
+BYIRH6o1WPMgDq9Z7/pVcnINJtCbU0mszjcuZWH/9uwb6vbxptPRtXu+NfQiwbyN
+Ab1oXoMNL+zW2mMMJ9FUPuSo085LMriRlP/7W0ktdRiounGaO67ZwKlPh5Hti3tr
+IJiJOYNPgMRpzBfJyE6+5KmlgXZwBgQyzYNl9Lx9PhO80uhvY6q1O9qNhjKCeJ3Z
+zP+/V2R07Sg9RGIVYUv3lLANKmcc8MubpZK/+EFawT1g7Z+7uG2bzqlqFj9+6gbx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert52[] = {
+  0x30, 0x82, 0x06, 0x5c, 0x30, 0x82, 0x04, 0x44, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x07, 0x19, 0xc2, 0x85, 0x30, 0xe9, 0x3b, 0x36, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+  0x4c, 0x74, 0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69,
+  0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e,
+  0x67, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20,
+  0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72,
+  0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41,
+  0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d,
+  0x30, 0x36, 0x30, 0x39, 0x31, 0x37, 0x32, 0x32, 0x34, 0x36, 0x33, 0x36,
+  0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
+  0x39, 0x35, 0x39, 0x5a, 0x30, 0x55, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+  0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06,
+  0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e,
+  0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31,
+  0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66,
+  0x20, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x30, 0x82, 0x02, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02,
+  0x82, 0x02, 0x01, 0x00, 0xbd, 0xca, 0x8d, 0xac, 0xb8, 0x91, 0x15, 0x56,
+  0x97, 0x7b, 0x6b, 0x5c, 0x7a, 0xc2, 0xde, 0x6b, 0xd9, 0xa1, 0xb0, 0xc3,
+  0x10, 0x23, 0xfa, 0xa7, 0xa1, 0xb2, 0xcc, 0x31, 0xfa, 0x3e, 0xd9, 0xa6,
+  0x29, 0x6f, 0x16, 0x3d, 0xe0, 0x6b, 0xf8, 0xb8, 0x40, 0x5f, 0xdb, 0x39,
+  0xa8, 0x00, 0x7a, 0x8b, 0xa0, 0x4d, 0x54, 0x7d, 0xc2, 0x22, 0x78, 0xfc,
+  0x8e, 0x09, 0xb8, 0xa8, 0x85, 0xd7, 0xcc, 0x95, 0x97, 0x4b, 0x74, 0xd8,
+  0x9e, 0x7e, 0xf0, 0x00, 0xe4, 0x0e, 0x89, 0xae, 0x49, 0x28, 0x44, 0x1a,
+  0x10, 0x99, 0x32, 0x0f, 0x25, 0x88, 0x53, 0xa4, 0x0d, 0xb3, 0x0f, 0x12,
+  0x08, 0x16, 0x0b, 0x03, 0x71, 0x27, 0x1c, 0x7f, 0xe1, 0xdb, 0xd2, 0xfd,
+  0x67, 0x68, 0xc4, 0x05, 0x5d, 0x0a, 0x0e, 0x5d, 0x70, 0xd7, 0xd8, 0x97,
+  0xa0, 0xbc, 0x53, 0x41, 0x9a, 0x91, 0x8d, 0xf4, 0x9e, 0x36, 0x66, 0x7a,
+  0x7e, 0x56, 0xc1, 0x90, 0x5f, 0xe6, 0xb1, 0x68, 0x20, 0x36, 0xa4, 0x8c,
+  0x24, 0x2c, 0x2c, 0x47, 0x0b, 0x59, 0x76, 0x66, 0x30, 0xb5, 0xbe, 0xde,
+  0xed, 0x8f, 0xf8, 0x9d, 0xd3, 0xbb, 0x01, 0x30, 0xe6, 0xf2, 0xf3, 0x0e,
+  0xe0, 0x2c, 0x92, 0x80, 0xf3, 0x85, 0xf9, 0x28, 0x8a, 0xb4, 0x54, 0x2e,
+  0x9a, 0xed, 0xf7, 0x76, 0xfc, 0x15, 0x68, 0x16, 0xeb, 0x4a, 0x6c, 0xeb,
+  0x2e, 0x12, 0x8f, 0xd4, 0xcf, 0xfe, 0x0c, 0xc7, 0x5c, 0x1d, 0x0b, 0x7e,
+  0x05, 0x32, 0xbe, 0x5e, 0xb0, 0x09, 0x2a, 0x42, 0xd5, 0xc9, 0x4e, 0x90,
+  0xb3, 0x59, 0x0d, 0xbb, 0x7a, 0x7e, 0xcd, 0xd5, 0x08, 0x5a, 0xb4, 0x7f,
+  0xd8, 0x1c, 0x69, 0x11, 0xf9, 0x27, 0x0f, 0x7b, 0x06, 0xaf, 0x54, 0x83,
+  0x18, 0x7b, 0xe1, 0xdd, 0x54, 0x7a, 0x51, 0x68, 0x6e, 0x77, 0xfc, 0xc6,
+  0xbf, 0x52, 0x4a, 0x66, 0x46, 0xa1, 0xb2, 0x67, 0x1a, 0xbb, 0xa3, 0x4f,
+  0x77, 0xa0, 0xbe, 0x5d, 0xff, 0xfc, 0x56, 0x0b, 0x43, 0x72, 0x77, 0x90,
+  0xca, 0x9e, 0xf9, 0xf2, 0x39, 0xf5, 0x0d, 0xa9, 0xf4, 0xea, 0xd7, 0xe7,
+  0xb3, 0x10, 0x2f, 0x30, 0x42, 0x37, 0x21, 0xcc, 0x30, 0x70, 0xc9, 0x86,
+  0x98, 0x0f, 0xcc, 0x58, 0x4d, 0x83, 0xbb, 0x7d, 0xe5, 0x1a, 0xa5, 0x37,
+  0x8d, 0xb6, 0xac, 0x32, 0x97, 0x00, 0x3a, 0x63, 0x71, 0x24, 0x1e, 0x9e,
+  0x37, 0xc4, 0xff, 0x74, 0xd4, 0x37, 0xc0, 0xe2, 0xfe, 0x88, 0x46, 0x60,
+  0x11, 0xdd, 0x08, 0x3f, 0x50, 0x36, 0xab, 0xb8, 0x7a, 0xa4, 0x95, 0x62,
+  0x6a, 0x6e, 0xb0, 0xca, 0x6a, 0x21, 0x5a, 0x69, 0xf3, 0xf3, 0xfb, 0x1d,
+  0x70, 0x39, 0x95, 0xf3, 0xa7, 0x6e, 0xa6, 0x81, 0x89, 0xa1, 0x88, 0xc5,
+  0x3b, 0x71, 0xca, 0xa3, 0x52, 0xee, 0x83, 0xbb, 0xfd, 0xa0, 0x77, 0xf4,
+  0xe4, 0x6f, 0xe7, 0x42, 0xdb, 0x6d, 0x4a, 0x99, 0x8a, 0x34, 0x48, 0xbc,
+  0x17, 0xdc, 0xe4, 0x80, 0x08, 0x22, 0xb6, 0xf2, 0x31, 0xc0, 0x3f, 0x04,
+  0x3e, 0xeb, 0x9f, 0x20, 0x79, 0xd6, 0xb8, 0x06, 0x64, 0x64, 0x02, 0x31,
+  0xd7, 0xa9, 0xcd, 0x52, 0xfb, 0x84, 0x45, 0x69, 0x09, 0x00, 0x2a, 0xdc,
+  0x55, 0x8b, 0xc4, 0x06, 0x46, 0x4b, 0xc0, 0x4a, 0x1d, 0x09, 0x5b, 0x39,
+  0x28, 0xfd, 0xa9, 0xab, 0xce, 0x00, 0xf9, 0x2e, 0x48, 0x4b, 0x26, 0xe6,
+  0x30, 0x4c, 0xa5, 0x58, 0xca, 0xb4, 0x44, 0x82, 0x4f, 0xe7, 0x91, 0x1e,
+  0x33, 0xc3, 0xb0, 0x93, 0xff, 0x11, 0xfc, 0x81, 0xd2, 0xca, 0x1f, 0x71,
+  0x29, 0xdd, 0x76, 0x4f, 0x92, 0x25, 0xaf, 0x1d, 0x81, 0xb7, 0x0f, 0x2f,
+  0x8c, 0xc3, 0x06, 0xcc, 0x2f, 0x27, 0xa3, 0x4a, 0xe4, 0x0e, 0x99, 0xba,
+  0x7c, 0x1e, 0x45, 0x1f, 0x7f, 0xaa, 0x19, 0x45, 0x96, 0xfd, 0xfc, 0x3d,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x07, 0x30, 0x82, 0x01,
+  0x03, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+  0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0xe1, 0x66, 0xcf, 0x0e, 0xd1, 0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14,
+  0xfe, 0x87, 0x12, 0xd5, 0xf6, 0xfe, 0xfb, 0x3e, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef,
+  0x1a, 0xa4, 0x40, 0x5b, 0xa5, 0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68,
+  0x43, 0xd0, 0x41, 0xae, 0xf2, 0x30, 0x69, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x5d, 0x30, 0x5b, 0x30, 0x27, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x61, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x02, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61,
+  0x69, 0x61, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x63, 0x61,
+  0x2e, 0x63, 0x72, 0x74, 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+  0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74,
+  0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+  0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+  0x82, 0x02, 0x01, 0x00, 0xb6, 0x6d, 0xf8, 0x70, 0xfb, 0xe2, 0x0d, 0x4c,
+  0x98, 0xb3, 0x07, 0x49, 0x15, 0xf5, 0x04, 0xc4, 0x6c, 0xca, 0xca, 0xf5,
+  0x68, 0xa0, 0x08, 0xfe, 0x12, 0x6d, 0x9c, 0x04, 0x06, 0xc9, 0xad, 0x9a,
+  0x91, 0x52, 0x3e, 0x78, 0xc4, 0x5c, 0xee, 0x9f, 0x54, 0x1d, 0xee, 0xe3,
+  0xf1, 0x5e, 0x30, 0xc9, 0x49, 0xe1, 0x39, 0xe0, 0xa6, 0x9d, 0x36, 0x6c,
+  0x57, 0xfa, 0xe6, 0x34, 0x4f, 0x55, 0xe8, 0x87, 0xa8, 0x2c, 0xdd, 0x05,
+  0xf1, 0x58, 0x12, 0x91, 0xe8, 0xca, 0xce, 0x28, 0x78, 0x8f, 0xdf, 0x07,
+  0x85, 0x01, 0xa5, 0xdc, 0x45, 0x96, 0x05, 0xd4, 0x80, 0xb2, 0x2b, 0x05,
+  0x9a, 0xcb, 0x9a, 0xa5, 0x8b, 0xe0, 0x3a, 0x67, 0xe6, 0x73, 0x47, 0xbe,
+  0x4a, 0xfd, 0x27, 0xb1, 0x88, 0xef, 0xe6, 0xca, 0xcf, 0x8d, 0x0e, 0x26,
+  0x9f, 0xfa, 0x5f, 0x57, 0x78, 0xad, 0x6d, 0xfe, 0xae, 0x9b, 0x35, 0x08,
+  0xb1, 0xc3, 0xba, 0xc1, 0x00, 0x4a, 0x4b, 0x7d, 0x14, 0xbd, 0xf7, 0xf1,
+  0xd3, 0x55, 0x18, 0xac, 0xd0, 0x33, 0x70, 0x88, 0x6d, 0xc4, 0x09, 0x71,
+  0x14, 0xa6, 0x2b, 0x4f, 0x88, 0x81, 0xe7, 0x0b, 0x00, 0x37, 0xa9, 0x15,
+  0x7d, 0x7e, 0xd7, 0x01, 0x96, 0x3f, 0x2f, 0xaf, 0x7b, 0x62, 0xae, 0x0a,
+  0x4a, 0xbf, 0x4b, 0x39, 0x2e, 0x35, 0x10, 0x8b, 0xfe, 0x04, 0x39, 0xe4,
+  0x3c, 0x3a, 0x0c, 0x09, 0x56, 0x40, 0x3a, 0xb5, 0xf4, 0xc2, 0x68, 0x0c,
+  0xb5, 0xf9, 0x52, 0xcd, 0xee, 0x9d, 0xf8, 0x98, 0xfc, 0x78, 0xe7, 0x58,
+  0x47, 0x8f, 0x1c, 0x73, 0x58, 0x69, 0x33, 0xab, 0xff, 0xdd, 0xdf, 0x8e,
+  0x24, 0x01, 0x77, 0x98, 0x19, 0x3a, 0xb0, 0x66, 0x79, 0xbc, 0xe1, 0x08,
+  0xa3, 0x0e, 0x4f, 0xc1, 0x04, 0xb3, 0xf3, 0x01, 0xc8, 0xeb, 0xd3, 0x59,
+  0x1c, 0x35, 0xd2, 0x93, 0x1e, 0x70, 0x65, 0x82, 0x7f, 0xdb, 0xcf, 0xfb,
+  0xc8, 0x99, 0x12, 0x60, 0xc3, 0x44, 0x6f, 0x3a, 0x80, 0x4b, 0xd7, 0xbe,
+  0x21, 0xaa, 0x14, 0x7a, 0x64, 0xcb, 0xdd, 0x37, 0x43, 0x45, 0x5b, 0x32,
+  0x2e, 0x45, 0xf0, 0xd9, 0x59, 0x1f, 0x6b, 0x18, 0xf0, 0x7c, 0xe9, 0x55,
+  0x36, 0x19, 0x61, 0x5f, 0xb5, 0x7d, 0xf1, 0x8d, 0xbd, 0x88, 0xe4, 0x75,
+  0x4b, 0x98, 0xdd, 0x27, 0xb0, 0xe4, 0x84, 0x44, 0x2a, 0x61, 0x84, 0x57,
+  0x05, 0x82, 0x11, 0x1f, 0xaa, 0x35, 0x58, 0xf3, 0x20, 0x0e, 0xaf, 0x59,
+  0xef, 0xfa, 0x55, 0x72, 0x72, 0x0d, 0x26, 0xd0, 0x9b, 0x53, 0x49, 0xac,
+  0xce, 0x37, 0x2e, 0x65, 0x61, 0xff, 0xf6, 0xec, 0x1b, 0xea, 0xf6, 0xf1,
+  0xa6, 0xd3, 0xd1, 0xb5, 0x7b, 0xbe, 0x35, 0xf4, 0x22, 0xc1, 0xbc, 0x8d,
+  0x01, 0xbd, 0x68, 0x5e, 0x83, 0x0d, 0x2f, 0xec, 0xd6, 0xda, 0x63, 0x0c,
+  0x27, 0xd1, 0x54, 0x3e, 0xe4, 0xa8, 0xd3, 0xce, 0x4b, 0x32, 0xb8, 0x91,
+  0x94, 0xff, 0xfb, 0x5b, 0x49, 0x2d, 0x75, 0x18, 0xa8, 0xba, 0x71, 0x9a,
+  0x3b, 0xae, 0xd9, 0xc0, 0xa9, 0x4f, 0x87, 0x91, 0xed, 0x8b, 0x7b, 0x6b,
+  0x20, 0x98, 0x89, 0x39, 0x83, 0x4f, 0x80, 0xc4, 0x69, 0xcc, 0x17, 0xc9,
+  0xc8, 0x4e, 0xbe, 0xe4, 0xa9, 0xa5, 0x81, 0x76, 0x70, 0x06, 0x04, 0x32,
+  0xcd, 0x83, 0x65, 0xf4, 0xbc, 0x7d, 0x3e, 0x13, 0xbc, 0xd2, 0xe8, 0x6f,
+  0x63, 0xaa, 0xb5, 0x3b, 0xda, 0x8d, 0x86, 0x32, 0x82, 0x78, 0x9d, 0xd9,
+  0xcc, 0xff, 0xbf, 0x57, 0x64, 0x74, 0xed, 0x28, 0x3d, 0x44, 0x62, 0x15,
+  0x61, 0x4b, 0xf7, 0x94, 0xb0, 0x0d, 0x2a, 0x67, 0x1c, 0xf0, 0xcb, 0x9b,
+  0xa5, 0x92, 0xbf, 0xf8, 0x41, 0x5a, 0xc1, 0x3d, 0x60, 0xed, 0x9f, 0xbb,
+  0xb8, 0x6d, 0x9b, 0xce, 0xa9, 0x6a, 0x16, 0x3f, 0x7e, 0xea, 0x06, 0xf1,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            03:37:b9:28:34:7c:60:a6:ae:c5:ad:b1:21:7f:38:60
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+        Validity
+            Not Before: Nov  9 12:00:00 2007 GMT
+            Not After : Nov 10 00:00:00 2021 GMT
+        Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV CA-1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:f3:96:62:d8:75:6e:19:ff:3f:34:7c:49:4f:31:
+                    7e:0d:04:4e:99:81:e2:b3:85:55:91:30:b1:c0:af:
+                    70:bb:2c:a8:e7:18:aa:3f:78:f7:90:68:52:86:01:
+                    88:97:e2:3b:06:65:90:aa:bd:65:76:c2:ec:be:10:
+                    5b:37:78:83:60:75:45:c6:bd:74:aa:b6:9f:a4:3a:
+                    01:50:17:c4:39:69:b9:f1:4f:ef:82:c1:ca:f3:4a:
+                    db:cc:9e:50:4f:4d:40:a3:3a:90:e7:86:66:bc:f0:
+                    3e:76:28:4c:d1:75:80:9e:6a:35:14:35:03:9e:db:
+                    0c:8c:c2:28:ad:50:b2:ce:f6:91:a3:c3:a5:0a:58:
+                    49:f6:75:44:6c:ba:f9:ce:e9:ab:3a:02:e0:4d:f3:
+                    ac:e2:7a:e0:60:22:05:3c:82:d3:52:e2:f3:9c:47:
+                    f8:3b:d8:b2:4b:93:56:4a:bf:70:ab:3e:e9:68:c8:
+                    1d:8f:58:1d:2a:4d:5e:27:3d:ad:0a:59:2f:5a:11:
+                    20:40:d9:68:04:68:2d:f4:c0:84:0b:0a:1b:78:df:
+                    ed:1a:58:dc:fb:41:5a:6d:6b:f2:ed:1c:ee:5c:32:
+                    b6:5c:ec:d7:a6:03:32:a6:e8:de:b7:28:27:59:88:
+                    80:ff:7b:ad:89:58:d5:1e:14:a4:f2:b0:70:d4:a0:
+                    3e:a7
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication, Code Signing, E-mail Protection, Time Stamping
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.114412.2.1
+                  CPS: http://www.digicert.com/ssl-cps-repository.htm
+                  User Notice:
+                    Explicit Text: 
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+                CA Issuers - URI:http://www.digicert.com/CACerts/DigiCertHighAssuranceEVRootCA.crt
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl3.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+            X509v3 Subject Key Identifier: 
+                4C:58:CB:25:F0:41:4F:52:F4:28:C8:81:43:9B:A6:A8:A0:E6:92:E5
+            X509v3 Authority Key Identifier: 
+                keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+    Signature Algorithm: sha1WithRSAEncryption
+         4c:7a:17:87:28:5d:17:bc:b2:32:73:bf:cd:2e:f5:58:31:1d:
+         f0:b1:71:54:9c:d6:9b:67:93:db:2f:03:3e:16:6f:1e:03:c9:
+         53:84:a3:56:60:1e:78:94:1b:a2:a8:6f:a3:a4:8b:52:91:d7:
+         dd:5c:95:bb:ef:b5:16:49:e9:a5:42:4f:34:f2:47:ff:ae:81:
+         7f:13:54:b7:20:c4:70:15:cb:81:0a:81:cb:74:57:dc:9c:df:
+         24:a4:29:0c:18:f0:1c:e4:ae:07:33:ec:f1:49:3e:55:cf:6e:
+         4f:0d:54:7b:d3:c9:e8:15:48:d4:c5:bb:dc:35:1c:77:45:07:
+         48:45:85:bd:d7:7e:53:b8:c0:16:d9:95:cd:8b:8d:7d:c9:60:
+         4f:d1:a2:9b:e3:d0:30:d6:b4:73:36:e6:d2:f9:03:b2:e3:a4:
+         f5:e5:b8:3e:04:49:00:ba:2e:a6:4a:72:83:72:9d:f7:0b:8c:
+         a9:89:e7:b3:d7:64:1f:d6:e3:60:cb:03:c4:dc:88:e9:9d:25:
+         01:00:71:cb:03:b4:29:60:25:8f:f9:46:d1:7b:71:ae:cd:53:
+         12:5b:84:8e:c2:0f:c7:ed:93:19:d9:c9:fa:8f:58:34:76:32:
+         2f:ae:e1:50:14:61:d4:a8:58:a3:c8:30:13:23:ef:c6:25:8c:
+         36:8f:1c:80
+-----BEGIN CERTIFICATE-----
+MIIG5jCCBc6gAwIBAgIQAze5KDR8YKauxa2xIX84YDANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA3MTEwOTEyMDAwMFoXDTIxMTExMDAwMDAwMFowaTEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTEoMCYGA1UEAxMfRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+RVYgQ0EtMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPOWYth1bhn/
+PzR8SU8xfg0ETpmB4rOFVZEwscCvcLssqOcYqj9495BoUoYBiJfiOwZlkKq9ZXbC
+7L4QWzd4g2B1Rca9dKq2n6Q6AVAXxDlpufFP74LByvNK28yeUE9NQKM6kOeGZrzw
+PnYoTNF1gJ5qNRQ1A57bDIzCKK1Qss72kaPDpQpYSfZ1RGy6+c7pqzoC4E3zrOJ6
+4GAiBTyC01Li85xH+DvYskuTVkq/cKs+6WjIHY9YHSpNXic9rQpZL1oRIEDZaARo
+LfTAhAsKG3jf7RpY3PtBWm1r8u0c7lwytlzs16YDMqbo3rcoJ1mIgP97rYlY1R4U
+pPKwcNSgPqcCAwEAAaOCA4UwggOBMA4GA1UdDwEB/wQEAwIBhjA7BgNVHSUENDAy
+BggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEFBQcDBAYIKwYBBQUH
+AwgwggHEBgNVHSAEggG7MIIBtzCCAbMGCWCGSAGG/WwCATCCAaQwOgYIKwYBBQUH
+AgEWLmh0dHA6Ly93d3cuZGlnaWNlcnQuY29tL3NzbC1jcHMtcmVwb3NpdG9yeS5o
+dG0wggFkBggrBgEFBQcCAjCCAVYeggFSAEEAbgB5ACAAdQBzAGUAIABvAGYAIAB0
+AGgAaQBzACAAQwBlAHIAdABpAGYAaQBjAGEAdABlACAAYwBvAG4AcwB0AGkAdAB1
+AHQAZQBzACAAYQBjAGMAZQBwAHQAYQBuAGMAZQAgAG8AZgAgAHQAaABlACAARABp
+AGcAaQBDAGUAcgB0ACAARQBWACAAQwBQAFMAIABhAG4AZAAgAHQAaABlACAAUgBl
+AGwAeQBpAG4AZwAgAFAAYQByAHQAeQAgAEEAZwByAGUAZQBtAGUAbgB0ACAAdwBo
+AGkAYwBoACAAbABpAG0AaQB0ACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAg
+AGEAcgBlACAAaQBuAGMAbwByAHAAbwByAGEAdABlAGQAIABoAGUAcgBlAGkAbgAg
+AGIAeQAgAHIAZQBmAGUAcgBlAG4AYwBlAC4wEgYDVR0TAQH/BAgwBgEB/wIBADCB
+gwYIKwYBBQUHAQEEdzB1MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
+dC5jb20wTQYIKwYBBQUHMAKGQWh0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NBQ2Vy
+dHMvRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3J0MIGPBgNVHR8EgYcw
+gYQwQKA+oDyGOmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEhpZ2hB
+c3N1cmFuY2VFVlJvb3RDQS5jcmwwQKA+oDyGOmh0dHA6Ly9jcmw0LmRpZ2ljZXJ0
+LmNvbS9EaWdpQ2VydEhpZ2hBc3N1cmFuY2VFVlJvb3RDQS5jcmwwHQYDVR0OBBYE
+FExYyyXwQU9S9CjIgUObpqig5pLlMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSYJhoI
+Au9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQBMeheHKF0XvLIyc7/NLvVYMR3wsXFU
+nNabZ5PbLwM+Fm8eA8lThKNWYB54lBuiqG+jpItSkdfdXJW777UWSemlQk808kf/
+roF/E1S3IMRwFcuBCoHLdFfcnN8kpCkMGPAc5K4HM+zxST5Vz25PDVR708noFUjU
+xbvcNRx3RQdIRYW9135TuMAW2ZXNi419yWBP0aKb49Aw1rRzNubS+QOy46T15bg+
+BEkAui6mSnKDcp33C4ypieez12Qf1uNgywPE3IjpnSUBAHHLA7QpYCWP+UbRe3Gu
+zVMSW4SOwg/H7ZMZ2cn6j1g0djIvruFQFGHUqFijyDATI+/GJYw2jxyA
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert53[] = {
+  0x30, 0x82, 0x06, 0xe6, 0x30, 0x82, 0x05, 0xce, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x03, 0x37, 0xb9, 0x28, 0x34, 0x7c, 0x60, 0xa6, 0xae,
+  0xc5, 0xad, 0xb1, 0x21, 0x7f, 0x38, 0x60, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x6c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+  0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+  0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+  0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x31, 0x31, 0x30, 0x39, 0x31, 0x32,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x69, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+  0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1f,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48, 0x69, 0x67,
+  0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20,
+  0x45, 0x56, 0x20, 0x43, 0x41, 0x2d, 0x31, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xf3, 0x96, 0x62, 0xd8, 0x75, 0x6e, 0x19, 0xff,
+  0x3f, 0x34, 0x7c, 0x49, 0x4f, 0x31, 0x7e, 0x0d, 0x04, 0x4e, 0x99, 0x81,
+  0xe2, 0xb3, 0x85, 0x55, 0x91, 0x30, 0xb1, 0xc0, 0xaf, 0x70, 0xbb, 0x2c,
+  0xa8, 0xe7, 0x18, 0xaa, 0x3f, 0x78, 0xf7, 0x90, 0x68, 0x52, 0x86, 0x01,
+  0x88, 0x97, 0xe2, 0x3b, 0x06, 0x65, 0x90, 0xaa, 0xbd, 0x65, 0x76, 0xc2,
+  0xec, 0xbe, 0x10, 0x5b, 0x37, 0x78, 0x83, 0x60, 0x75, 0x45, 0xc6, 0xbd,
+  0x74, 0xaa, 0xb6, 0x9f, 0xa4, 0x3a, 0x01, 0x50, 0x17, 0xc4, 0x39, 0x69,
+  0xb9, 0xf1, 0x4f, 0xef, 0x82, 0xc1, 0xca, 0xf3, 0x4a, 0xdb, 0xcc, 0x9e,
+  0x50, 0x4f, 0x4d, 0x40, 0xa3, 0x3a, 0x90, 0xe7, 0x86, 0x66, 0xbc, 0xf0,
+  0x3e, 0x76, 0x28, 0x4c, 0xd1, 0x75, 0x80, 0x9e, 0x6a, 0x35, 0x14, 0x35,
+  0x03, 0x9e, 0xdb, 0x0c, 0x8c, 0xc2, 0x28, 0xad, 0x50, 0xb2, 0xce, 0xf6,
+  0x91, 0xa3, 0xc3, 0xa5, 0x0a, 0x58, 0x49, 0xf6, 0x75, 0x44, 0x6c, 0xba,
+  0xf9, 0xce, 0xe9, 0xab, 0x3a, 0x02, 0xe0, 0x4d, 0xf3, 0xac, 0xe2, 0x7a,
+  0xe0, 0x60, 0x22, 0x05, 0x3c, 0x82, 0xd3, 0x52, 0xe2, 0xf3, 0x9c, 0x47,
+  0xf8, 0x3b, 0xd8, 0xb2, 0x4b, 0x93, 0x56, 0x4a, 0xbf, 0x70, 0xab, 0x3e,
+  0xe9, 0x68, 0xc8, 0x1d, 0x8f, 0x58, 0x1d, 0x2a, 0x4d, 0x5e, 0x27, 0x3d,
+  0xad, 0x0a, 0x59, 0x2f, 0x5a, 0x11, 0x20, 0x40, 0xd9, 0x68, 0x04, 0x68,
+  0x2d, 0xf4, 0xc0, 0x84, 0x0b, 0x0a, 0x1b, 0x78, 0xdf, 0xed, 0x1a, 0x58,
+  0xdc, 0xfb, 0x41, 0x5a, 0x6d, 0x6b, 0xf2, 0xed, 0x1c, 0xee, 0x5c, 0x32,
+  0xb6, 0x5c, 0xec, 0xd7, 0xa6, 0x03, 0x32, 0xa6, 0xe8, 0xde, 0xb7, 0x28,
+  0x27, 0x59, 0x88, 0x80, 0xff, 0x7b, 0xad, 0x89, 0x58, 0xd5, 0x1e, 0x14,
+  0xa4, 0xf2, 0xb0, 0x70, 0xd4, 0xa0, 0x3e, 0xa7, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x82, 0x03, 0x85, 0x30, 0x82, 0x03, 0x81, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x86, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x34, 0x30, 0x32,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x04, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x08, 0x30, 0x82, 0x01, 0xc4, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x82, 0x01, 0xbb, 0x30, 0x82, 0x01, 0xb7, 0x30, 0x82, 0x01, 0xb3, 0x06,
+  0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xfd, 0x6c, 0x02, 0x01, 0x30, 0x82,
+  0x01, 0xa4, 0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x73, 0x6c, 0x2d, 0x63, 0x70, 0x73, 0x2d,
+  0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x68,
+  0x74, 0x6d, 0x30, 0x82, 0x01, 0x64, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x02, 0x30, 0x82, 0x01, 0x56, 0x1e, 0x82, 0x01, 0x52,
+  0x00, 0x41, 0x00, 0x6e, 0x00, 0x79, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73,
+  0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74,
+  0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x43, 0x00, 0x65,
+  0x00, 0x72, 0x00, 0x74, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x63,
+  0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 0x00, 0x6f,
+  0x00, 0x6e, 0x00, 0x73, 0x00, 0x74, 0x00, 0x69, 0x00, 0x74, 0x00, 0x75,
+  0x00, 0x74, 0x00, 0x65, 0x00, 0x73, 0x00, 0x20, 0x00, 0x61, 0x00, 0x63,
+  0x00, 0x63, 0x00, 0x65, 0x00, 0x70, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e,
+  0x00, 0x63, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20,
+  0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x44, 0x00, 0x69,
+  0x00, 0x67, 0x00, 0x69, 0x00, 0x43, 0x00, 0x65, 0x00, 0x72, 0x00, 0x74,
+  0x00, 0x20, 0x00, 0x45, 0x00, 0x56, 0x00, 0x20, 0x00, 0x43, 0x00, 0x50,
+  0x00, 0x53, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+  0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65,
+  0x00, 0x6c, 0x00, 0x79, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20,
+  0x00, 0x50, 0x00, 0x61, 0x00, 0x72, 0x00, 0x74, 0x00, 0x79, 0x00, 0x20,
+  0x00, 0x41, 0x00, 0x67, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x6d,
+  0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x77, 0x00, 0x68,
+  0x00, 0x69, 0x00, 0x63, 0x00, 0x68, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69,
+  0x00, 0x6d, 0x00, 0x69, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x69,
+  0x00, 0x61, 0x00, 0x62, 0x00, 0x69, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x74,
+  0x00, 0x79, 0x00, 0x20, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x20,
+  0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x6e,
+  0x00, 0x63, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72,
+  0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x68,
+  0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x20,
+  0x00, 0x62, 0x00, 0x79, 0x00, 0x20, 0x00, 0x72, 0x00, 0x65, 0x00, 0x66,
+  0x00, 0x65, 0x00, 0x72, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x65,
+  0x00, 0x2e, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+  0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x81,
+  0x83, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x77, 0x30, 0x75, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x41, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65,
+  0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x41, 0x43, 0x65, 0x72,
+  0x74, 0x73, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48,
+  0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65,
+  0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x74,
+  0x30, 0x81, 0x8f, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x81, 0x87, 0x30,
+  0x81, 0x84, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e, 0x64, 0x69,
+  0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44,
+  0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41,
+  0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f,
+  0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x40, 0xa0, 0x3e,
+  0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72,
+  0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e,
+  0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0x4c, 0x58, 0xcb, 0x25, 0xf0, 0x41, 0x4f, 0x52, 0xf4, 0x28, 0xc8,
+  0x81, 0x43, 0x9b, 0xa6, 0xa8, 0xa0, 0xe6, 0x92, 0xe5, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e,
+  0xc3, 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08,
+  0x02, 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x01, 0x00, 0x4c, 0x7a, 0x17, 0x87, 0x28, 0x5d, 0x17, 0xbc, 0xb2, 0x32,
+  0x73, 0xbf, 0xcd, 0x2e, 0xf5, 0x58, 0x31, 0x1d, 0xf0, 0xb1, 0x71, 0x54,
+  0x9c, 0xd6, 0x9b, 0x67, 0x93, 0xdb, 0x2f, 0x03, 0x3e, 0x16, 0x6f, 0x1e,
+  0x03, 0xc9, 0x53, 0x84, 0xa3, 0x56, 0x60, 0x1e, 0x78, 0x94, 0x1b, 0xa2,
+  0xa8, 0x6f, 0xa3, 0xa4, 0x8b, 0x52, 0x91, 0xd7, 0xdd, 0x5c, 0x95, 0xbb,
+  0xef, 0xb5, 0x16, 0x49, 0xe9, 0xa5, 0x42, 0x4f, 0x34, 0xf2, 0x47, 0xff,
+  0xae, 0x81, 0x7f, 0x13, 0x54, 0xb7, 0x20, 0xc4, 0x70, 0x15, 0xcb, 0x81,
+  0x0a, 0x81, 0xcb, 0x74, 0x57, 0xdc, 0x9c, 0xdf, 0x24, 0xa4, 0x29, 0x0c,
+  0x18, 0xf0, 0x1c, 0xe4, 0xae, 0x07, 0x33, 0xec, 0xf1, 0x49, 0x3e, 0x55,
+  0xcf, 0x6e, 0x4f, 0x0d, 0x54, 0x7b, 0xd3, 0xc9, 0xe8, 0x15, 0x48, 0xd4,
+  0xc5, 0xbb, 0xdc, 0x35, 0x1c, 0x77, 0x45, 0x07, 0x48, 0x45, 0x85, 0xbd,
+  0xd7, 0x7e, 0x53, 0xb8, 0xc0, 0x16, 0xd9, 0x95, 0xcd, 0x8b, 0x8d, 0x7d,
+  0xc9, 0x60, 0x4f, 0xd1, 0xa2, 0x9b, 0xe3, 0xd0, 0x30, 0xd6, 0xb4, 0x73,
+  0x36, 0xe6, 0xd2, 0xf9, 0x03, 0xb2, 0xe3, 0xa4, 0xf5, 0xe5, 0xb8, 0x3e,
+  0x04, 0x49, 0x00, 0xba, 0x2e, 0xa6, 0x4a, 0x72, 0x83, 0x72, 0x9d, 0xf7,
+  0x0b, 0x8c, 0xa9, 0x89, 0xe7, 0xb3, 0xd7, 0x64, 0x1f, 0xd6, 0xe3, 0x60,
+  0xcb, 0x03, 0xc4, 0xdc, 0x88, 0xe9, 0x9d, 0x25, 0x01, 0x00, 0x71, 0xcb,
+  0x03, 0xb4, 0x29, 0x60, 0x25, 0x8f, 0xf9, 0x46, 0xd1, 0x7b, 0x71, 0xae,
+  0xcd, 0x53, 0x12, 0x5b, 0x84, 0x8e, 0xc2, 0x0f, 0xc7, 0xed, 0x93, 0x19,
+  0xd9, 0xc9, 0xfa, 0x8f, 0x58, 0x34, 0x76, 0x32, 0x2f, 0xae, 0xe1, 0x50,
+  0x14, 0x61, 0xd4, 0xa8, 0x58, 0xa3, 0xc8, 0x30, 0x13, 0x23, 0xef, 0xc6,
+  0x25, 0x8c, 0x36, 0x8f, 0x1c, 0x80,
+};
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_3a.inc b/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_3a.inc
new file mode 100644 (file)
index 0000000..a500cb0
--- /dev/null
@@ -0,0 +1,5038 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* This file contains common certificates. It's designed to be #included in
+ * another file, in a namespace. */
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1227750 (0x12bbe6)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+        Validity
+            Not Before: May 21 04:00:00 2002 GMT
+            Not After : Aug 21 04:00:00 2018 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:da:cc:18:63:30:fd:f4:17:23:1a:56:7e:5b:df:
+                    3c:6c:38:e4:71:b7:78:91:d4:bc:a1:d8:4c:f8:a8:
+                    43:b6:03:e9:4d:21:07:08:88:da:58:2f:66:39:29:
+                    bd:05:78:8b:9d:38:e8:05:b7:6a:7e:71:a4:e6:c4:
+                    60:a6:b0:ef:80:e4:89:28:0f:9e:25:d6:ed:83:f3:
+                    ad:a6:91:c7:98:c9:42:18:35:14:9d:ad:98:46:92:
+                    2e:4f:ca:f1:87:43:c1:16:95:57:2d:50:ef:89:2d:
+                    80:7a:57:ad:f2:ee:5f:6b:d2:00:8d:b9:14:f8:14:
+                    15:35:d9:c0:46:a3:7b:72:c8:91:bf:c9:55:2b:cd:
+                    d0:97:3e:9c:26:64:cc:df:ce:83:19:71:ca:4e:e6:
+                    d4:d5:7b:a9:19:cd:55:de:c8:ec:d2:5e:38:53:e5:
+                    5c:4f:8c:2d:fe:50:23:36:fc:66:e6:cb:8e:a4:39:
+                    19:00:b7:95:02:39:91:0b:0e:fe:38:2e:d1:1d:05:
+                    9a:f6:4d:3e:6f:0f:07:1d:af:2c:1e:8f:60:39:e2:
+                    fa:36:53:13:39:d4:5e:26:2b:db:3d:a8:14:bd:32:
+                    eb:18:03:28:52:04:71:e5:ab:33:3d:e1:38:bb:07:
+                    36:84:62:9c:79:ea:16:30:f4:5f:c0:2b:e8:71:6b:
+                    e4:f9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+            X509v3 Subject Key Identifier: 
+                C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/crls/secureca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.geotrust.com/resources/repository
+
+    Signature Algorithm: sha1WithRSAEncryption
+         76:e1:12:6e:4e:4b:16:12:86:30:06:b2:81:08:cf:f0:08:c7:
+         c7:71:7e:66:ee:c2:ed:d4:3b:1f:ff:f0:f0:c8:4e:d6:43:38:
+         b0:b9:30:7d:18:d0:55:83:a2:6a:cb:36:11:9c:e8:48:66:a3:
+         6d:7f:b8:13:d4:47:fe:8b:5a:5c:73:fc:ae:d9:1b:32:19:38:
+         ab:97:34:14:aa:96:d2:eb:a3:1c:14:08:49:b6:bb:e5:91:ef:
+         83:36:eb:1d:56:6f:ca:da:bc:73:63:90:e4:7f:7b:3e:22:cb:
+         3d:07:ed:5f:38:74:9c:e3:03:50:4e:a1:af:98:ee:61:f2:84:
+         3f:12
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
+WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
+AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
+OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
+T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
+JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
+Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
+PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
+aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
+TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
+LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
+BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
+dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
+AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
+NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
+b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert0[] = {
+  0x30, 0x82, 0x03, 0x7d, 0x30, 0x82, 0x02, 0xe6, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x12, 0xbb, 0xe6, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+  0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+  0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+  0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+  0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x32, 0x30,
+  0x35, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+  0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x30, 0x34, 0x30, 0x30, 0x30, 0x30,
+  0x5a, 0x30, 0x42, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x12, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0xcc, 0x18, 0x63, 0x30, 0xfd,
+  0xf4, 0x17, 0x23, 0x1a, 0x56, 0x7e, 0x5b, 0xdf, 0x3c, 0x6c, 0x38, 0xe4,
+  0x71, 0xb7, 0x78, 0x91, 0xd4, 0xbc, 0xa1, 0xd8, 0x4c, 0xf8, 0xa8, 0x43,
+  0xb6, 0x03, 0xe9, 0x4d, 0x21, 0x07, 0x08, 0x88, 0xda, 0x58, 0x2f, 0x66,
+  0x39, 0x29, 0xbd, 0x05, 0x78, 0x8b, 0x9d, 0x38, 0xe8, 0x05, 0xb7, 0x6a,
+  0x7e, 0x71, 0xa4, 0xe6, 0xc4, 0x60, 0xa6, 0xb0, 0xef, 0x80, 0xe4, 0x89,
+  0x28, 0x0f, 0x9e, 0x25, 0xd6, 0xed, 0x83, 0xf3, 0xad, 0xa6, 0x91, 0xc7,
+  0x98, 0xc9, 0x42, 0x18, 0x35, 0x14, 0x9d, 0xad, 0x98, 0x46, 0x92, 0x2e,
+  0x4f, 0xca, 0xf1, 0x87, 0x43, 0xc1, 0x16, 0x95, 0x57, 0x2d, 0x50, 0xef,
+  0x89, 0x2d, 0x80, 0x7a, 0x57, 0xad, 0xf2, 0xee, 0x5f, 0x6b, 0xd2, 0x00,
+  0x8d, 0xb9, 0x14, 0xf8, 0x14, 0x15, 0x35, 0xd9, 0xc0, 0x46, 0xa3, 0x7b,
+  0x72, 0xc8, 0x91, 0xbf, 0xc9, 0x55, 0x2b, 0xcd, 0xd0, 0x97, 0x3e, 0x9c,
+  0x26, 0x64, 0xcc, 0xdf, 0xce, 0x83, 0x19, 0x71, 0xca, 0x4e, 0xe6, 0xd4,
+  0xd5, 0x7b, 0xa9, 0x19, 0xcd, 0x55, 0xde, 0xc8, 0xec, 0xd2, 0x5e, 0x38,
+  0x53, 0xe5, 0x5c, 0x4f, 0x8c, 0x2d, 0xfe, 0x50, 0x23, 0x36, 0xfc, 0x66,
+  0xe6, 0xcb, 0x8e, 0xa4, 0x39, 0x19, 0x00, 0xb7, 0x95, 0x02, 0x39, 0x91,
+  0x0b, 0x0e, 0xfe, 0x38, 0x2e, 0xd1, 0x1d, 0x05, 0x9a, 0xf6, 0x4d, 0x3e,
+  0x6f, 0x0f, 0x07, 0x1d, 0xaf, 0x2c, 0x1e, 0x8f, 0x60, 0x39, 0xe2, 0xfa,
+  0x36, 0x53, 0x13, 0x39, 0xd4, 0x5e, 0x26, 0x2b, 0xdb, 0x3d, 0xa8, 0x14,
+  0xbd, 0x32, 0xeb, 0x18, 0x03, 0x28, 0x52, 0x04, 0x71, 0xe5, 0xab, 0x33,
+  0x3d, 0xe1, 0x38, 0xbb, 0x07, 0x36, 0x84, 0x62, 0x9c, 0x79, 0xea, 0x16,
+  0x30, 0xf4, 0x5f, 0xc0, 0x2b, 0xe8, 0x71, 0x6b, 0xe4, 0xf9, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x81, 0xf0, 0x30, 0x81, 0xed, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6,
+  0x68, 0xf9, 0x2b, 0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10,
+  0x4f, 0x33, 0x98, 0x90, 0x9f, 0xd4, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+  0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+  0x4e, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+  0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a,
+  0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0,
+  0x2d, 0xa0, 0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65,
+  0x63, 0x75, 0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4e,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x47, 0x30, 0x45, 0x30, 0x43, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65,
+  0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+  0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81,
+  0x00, 0x76, 0xe1, 0x12, 0x6e, 0x4e, 0x4b, 0x16, 0x12, 0x86, 0x30, 0x06,
+  0xb2, 0x81, 0x08, 0xcf, 0xf0, 0x08, 0xc7, 0xc7, 0x71, 0x7e, 0x66, 0xee,
+  0xc2, 0xed, 0xd4, 0x3b, 0x1f, 0xff, 0xf0, 0xf0, 0xc8, 0x4e, 0xd6, 0x43,
+  0x38, 0xb0, 0xb9, 0x30, 0x7d, 0x18, 0xd0, 0x55, 0x83, 0xa2, 0x6a, 0xcb,
+  0x36, 0x11, 0x9c, 0xe8, 0x48, 0x66, 0xa3, 0x6d, 0x7f, 0xb8, 0x13, 0xd4,
+  0x47, 0xfe, 0x8b, 0x5a, 0x5c, 0x73, 0xfc, 0xae, 0xd9, 0x1b, 0x32, 0x19,
+  0x38, 0xab, 0x97, 0x34, 0x14, 0xaa, 0x96, 0xd2, 0xeb, 0xa3, 0x1c, 0x14,
+  0x08, 0x49, 0xb6, 0xbb, 0xe5, 0x91, 0xef, 0x83, 0x36, 0xeb, 0x1d, 0x56,
+  0x6f, 0xca, 0xda, 0xbc, 0x73, 0x63, 0x90, 0xe4, 0x7f, 0x7b, 0x3e, 0x22,
+  0xcb, 0x3d, 0x07, 0xed, 0x5f, 0x38, 0x74, 0x9c, 0xe3, 0x03, 0x50, 0x4e,
+  0xa1, 0xaf, 0x98, 0xee, 0x61, 0xf2, 0x84, 0x3f, 0x12,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 880226 (0xd6e62)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=Equifax, OU=Equifax Secure Certificate Authority
+        Validity
+            Not Before: Nov 27 00:00:00 2006 GMT
+            Not After : Aug 21 16:15:00 2018 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:be:b8:15:7b:ff:d4:7c:7d:67:ad:83:64:7b:c8:
+                    42:53:2d:df:f6:84:08:20:61:d6:01:59:6a:9c:44:
+                    11:af:ef:76:fd:95:7e:ce:61:30:bb:7a:83:5f:02:
+                    bd:01:66:ca:ee:15:8d:6f:a1:30:9c:bd:a1:85:9e:
+                    94:3a:f3:56:88:00:31:cf:d8:ee:6a:96:02:d9:ed:
+                    03:8c:fb:75:6d:e7:ea:b8:55:16:05:16:9a:f4:e0:
+                    5e:b1:88:c0:64:85:5c:15:4d:88:c7:b7:ba:e0:75:
+                    e9:ad:05:3d:9d:c7:89:48:e0:bb:28:c8:03:e1:30:
+                    93:64:5e:52:c0:59:70:22:35:57:88:8a:f1:95:0a:
+                    83:d7:bc:31:73:01:34:ed:ef:46:71:e0:6b:02:a8:
+                    35:72:6b:97:9b:66:e0:cb:1c:79:5f:d8:1a:04:68:
+                    1e:47:02:e6:9d:60:e2:36:97:01:df:ce:35:92:df:
+                    be:67:c7:6d:77:59:3b:8f:9d:d6:90:15:94:bc:42:
+                    34:10:c1:39:f9:b1:27:3e:7e:d6:8a:75:c5:b2:af:
+                    96:d3:a2:de:9b:e4:98:be:7d:e1:e9:81:ad:b6:6f:
+                    fc:d7:0e:da:e0:34:b0:0d:1a:77:e7:e3:08:98:ef:
+                    58:fa:9c:84:b7:36:af:c2:df:ac:d2:f4:10:06:70:
+                    71:35
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+            X509v3 Authority Key Identifier: 
+                keyid:48:E6:68:F9:2B:D2:B2:95:D7:47:D8:23:20:10:4F:33:98:90:9F:D4
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/crls/secureca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.geotrust.com/resources/cps
+
+    Signature Algorithm: sha1WithRSAEncryption
+         af:f3:0e:d6:72:ab:c7:a9:97:ca:2a:6b:84:39:de:79:a9:f0:
+         81:e5:08:67:ab:d7:2f:20:02:01:71:0c:04:22:c9:1e:88:95:
+         03:c9:49:3a:af:67:08:49:b0:d5:08:f5:20:3d:80:91:a0:c5:
+         87:a3:fb:c9:a3:17:91:f9:a8:2f:ae:e9:0f:df:96:72:0f:75:
+         17:80:5d:78:01:4d:9f:1f:6d:7b:d8:f5:42:38:23:1a:99:93:
+         f4:83:be:3b:35:74:e7:37:13:35:7a:ac:b4:b6:90:82:6c:27:
+         a4:e0:ec:9e:35:bd:bf:e5:29:a1:47:9f:5b:32:fc:e9:99:7d:
+         2b:39
+-----BEGIN CERTIFICATE-----
+MIIDizCCAvSgAwIBAgIDDW5iMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMTI3MDAwMDAwWhcNMTgwODIxMTYxNTAw
+WjBYMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UE
+AxMoR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL64FXv/1Hx9Z62DZHvIQlMt3/aE
+CCBh1gFZapxEEa/vdv2Vfs5hMLt6g18CvQFmyu4VjW+hMJy9oYWelDrzVogAMc/Y
+7mqWAtntA4z7dW3n6rhVFgUWmvTgXrGIwGSFXBVNiMe3uuB16a0FPZ3HiUjguyjI
+A+Ewk2ReUsBZcCI1V4iK8ZUKg9e8MXMBNO3vRnHgawKoNXJrl5tm4MsceV/YGgRo
+HkcC5p1g4jaXAd/ONZLfvmfHbXdZO4+d1pAVlLxCNBDBOfmxJz5+1op1xbKvltOi
+3pvkmL594emBrbZv/NcO2uA0sA0ad+fjCJjvWPqchLc2r8LfrNL0EAZwcTUCAwEA
+AaOB6DCB5TAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFCzVUEGXFYvwjzZhW0r7
+a9mZyTOSMB8GA1UdIwQYMBaAFEjmaPkr0rKV10fYIyAQTzOYkJ/UMA8GA1UdEwEB
+/wQFMAMBAf8wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5j
+b20vY3Jscy9zZWN1cmVjYS5jcmwwRgYDVR0gBD8wPTA7BgRVHSAAMDMwMQYIKwYB
+BQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwDQYJ
+KoZIhvcNAQEFBQADgYEAr/MO1nKrx6mXyiprhDneeanwgeUIZ6vXLyACAXEMBCLJ
+HoiVA8lJOq9nCEmw1Qj1ID2AkaDFh6P7yaMXkfmoL67pD9+Wcg91F4BdeAFNnx9t
+e9j1QjgjGpmT9IO+OzV05zcTNXqstLaQgmwnpODsnjW9v+UpoUefWzL86Zl9Kzk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert1[] = {
+  0x30, 0x82, 0x03, 0x8b, 0x30, 0x82, 0x02, 0xf4, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x0d, 0x6e, 0x62, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x4e, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07, 0x45,
+  0x71, 0x75, 0x69, 0x66, 0x61, 0x78, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03,
+  0x55, 0x04, 0x0b, 0x13, 0x24, 0x45, 0x71, 0x75, 0x69, 0x66, 0x61, 0x78,
+  0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68,
+  0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31,
+  0x31, 0x32, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+  0x31, 0x38, 0x30, 0x38, 0x32, 0x31, 0x31, 0x36, 0x31, 0x35, 0x30, 0x30,
+  0x5a, 0x30, 0x58, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x28, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xbe, 0xb8, 0x15, 0x7b, 0xff, 0xd4, 0x7c, 0x7d,
+  0x67, 0xad, 0x83, 0x64, 0x7b, 0xc8, 0x42, 0x53, 0x2d, 0xdf, 0xf6, 0x84,
+  0x08, 0x20, 0x61, 0xd6, 0x01, 0x59, 0x6a, 0x9c, 0x44, 0x11, 0xaf, 0xef,
+  0x76, 0xfd, 0x95, 0x7e, 0xce, 0x61, 0x30, 0xbb, 0x7a, 0x83, 0x5f, 0x02,
+  0xbd, 0x01, 0x66, 0xca, 0xee, 0x15, 0x8d, 0x6f, 0xa1, 0x30, 0x9c, 0xbd,
+  0xa1, 0x85, 0x9e, 0x94, 0x3a, 0xf3, 0x56, 0x88, 0x00, 0x31, 0xcf, 0xd8,
+  0xee, 0x6a, 0x96, 0x02, 0xd9, 0xed, 0x03, 0x8c, 0xfb, 0x75, 0x6d, 0xe7,
+  0xea, 0xb8, 0x55, 0x16, 0x05, 0x16, 0x9a, 0xf4, 0xe0, 0x5e, 0xb1, 0x88,
+  0xc0, 0x64, 0x85, 0x5c, 0x15, 0x4d, 0x88, 0xc7, 0xb7, 0xba, 0xe0, 0x75,
+  0xe9, 0xad, 0x05, 0x3d, 0x9d, 0xc7, 0x89, 0x48, 0xe0, 0xbb, 0x28, 0xc8,
+  0x03, 0xe1, 0x30, 0x93, 0x64, 0x5e, 0x52, 0xc0, 0x59, 0x70, 0x22, 0x35,
+  0x57, 0x88, 0x8a, 0xf1, 0x95, 0x0a, 0x83, 0xd7, 0xbc, 0x31, 0x73, 0x01,
+  0x34, 0xed, 0xef, 0x46, 0x71, 0xe0, 0x6b, 0x02, 0xa8, 0x35, 0x72, 0x6b,
+  0x97, 0x9b, 0x66, 0xe0, 0xcb, 0x1c, 0x79, 0x5f, 0xd8, 0x1a, 0x04, 0x68,
+  0x1e, 0x47, 0x02, 0xe6, 0x9d, 0x60, 0xe2, 0x36, 0x97, 0x01, 0xdf, 0xce,
+  0x35, 0x92, 0xdf, 0xbe, 0x67, 0xc7, 0x6d, 0x77, 0x59, 0x3b, 0x8f, 0x9d,
+  0xd6, 0x90, 0x15, 0x94, 0xbc, 0x42, 0x34, 0x10, 0xc1, 0x39, 0xf9, 0xb1,
+  0x27, 0x3e, 0x7e, 0xd6, 0x8a, 0x75, 0xc5, 0xb2, 0xaf, 0x96, 0xd3, 0xa2,
+  0xde, 0x9b, 0xe4, 0x98, 0xbe, 0x7d, 0xe1, 0xe9, 0x81, 0xad, 0xb6, 0x6f,
+  0xfc, 0xd7, 0x0e, 0xda, 0xe0, 0x34, 0xb0, 0x0d, 0x1a, 0x77, 0xe7, 0xe3,
+  0x08, 0x98, 0xef, 0x58, 0xfa, 0x9c, 0x84, 0xb7, 0x36, 0xaf, 0xc2, 0xdf,
+  0xac, 0xd2, 0xf4, 0x10, 0x06, 0x70, 0x71, 0x35, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x81, 0xe8, 0x30, 0x81, 0xe5, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2c, 0xd5,
+  0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36, 0x61, 0x5b, 0x4a, 0xfb,
+  0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x48, 0xe6, 0x68, 0xf9, 0x2b,
+  0xd2, 0xb2, 0x95, 0xd7, 0x47, 0xd8, 0x23, 0x20, 0x10, 0x4f, 0x33, 0x98,
+  0x90, 0x9f, 0xd4, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3a, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0,
+  0x2b, 0x86, 0x29, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x73, 0x65, 0x63, 0x75,
+  0x72, 0x65, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x46, 0x06, 0x03,
+  0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30, 0x3b, 0x06, 0x04, 0x55,
+  0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+  0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x81, 0x81, 0x00, 0xaf, 0xf3, 0x0e, 0xd6, 0x72, 0xab, 0xc7, 0xa9, 0x97,
+  0xca, 0x2a, 0x6b, 0x84, 0x39, 0xde, 0x79, 0xa9, 0xf0, 0x81, 0xe5, 0x08,
+  0x67, 0xab, 0xd7, 0x2f, 0x20, 0x02, 0x01, 0x71, 0x0c, 0x04, 0x22, 0xc9,
+  0x1e, 0x88, 0x95, 0x03, 0xc9, 0x49, 0x3a, 0xaf, 0x67, 0x08, 0x49, 0xb0,
+  0xd5, 0x08, 0xf5, 0x20, 0x3d, 0x80, 0x91, 0xa0, 0xc5, 0x87, 0xa3, 0xfb,
+  0xc9, 0xa3, 0x17, 0x91, 0xf9, 0xa8, 0x2f, 0xae, 0xe9, 0x0f, 0xdf, 0x96,
+  0x72, 0x0f, 0x75, 0x17, 0x80, 0x5d, 0x78, 0x01, 0x4d, 0x9f, 0x1f, 0x6d,
+  0x7b, 0xd8, 0xf5, 0x42, 0x38, 0x23, 0x1a, 0x99, 0x93, 0xf4, 0x83, 0xbe,
+  0x3b, 0x35, 0x74, 0xe7, 0x37, 0x13, 0x35, 0x7a, 0xac, 0xb4, 0xb6, 0x90,
+  0x82, 0x6c, 0x27, 0xa4, 0xe0, 0xec, 0x9e, 0x35, 0xbd, 0xbf, 0xe5, 0x29,
+  0xa1, 0x47, 0x9f, 0x5b, 0x32, 0xfc, 0xe9, 0x99, 0x7d, 0x2b, 0x39,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146066 (0x23a92)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Apr  1 00:00:00 2015 GMT
+            Not After : Dec 31 23:59:59 2017 GMT
+        Subject: C=US, O=Google Inc, CN=Google Internet Authority G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:9c:2a:04:77:5c:d8:50:91:3a:06:a3:82:e0:d8:
+                    50:48:bc:89:3f:f1:19:70:1a:88:46:7e:e0:8f:c5:
+                    f1:89:ce:21:ee:5a:fe:61:0d:b7:32:44:89:a0:74:
+                    0b:53:4f:55:a4:ce:82:62:95:ee:eb:59:5f:c6:e1:
+                    05:80:12:c4:5e:94:3f:bc:5b:48:38:f4:53:f7:24:
+                    e6:fb:91:e9:15:c4:cf:f4:53:0d:f4:4a:fc:9f:54:
+                    de:7d:be:a0:6b:6f:87:c0:d0:50:1f:28:30:03:40:
+                    da:08:73:51:6c:7f:ff:3a:3c:a7:37:06:8e:bd:4b:
+                    11:04:eb:7d:24:de:e6:f9:fc:31:71:fb:94:d5:60:
+                    f3:2e:4a:af:42:d2:cb:ea:c4:6a:1a:b2:cc:53:dd:
+                    15:4b:8b:1f:c8:19:61:1f:cd:9d:a8:3e:63:2b:84:
+                    35:69:65:84:c8:19:c5:46:22:f8:53:95:be:e3:80:
+                    4a:10:c6:2a:ec:ba:97:20:11:c7:39:99:10:04:a0:
+                    f0:61:7a:95:25:8c:4e:52:75:e2:b6:ed:08:ca:14:
+                    fc:ce:22:6a:b3:4e:cf:46:03:97:97:03:7e:c0:b1:
+                    de:7b:af:45:33:cf:ba:3e:71:b7:de:f4:25:25:c2:
+                    0d:35:89:9d:9d:fb:0e:11:79:89:1e:37:c5:af:8e:
+                    72:69
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                4A:DD:06:16:1B:BC:F6:68:B5:76:F5:81:B6:BB:62:1A:BA:5A:81:2F
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.11129.2.5.1
+
+    Signature Algorithm: sha256WithRSAEncryption
+         08:4e:04:a7:80:7f:10:16:43:5e:02:ad:d7:42:80:f4:b0:8e:
+         d2:ae:b3:eb:11:7d:90:84:18:7d:e7:90:15:fb:49:7f:a8:99:
+         05:91:bb:7a:c9:d6:3c:37:18:09:9a:b6:c7:92:20:07:35:33:
+         09:e4:28:63:72:0d:b4:e0:32:9c:87:98:c4:1b:76:89:67:c1:
+         50:58:b0:13:aa:13:1a:1b:32:a5:be:ea:11:95:4c:48:63:49:
+         e9:99:5d:20:37:cc:fe:2a:69:51:16:95:4b:a9:de:49:82:c0:
+         10:70:f4:2c:f3:ec:bc:24:24:d0:4e:ac:a5:d9:5e:1e:6d:92:
+         c1:a7:ac:48:35:81:f9:e5:e4:9c:65:69:cd:87:a4:41:50:3f:
+         2e:57:a5:91:51:12:58:0e:8c:09:a1:ac:7a:a4:12:a5:27:f3:
+         9a:10:97:7d:55:03:06:f7:66:58:5f:5f:64:e1:ab:5d:6d:a5:
+         39:48:75:98:4c:29:5a:3a:8d:d3:2b:ca:9c:55:04:bf:f4:e6:
+         14:d5:80:ac:26:ed:17:89:a6:93:6c:5c:a4:cc:b8:f0:66:8e:
+         64:e3:7d:9a:e2:00:b3:49:c7:e4:0a:aa:dd:5b:83:c7:70:90:
+         46:4e:be:d0:db:59:96:6c:2e:f5:16:36:de:71:cc:01:c2:12:
+         c1:21:c6:16
+-----BEGIN CERTIFICATE-----
+MIID8DCCAtigAwIBAgIDAjqSMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTUwNDAxMDAwMDAwWhcNMTcxMjMxMjM1OTU5WjBJMQswCQYDVQQG
+EwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzElMCMGA1UEAxMcR29vZ2xlIEludGVy
+bmV0IEF1dGhvcml0eSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AJwqBHdc2FCROgajguDYUEi8iT/xGXAaiEZ+4I/F8YnOIe5a/mENtzJEiaB0C1NP
+VaTOgmKV7utZX8bhBYASxF6UP7xbSDj0U/ck5vuR6RXEz/RTDfRK/J9U3n2+oGtv
+h8DQUB8oMANA2ghzUWx//zo8pzcGjr1LEQTrfSTe5vn8MXH7lNVg8y5Kr0LSy+rE
+ahqyzFPdFUuLH8gZYR/Nnag+YyuENWllhMgZxUYi+FOVvuOAShDGKuy6lyARxzmZ
+EASg8GF6lSWMTlJ14rbtCMoU/M4iarNOz0YDl5cDfsCx3nuvRTPPuj5xt970JSXC
+DTWJnZ37DhF5iR43xa+OcmkCAwEAAaOB5zCB5DAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1dvWBtrtiGrpagS8wDgYD
+VR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDov
+L2cuc3ltY2QuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMBcGA1UdIAQQ
+MA4wDAYKKwYBBAHWeQIFATANBgkqhkiG9w0BAQsFAAOCAQEACE4Ep4B/EBZDXgKt
+10KA9LCO0q6z6xF9kIQYfeeQFftJf6iZBZG7esnWPDcYCZq2x5IgBzUzCeQoY3IN
+tOAynIeYxBt2iWfBUFiwE6oTGhsypb7qEZVMSGNJ6ZldIDfM/ippURaVS6neSYLA
+EHD0LPPsvCQk0E6spdleHm2SwaesSDWB+eXknGVpzYekQVA/LlelkVESWA6MCaGs
+eqQSpSfzmhCXfVUDBvdmWF9fZOGrXW2lOUh1mEwpWjqN0yvKnFUEv/TmFNWArCbt
+F4mmk2xcpMy48GaOZON9muIAs0nH5Aqq3VuDx3CQRk6+0NtZlmwu9RY23nHMAcIS
+wSHGFg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert2[] = {
+  0x30, 0x82, 0x03, 0xf0, 0x30, 0x82, 0x02, 0xd8, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x92, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30,
+  0x34, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d,
+  0x31, 0x37, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39,
+  0x5a, 0x30, 0x49, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e,
+  0x63, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1c,
+  0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72,
+  0x6e, 0x65, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+  0x79, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0x9c, 0x2a, 0x04, 0x77, 0x5c, 0xd8, 0x50, 0x91, 0x3a, 0x06, 0xa3,
+  0x82, 0xe0, 0xd8, 0x50, 0x48, 0xbc, 0x89, 0x3f, 0xf1, 0x19, 0x70, 0x1a,
+  0x88, 0x46, 0x7e, 0xe0, 0x8f, 0xc5, 0xf1, 0x89, 0xce, 0x21, 0xee, 0x5a,
+  0xfe, 0x61, 0x0d, 0xb7, 0x32, 0x44, 0x89, 0xa0, 0x74, 0x0b, 0x53, 0x4f,
+  0x55, 0xa4, 0xce, 0x82, 0x62, 0x95, 0xee, 0xeb, 0x59, 0x5f, 0xc6, 0xe1,
+  0x05, 0x80, 0x12, 0xc4, 0x5e, 0x94, 0x3f, 0xbc, 0x5b, 0x48, 0x38, 0xf4,
+  0x53, 0xf7, 0x24, 0xe6, 0xfb, 0x91, 0xe9, 0x15, 0xc4, 0xcf, 0xf4, 0x53,
+  0x0d, 0xf4, 0x4a, 0xfc, 0x9f, 0x54, 0xde, 0x7d, 0xbe, 0xa0, 0x6b, 0x6f,
+  0x87, 0xc0, 0xd0, 0x50, 0x1f, 0x28, 0x30, 0x03, 0x40, 0xda, 0x08, 0x73,
+  0x51, 0x6c, 0x7f, 0xff, 0x3a, 0x3c, 0xa7, 0x37, 0x06, 0x8e, 0xbd, 0x4b,
+  0x11, 0x04, 0xeb, 0x7d, 0x24, 0xde, 0xe6, 0xf9, 0xfc, 0x31, 0x71, 0xfb,
+  0x94, 0xd5, 0x60, 0xf3, 0x2e, 0x4a, 0xaf, 0x42, 0xd2, 0xcb, 0xea, 0xc4,
+  0x6a, 0x1a, 0xb2, 0xcc, 0x53, 0xdd, 0x15, 0x4b, 0x8b, 0x1f, 0xc8, 0x19,
+  0x61, 0x1f, 0xcd, 0x9d, 0xa8, 0x3e, 0x63, 0x2b, 0x84, 0x35, 0x69, 0x65,
+  0x84, 0xc8, 0x19, 0xc5, 0x46, 0x22, 0xf8, 0x53, 0x95, 0xbe, 0xe3, 0x80,
+  0x4a, 0x10, 0xc6, 0x2a, 0xec, 0xba, 0x97, 0x20, 0x11, 0xc7, 0x39, 0x99,
+  0x10, 0x04, 0xa0, 0xf0, 0x61, 0x7a, 0x95, 0x25, 0x8c, 0x4e, 0x52, 0x75,
+  0xe2, 0xb6, 0xed, 0x08, 0xca, 0x14, 0xfc, 0xce, 0x22, 0x6a, 0xb3, 0x4e,
+  0xcf, 0x46, 0x03, 0x97, 0x97, 0x03, 0x7e, 0xc0, 0xb1, 0xde, 0x7b, 0xaf,
+  0x45, 0x33, 0xcf, 0xba, 0x3e, 0x71, 0xb7, 0xde, 0xf4, 0x25, 0x25, 0xc2,
+  0x0d, 0x35, 0x89, 0x9d, 0x9d, 0xfb, 0x0e, 0x11, 0x79, 0x89, 0x1e, 0x37,
+  0xc5, 0xaf, 0x8e, 0x72, 0x69, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81,
+  0xe7, 0x30, 0x81, 0xe4, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+  0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+  0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x4a, 0xdd, 0x06, 0x16, 0x1b, 0xbc, 0xf6, 0x68, 0xb5, 0x76, 0xf5, 0x81,
+  0xb6, 0xbb, 0x62, 0x1a, 0xba, 0x5a, 0x81, 0x2f, 0x30, 0x0e, 0x06, 0x03,
+  0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+  0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+  0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x35, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+  0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+  0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+  0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x17, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x10,
+  0x30, 0x0e, 0x30, 0x0c, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6,
+  0x79, 0x02, 0x05, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+  0x08, 0x4e, 0x04, 0xa7, 0x80, 0x7f, 0x10, 0x16, 0x43, 0x5e, 0x02, 0xad,
+  0xd7, 0x42, 0x80, 0xf4, 0xb0, 0x8e, 0xd2, 0xae, 0xb3, 0xeb, 0x11, 0x7d,
+  0x90, 0x84, 0x18, 0x7d, 0xe7, 0x90, 0x15, 0xfb, 0x49, 0x7f, 0xa8, 0x99,
+  0x05, 0x91, 0xbb, 0x7a, 0xc9, 0xd6, 0x3c, 0x37, 0x18, 0x09, 0x9a, 0xb6,
+  0xc7, 0x92, 0x20, 0x07, 0x35, 0x33, 0x09, 0xe4, 0x28, 0x63, 0x72, 0x0d,
+  0xb4, 0xe0, 0x32, 0x9c, 0x87, 0x98, 0xc4, 0x1b, 0x76, 0x89, 0x67, 0xc1,
+  0x50, 0x58, 0xb0, 0x13, 0xaa, 0x13, 0x1a, 0x1b, 0x32, 0xa5, 0xbe, 0xea,
+  0x11, 0x95, 0x4c, 0x48, 0x63, 0x49, 0xe9, 0x99, 0x5d, 0x20, 0x37, 0xcc,
+  0xfe, 0x2a, 0x69, 0x51, 0x16, 0x95, 0x4b, 0xa9, 0xde, 0x49, 0x82, 0xc0,
+  0x10, 0x70, 0xf4, 0x2c, 0xf3, 0xec, 0xbc, 0x24, 0x24, 0xd0, 0x4e, 0xac,
+  0xa5, 0xd9, 0x5e, 0x1e, 0x6d, 0x92, 0xc1, 0xa7, 0xac, 0x48, 0x35, 0x81,
+  0xf9, 0xe5, 0xe4, 0x9c, 0x65, 0x69, 0xcd, 0x87, 0xa4, 0x41, 0x50, 0x3f,
+  0x2e, 0x57, 0xa5, 0x91, 0x51, 0x12, 0x58, 0x0e, 0x8c, 0x09, 0xa1, 0xac,
+  0x7a, 0xa4, 0x12, 0xa5, 0x27, 0xf3, 0x9a, 0x10, 0x97, 0x7d, 0x55, 0x03,
+  0x06, 0xf7, 0x66, 0x58, 0x5f, 0x5f, 0x64, 0xe1, 0xab, 0x5d, 0x6d, 0xa5,
+  0x39, 0x48, 0x75, 0x98, 0x4c, 0x29, 0x5a, 0x3a, 0x8d, 0xd3, 0x2b, 0xca,
+  0x9c, 0x55, 0x04, 0xbf, 0xf4, 0xe6, 0x14, 0xd5, 0x80, 0xac, 0x26, 0xed,
+  0x17, 0x89, 0xa6, 0x93, 0x6c, 0x5c, 0xa4, 0xcc, 0xb8, 0xf0, 0x66, 0x8e,
+  0x64, 0xe3, 0x7d, 0x9a, 0xe2, 0x00, 0xb3, 0x49, 0xc7, 0xe4, 0x0a, 0xaa,
+  0xdd, 0x5b, 0x83, 0xc7, 0x70, 0x90, 0x46, 0x4e, 0xbe, 0xd0, 0xdb, 0x59,
+  0x96, 0x6c, 0x2e, 0xf5, 0x16, 0x36, 0xde, 0x71, 0xcc, 0x01, 0xc2, 0x12,
+  0xc1, 0x21, 0xc6, 0x16,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120033005 (0x7278eed)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root
+        Validity
+            Not Before: Apr 18 16:36:18 2012 GMT
+            Not After : Aug 13 16:35:17 2018 GMT
+        Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a3:04:bb:22:ab:98:3d:57:e8:26:72:9a:b5:79:
+                    d4:29:e2:e1:e8:95:80:b1:b0:e3:5b:8e:2b:29:9a:
+                    64:df:a1:5d:ed:b0:09:05:6d:db:28:2e:ce:62:a2:
+                    62:fe:b4:88:da:12:eb:38:eb:21:9d:c0:41:2b:01:
+                    52:7b:88:77:d3:1c:8f:c7:ba:b9:88:b5:6a:09:e7:
+                    73:e8:11:40:a7:d1:cc:ca:62:8d:2d:e5:8f:0b:a6:
+                    50:d2:a8:50:c3:28:ea:f5:ab:25:87:8a:9a:96:1c:
+                    a9:67:b8:3f:0c:d5:f7:f9:52:13:2f:c2:1b:d5:70:
+                    70:f0:8f:c0:12:ca:06:cb:9a:e1:d9:ca:33:7a:77:
+                    d6:f8:ec:b9:f1:68:44:42:48:13:d2:c0:c2:a4:ae:
+                    5e:60:fe:b6:a6:05:fc:b4:dd:07:59:02:d4:59:18:
+                    98:63:f5:a5:63:e0:90:0c:7d:5d:b2:06:7a:f3:85:
+                    ea:eb:d4:03:ae:5e:84:3e:5f:ff:15:ed:69:bc:f9:
+                    39:36:72:75:cf:77:52:4d:f3:c9:90:2c:b9:3d:e5:
+                    c9:23:53:3f:1f:24:98:21:5c:07:99:29:bd:c6:3a:
+                    ec:e7:6e:86:3a:6b:97:74:63:33:bd:68:18:31:f0:
+                    78:8d:76:bf:fc:9e:8e:5d:2a:86:a7:4d:90:dc:27:
+                    1a:39
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:3
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://cybertrust.omniroot.com/repository
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Authority Key Identifier: 
+                DirName:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc./CN=GTE CyberTrust Global Root
+                serial:01:A5
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://www.public-trust.com/cgi-bin/CRL/2018/cdp.crl
+
+    Signature Algorithm: sha1WithRSAEncryption
+         93:1d:fe:8b:ae:46:ec:cb:a9:0f:ab:e5:ef:ca:b2:68:16:68:
+         d8:8f:fa:13:a9:af:b3:cb:2d:e7:4b:6e:8e:69:2a:c2:2b:10:
+         0a:8d:f6:ae:73:b6:b9:fb:14:fd:5f:6d:b8:50:b6:c4:8a:d6:
+         40:7e:d7:c3:cb:73:dc:c9:5d:5b:af:b0:41:b5:37:eb:ea:dc:
+         20:91:c4:34:6a:f4:a1:f3:96:9d:37:86:97:e1:71:a4:dd:7d:
+         fa:44:84:94:ae:d7:09:04:22:76:0f:64:51:35:a9:24:0f:f9:
+         0b:db:32:da:c2:fe:c1:b9:2a:5c:7a:27:13:ca:b1:48:3a:71:
+         d0:43
+-----BEGIN CERTIFICATE-----
+MIIEFTCCA36gAwIBAgIEByeO7TANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV
+UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
+cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
+b2JhbCBSb290MB4XDTEyMDQxODE2MzYxOFoXDTE4MDgxMzE2MzUxN1owWjELMAkG
+A1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVz
+dDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uO
+KymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnn
+c+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
+wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPg
+kAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFc
+B5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaOCAUcw
+ggFDMBIGA1UdEwEB/wQIMAYBAf8CAQMwSgYDVR0gBEMwQTA/BgRVHSAAMDcwNQYI
+KwYBBQUHAgEWKWh0dHA6Ly9jeWJlcnRydXN0Lm9tbmlyb290LmNvbS9yZXBvc2l0
+b3J5MA4GA1UdDwEB/wQEAwIBBjCBiQYDVR0jBIGBMH+heaR3MHUxCzAJBgNVBAYT
+AlVTMRgwFgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJl
+clRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3Qg
+R2xvYmFsIFJvb3SCAgGlMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly93d3cucHVi
+bGljLXRydXN0LmNvbS9jZ2ktYmluL0NSTC8yMDE4L2NkcC5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAkx3+i65G7MupD6vl78qyaBZo2I/6E6mvs8st50tujmkqwisQCo32
+rnO2ufsU/V9tuFC2xIrWQH7Xw8tz3MldW6+wQbU36+rcIJHENGr0ofOWnTeGl+Fx
+pN19+kSElK7XCQQidg9kUTWpJA/5C9sy2sL+wbkqXHonE8qxSDpx0EM=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert3[] = {
+  0x30, 0x82, 0x04, 0x15, 0x30, 0x82, 0x03, 0x7e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0x8e, 0xed, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x75,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0f,
+  0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f,
+  0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23, 0x30, 0x21,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45, 0x20, 0x43,
+  0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c,
+  0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x32, 0x30, 0x34, 0x31, 0x38, 0x31, 0x36, 0x33, 0x36, 0x31,
+  0x38, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x38, 0x31, 0x33, 0x31, 0x36,
+  0x33, 0x35, 0x31, 0x37, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x45, 0x31, 0x12, 0x30, 0x10,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09, 0x42, 0x61, 0x6c, 0x74, 0x69,
+  0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x79,
+  0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+  0x74, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+  0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x04,
+  0xbb, 0x22, 0xab, 0x98, 0x3d, 0x57, 0xe8, 0x26, 0x72, 0x9a, 0xb5, 0x79,
+  0xd4, 0x29, 0xe2, 0xe1, 0xe8, 0x95, 0x80, 0xb1, 0xb0, 0xe3, 0x5b, 0x8e,
+  0x2b, 0x29, 0x9a, 0x64, 0xdf, 0xa1, 0x5d, 0xed, 0xb0, 0x09, 0x05, 0x6d,
+  0xdb, 0x28, 0x2e, 0xce, 0x62, 0xa2, 0x62, 0xfe, 0xb4, 0x88, 0xda, 0x12,
+  0xeb, 0x38, 0xeb, 0x21, 0x9d, 0xc0, 0x41, 0x2b, 0x01, 0x52, 0x7b, 0x88,
+  0x77, 0xd3, 0x1c, 0x8f, 0xc7, 0xba, 0xb9, 0x88, 0xb5, 0x6a, 0x09, 0xe7,
+  0x73, 0xe8, 0x11, 0x40, 0xa7, 0xd1, 0xcc, 0xca, 0x62, 0x8d, 0x2d, 0xe5,
+  0x8f, 0x0b, 0xa6, 0x50, 0xd2, 0xa8, 0x50, 0xc3, 0x28, 0xea, 0xf5, 0xab,
+  0x25, 0x87, 0x8a, 0x9a, 0x96, 0x1c, 0xa9, 0x67, 0xb8, 0x3f, 0x0c, 0xd5,
+  0xf7, 0xf9, 0x52, 0x13, 0x2f, 0xc2, 0x1b, 0xd5, 0x70, 0x70, 0xf0, 0x8f,
+  0xc0, 0x12, 0xca, 0x06, 0xcb, 0x9a, 0xe1, 0xd9, 0xca, 0x33, 0x7a, 0x77,
+  0xd6, 0xf8, 0xec, 0xb9, 0xf1, 0x68, 0x44, 0x42, 0x48, 0x13, 0xd2, 0xc0,
+  0xc2, 0xa4, 0xae, 0x5e, 0x60, 0xfe, 0xb6, 0xa6, 0x05, 0xfc, 0xb4, 0xdd,
+  0x07, 0x59, 0x02, 0xd4, 0x59, 0x18, 0x98, 0x63, 0xf5, 0xa5, 0x63, 0xe0,
+  0x90, 0x0c, 0x7d, 0x5d, 0xb2, 0x06, 0x7a, 0xf3, 0x85, 0xea, 0xeb, 0xd4,
+  0x03, 0xae, 0x5e, 0x84, 0x3e, 0x5f, 0xff, 0x15, 0xed, 0x69, 0xbc, 0xf9,
+  0x39, 0x36, 0x72, 0x75, 0xcf, 0x77, 0x52, 0x4d, 0xf3, 0xc9, 0x90, 0x2c,
+  0xb9, 0x3d, 0xe5, 0xc9, 0x23, 0x53, 0x3f, 0x1f, 0x24, 0x98, 0x21, 0x5c,
+  0x07, 0x99, 0x29, 0xbd, 0xc6, 0x3a, 0xec, 0xe7, 0x6e, 0x86, 0x3a, 0x6b,
+  0x97, 0x74, 0x63, 0x33, 0xbd, 0x68, 0x18, 0x31, 0xf0, 0x78, 0x8d, 0x76,
+  0xbf, 0xfc, 0x9e, 0x8e, 0x5d, 0x2a, 0x86, 0xa7, 0x4d, 0x90, 0xdc, 0x27,
+  0x1a, 0x39, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x47, 0x30,
+  0x82, 0x01, 0x43, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x03, 0x30,
+  0x4a, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x43, 0x30, 0x41, 0x30, 0x3f,
+  0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x37, 0x30, 0x35, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x29, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+  0x6f, 0x72, 0x79, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x81, 0x89, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x81, 0x81, 0x30, 0x7f, 0xa1, 0x79, 0xa4, 0x77,
+  0x30, 0x75, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x55, 0x53, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x0f, 0x47, 0x54, 0x45, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x1e, 0x47, 0x54, 0x45, 0x20, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x53, 0x6f, 0x6c, 0x75, 0x74,
+  0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x23,
+  0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1a, 0x47, 0x54, 0x45,
+  0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x82,
+  0x02, 0x01, 0xa5, 0x30, 0x45, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3e,
+  0x30, 0x3c, 0x30, 0x3a, 0xa0, 0x38, 0xa0, 0x36, 0x86, 0x34, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x70, 0x75, 0x62,
+  0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x63, 0x67, 0x69, 0x2d, 0x62, 0x69, 0x6e, 0x2f, 0x43, 0x52,
+  0x4c, 0x2f, 0x32, 0x30, 0x31, 0x38, 0x2f, 0x63, 0x64, 0x70, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x93, 0x1d, 0xfe,
+  0x8b, 0xae, 0x46, 0xec, 0xcb, 0xa9, 0x0f, 0xab, 0xe5, 0xef, 0xca, 0xb2,
+  0x68, 0x16, 0x68, 0xd8, 0x8f, 0xfa, 0x13, 0xa9, 0xaf, 0xb3, 0xcb, 0x2d,
+  0xe7, 0x4b, 0x6e, 0x8e, 0x69, 0x2a, 0xc2, 0x2b, 0x10, 0x0a, 0x8d, 0xf6,
+  0xae, 0x73, 0xb6, 0xb9, 0xfb, 0x14, 0xfd, 0x5f, 0x6d, 0xb8, 0x50, 0xb6,
+  0xc4, 0x8a, 0xd6, 0x40, 0x7e, 0xd7, 0xc3, 0xcb, 0x73, 0xdc, 0xc9, 0x5d,
+  0x5b, 0xaf, 0xb0, 0x41, 0xb5, 0x37, 0xeb, 0xea, 0xdc, 0x20, 0x91, 0xc4,
+  0x34, 0x6a, 0xf4, 0xa1, 0xf3, 0x96, 0x9d, 0x37, 0x86, 0x97, 0xe1, 0x71,
+  0xa4, 0xdd, 0x7d, 0xfa, 0x44, 0x84, 0x94, 0xae, 0xd7, 0x09, 0x04, 0x22,
+  0x76, 0x0f, 0x64, 0x51, 0x35, 0xa9, 0x24, 0x0f, 0xf9, 0x0b, 0xdb, 0x32,
+  0xda, 0xc2, 0xfe, 0xc1, 0xb9, 0x2a, 0x5c, 0x7a, 0x27, 0x13, 0xca, 0xb1,
+  0x48, 0x3a, 0x71, 0xd0, 0x43,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146039 (0x23a77)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Aug 29 21:39:32 2014 GMT
+            Not After : May 20 21:39:32 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:54:9b:d9:58:5d:1e:2c:56:c6:d5:e8:7f:f4:
+                    7d:16:03:ff:d0:8b:5a:e4:8e:a7:dd:54:2e:d4:04:
+                    c0:5d:98:9c:8d:90:0f:bc:10:65:5f:da:9a:d6:44:
+                    7c:c0:9f:b5:e9:4a:8c:0b:06:43:04:bb:f4:96:e2:
+                    26:f6:61:01:91:66:31:22:c3:34:34:5f:3f:3f:91:
+                    2f:44:5f:dc:c7:14:b6:03:9f:86:4b:0e:a3:ff:a0:
+                    80:02:83:c3:d3:1f:69:52:d6:9d:64:0f:c9:83:e7:
+                    1b:c4:70:ac:94:e7:c3:a4:6a:2c:bd:b8:9e:69:d8:
+                    be:0a:8f:16:63:5a:68:71:80:7b:30:de:15:04:bf:
+                    cc:d3:bf:3e:48:05:55:7a:b3:d7:10:0c:03:fc:9b:
+                    fd:08:a7:8c:8c:db:a7:8e:f1:1e:63:dc:b3:01:2f:
+                    7f:af:57:c3:3c:48:a7:83:68:21:a7:2f:e7:a7:3f:
+                    f0:b5:0c:fc:f5:84:d1:53:bc:0e:72:4f:60:0c:42:
+                    b8:98:ad:19:88:57:d7:04:ec:87:bf:7e:87:4e:a3:
+                    21:f9:53:fd:36:98:48:8d:d6:f8:bb:48:f2:29:c8:
+                    64:d1:cc:54:48:53:8b:af:b7:65:1e:bf:29:33:29:
+                    d9:29:60:48:f8:ff:91:bc:57:58:e5:35:2e:bb:69:
+                    b6:59
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                C3:9C:F3:FC:D3:46:08:34:BB:CE:46:7F:A0:7C:5B:F3:E2:08:CB:59
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+    Signature Algorithm: sha256WithRSAEncryption
+         a3:58:1e:c6:43:32:ac:ac:2f:93:78:b7:ea:ae:54:40:47:2d:
+         7e:78:8d:50:f6:f8:66:ac:d6:4f:73:d6:44:ef:af:0b:cc:5b:
+         c1:f4:4f:9a:8f:49:7e:60:af:c2:27:c7:16:f1:fb:93:81:90:
+         a9:7c:ef:6f:7e:6e:45:94:16:84:bd:ec:49:f1:c4:0e:f4:af:
+         04:59:83:87:0f:2c:3b:97:c3:5a:12:9b:7b:04:35:7b:a3:95:
+         33:08:7b:93:71:22:42:b3:a9:d9:6f:4f:81:92:fc:07:b6:79:
+         bc:84:4a:9d:77:09:f1:c5:89:f2:f0:b4:9c:54:aa:12:7b:0d:
+         ba:4f:ef:93:19:ec:ef:7d:4e:61:a3:8e:76:9c:59:cf:8c:94:
+         b1:84:97:f7:1a:b9:07:b8:b2:c6:4f:13:79:db:bf:4f:51:1b:
+         7f:69:0d:51:2a:c1:d6:15:ff:37:51:34:65:51:f4:1e:be:38:
+         6a:ec:0e:ab:bf:3d:7b:39:05:7b:f4:f3:fb:1a:a1:d0:c8:7e:
+         4e:64:8d:cd:8c:61:55:90:fe:3a:ca:5d:25:0f:f8:1d:a3:4a:
+         74:56:4f:1a:55:40:70:75:25:a6:33:2e:ba:4b:a5:5d:53:9a:
+         0d:30:e1:8d:5f:61:2c:af:cc:ef:b0:99:a1:80:ff:0b:f2:62:
+         4c:70:26:98
+-----BEGIN CERTIFICATE-----
+MIIEJTCCAw2gAwIBAgIDAjp3MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjEzOTMyWhcNMjIwNTIwMjEzOTMyWjBHMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXUmFwaWRTU0wg
+U0hBMjU2IENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv
+VJvZWF0eLFbG1eh/9H0WA//Qi1rkjqfdVC7UBMBdmJyNkA+8EGVf2prWRHzAn7Xp
+SowLBkMEu/SW4ib2YQGRZjEiwzQ0Xz8/kS9EX9zHFLYDn4ZLDqP/oIACg8PTH2lS
+1p1kD8mD5xvEcKyU58Okaiy9uJ5p2L4KjxZjWmhxgHsw3hUEv8zTvz5IBVV6s9cQ
+DAP8m/0Ip4yM26eO8R5j3LMBL3+vV8M8SKeDaCGnL+enP/C1DPz1hNFTvA5yT2AM
+QriYrRmIV9cE7Ie/fodOoyH5U/02mEiN1vi7SPIpyGTRzFRIU4uvt2UevykzKdkp
+YEj4/5G8V1jlNS67abZZAgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7
+qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUw5zz/NNGCDS7zkZ/oHxb8+IIy1kwEgYD
+VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCig
+JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUF
+BwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARF
+MEMwQQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3Ry
+dXN0LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQCjWB7GQzKs
+rC+TeLfqrlRARy1+eI1Q9vhmrNZPc9ZE768LzFvB9E+aj0l+YK/CJ8cW8fuTgZCp
+fO9vfm5FlBaEvexJ8cQO9K8EWYOHDyw7l8NaEpt7BDV7o5UzCHuTcSJCs6nZb0+B
+kvwHtnm8hEqddwnxxYny8LScVKoSew26T++TGezvfU5ho452nFnPjJSxhJf3GrkH
+uLLGTxN5279PURt/aQ1RKsHWFf83UTRlUfQevjhq7A6rvz17OQV79PP7GqHQyH5O
+ZI3NjGFVkP46yl0lD/gdo0p0Vk8aVUBwdSWmMy66S6VdU5oNMOGNX2Esr8zvsJmh
+gP8L8mJMcCaY
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert4[] = {
+  0x30, 0x82, 0x04, 0x25, 0x30, 0x82, 0x03, 0x0d, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x77, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+  0x38, 0x32, 0x39, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x39, 0x33, 0x32,
+  0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c, 0x20,
+  0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20,
+  0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xaf,
+  0x54, 0x9b, 0xd9, 0x58, 0x5d, 0x1e, 0x2c, 0x56, 0xc6, 0xd5, 0xe8, 0x7f,
+  0xf4, 0x7d, 0x16, 0x03, 0xff, 0xd0, 0x8b, 0x5a, 0xe4, 0x8e, 0xa7, 0xdd,
+  0x54, 0x2e, 0xd4, 0x04, 0xc0, 0x5d, 0x98, 0x9c, 0x8d, 0x90, 0x0f, 0xbc,
+  0x10, 0x65, 0x5f, 0xda, 0x9a, 0xd6, 0x44, 0x7c, 0xc0, 0x9f, 0xb5, 0xe9,
+  0x4a, 0x8c, 0x0b, 0x06, 0x43, 0x04, 0xbb, 0xf4, 0x96, 0xe2, 0x26, 0xf6,
+  0x61, 0x01, 0x91, 0x66, 0x31, 0x22, 0xc3, 0x34, 0x34, 0x5f, 0x3f, 0x3f,
+  0x91, 0x2f, 0x44, 0x5f, 0xdc, 0xc7, 0x14, 0xb6, 0x03, 0x9f, 0x86, 0x4b,
+  0x0e, 0xa3, 0xff, 0xa0, 0x80, 0x02, 0x83, 0xc3, 0xd3, 0x1f, 0x69, 0x52,
+  0xd6, 0x9d, 0x64, 0x0f, 0xc9, 0x83, 0xe7, 0x1b, 0xc4, 0x70, 0xac, 0x94,
+  0xe7, 0xc3, 0xa4, 0x6a, 0x2c, 0xbd, 0xb8, 0x9e, 0x69, 0xd8, 0xbe, 0x0a,
+  0x8f, 0x16, 0x63, 0x5a, 0x68, 0x71, 0x80, 0x7b, 0x30, 0xde, 0x15, 0x04,
+  0xbf, 0xcc, 0xd3, 0xbf, 0x3e, 0x48, 0x05, 0x55, 0x7a, 0xb3, 0xd7, 0x10,
+  0x0c, 0x03, 0xfc, 0x9b, 0xfd, 0x08, 0xa7, 0x8c, 0x8c, 0xdb, 0xa7, 0x8e,
+  0xf1, 0x1e, 0x63, 0xdc, 0xb3, 0x01, 0x2f, 0x7f, 0xaf, 0x57, 0xc3, 0x3c,
+  0x48, 0xa7, 0x83, 0x68, 0x21, 0xa7, 0x2f, 0xe7, 0xa7, 0x3f, 0xf0, 0xb5,
+  0x0c, 0xfc, 0xf5, 0x84, 0xd1, 0x53, 0xbc, 0x0e, 0x72, 0x4f, 0x60, 0x0c,
+  0x42, 0xb8, 0x98, 0xad, 0x19, 0x88, 0x57, 0xd7, 0x04, 0xec, 0x87, 0xbf,
+  0x7e, 0x87, 0x4e, 0xa3, 0x21, 0xf9, 0x53, 0xfd, 0x36, 0x98, 0x48, 0x8d,
+  0xd6, 0xf8, 0xbb, 0x48, 0xf2, 0x29, 0xc8, 0x64, 0xd1, 0xcc, 0x54, 0x48,
+  0x53, 0x8b, 0xaf, 0xb7, 0x65, 0x1e, 0xbf, 0x29, 0x33, 0x29, 0xd9, 0x29,
+  0x60, 0x48, 0xf8, 0xff, 0x91, 0xbc, 0x57, 0x58, 0xe5, 0x35, 0x2e, 0xbb,
+  0x69, 0xb6, 0x59, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d,
+  0x30, 0x82, 0x01, 0x19, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb,
+  0xab, 0x05, 0x64, 0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc,
+  0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0xc3, 0x9c, 0xf3, 0xfc, 0xd3, 0x46, 0x08, 0x34, 0xbb, 0xce, 0x46, 0x7f,
+  0xa0, 0x7c, 0x5b, 0xf3, 0xe2, 0x08, 0xcb, 0x59, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0,
+  0x26, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e,
+  0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72,
+  0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e,
+  0x63, 0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45,
+  0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8,
+  0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f,
+  0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x58, 0x1e, 0xc6, 0x43, 0x32, 0xac,
+  0xac, 0x2f, 0x93, 0x78, 0xb7, 0xea, 0xae, 0x54, 0x40, 0x47, 0x2d, 0x7e,
+  0x78, 0x8d, 0x50, 0xf6, 0xf8, 0x66, 0xac, 0xd6, 0x4f, 0x73, 0xd6, 0x44,
+  0xef, 0xaf, 0x0b, 0xcc, 0x5b, 0xc1, 0xf4, 0x4f, 0x9a, 0x8f, 0x49, 0x7e,
+  0x60, 0xaf, 0xc2, 0x27, 0xc7, 0x16, 0xf1, 0xfb, 0x93, 0x81, 0x90, 0xa9,
+  0x7c, 0xef, 0x6f, 0x7e, 0x6e, 0x45, 0x94, 0x16, 0x84, 0xbd, 0xec, 0x49,
+  0xf1, 0xc4, 0x0e, 0xf4, 0xaf, 0x04, 0x59, 0x83, 0x87, 0x0f, 0x2c, 0x3b,
+  0x97, 0xc3, 0x5a, 0x12, 0x9b, 0x7b, 0x04, 0x35, 0x7b, 0xa3, 0x95, 0x33,
+  0x08, 0x7b, 0x93, 0x71, 0x22, 0x42, 0xb3, 0xa9, 0xd9, 0x6f, 0x4f, 0x81,
+  0x92, 0xfc, 0x07, 0xb6, 0x79, 0xbc, 0x84, 0x4a, 0x9d, 0x77, 0x09, 0xf1,
+  0xc5, 0x89, 0xf2, 0xf0, 0xb4, 0x9c, 0x54, 0xaa, 0x12, 0x7b, 0x0d, 0xba,
+  0x4f, 0xef, 0x93, 0x19, 0xec, 0xef, 0x7d, 0x4e, 0x61, 0xa3, 0x8e, 0x76,
+  0x9c, 0x59, 0xcf, 0x8c, 0x94, 0xb1, 0x84, 0x97, 0xf7, 0x1a, 0xb9, 0x07,
+  0xb8, 0xb2, 0xc6, 0x4f, 0x13, 0x79, 0xdb, 0xbf, 0x4f, 0x51, 0x1b, 0x7f,
+  0x69, 0x0d, 0x51, 0x2a, 0xc1, 0xd6, 0x15, 0xff, 0x37, 0x51, 0x34, 0x65,
+  0x51, 0xf4, 0x1e, 0xbe, 0x38, 0x6a, 0xec, 0x0e, 0xab, 0xbf, 0x3d, 0x7b,
+  0x39, 0x05, 0x7b, 0xf4, 0xf3, 0xfb, 0x1a, 0xa1, 0xd0, 0xc8, 0x7e, 0x4e,
+  0x64, 0x8d, 0xcd, 0x8c, 0x61, 0x55, 0x90, 0xfe, 0x3a, 0xca, 0x5d, 0x25,
+  0x0f, 0xf8, 0x1d, 0xa3, 0x4a, 0x74, 0x56, 0x4f, 0x1a, 0x55, 0x40, 0x70,
+  0x75, 0x25, 0xa6, 0x33, 0x2e, 0xba, 0x4b, 0xa5, 0x5d, 0x53, 0x9a, 0x0d,
+  0x30, 0xe1, 0x8d, 0x5f, 0x61, 0x2c, 0xaf, 0xcc, 0xef, 0xb0, 0x99, 0xa1,
+  0x80, 0xff, 0x0b, 0xf2, 0x62, 0x4c, 0x70, 0x26, 0x98,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146040 (0x23a78)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Aug 29 22:24:58 2014 GMT
+            Not After : May 20 22:24:58 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., OU=Domain Validated SSL, CN=GeoTrust DV SSL CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:df:41:94:7a:da:f7:e4:31:43:b6:ea:01:1b:5c:
+                    ce:63:ea:fa:6d:a3:d9:6a:ee:2d:9a:75:f9:d5:9c:
+                    5b:bd:34:df:d8:1c:c9:6d:d8:04:88:da:6e:b5:b7:
+                    b5:f0:30:ae:40:d6:5d:fa:c4:53:c1:d4:22:9d:04:
+                    4e:11:a6:95:d5:45:7c:41:05:58:e0:4c:dd:f9:ee:
+                    55:bd:5f:46:dc:ad:13:08:9d:2c:e4:f7:82:e6:07:
+                    2b:9e:0e:8c:34:a1:ce:c4:a1:e0:81:70:86:00:06:
+                    3f:2d:ea:7c:9b:28:ae:1b:28:8b:39:09:d3:e7:f0:
+                    45:a4:b1:ba:11:67:90:55:7b:8f:de:ed:38:5c:a1:
+                    e1:e3:83:c4:c3:72:91:4f:98:ee:1c:c2:80:aa:64:
+                    a5:3e:83:62:1c:cc:e0:9e:f8:5a:c0:13:12:7d:a2:
+                    a7:8b:a3:e7:9f:2a:d7:9b:ca:cb:ed:97:01:9c:28:
+                    84:51:04:50:41:bc:b4:fc:78:e9:1b:cf:14:ea:1f:
+                    0f:fc:2e:01:32:8d:b6:35:cb:0a:18:3b:ec:5a:3e:
+                    3c:1b:d3:99:43:1e:2f:f7:bd:f3:5b:12:b9:07:5e:
+                    ed:3e:d1:a9:87:cc:77:72:27:d4:d9:75:a2:63:4b:
+                    93:36:bd:e5:5c:d7:bf:5f:79:0d:b3:32:a7:0b:b2:
+                    63:23
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                0B:50:EC:77:EF:2A:9B:FF:EC:03:A1:0A:FF:AD:C6:E4:2A:18:C7:3E
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+    Signature Algorithm: sha256WithRSAEncryption
+         33:24:d5:90:aa:29:0c:35:b9:2f:c3:c7:42:93:c0:c6:10:4b:
+         03:08:76:84:10:a2:e0:e7:53:12:27:f2:0a:da:7f:3a:dc:fd:
+         5c:79:5a:8f:17:74:43:53:b1:d5:d1:5d:59:b9:a6:84:64:ca:
+         f1:3a:0a:59:96:10:bf:a9:81:57:8b:5c:87:dc:7f:e3:e4:bb:
+         05:7a:a0:32:09:13:4e:10:81:28:1f:9c:03:62:bc:f4:01:b5:
+         29:83:46:07:b9:e7:b8:5d:c8:e9:d1:dd:ad:3b:f8:34:db:c1:
+         d1:95:a9:91:18:ed:3c:2c:37:11:4d:cc:fe:53:3e:50:43:f9:
+         c3:56:41:ac:53:9b:6c:05:b2:9a:e2:e0:59:57:30:32:b6:26:
+         4e:13:25:cd:fa:48:70:0f:75:55:60:11:f5:3b:d5:5e:5a:3c:
+         8b:5b:0f:0f:62:42:48:61:85:8b:10:f4:c1:88:bf:7f:5f:8a:
+         c2:d7:cd:2b:94:5c:1f:34:4a:08:af:eb:ae:89:a8:48:75:55:
+         95:1d:bb:c0:9a:01:b9:f4:03:22:3e:d4:e6:52:30:0d:67:b9:
+         c0:91:fd:2d:4c:30:8e:bd:8c:a5:04:91:bb:a4:ab:7f:0f:d8:
+         6f:f0:66:00:c9:a3:5c:f5:b0:8f:83:e6:9c:5a:e6:b6:b9:c5:
+         bc:be:e4:02
+-----BEGIN CERTIFICATE-----
+MIIERDCCAyygAwIBAgIDAjp4MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwODI5MjIyNDU4WhcNMjIwNTIwMjIyNDU4WjBmMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh
+bGlkYXRlZCBTU0wxIDAeBgNVBAMTF0dlb1RydXN0IERWIFNTTCBDQSAtIEc0MIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA30GUetr35DFDtuoBG1zOY+r6
+baPZau4tmnX51ZxbvTTf2BzJbdgEiNputbe18DCuQNZd+sRTwdQinQROEaaV1UV8
+QQVY4Ezd+e5VvV9G3K0TCJ0s5PeC5gcrng6MNKHOxKHggXCGAAY/Lep8myiuGyiL
+OQnT5/BFpLG6EWeQVXuP3u04XKHh44PEw3KRT5juHMKAqmSlPoNiHMzgnvhawBMS
+faKni6PnnyrXm8rL7ZcBnCiEUQRQQby0/HjpG88U6h8P/C4BMo22NcsKGDvsWj48
+G9OZQx4v973zWxK5B17tPtGph8x3cifU2XWiY0uTNr3lXNe/X3kNszKnC7JjIwID
+AQABo4IBHTCCARkwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4wHQYD
+VR0OBBYEFAtQ7HfvKpv/7AOhCv+txuQqGMc+MBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9nLnN5bWNi
+LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAuBggrBgEFBQcBAQQiMCAwHgYIKwYBBQUH
+MAGGEmh0dHA6Ly9nLnN5bWNkLmNvbTBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYw
+MzAxBggrBgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2Vz
+L2NwczANBgkqhkiG9w0BAQsFAAOCAQEAMyTVkKopDDW5L8PHQpPAxhBLAwh2hBCi
+4OdTEifyCtp/Otz9XHlajxd0Q1Ox1dFdWbmmhGTK8ToKWZYQv6mBV4tch9x/4+S7
+BXqgMgkTThCBKB+cA2K89AG1KYNGB7nnuF3I6dHdrTv4NNvB0ZWpkRjtPCw3EU3M
+/lM+UEP5w1ZBrFObbAWymuLgWVcwMrYmThMlzfpIcA91VWAR9TvVXlo8i1sPD2JC
+SGGFixD0wYi/f1+KwtfNK5RcHzRKCK/rromoSHVVlR27wJoBufQDIj7U5lIwDWe5
+wJH9LUwwjr2MpQSRu6Srfw/Yb/BmAMmjXPWwj4PmnFrmtrnFvL7kAg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert5[] = {
+  0x30, 0x82, 0x04, 0x44, 0x30, 0x82, 0x03, 0x2c, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+  0x38, 0x32, 0x39, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x32, 0x32, 0x34, 0x35, 0x38,
+  0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x14, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61,
+  0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31,
+  0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x47, 0x65,
+  0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x44, 0x56, 0x20, 0x53, 0x53,
+  0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdf, 0x41, 0x94, 0x7a, 0xda, 0xf7,
+  0xe4, 0x31, 0x43, 0xb6, 0xea, 0x01, 0x1b, 0x5c, 0xce, 0x63, 0xea, 0xfa,
+  0x6d, 0xa3, 0xd9, 0x6a, 0xee, 0x2d, 0x9a, 0x75, 0xf9, 0xd5, 0x9c, 0x5b,
+  0xbd, 0x34, 0xdf, 0xd8, 0x1c, 0xc9, 0x6d, 0xd8, 0x04, 0x88, 0xda, 0x6e,
+  0xb5, 0xb7, 0xb5, 0xf0, 0x30, 0xae, 0x40, 0xd6, 0x5d, 0xfa, 0xc4, 0x53,
+  0xc1, 0xd4, 0x22, 0x9d, 0x04, 0x4e, 0x11, 0xa6, 0x95, 0xd5, 0x45, 0x7c,
+  0x41, 0x05, 0x58, 0xe0, 0x4c, 0xdd, 0xf9, 0xee, 0x55, 0xbd, 0x5f, 0x46,
+  0xdc, 0xad, 0x13, 0x08, 0x9d, 0x2c, 0xe4, 0xf7, 0x82, 0xe6, 0x07, 0x2b,
+  0x9e, 0x0e, 0x8c, 0x34, 0xa1, 0xce, 0xc4, 0xa1, 0xe0, 0x81, 0x70, 0x86,
+  0x00, 0x06, 0x3f, 0x2d, 0xea, 0x7c, 0x9b, 0x28, 0xae, 0x1b, 0x28, 0x8b,
+  0x39, 0x09, 0xd3, 0xe7, 0xf0, 0x45, 0xa4, 0xb1, 0xba, 0x11, 0x67, 0x90,
+  0x55, 0x7b, 0x8f, 0xde, 0xed, 0x38, 0x5c, 0xa1, 0xe1, 0xe3, 0x83, 0xc4,
+  0xc3, 0x72, 0x91, 0x4f, 0x98, 0xee, 0x1c, 0xc2, 0x80, 0xaa, 0x64, 0xa5,
+  0x3e, 0x83, 0x62, 0x1c, 0xcc, 0xe0, 0x9e, 0xf8, 0x5a, 0xc0, 0x13, 0x12,
+  0x7d, 0xa2, 0xa7, 0x8b, 0xa3, 0xe7, 0x9f, 0x2a, 0xd7, 0x9b, 0xca, 0xcb,
+  0xed, 0x97, 0x01, 0x9c, 0x28, 0x84, 0x51, 0x04, 0x50, 0x41, 0xbc, 0xb4,
+  0xfc, 0x78, 0xe9, 0x1b, 0xcf, 0x14, 0xea, 0x1f, 0x0f, 0xfc, 0x2e, 0x01,
+  0x32, 0x8d, 0xb6, 0x35, 0xcb, 0x0a, 0x18, 0x3b, 0xec, 0x5a, 0x3e, 0x3c,
+  0x1b, 0xd3, 0x99, 0x43, 0x1e, 0x2f, 0xf7, 0xbd, 0xf3, 0x5b, 0x12, 0xb9,
+  0x07, 0x5e, 0xed, 0x3e, 0xd1, 0xa9, 0x87, 0xcc, 0x77, 0x72, 0x27, 0xd4,
+  0xd9, 0x75, 0xa2, 0x63, 0x4b, 0x93, 0x36, 0xbd, 0xe5, 0x5c, 0xd7, 0xbf,
+  0x5f, 0x79, 0x0d, 0xb3, 0x32, 0xa7, 0x0b, 0xb2, 0x63, 0x23, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x1d, 0x30, 0x82, 0x01, 0x19, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+  0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0b, 0x50, 0xec, 0x77, 0xef,
+  0x2a, 0x9b, 0xff, 0xec, 0x03, 0xa1, 0x0a, 0xff, 0xad, 0xc6, 0xe4, 0x2a,
+  0x18, 0xc7, 0x3e, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2e,
+  0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74,
+  0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x2e,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22,
+  0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67,
+  0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4c,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06,
+  0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30,
+  0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+  0x2f, 0x63, 0x70, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+  0x33, 0x24, 0xd5, 0x90, 0xaa, 0x29, 0x0c, 0x35, 0xb9, 0x2f, 0xc3, 0xc7,
+  0x42, 0x93, 0xc0, 0xc6, 0x10, 0x4b, 0x03, 0x08, 0x76, 0x84, 0x10, 0xa2,
+  0xe0, 0xe7, 0x53, 0x12, 0x27, 0xf2, 0x0a, 0xda, 0x7f, 0x3a, 0xdc, 0xfd,
+  0x5c, 0x79, 0x5a, 0x8f, 0x17, 0x74, 0x43, 0x53, 0xb1, 0xd5, 0xd1, 0x5d,
+  0x59, 0xb9, 0xa6, 0x84, 0x64, 0xca, 0xf1, 0x3a, 0x0a, 0x59, 0x96, 0x10,
+  0xbf, 0xa9, 0x81, 0x57, 0x8b, 0x5c, 0x87, 0xdc, 0x7f, 0xe3, 0xe4, 0xbb,
+  0x05, 0x7a, 0xa0, 0x32, 0x09, 0x13, 0x4e, 0x10, 0x81, 0x28, 0x1f, 0x9c,
+  0x03, 0x62, 0xbc, 0xf4, 0x01, 0xb5, 0x29, 0x83, 0x46, 0x07, 0xb9, 0xe7,
+  0xb8, 0x5d, 0xc8, 0xe9, 0xd1, 0xdd, 0xad, 0x3b, 0xf8, 0x34, 0xdb, 0xc1,
+  0xd1, 0x95, 0xa9, 0x91, 0x18, 0xed, 0x3c, 0x2c, 0x37, 0x11, 0x4d, 0xcc,
+  0xfe, 0x53, 0x3e, 0x50, 0x43, 0xf9, 0xc3, 0x56, 0x41, 0xac, 0x53, 0x9b,
+  0x6c, 0x05, 0xb2, 0x9a, 0xe2, 0xe0, 0x59, 0x57, 0x30, 0x32, 0xb6, 0x26,
+  0x4e, 0x13, 0x25, 0xcd, 0xfa, 0x48, 0x70, 0x0f, 0x75, 0x55, 0x60, 0x11,
+  0xf5, 0x3b, 0xd5, 0x5e, 0x5a, 0x3c, 0x8b, 0x5b, 0x0f, 0x0f, 0x62, 0x42,
+  0x48, 0x61, 0x85, 0x8b, 0x10, 0xf4, 0xc1, 0x88, 0xbf, 0x7f, 0x5f, 0x8a,
+  0xc2, 0xd7, 0xcd, 0x2b, 0x94, 0x5c, 0x1f, 0x34, 0x4a, 0x08, 0xaf, 0xeb,
+  0xae, 0x89, 0xa8, 0x48, 0x75, 0x55, 0x95, 0x1d, 0xbb, 0xc0, 0x9a, 0x01,
+  0xb9, 0xf4, 0x03, 0x22, 0x3e, 0xd4, 0xe6, 0x52, 0x30, 0x0d, 0x67, 0xb9,
+  0xc0, 0x91, 0xfd, 0x2d, 0x4c, 0x30, 0x8e, 0xbd, 0x8c, 0xa5, 0x04, 0x91,
+  0xbb, 0xa4, 0xab, 0x7f, 0x0f, 0xd8, 0x6f, 0xf0, 0x66, 0x00, 0xc9, 0xa3,
+  0x5c, 0xf5, 0xb0, 0x8f, 0x83, 0xe6, 0x9c, 0x5a, 0xe6, 0xb6, 0xb9, 0xc5,
+  0xbc, 0xbe, 0xe4, 0x02,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            33:65:50:08:79:ad:73:e2:30:b9:e0:1d:0d:7f:ac:91
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com
+        Validity
+            Not Before: Nov 17 00:00:00 2006 GMT
+            Not After : Dec 30 23:59:59 2020 GMT
+        Subject: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ac:a0:f0:fb:80:59:d4:9c:c7:a4:cf:9d:a1:59:
+                    73:09:10:45:0c:0d:2c:6e:68:f1:6c:5b:48:68:49:
+                    59:37:fc:0b:33:19:c2:77:7f:cc:10:2d:95:34:1c:
+                    e6:eb:4d:09:a7:1c:d2:b8:c9:97:36:02:b7:89:d4:
+                    24:5f:06:c0:cc:44:94:94:8d:02:62:6f:eb:5a:dd:
+                    11:8d:28:9a:5c:84:90:10:7a:0d:bd:74:66:2f:6a:
+                    38:a0:e2:d5:54:44:eb:1d:07:9f:07:ba:6f:ee:e9:
+                    fd:4e:0b:29:f5:3e:84:a0:01:f1:9c:ab:f8:1c:7e:
+                    89:a4:e8:a1:d8:71:65:0d:a3:51:7b:ee:bc:d2:22:
+                    60:0d:b9:5b:9d:df:ba:fc:51:5b:0b:af:98:b2:e9:
+                    2e:e9:04:e8:62:87:de:2b:c8:d7:4e:c1:4c:64:1e:
+                    dd:cf:87:58:ba:4a:4f:ca:68:07:1d:1c:9d:4a:c6:
+                    d5:2f:91:cc:7c:71:72:1c:c5:c0:67:eb:32:fd:c9:
+                    92:5c:94:da:85:c0:9b:bf:53:7d:2b:09:f4:8c:9d:
+                    91:1f:97:6a:52:cb:de:09:36:a4:77:d8:7b:87:50:
+                    44:d5:3e:6e:29:69:fb:39:49:26:1e:09:a5:80:7b:
+                    40:2d:eb:e8:27:85:c9:fe:61:fd:7e:e6:7c:97:1d:
+                    d5:9d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.thawte.com/ThawtePremiumServerCA.crl
+
+    Signature Algorithm: sha1WithRSAEncryption
+         84:a8:4c:c9:3e:2a:bc:9a:e2:cc:8f:0b:b2:25:77:c4:61:89:
+         89:63:5a:d4:a3:15:40:d4:fb:5e:3f:b4:43:ea:63:17:2b:6b:
+         99:74:9e:09:a8:dd:d4:56:15:2e:7a:79:31:5f:63:96:53:1b:
+         34:d9:15:ea:4f:6d:70:ca:be:f6:82:a9:ed:da:85:77:cc:76:
+         1c:6a:81:0a:21:d8:41:99:7f:5e:2e:82:c1:e8:aa:f7:93:81:
+         05:aa:92:b4:1f:b7:9a:c0:07:17:f5:cb:c6:b4:4c:0e:d7:56:
+         dc:71:20:74:38:d6:74:c6:d6:8f:6b:af:8b:8d:a0:6c:29:0b:
+         61:e0
+-----BEGIN CERTIFICATE-----
+MIIERTCCA66gAwIBAgIQM2VQCHmtc+IwueAdDX+skTANBgkqhkiG9w0BAQUFADCB
+zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
+Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
+d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTA2MTExNzAwMDAwMFoXDTIwMTIzMDIzNTk1OVow
+gakxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsT
+H0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAy
+MDA2IHRoYXd0ZSwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYD
+VQQDExZ0aGF3dGUgUHJpbWFyeSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEArKDw+4BZ1JzHpM+doVlzCRBFDA0sbmjxbFtIaElZN/wLMxnC
+d3/MEC2VNBzm600JpxzSuMmXNgK3idQkXwbAzESUlI0CYm/rWt0RjSiaXISQEHoN
+vXRmL2o4oOLVVETrHQefB7pv7un9Tgsp9T6EoAHxnKv4HH6JpOih2HFlDaNRe+68
+0iJgDblbnd+6/FFbC6+Ysuku6QToYofeK8jXTsFMZB7dz4dYukpPymgHHRydSsbV
+L5HMfHFyHMXAZ+sy/cmSXJTahcCbv1N9Kwn0jJ2RH5dqUsveCTakd9h7h1BE1T5u
+KWn7OUkmHgmlgHtALevoJ4XJ/mH9fuZ8lx3VnQIDAQABo4HCMIG/MA8GA1UdEwEB
+/wQFMAMBAf8wOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBz
+Oi8vd3d3LnRoYXd0ZS5jb20vY3BzMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+e1tFz6/Oy3r9MZIaarbzRutXSFAwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2Ny
+bC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwDQYJKoZIhvcN
+AQEFBQADgYEAhKhMyT4qvJrizI8LsiV3xGGJiWNa1KMVQNT7Xj+0Q+pjFytrmXSe
+Cajd1FYVLnp5MV9jllMbNNkV6k9tcMq+9oKp7dqFd8x2HGqBCiHYQZl/Xi6Cweiq
+95OBBaqStB+3msAHF/XLxrRMDtdW3HEgdDjWdMbWj2uvi42gbCkLYeA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert6[] = {
+  0x30, 0x82, 0x04, 0x45, 0x30, 0x82, 0x03, 0xae, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x33, 0x65, 0x50, 0x08, 0x79, 0xad, 0x73, 0xe2, 0x30,
+  0xb9, 0xe0, 0x1d, 0x0d, 0x7f, 0xac, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xce, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x5a, 0x41, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+  0x0c, 0x57, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x43, 0x61, 0x70,
+  0x65, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x09,
+  0x43, 0x61, 0x70, 0x65, 0x20, 0x54, 0x6f, 0x77, 0x6e, 0x31, 0x1d, 0x30,
+  0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x54, 0x68, 0x61, 0x77,
+  0x74, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e,
+  0x67, 0x20, 0x63, 0x63, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+  0x73, 0x20, 0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x21,
+  0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x18, 0x54, 0x68, 0x61,
+  0x77, 0x74, 0x65, 0x20, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x20,
+  0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x31, 0x28, 0x30,
+  0x26, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01,
+  0x16, 0x19, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x2d, 0x73, 0x65,
+  0x72, 0x76, 0x65, 0x72, 0x40, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+  0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x31,
+  0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30,
+  0x31, 0x32, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30,
+  0x81, 0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x1f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20,
+  0x44, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36,
+  0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32,
+  0x30, 0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61,
+  0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73,
+  0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20,
+  0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74,
+  0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xac, 0xa0, 0xf0, 0xfb, 0x80, 0x59, 0xd4, 0x9c, 0xc7, 0xa4, 0xcf, 0x9d,
+  0xa1, 0x59, 0x73, 0x09, 0x10, 0x45, 0x0c, 0x0d, 0x2c, 0x6e, 0x68, 0xf1,
+  0x6c, 0x5b, 0x48, 0x68, 0x49, 0x59, 0x37, 0xfc, 0x0b, 0x33, 0x19, 0xc2,
+  0x77, 0x7f, 0xcc, 0x10, 0x2d, 0x95, 0x34, 0x1c, 0xe6, 0xeb, 0x4d, 0x09,
+  0xa7, 0x1c, 0xd2, 0xb8, 0xc9, 0x97, 0x36, 0x02, 0xb7, 0x89, 0xd4, 0x24,
+  0x5f, 0x06, 0xc0, 0xcc, 0x44, 0x94, 0x94, 0x8d, 0x02, 0x62, 0x6f, 0xeb,
+  0x5a, 0xdd, 0x11, 0x8d, 0x28, 0x9a, 0x5c, 0x84, 0x90, 0x10, 0x7a, 0x0d,
+  0xbd, 0x74, 0x66, 0x2f, 0x6a, 0x38, 0xa0, 0xe2, 0xd5, 0x54, 0x44, 0xeb,
+  0x1d, 0x07, 0x9f, 0x07, 0xba, 0x6f, 0xee, 0xe9, 0xfd, 0x4e, 0x0b, 0x29,
+  0xf5, 0x3e, 0x84, 0xa0, 0x01, 0xf1, 0x9c, 0xab, 0xf8, 0x1c, 0x7e, 0x89,
+  0xa4, 0xe8, 0xa1, 0xd8, 0x71, 0x65, 0x0d, 0xa3, 0x51, 0x7b, 0xee, 0xbc,
+  0xd2, 0x22, 0x60, 0x0d, 0xb9, 0x5b, 0x9d, 0xdf, 0xba, 0xfc, 0x51, 0x5b,
+  0x0b, 0xaf, 0x98, 0xb2, 0xe9, 0x2e, 0xe9, 0x04, 0xe8, 0x62, 0x87, 0xde,
+  0x2b, 0xc8, 0xd7, 0x4e, 0xc1, 0x4c, 0x64, 0x1e, 0xdd, 0xcf, 0x87, 0x58,
+  0xba, 0x4a, 0x4f, 0xca, 0x68, 0x07, 0x1d, 0x1c, 0x9d, 0x4a, 0xc6, 0xd5,
+  0x2f, 0x91, 0xcc, 0x7c, 0x71, 0x72, 0x1c, 0xc5, 0xc0, 0x67, 0xeb, 0x32,
+  0xfd, 0xc9, 0x92, 0x5c, 0x94, 0xda, 0x85, 0xc0, 0x9b, 0xbf, 0x53, 0x7d,
+  0x2b, 0x09, 0xf4, 0x8c, 0x9d, 0x91, 0x1f, 0x97, 0x6a, 0x52, 0xcb, 0xde,
+  0x09, 0x36, 0xa4, 0x77, 0xd8, 0x7b, 0x87, 0x50, 0x44, 0xd5, 0x3e, 0x6e,
+  0x29, 0x69, 0xfb, 0x39, 0x49, 0x26, 0x1e, 0x09, 0xa5, 0x80, 0x7b, 0x40,
+  0x2d, 0xeb, 0xe8, 0x27, 0x85, 0xc9, 0xfe, 0x61, 0xfd, 0x7e, 0xe6, 0x7c,
+  0x97, 0x1d, 0xd5, 0x9d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xc2,
+  0x30, 0x81, 0xbf, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x3b, 0x06, 0x03,
+  0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55,
+  0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+  0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+  0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x40, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x39, 0x30, 0x37, 0x30, 0x35, 0xa0, 0x33, 0xa0,
+  0x31, 0x86, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69,
+  0x75, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x84, 0xa8, 0x4c,
+  0xc9, 0x3e, 0x2a, 0xbc, 0x9a, 0xe2, 0xcc, 0x8f, 0x0b, 0xb2, 0x25, 0x77,
+  0xc4, 0x61, 0x89, 0x89, 0x63, 0x5a, 0xd4, 0xa3, 0x15, 0x40, 0xd4, 0xfb,
+  0x5e, 0x3f, 0xb4, 0x43, 0xea, 0x63, 0x17, 0x2b, 0x6b, 0x99, 0x74, 0x9e,
+  0x09, 0xa8, 0xdd, 0xd4, 0x56, 0x15, 0x2e, 0x7a, 0x79, 0x31, 0x5f, 0x63,
+  0x96, 0x53, 0x1b, 0x34, 0xd9, 0x15, 0xea, 0x4f, 0x6d, 0x70, 0xca, 0xbe,
+  0xf6, 0x82, 0xa9, 0xed, 0xda, 0x85, 0x77, 0xcc, 0x76, 0x1c, 0x6a, 0x81,
+  0x0a, 0x21, 0xd8, 0x41, 0x99, 0x7f, 0x5e, 0x2e, 0x82, 0xc1, 0xe8, 0xaa,
+  0xf7, 0x93, 0x81, 0x05, 0xaa, 0x92, 0xb4, 0x1f, 0xb7, 0x9a, 0xc0, 0x07,
+  0x17, 0xf5, 0xcb, 0xc6, 0xb4, 0x4c, 0x0e, 0xd7, 0x56, 0xdc, 0x71, 0x20,
+  0x74, 0x38, 0xd6, 0x74, 0xc6, 0xd6, 0x8f, 0x6b, 0xaf, 0x8b, 0x8d, 0xa0,
+  0x6c, 0x29, 0x0b, 0x61, 0xe0,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            06:7f:94:57:85:87:e8:ac:77:de:b2:53:32:5b:bc:99:8b:56:0d
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Amazon, CN=Amazon Root CA 1
+        Validity
+            Not Before: Oct 22 00:00:00 2015 GMT
+            Not After : Oct 19 00:00:00 2025 GMT
+        Subject: C=US, O=Amazon, OU=Server CA 1B, CN=Amazon
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c2:4e:16:67:dd:ce:bc:6a:c8:37:5a:ec:3a:30:
+                    b0:1d:e6:d1:12:e8:12:28:48:cc:e8:29:c1:b9:6e:
+                    53:d5:a3:eb:03:39:1a:cc:77:87:f6:01:b9:d9:70:
+                    cc:cf:6b:8d:e3:e3:03:71:86:99:6d:cb:a6:94:2a:
+                    4e:13:d6:a7:bd:04:ec:0a:16:3c:0a:eb:39:b1:c4:
+                    b5:58:a3:b6:c7:56:25:ec:3e:52:7a:a8:e3:29:16:
+                    07:b9:6e:50:cf:fb:5f:31:f8:1d:ba:03:4a:62:89:
+                    03:ae:3e:47:f2:0f:27:91:e3:14:20:85:f8:fa:e9:
+                    8a:35:f5:5f:9e:99:4d:e7:6b:37:ef:a4:50:3e:44:
+                    ec:fa:5a:85:66:07:9c:7e:17:6a:55:f3:17:8a:35:
+                    1e:ee:e9:ac:c3:75:4e:58:55:7d:53:6b:0a:6b:9b:
+                    14:42:d7:e5:ac:01:89:b3:ea:a3:fe:cf:c0:2b:0c:
+                    84:c2:d8:53:15:cb:67:f0:d0:88:ca:3a:d1:17:73:
+                    f5:5f:9a:d4:c5:72:1e:7e:01:f1:98:30:63:2a:aa:
+                    f2:7a:2d:c5:e2:02:1a:86:e5:32:3e:0e:bd:11:b4:
+                    cf:3c:93:ef:17:50:10:9e:43:c2:06:2a:e0:0d:68:
+                    be:d3:88:8b:4a:65:8c:4a:d4:c3:2e:4c:9b:55:f4:
+                    86:e5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                59:A4:66:06:52:A0:7B:95:92:3C:A3:94:07:27:96:74:5B:F9:3D:D0
+            X509v3 Authority Key Identifier: 
+                keyid:84:18:CC:85:34:EC:BC:0C:94:94:2E:08:59:9C:C7:B2:10:4E:0A:08
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.rootca1.amazontrust.com
+                CA Issuers - URI:http://crt.rootca1.amazontrust.com/rootca1.cer
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.rootca1.amazontrust.com/rootca1.crl
+
+            X509v3 Certificate Policies: 
+                Policy: 2.23.140.1.2.1
+
+    Signature Algorithm: sha256WithRSAEncryption
+         85:92:be:35:bb:79:cf:a3:81:42:1c:e4:e3:63:73:53:39:52:
+         35:e7:d1:ad:fd:ae:99:8a:ac:89:12:2f:bb:e7:6f:9a:d5:4e:
+         72:ea:20:30:61:f9:97:b2:cd:a5:27:02:45:a8:ca:76:3e:98:
+         4a:83:9e:b6:e6:45:e0:f2:43:f6:08:de:6d:e8:6e:db:31:07:
+         13:f0:2f:31:0d:93:6d:61:37:7b:58:f0:fc:51:98:91:28:02:
+         4f:05:76:b7:d3:f0:1b:c2:e6:5e:d0:66:85:11:0f:2e:81:c6:
+         10:81:29:fe:20:60:48:f3:f2:f0:84:13:53:65:35:15:11:6b:
+         82:51:40:55:57:5f:18:b5:b0:22:3e:ad:f2:5e:a3:01:e3:c3:
+         b3:f9:cb:41:5a:e6:52:91:bb:e4:36:87:4f:2d:a9:a4:07:68:
+         35:ba:94:72:cd:0e:ea:0e:7d:57:f2:79:fc:37:c5:7b:60:9e:
+         b2:eb:c0:2d:90:77:0d:49:10:27:a5:38:ad:c4:12:a3:b4:a3:
+         c8:48:b3:15:0b:1e:e2:e2:19:dc:c4:76:52:c8:bc:8a:41:78:
+         70:d9:6d:97:b3:4a:8b:78:2d:5e:b4:0f:a3:4c:60:ca:e1:47:
+         cb:78:2d:12:17:b1:52:8b:ca:39:2c:bd:b5:2f:c2:33:02:96:
+         ab:da:94:7f
+-----BEGIN CERTIFICATE-----
+MIIESTCCAzGgAwIBAgITBn+UV4WH6Kx33rJTMlu8mYtWDTANBgkqhkiG9w0BAQsF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAxMB4XDTE1MTAyMjAwMDAwMFoXDTI1MTAxOTAwMDAwMFowRjEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEVMBMGA1UECxMMU2VydmVyIENB
+IDFCMQ8wDQYDVQQDEwZBbWF6b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDCThZn3c68asg3Wuw6MLAd5tES6BIoSMzoKcG5blPVo+sDORrMd4f2AbnZ
+cMzPa43j4wNxhplty6aUKk4T1qe9BOwKFjwK6zmxxLVYo7bHViXsPlJ6qOMpFge5
+blDP+18x+B26A0piiQOuPkfyDyeR4xQghfj66Yo19V+emU3nazfvpFA+ROz6WoVm
+B5x+F2pV8xeKNR7u6azDdU5YVX1TawprmxRC1+WsAYmz6qP+z8ArDITC2FMVy2fw
+0IjKOtEXc/VfmtTFch5+AfGYMGMqqvJ6LcXiAhqG5TI+Dr0RtM88k+8XUBCeQ8IG
+KuANaL7TiItKZYxK1MMuTJtV9IblAgMBAAGjggE7MIIBNzASBgNVHRMBAf8ECDAG
+AQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUWaRmBlKge5WSPKOUByeW
+dFv5PdAwHwYDVR0jBBgwFoAUhBjMhTTsvAyUlC4IWZzHshBOCggwewYIKwYBBQUH
+AQEEbzBtMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC5yb290Y2ExLmFtYXpvbnRy
+dXN0LmNvbTA6BggrBgEFBQcwAoYuaHR0cDovL2NydC5yb290Y2ExLmFtYXpvbnRy
+dXN0LmNvbS9yb290Y2ExLmNlcjA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3Js
+LnJvb3RjYTEuYW1hem9udHJ1c3QuY29tL3Jvb3RjYTEuY3JsMBMGA1UdIAQMMAow
+CAYGZ4EMAQIBMA0GCSqGSIb3DQEBCwUAA4IBAQCFkr41u3nPo4FCHOTjY3NTOVI1
+59Gt/a6ZiqyJEi+752+a1U5y6iAwYfmXss2lJwJFqMp2PphKg5625kXg8kP2CN5t
+6G7bMQcT8C8xDZNtYTd7WPD8UZiRKAJPBXa30/AbwuZe0GaFEQ8ugcYQgSn+IGBI
+8/LwhBNTZTUVEWuCUUBVV18YtbAiPq3yXqMB48Oz+ctBWuZSkbvkNodPLamkB2g1
+upRyzQ7qDn1X8nn8N8V7YJ6y68AtkHcNSRAnpTitxBKjtKPISLMVCx7i4hncxHZS
+yLyKQXhw2W2Xs0qLeC1etA+jTGDK4UfLeC0SF7FSi8o5LL21L8IzApar2pR/
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert7[] = {
+  0x30, 0x82, 0x04, 0x49, 0x30, 0x82, 0x03, 0x31, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x13, 0x06, 0x7f, 0x94, 0x57, 0x85, 0x87, 0xe8, 0xac, 0x77,
+  0xde, 0xb2, 0x53, 0x32, 0x5b, 0xbc, 0x99, 0x8b, 0x56, 0x0d, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x30, 0x39, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x06, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x31, 0x19, 0x30,
+  0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10, 0x41, 0x6d, 0x61, 0x7a,
+  0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31,
+  0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x31, 0x30, 0x32, 0x32, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x31, 0x30, 0x31,
+  0x39, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x46, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x06, 0x41, 0x6d,
+  0x61, 0x7a, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41,
+  0x20, 0x31, 0x42, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x06, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xc2, 0x4e, 0x16, 0x67, 0xdd, 0xce, 0xbc,
+  0x6a, 0xc8, 0x37, 0x5a, 0xec, 0x3a, 0x30, 0xb0, 0x1d, 0xe6, 0xd1, 0x12,
+  0xe8, 0x12, 0x28, 0x48, 0xcc, 0xe8, 0x29, 0xc1, 0xb9, 0x6e, 0x53, 0xd5,
+  0xa3, 0xeb, 0x03, 0x39, 0x1a, 0xcc, 0x77, 0x87, 0xf6, 0x01, 0xb9, 0xd9,
+  0x70, 0xcc, 0xcf, 0x6b, 0x8d, 0xe3, 0xe3, 0x03, 0x71, 0x86, 0x99, 0x6d,
+  0xcb, 0xa6, 0x94, 0x2a, 0x4e, 0x13, 0xd6, 0xa7, 0xbd, 0x04, 0xec, 0x0a,
+  0x16, 0x3c, 0x0a, 0xeb, 0x39, 0xb1, 0xc4, 0xb5, 0x58, 0xa3, 0xb6, 0xc7,
+  0x56, 0x25, 0xec, 0x3e, 0x52, 0x7a, 0xa8, 0xe3, 0x29, 0x16, 0x07, 0xb9,
+  0x6e, 0x50, 0xcf, 0xfb, 0x5f, 0x31, 0xf8, 0x1d, 0xba, 0x03, 0x4a, 0x62,
+  0x89, 0x03, 0xae, 0x3e, 0x47, 0xf2, 0x0f, 0x27, 0x91, 0xe3, 0x14, 0x20,
+  0x85, 0xf8, 0xfa, 0xe9, 0x8a, 0x35, 0xf5, 0x5f, 0x9e, 0x99, 0x4d, 0xe7,
+  0x6b, 0x37, 0xef, 0xa4, 0x50, 0x3e, 0x44, 0xec, 0xfa, 0x5a, 0x85, 0x66,
+  0x07, 0x9c, 0x7e, 0x17, 0x6a, 0x55, 0xf3, 0x17, 0x8a, 0x35, 0x1e, 0xee,
+  0xe9, 0xac, 0xc3, 0x75, 0x4e, 0x58, 0x55, 0x7d, 0x53, 0x6b, 0x0a, 0x6b,
+  0x9b, 0x14, 0x42, 0xd7, 0xe5, 0xac, 0x01, 0x89, 0xb3, 0xea, 0xa3, 0xfe,
+  0xcf, 0xc0, 0x2b, 0x0c, 0x84, 0xc2, 0xd8, 0x53, 0x15, 0xcb, 0x67, 0xf0,
+  0xd0, 0x88, 0xca, 0x3a, 0xd1, 0x17, 0x73, 0xf5, 0x5f, 0x9a, 0xd4, 0xc5,
+  0x72, 0x1e, 0x7e, 0x01, 0xf1, 0x98, 0x30, 0x63, 0x2a, 0xaa, 0xf2, 0x7a,
+  0x2d, 0xc5, 0xe2, 0x02, 0x1a, 0x86, 0xe5, 0x32, 0x3e, 0x0e, 0xbd, 0x11,
+  0xb4, 0xcf, 0x3c, 0x93, 0xef, 0x17, 0x50, 0x10, 0x9e, 0x43, 0xc2, 0x06,
+  0x2a, 0xe0, 0x0d, 0x68, 0xbe, 0xd3, 0x88, 0x8b, 0x4a, 0x65, 0x8c, 0x4a,
+  0xd4, 0xc3, 0x2e, 0x4c, 0x9b, 0x55, 0xf4, 0x86, 0xe5, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x3b, 0x30, 0x82, 0x01, 0x37, 0x30, 0x12,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+  0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x59, 0xa4, 0x66,
+  0x06, 0x52, 0xa0, 0x7b, 0x95, 0x92, 0x3c, 0xa3, 0x94, 0x07, 0x27, 0x96,
+  0x74, 0x5b, 0xf9, 0x3d, 0xd0, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x84, 0x18, 0xcc, 0x85, 0x34, 0xec,
+  0xbc, 0x0c, 0x94, 0x94, 0x2e, 0x08, 0x59, 0x9c, 0xc7, 0xb2, 0x10, 0x4e,
+  0x0a, 0x08, 0x30, 0x7b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x01, 0x01, 0x04, 0x6f, 0x30, 0x6d, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x72, 0x6f, 0x6f, 0x74,
+  0x63, 0x61, 0x31, 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3a, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2e, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x74, 0x2e, 0x72, 0x6f, 0x6f, 0x74,
+  0x63, 0x61, 0x31, 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
+  0x63, 0x61, 0x31, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x3f, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x38, 0x30, 0x36, 0x30, 0x34, 0xa0, 0x32, 0xa0, 0x30,
+  0x86, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+  0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x61, 0x31, 0x2e, 0x61, 0x6d, 0x61,
+  0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0c, 0x30, 0x0a, 0x30,
+  0x08, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x01, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0x85, 0x92, 0xbe, 0x35, 0xbb, 0x79, 0xcf,
+  0xa3, 0x81, 0x42, 0x1c, 0xe4, 0xe3, 0x63, 0x73, 0x53, 0x39, 0x52, 0x35,
+  0xe7, 0xd1, 0xad, 0xfd, 0xae, 0x99, 0x8a, 0xac, 0x89, 0x12, 0x2f, 0xbb,
+  0xe7, 0x6f, 0x9a, 0xd5, 0x4e, 0x72, 0xea, 0x20, 0x30, 0x61, 0xf9, 0x97,
+  0xb2, 0xcd, 0xa5, 0x27, 0x02, 0x45, 0xa8, 0xca, 0x76, 0x3e, 0x98, 0x4a,
+  0x83, 0x9e, 0xb6, 0xe6, 0x45, 0xe0, 0xf2, 0x43, 0xf6, 0x08, 0xde, 0x6d,
+  0xe8, 0x6e, 0xdb, 0x31, 0x07, 0x13, 0xf0, 0x2f, 0x31, 0x0d, 0x93, 0x6d,
+  0x61, 0x37, 0x7b, 0x58, 0xf0, 0xfc, 0x51, 0x98, 0x91, 0x28, 0x02, 0x4f,
+  0x05, 0x76, 0xb7, 0xd3, 0xf0, 0x1b, 0xc2, 0xe6, 0x5e, 0xd0, 0x66, 0x85,
+  0x11, 0x0f, 0x2e, 0x81, 0xc6, 0x10, 0x81, 0x29, 0xfe, 0x20, 0x60, 0x48,
+  0xf3, 0xf2, 0xf0, 0x84, 0x13, 0x53, 0x65, 0x35, 0x15, 0x11, 0x6b, 0x82,
+  0x51, 0x40, 0x55, 0x57, 0x5f, 0x18, 0xb5, 0xb0, 0x22, 0x3e, 0xad, 0xf2,
+  0x5e, 0xa3, 0x01, 0xe3, 0xc3, 0xb3, 0xf9, 0xcb, 0x41, 0x5a, 0xe6, 0x52,
+  0x91, 0xbb, 0xe4, 0x36, 0x87, 0x4f, 0x2d, 0xa9, 0xa4, 0x07, 0x68, 0x35,
+  0xba, 0x94, 0x72, 0xcd, 0x0e, 0xea, 0x0e, 0x7d, 0x57, 0xf2, 0x79, 0xfc,
+  0x37, 0xc5, 0x7b, 0x60, 0x9e, 0xb2, 0xeb, 0xc0, 0x2d, 0x90, 0x77, 0x0d,
+  0x49, 0x10, 0x27, 0xa5, 0x38, 0xad, 0xc4, 0x12, 0xa3, 0xb4, 0xa3, 0xc8,
+  0x48, 0xb3, 0x15, 0x0b, 0x1e, 0xe2, 0xe2, 0x19, 0xdc, 0xc4, 0x76, 0x52,
+  0xc8, 0xbc, 0x8a, 0x41, 0x78, 0x70, 0xd9, 0x6d, 0x97, 0xb3, 0x4a, 0x8b,
+  0x78, 0x2d, 0x5e, 0xb4, 0x0f, 0xa3, 0x4c, 0x60, 0xca, 0xe1, 0x47, 0xcb,
+  0x78, 0x2d, 0x12, 0x17, 0xb1, 0x52, 0x8b, 0xca, 0x39, 0x2c, 0xbd, 0xb5,
+  0x2f, 0xc2, 0x33, 0x02, 0x96, 0xab, 0xda, 0x94, 0x7f,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146033 (0x23a71)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Dec 11 23:45:51 2013 GMT
+            Not After : May 20 23:45:51 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bb:58:c1:12:01:2e:97:d8:7d:18:aa:c8:c2:e5:
+                    85:e2:17:6c:60:2e:c9:8d:31:05:39:1a:06:98:56:
+                    dd:54:d7:11:8c:59:5b:3d:b1:54:ae:4b:21:85:32:
+                    16:5f:54:86:e6:d9:b1:d8:60:89:6b:58:be:72:da:
+                    a0:00:42:76:b1:27:59:4c:cd:e3:ba:d4:5c:d9:a6:
+                    7f:bb:2b:75:d5:46:44:bd:ec:40:5c:59:b7:dd:59:
+                    9f:f1:6a:f7:06:fc:d6:2f:19:8a:95:12:ba:9a:ca:
+                    d5:30:d2:38:fc:19:3b:5b:15:3b:36:d0:43:4d:d1:
+                    65:a1:d4:8b:c1:60:41:b3:d6:70:17:cc:39:c0:9c:
+                    0c:a0:3d:b7:11:22:4e:ce:d9:a9:7a:d2:2a:62:9c:
+                    a0:0b:4e:2a:d7:c3:61:5a:85:dd:5c:10:b9:54:3d:
+                    2d:03:f8:49:f0:bc:92:b7:b7:9c:31:c7:e9:b8:aa:
+                    82:0b:05:b9:31:cd:08:5b:bb:22:0b:f6:9c:8e:8a:
+                    55:1c:76:43:76:f0:e2:6e:f0:df:a8:29:75:e7:c8:
+                    a4:87:8b:6a:f1:bb:08:c9:36:18:65:ee:50:43:b8:
+                    5d:72:d5:28:39:e1:53:3e:25:2c:da:2b:4f:dd:8a:
+                    9e:50:50:e0:6f:9a:c4:d5:19:26:89:01:75:73:09:
+                    9b:3b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                97:C2:27:50:9E:C2:C9:EC:0C:88:32:C8:7C:AD:E2:A6:01:4F:DA:6F
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g1.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-569
+    Signature Algorithm: sha256WithRSAEncryption
+         35:eb:e1:8b:20:56:94:ba:7a:bd:79:a9:f6:e3:fe:6e:38:b4:
+         32:c1:a3:db:58:56:20:3e:7d:c7:3a:b1:67:69:d5:79:14:1b:
+         f6:fa:ec:60:f2:79:cd:0a:0c:60:8a:74:4c:a3:93:2a:a0:f0:
+         51:7f:cd:e9:f9:92:fd:96:ab:45:f5:62:3d:3f:60:46:50:13:
+         3d:20:13:18:2e:94:46:ae:d5:21:fe:43:a1:c9:23:fe:53:c4:
+         bf:1a:d8:ac:3a:ca:de:66:97:23:ae:d3:df:4a:4d:73:1f:6f:
+         31:a2:51:04:16:6a:00:eb:f9:8d:43:81:f0:50:a1:1f:a6:ca:
+         3a:f3:28:3c:5f:51:ac:d7:0a:45:77:4b:0e:52:62:1b:d8:38:
+         51:a0:92:2d:3f:90:6e:c8:7e:40:9f:20:46:15:5d:e0:50:7c:
+         e1:76:af:5e:ed:11:d3:2f:13:b9:b8:25:a4:af:58:09:af:35:
+         b4:62:54:85:e3:48:de:bc:d2:90:7a:7a:a4:84:0d:a3:42:f2:
+         51:c0:d4:ad:53:65:5d:6c:f8:3f:1f:06:f2:4f:cb:97:a0:4a:
+         59:c6:78:d1:e8:03:b9:85:6d:2c:ba:e1:5f:b6:ad:2b:3e:25:
+         79:c5:8b:56:d5:e3:09:80:ea:c1:27:c2:d9:0e:ec:47:0a:e9:
+         d0:ca:fc:d8
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgIDAjpxMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMxMjExMjM0NTUxWhcNMjIwNTIwMjM0NTUxWjBCMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSUmFwaWRTU0wg
+U0hBMjU2IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1jBEgEu
+l9h9GKrIwuWF4hdsYC7JjTEFORoGmFbdVNcRjFlbPbFUrkshhTIWX1SG5tmx2GCJ
+a1i+ctqgAEJ2sSdZTM3jutRc2aZ/uyt11UZEvexAXFm33Vmf8Wr3BvzWLxmKlRK6
+msrVMNI4/Bk7WxU7NtBDTdFlodSLwWBBs9ZwF8w5wJwMoD23ESJOztmpetIqYpyg
+C04q18NhWoXdXBC5VD0tA/hJ8LySt7ecMcfpuKqCCwW5Mc0IW7siC/acjopVHHZD
+dvDibvDfqCl158ikh4tq8bsIyTYYZe5QQ7hdctUoOeFTPiUs2itP3YqeUFDgb5rE
+1RkmiQF1cwmbOwIDAQABo4IBSjCCAUYwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwR
+fap9ZbjKzE4wHQYDVR0OBBYEFJfCJ1CewsnsDIgyyHyt4qYBT9pvMBIGA1UdEwEB
+/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDYGA1UdHwQvMC0wK6ApoCeGJWh0
+dHA6Ly9nMS5zeW1jYi5jb20vY3Jscy9ndGdsb2JhbC5jcmwwLwYIKwYBBQUHAQEE
+IzAhMB8GCCsGAQUFBzABhhNodHRwOi8vZzIuc3ltY2IuY29tMEwGA1UdIARFMEMw
+QQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3RydXN0
+LmNvbS9yZXNvdXJjZXMvY3BzMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1h
+bnRlY1BLSS0xLTU2OTANBgkqhkiG9w0BAQsFAAOCAQEANevhiyBWlLp6vXmp9uP+
+bji0MsGj21hWID59xzqxZ2nVeRQb9vrsYPJ5zQoMYIp0TKOTKqDwUX/N6fmS/Zar
+RfViPT9gRlATPSATGC6URq7VIf5Dockj/lPEvxrYrDrK3maXI67T30pNcx9vMaJR
+BBZqAOv5jUOB8FChH6bKOvMoPF9RrNcKRXdLDlJiG9g4UaCSLT+Qbsh+QJ8gRhVd
+4FB84XavXu0R0y8TubglpK9YCa81tGJUheNI3rzSkHp6pIQNo0LyUcDUrVNlXWz4
+Px8G8k/Ll6BKWcZ40egDuYVtLLrhX7atKz4lecWLVtXjCYDqwSfC2Q7sRwrp0Mr8
+2A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert8[] = {
+  0x30, 0x82, 0x04, 0x4d, 0x30, 0x82, 0x03, 0x35, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x71, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31,
+  0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x35, 0x31, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x33, 0x34, 0x35, 0x35, 0x31,
+  0x5a, 0x30, 0x42, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x12, 0x52, 0x61, 0x70, 0x69, 0x64, 0x53, 0x53, 0x4c, 0x20,
+  0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbb, 0x58, 0xc1, 0x12, 0x01, 0x2e,
+  0x97, 0xd8, 0x7d, 0x18, 0xaa, 0xc8, 0xc2, 0xe5, 0x85, 0xe2, 0x17, 0x6c,
+  0x60, 0x2e, 0xc9, 0x8d, 0x31, 0x05, 0x39, 0x1a, 0x06, 0x98, 0x56, 0xdd,
+  0x54, 0xd7, 0x11, 0x8c, 0x59, 0x5b, 0x3d, 0xb1, 0x54, 0xae, 0x4b, 0x21,
+  0x85, 0x32, 0x16, 0x5f, 0x54, 0x86, 0xe6, 0xd9, 0xb1, 0xd8, 0x60, 0x89,
+  0x6b, 0x58, 0xbe, 0x72, 0xda, 0xa0, 0x00, 0x42, 0x76, 0xb1, 0x27, 0x59,
+  0x4c, 0xcd, 0xe3, 0xba, 0xd4, 0x5c, 0xd9, 0xa6, 0x7f, 0xbb, 0x2b, 0x75,
+  0xd5, 0x46, 0x44, 0xbd, 0xec, 0x40, 0x5c, 0x59, 0xb7, 0xdd, 0x59, 0x9f,
+  0xf1, 0x6a, 0xf7, 0x06, 0xfc, 0xd6, 0x2f, 0x19, 0x8a, 0x95, 0x12, 0xba,
+  0x9a, 0xca, 0xd5, 0x30, 0xd2, 0x38, 0xfc, 0x19, 0x3b, 0x5b, 0x15, 0x3b,
+  0x36, 0xd0, 0x43, 0x4d, 0xd1, 0x65, 0xa1, 0xd4, 0x8b, 0xc1, 0x60, 0x41,
+  0xb3, 0xd6, 0x70, 0x17, 0xcc, 0x39, 0xc0, 0x9c, 0x0c, 0xa0, 0x3d, 0xb7,
+  0x11, 0x22, 0x4e, 0xce, 0xd9, 0xa9, 0x7a, 0xd2, 0x2a, 0x62, 0x9c, 0xa0,
+  0x0b, 0x4e, 0x2a, 0xd7, 0xc3, 0x61, 0x5a, 0x85, 0xdd, 0x5c, 0x10, 0xb9,
+  0x54, 0x3d, 0x2d, 0x03, 0xf8, 0x49, 0xf0, 0xbc, 0x92, 0xb7, 0xb7, 0x9c,
+  0x31, 0xc7, 0xe9, 0xb8, 0xaa, 0x82, 0x0b, 0x05, 0xb9, 0x31, 0xcd, 0x08,
+  0x5b, 0xbb, 0x22, 0x0b, 0xf6, 0x9c, 0x8e, 0x8a, 0x55, 0x1c, 0x76, 0x43,
+  0x76, 0xf0, 0xe2, 0x6e, 0xf0, 0xdf, 0xa8, 0x29, 0x75, 0xe7, 0xc8, 0xa4,
+  0x87, 0x8b, 0x6a, 0xf1, 0xbb, 0x08, 0xc9, 0x36, 0x18, 0x65, 0xee, 0x50,
+  0x43, 0xb8, 0x5d, 0x72, 0xd5, 0x28, 0x39, 0xe1, 0x53, 0x3e, 0x25, 0x2c,
+  0xda, 0x2b, 0x4f, 0xdd, 0x8a, 0x9e, 0x50, 0x50, 0xe0, 0x6f, 0x9a, 0xc4,
+  0xd5, 0x19, 0x26, 0x89, 0x01, 0x75, 0x73, 0x09, 0x9b, 0x3b, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4a, 0x30, 0x82, 0x01, 0x46, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+  0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x97, 0xc2, 0x27, 0x50, 0x9e,
+  0xc2, 0xc9, 0xec, 0x0c, 0x88, 0x32, 0xc8, 0x7c, 0xad, 0xe2, 0xa6, 0x01,
+  0x4f, 0xda, 0x6f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2f,
+  0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27, 0x86, 0x25, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63,
+  0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67,
+  0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+  0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+  0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+  0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d,
+  0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30,
+  0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61,
+  0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35, 0x36,
+  0x39, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x35, 0xeb, 0xe1,
+  0x8b, 0x20, 0x56, 0x94, 0xba, 0x7a, 0xbd, 0x79, 0xa9, 0xf6, 0xe3, 0xfe,
+  0x6e, 0x38, 0xb4, 0x32, 0xc1, 0xa3, 0xdb, 0x58, 0x56, 0x20, 0x3e, 0x7d,
+  0xc7, 0x3a, 0xb1, 0x67, 0x69, 0xd5, 0x79, 0x14, 0x1b, 0xf6, 0xfa, 0xec,
+  0x60, 0xf2, 0x79, 0xcd, 0x0a, 0x0c, 0x60, 0x8a, 0x74, 0x4c, 0xa3, 0x93,
+  0x2a, 0xa0, 0xf0, 0x51, 0x7f, 0xcd, 0xe9, 0xf9, 0x92, 0xfd, 0x96, 0xab,
+  0x45, 0xf5, 0x62, 0x3d, 0x3f, 0x60, 0x46, 0x50, 0x13, 0x3d, 0x20, 0x13,
+  0x18, 0x2e, 0x94, 0x46, 0xae, 0xd5, 0x21, 0xfe, 0x43, 0xa1, 0xc9, 0x23,
+  0xfe, 0x53, 0xc4, 0xbf, 0x1a, 0xd8, 0xac, 0x3a, 0xca, 0xde, 0x66, 0x97,
+  0x23, 0xae, 0xd3, 0xdf, 0x4a, 0x4d, 0x73, 0x1f, 0x6f, 0x31, 0xa2, 0x51,
+  0x04, 0x16, 0x6a, 0x00, 0xeb, 0xf9, 0x8d, 0x43, 0x81, 0xf0, 0x50, 0xa1,
+  0x1f, 0xa6, 0xca, 0x3a, 0xf3, 0x28, 0x3c, 0x5f, 0x51, 0xac, 0xd7, 0x0a,
+  0x45, 0x77, 0x4b, 0x0e, 0x52, 0x62, 0x1b, 0xd8, 0x38, 0x51, 0xa0, 0x92,
+  0x2d, 0x3f, 0x90, 0x6e, 0xc8, 0x7e, 0x40, 0x9f, 0x20, 0x46, 0x15, 0x5d,
+  0xe0, 0x50, 0x7c, 0xe1, 0x76, 0xaf, 0x5e, 0xed, 0x11, 0xd3, 0x2f, 0x13,
+  0xb9, 0xb8, 0x25, 0xa4, 0xaf, 0x58, 0x09, 0xaf, 0x35, 0xb4, 0x62, 0x54,
+  0x85, 0xe3, 0x48, 0xde, 0xbc, 0xd2, 0x90, 0x7a, 0x7a, 0xa4, 0x84, 0x0d,
+  0xa3, 0x42, 0xf2, 0x51, 0xc0, 0xd4, 0xad, 0x53, 0x65, 0x5d, 0x6c, 0xf8,
+  0x3f, 0x1f, 0x06, 0xf2, 0x4f, 0xcb, 0x97, 0xa0, 0x4a, 0x59, 0xc6, 0x78,
+  0xd1, 0xe8, 0x03, 0xb9, 0x85, 0x6d, 0x2c, 0xba, 0xe1, 0x5f, 0xb6, 0xad,
+  0x2b, 0x3e, 0x25, 0x79, 0xc5, 0x8b, 0x56, 0xd5, 0xe3, 0x09, 0x80, 0xea,
+  0xc1, 0x27, 0xc2, 0xd9, 0x0e, 0xec, 0x47, 0x0a, 0xe9, 0xd0, 0xca, 0xfc,
+  0xd8,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:00:00:00:00:01:44:4e:f0:36:31
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+        Validity
+            Not Before: Feb 20 10:00:00 2014 GMT
+            Not After : Feb 20 10:00:00 2024 GMT
+        Subject: C=BE, O=GlobalSign nv-sa, CN=AlphaSSL CA - SHA256 - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:da:01:ec:e4:ec:73:60:fb:7e:8f:6a:b7:c6:17:
+                    e3:92:64:32:d4:ac:00:d9:a2:0f:b9:ed:ee:6b:8a:
+                    86:ca:92:67:d9:74:d7:5d:47:02:3c:8f:40:d6:9e:
+                    6d:14:cd:c3:da:29:39:a7:0f:05:0a:68:a2:66:1a:
+                    1e:c4:b2:8b:76:58:e5:ab:5d:1d:8f:40:b3:39:8b:
+                    ef:1e:83:7d:22:d0:e3:a9:00:2e:ec:53:cf:62:19:
+                    85:44:28:4c:c0:27:cb:7b:0e:ec:10:64:00:10:a4:
+                    05:cc:a0:72:be:41:6c:31:5b:48:e4:b1:ec:b9:23:
+                    eb:55:4d:d0:7d:62:4a:a5:b4:a5:a4:59:85:c5:25:
+                    91:a6:fe:a6:09:9f:06:10:6d:8f:81:0c:64:40:5e:
+                    73:00:9a:e0:2e:65:98:54:10:00:70:98:c8:e1:ed:
+                    34:5f:d8:9c:c7:0d:c0:d6:23:59:45:fc:fe:55:7a:
+                    86:ee:94:60:22:f1:ae:d1:e6:55:46:f6:99:c5:1b:
+                    08:74:5f:ac:b0:64:84:8f:89:38:1c:a1:a7:90:21:
+                    4f:02:6e:bd:e0:61:67:d4:f8:42:87:0f:0a:f7:c9:
+                    04:6d:2a:a9:2f:ef:42:a5:df:dd:a3:53:db:98:1e:
+                    81:f9:9a:72:7b:5a:de:4f:3e:7f:a2:58:a0:e2:17:
+                    ad:67
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Subject Key Identifier: 
+                F5:CD:D5:3C:08:50:F9:6A:4F:3A:B7:97:DA:56:83:E6:69:D2:68:F7
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.alphassl.com/repository/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.globalsign.net/root.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+            X509v3 Authority Key Identifier: 
+                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+    Signature Algorithm: sha256WithRSAEncryption
+         60:40:68:16:47:e7:16:8d:db:5c:a1:56:2a:cb:f4:5c:9b:b0:
+         1e:a2:4b:f5:cb:02:3f:f8:0b:a1:f2:a7:42:d4:b7:4c:eb:e3:
+         66:80:f3:25:43:78:2e:1b:17:56:07:52:18:cb:d1:a8:ec:e6:
+         fb:73:3e:a4:62:8c:80:b4:d2:c5:12:73:a3:d3:fa:02:38:be:
+         63:3d:84:b8:99:c1:f1:ba:f7:9f:c3:40:d1:58:18:53:c1:62:
+         dd:af:18:42:7f:34:4e:c5:43:d5:71:b0:30:00:c7:e3:90:ae:
+         3f:57:86:97:ce:ea:0c:12:8e:22:70:e3:66:a7:54:7f:2e:28:
+         cb:d4:54:d0:b3:1e:62:67:08:f9:27:e1:cb:e3:66:b8:24:1b:
+         89:6a:89:44:65:f2:d9:4c:d2:58:1c:8c:4e:c0:95:a1:d4:ef:
+         67:2f:38:20:e8:2e:ff:96:51:f0:ba:d8:3d:92:70:47:65:1c:
+         9e:73:72:b4:60:0c:5c:e2:d1:73:76:e0:af:4e:e2:e5:37:a5:
+         45:2f:8a:23:3e:87:c7:30:e6:31:38:7c:f4:dd:52:ca:f3:53:
+         04:25:57:56:66:94:e8:0b:ee:e6:03:14:4e:ee:fd:6d:94:64:
+         9e:5e:ce:79:d4:b2:a6:cf:40:b1:44:a8:3e:87:19:5e:e9:f8:
+         21:16:59:53
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgILBAAAAAABRE7wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMEwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMSIwIAYDVQQDExlBbHBoYVNTTCBDQSAtIFNIQTI1NiAtIEcy
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gHs5OxzYPt+j2q3xhfj
+kmQy1KwA2aIPue3ua4qGypJn2XTXXUcCPI9A1p5tFM3D2ik5pw8FCmiiZhoexLKL
+dljlq10dj0CzOYvvHoN9ItDjqQAu7FPPYhmFRChMwCfLew7sEGQAEKQFzKByvkFs
+MVtI5LHsuSPrVU3QfWJKpbSlpFmFxSWRpv6mCZ8GEG2PgQxkQF5zAJrgLmWYVBAA
+cJjI4e00X9icxw3A1iNZRfz+VXqG7pRgIvGu0eZVRvaZxRsIdF+ssGSEj4k4HKGn
+kCFPAm694GFn1PhChw8K98kEbSqpL+9Cpd/do1PbmB6B+Zpye1reTz5/olig4het
+ZwIDAQABo4IBIzCCAR8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwHQYDVR0OBBYEFPXN1TwIUPlqTzq3l9pWg+Zp0mj3MEUGA1UdIAQ+MDwwOgYE
+VR0gADAyMDAGCCsGAQUFBwIBFiRodHRwczovL3d3dy5hbHBoYXNzbC5jb20vcmVw
+b3NpdG9yeS8wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5nbG9iYWxzaWdu
+Lm5ldC9yb290LmNybDA9BggrBgEFBQcBAQQxMC8wLQYIKwYBBQUHMAGGIWh0dHA6
+Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMTAfBgNVHSMEGDAWgBRge2YaRQ2X
+yolQL30EzTSo//z9SzANBgkqhkiG9w0BAQsFAAOCAQEAYEBoFkfnFo3bXKFWKsv0
+XJuwHqJL9csCP/gLofKnQtS3TOvjZoDzJUN4LhsXVgdSGMvRqOzm+3M+pGKMgLTS
+xRJzo9P6Aji+Yz2EuJnB8br3n8NA0VgYU8Fi3a8YQn80TsVD1XGwMADH45CuP1eG
+l87qDBKOInDjZqdUfy4oy9RU0LMeYmcI+Sfhy+NmuCQbiWqJRGXy2UzSWByMTsCV
+odTvZy84IOgu/5ZR8LrYPZJwR2UcnnNytGAMXOLRc3bgr07i5TelRS+KIz6HxzDm
+MTh89N1SyvNTBCVXVmaU6Avu5gMUTu79bZRknl7OedSyps9AsUSoPocZXun4IRZZ
+Uw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert9[] = {
+  0x30, 0x82, 0x04, 0x4d, 0x30, 0x82, 0x03, 0x35, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+  0x36, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+  0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+  0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4c, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+  0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+  0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x41,
+  0x6c, 0x70, 0x68, 0x61, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+  0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x01, 0xec,
+  0xe4, 0xec, 0x73, 0x60, 0xfb, 0x7e, 0x8f, 0x6a, 0xb7, 0xc6, 0x17, 0xe3,
+  0x92, 0x64, 0x32, 0xd4, 0xac, 0x00, 0xd9, 0xa2, 0x0f, 0xb9, 0xed, 0xee,
+  0x6b, 0x8a, 0x86, 0xca, 0x92, 0x67, 0xd9, 0x74, 0xd7, 0x5d, 0x47, 0x02,
+  0x3c, 0x8f, 0x40, 0xd6, 0x9e, 0x6d, 0x14, 0xcd, 0xc3, 0xda, 0x29, 0x39,
+  0xa7, 0x0f, 0x05, 0x0a, 0x68, 0xa2, 0x66, 0x1a, 0x1e, 0xc4, 0xb2, 0x8b,
+  0x76, 0x58, 0xe5, 0xab, 0x5d, 0x1d, 0x8f, 0x40, 0xb3, 0x39, 0x8b, 0xef,
+  0x1e, 0x83, 0x7d, 0x22, 0xd0, 0xe3, 0xa9, 0x00, 0x2e, 0xec, 0x53, 0xcf,
+  0x62, 0x19, 0x85, 0x44, 0x28, 0x4c, 0xc0, 0x27, 0xcb, 0x7b, 0x0e, 0xec,
+  0x10, 0x64, 0x00, 0x10, 0xa4, 0x05, 0xcc, 0xa0, 0x72, 0xbe, 0x41, 0x6c,
+  0x31, 0x5b, 0x48, 0xe4, 0xb1, 0xec, 0xb9, 0x23, 0xeb, 0x55, 0x4d, 0xd0,
+  0x7d, 0x62, 0x4a, 0xa5, 0xb4, 0xa5, 0xa4, 0x59, 0x85, 0xc5, 0x25, 0x91,
+  0xa6, 0xfe, 0xa6, 0x09, 0x9f, 0x06, 0x10, 0x6d, 0x8f, 0x81, 0x0c, 0x64,
+  0x40, 0x5e, 0x73, 0x00, 0x9a, 0xe0, 0x2e, 0x65, 0x98, 0x54, 0x10, 0x00,
+  0x70, 0x98, 0xc8, 0xe1, 0xed, 0x34, 0x5f, 0xd8, 0x9c, 0xc7, 0x0d, 0xc0,
+  0xd6, 0x23, 0x59, 0x45, 0xfc, 0xfe, 0x55, 0x7a, 0x86, 0xee, 0x94, 0x60,
+  0x22, 0xf1, 0xae, 0xd1, 0xe6, 0x55, 0x46, 0xf6, 0x99, 0xc5, 0x1b, 0x08,
+  0x74, 0x5f, 0xac, 0xb0, 0x64, 0x84, 0x8f, 0x89, 0x38, 0x1c, 0xa1, 0xa7,
+  0x90, 0x21, 0x4f, 0x02, 0x6e, 0xbd, 0xe0, 0x61, 0x67, 0xd4, 0xf8, 0x42,
+  0x87, 0x0f, 0x0a, 0xf7, 0xc9, 0x04, 0x6d, 0x2a, 0xa9, 0x2f, 0xef, 0x42,
+  0xa5, 0xdf, 0xdd, 0xa3, 0x53, 0xdb, 0x98, 0x1e, 0x81, 0xf9, 0x9a, 0x72,
+  0x7b, 0x5a, 0xde, 0x4f, 0x3e, 0x7f, 0xa2, 0x58, 0xa0, 0xe2, 0x17, 0xad,
+  0x67, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x23, 0x30, 0x82,
+  0x01, 0x1f, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0xf5, 0xcd, 0xd5, 0x3c, 0x08, 0x50, 0xf9, 0x6a, 0x4f, 0x3a, 0xb7,
+  0x97, 0xda, 0x56, 0x83, 0xe6, 0x69, 0xd2, 0x68, 0xf7, 0x30, 0x45, 0x06,
+  0x03, 0x55, 0x1d, 0x20, 0x04, 0x3e, 0x30, 0x3c, 0x30, 0x3a, 0x06, 0x04,
+  0x55, 0x1d, 0x20, 0x00, 0x30, 0x32, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x24, 0x68, 0x74, 0x74, 0x70,
+  0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, 0x6c, 0x70, 0x68,
+  0x61, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+  0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0,
+  0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e,
+  0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+  0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+  0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f,
+  0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97,
+  0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd,
+  0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x60, 0x40, 0x68,
+  0x16, 0x47, 0xe7, 0x16, 0x8d, 0xdb, 0x5c, 0xa1, 0x56, 0x2a, 0xcb, 0xf4,
+  0x5c, 0x9b, 0xb0, 0x1e, 0xa2, 0x4b, 0xf5, 0xcb, 0x02, 0x3f, 0xf8, 0x0b,
+  0xa1, 0xf2, 0xa7, 0x42, 0xd4, 0xb7, 0x4c, 0xeb, 0xe3, 0x66, 0x80, 0xf3,
+  0x25, 0x43, 0x78, 0x2e, 0x1b, 0x17, 0x56, 0x07, 0x52, 0x18, 0xcb, 0xd1,
+  0xa8, 0xec, 0xe6, 0xfb, 0x73, 0x3e, 0xa4, 0x62, 0x8c, 0x80, 0xb4, 0xd2,
+  0xc5, 0x12, 0x73, 0xa3, 0xd3, 0xfa, 0x02, 0x38, 0xbe, 0x63, 0x3d, 0x84,
+  0xb8, 0x99, 0xc1, 0xf1, 0xba, 0xf7, 0x9f, 0xc3, 0x40, 0xd1, 0x58, 0x18,
+  0x53, 0xc1, 0x62, 0xdd, 0xaf, 0x18, 0x42, 0x7f, 0x34, 0x4e, 0xc5, 0x43,
+  0xd5, 0x71, 0xb0, 0x30, 0x00, 0xc7, 0xe3, 0x90, 0xae, 0x3f, 0x57, 0x86,
+  0x97, 0xce, 0xea, 0x0c, 0x12, 0x8e, 0x22, 0x70, 0xe3, 0x66, 0xa7, 0x54,
+  0x7f, 0x2e, 0x28, 0xcb, 0xd4, 0x54, 0xd0, 0xb3, 0x1e, 0x62, 0x67, 0x08,
+  0xf9, 0x27, 0xe1, 0xcb, 0xe3, 0x66, 0xb8, 0x24, 0x1b, 0x89, 0x6a, 0x89,
+  0x44, 0x65, 0xf2, 0xd9, 0x4c, 0xd2, 0x58, 0x1c, 0x8c, 0x4e, 0xc0, 0x95,
+  0xa1, 0xd4, 0xef, 0x67, 0x2f, 0x38, 0x20, 0xe8, 0x2e, 0xff, 0x96, 0x51,
+  0xf0, 0xba, 0xd8, 0x3d, 0x92, 0x70, 0x47, 0x65, 0x1c, 0x9e, 0x73, 0x72,
+  0xb4, 0x60, 0x0c, 0x5c, 0xe2, 0xd1, 0x73, 0x76, 0xe0, 0xaf, 0x4e, 0xe2,
+  0xe5, 0x37, 0xa5, 0x45, 0x2f, 0x8a, 0x23, 0x3e, 0x87, 0xc7, 0x30, 0xe6,
+  0x31, 0x38, 0x7c, 0xf4, 0xdd, 0x52, 0xca, 0xf3, 0x53, 0x04, 0x25, 0x57,
+  0x56, 0x66, 0x94, 0xe8, 0x0b, 0xee, 0xe6, 0x03, 0x14, 0x4e, 0xee, 0xfd,
+  0x6d, 0x94, 0x64, 0x9e, 0x5e, 0xce, 0x79, 0xd4, 0xb2, 0xa6, 0xcf, 0x40,
+  0xb1, 0x44, 0xa8, 0x3e, 0x87, 0x19, 0x5e, 0xe9, 0xf8, 0x21, 0x16, 0x59,
+  0x53,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146031 (0x23a6f)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Nov  5 21:36:50 2013 GMT
+            Not After : May 20 21:36:50 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e3:be:7e:0a:86:a3:cf:6b:6d:3d:2b:a1:97:ad:
+                    49:24:4d:d7:77:b9:34:79:08:a5:9e:a2:9e:de:47:
+                    12:92:3d:7e:ea:19:86:b1:e8:4f:3d:5f:f7:d0:a7:
+                    77:9a:5b:1f:0a:03:b5:19:53:db:a5:21:94:69:63:
+                    9d:6a:4c:91:0c:10:47:be:11:fa:6c:86:25:b7:ab:
+                    04:68:42:38:09:65:f0:14:da:19:9e:fa:6b:0b:ab:
+                    62:ef:8d:a7:ef:63:70:23:a8:af:81:f3:d1:6e:88:
+                    67:53:ec:12:a4:29:75:8a:a7:f2:57:3d:a2:83:98:
+                    97:f2:0a:7d:d4:e7:43:6e:30:78:62:22:59:59:b8:
+                    71:27:45:aa:0f:66:c6:55:3f:fa:32:17:2b:31:8f:
+                    46:a0:fa:69:14:7c:9d:9f:5a:e2:eb:33:4e:10:a6:
+                    b3:ed:77:63:d8:c3:9e:f4:dd:df:79:9a:7a:d4:ee:
+                    de:dd:9a:cc:c3:b7:a9:5d:cc:11:3a:07:bb:6f:97:
+                    a4:01:23:47:95:1f:a3:77:fa:58:92:c6:c7:d0:bd:
+                    cf:93:18:42:b7:7e:f7:9e:65:ea:d5:3b:ca:ed:ac:
+                    c5:70:a1:fe:d4:10:9a:f0:12:04:44:ac:1a:5b:78:
+                    50:45:57:4c:6f:bd:80:cb:81:5c:2d:b3:bc:76:a1:
+                    1e:65
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                D2:6F:F7:96:F4:85:3F:72:3C:30:7D:23:DA:85:78:9B:A3:7C:5A:7C
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g1.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-539
+    Signature Algorithm: sha256WithRSAEncryption
+         a0:d4:f7:2c:fb:74:0b:7f:64:f1:cd:43:6a:9f:62:53:1c:02:
+         7c:98:90:a2:ee:4f:68:d4:20:1a:73:12:3e:77:b3:50:eb:72:
+         bc:ee:88:be:7f:17:ea:77:8f:83:61:95:4f:84:a1:cb:32:4f:
+         6c:21:be:d2:69:96:7d:63:bd:dc:2b:a8:1f:d0:13:84:70:fe:
+         f6:35:95:89:f9:a6:77:b0:46:c8:bb:b7:13:f5:c9:60:69:d6:
+         4c:fe:d2:8e:ef:d3:60:c1:80:80:e1:e7:fb:8b:6f:21:79:4a:
+         e0:dc:a9:1b:c1:b7:fb:c3:49:59:5c:b5:77:07:44:d4:97:fc:
+         49:00:89:6f:06:4e:01:70:19:ac:2f:11:c0:e2:e6:0f:2f:86:
+         4b:8d:7b:c3:b9:a7:2e:f4:f1:ac:16:3e:39:49:51:9e:17:4b:
+         4f:10:3a:5b:a5:a8:92:6f:fd:fa:d6:0b:03:4d:47:56:57:19:
+         f3:cb:6b:f5:f3:d6:cf:b0:f5:f5:a3:11:d2:20:53:13:34:37:
+         05:2c:43:5a:63:df:8d:40:d6:85:1e:51:e9:51:17:1e:03:56:
+         c9:f1:30:ad:e7:9b:11:a2:b9:d0:31:81:9b:68:b1:d9:e8:f3:
+         e6:94:7e:c7:ae:13:2f:87:ed:d0:25:b0:68:f9:de:08:5a:f3:
+         29:cc:d4:92
+-----BEGIN CERTIFICATE-----
+MIIETzCCAzegAwIBAgIDAjpvMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTMxMTA1MjEzNjUwWhcNMjIwNTIwMjEzNjUwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDjvn4K
+hqPPa209K6GXrUkkTdd3uTR5CKWeop7eRxKSPX7qGYax6E89X/fQp3eaWx8KA7UZ
+U9ulIZRpY51qTJEMEEe+EfpshiW3qwRoQjgJZfAU2hme+msLq2LvjafvY3AjqK+B
+89FuiGdT7BKkKXWKp/JXPaKDmJfyCn3U50NuMHhiIllZuHEnRaoPZsZVP/oyFysx
+j0ag+mkUfJ2fWuLrM04QprPtd2PYw5703d95mnrU7t7dmszDt6ldzBE6B7tvl6QB
+I0eVH6N3+liSxsfQvc+TGEK3fveeZerVO8rtrMVwof7UEJrwEgRErBpbeFBFV0xv
+vYDLgVwts7x2oR5lAgMBAAGjggFKMIIBRjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQU0m/3lvSFP3I8MH0j2oV4m6N8WnwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNgYDVR0fBC8wLTAroCmgJ4Yl
+aHR0cDovL2cxLnN5bWNiLmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAvBggrBgEFBQcB
+AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9nMi5zeW1jYi5jb20wTAYDVR0gBEUw
+QzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2VvdHJ1
+c3QuY29tL3Jlc291cmNlcy9jcHMwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5
+bWFudGVjUEtJLTEtNTM5MA0GCSqGSIb3DQEBCwUAA4IBAQCg1Pcs+3QLf2TxzUNq
+n2JTHAJ8mJCi7k9o1CAacxI+d7NQ63K87oi+fxfqd4+DYZVPhKHLMk9sIb7SaZZ9
+Y73cK6gf0BOEcP72NZWJ+aZ3sEbIu7cT9clgadZM/tKO79NgwYCA4ef7i28heUrg
+3Kkbwbf7w0lZXLV3B0TUl/xJAIlvBk4BcBmsLxHA4uYPL4ZLjXvDuacu9PGsFj45
+SVGeF0tPEDpbpaiSb/361gsDTUdWVxnzy2v189bPsPX1oxHSIFMTNDcFLENaY9+N
+QNaFHlHpURceA1bJ8TCt55sRornQMYGbaLHZ6PPmlH7HrhMvh+3QJbBo+d4IWvMp
+zNSS
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert10[] = {
+  0x30, 0x82, 0x04, 0x4f, 0x30, 0x82, 0x03, 0x37, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x6f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31,
+  0x31, 0x30, 0x35, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x31, 0x33, 0x36, 0x35, 0x30,
+  0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe3, 0xbe, 0x7e, 0x0a,
+  0x86, 0xa3, 0xcf, 0x6b, 0x6d, 0x3d, 0x2b, 0xa1, 0x97, 0xad, 0x49, 0x24,
+  0x4d, 0xd7, 0x77, 0xb9, 0x34, 0x79, 0x08, 0xa5, 0x9e, 0xa2, 0x9e, 0xde,
+  0x47, 0x12, 0x92, 0x3d, 0x7e, 0xea, 0x19, 0x86, 0xb1, 0xe8, 0x4f, 0x3d,
+  0x5f, 0xf7, 0xd0, 0xa7, 0x77, 0x9a, 0x5b, 0x1f, 0x0a, 0x03, 0xb5, 0x19,
+  0x53, 0xdb, 0xa5, 0x21, 0x94, 0x69, 0x63, 0x9d, 0x6a, 0x4c, 0x91, 0x0c,
+  0x10, 0x47, 0xbe, 0x11, 0xfa, 0x6c, 0x86, 0x25, 0xb7, 0xab, 0x04, 0x68,
+  0x42, 0x38, 0x09, 0x65, 0xf0, 0x14, 0xda, 0x19, 0x9e, 0xfa, 0x6b, 0x0b,
+  0xab, 0x62, 0xef, 0x8d, 0xa7, 0xef, 0x63, 0x70, 0x23, 0xa8, 0xaf, 0x81,
+  0xf3, 0xd1, 0x6e, 0x88, 0x67, 0x53, 0xec, 0x12, 0xa4, 0x29, 0x75, 0x8a,
+  0xa7, 0xf2, 0x57, 0x3d, 0xa2, 0x83, 0x98, 0x97, 0xf2, 0x0a, 0x7d, 0xd4,
+  0xe7, 0x43, 0x6e, 0x30, 0x78, 0x62, 0x22, 0x59, 0x59, 0xb8, 0x71, 0x27,
+  0x45, 0xaa, 0x0f, 0x66, 0xc6, 0x55, 0x3f, 0xfa, 0x32, 0x17, 0x2b, 0x31,
+  0x8f, 0x46, 0xa0, 0xfa, 0x69, 0x14, 0x7c, 0x9d, 0x9f, 0x5a, 0xe2, 0xeb,
+  0x33, 0x4e, 0x10, 0xa6, 0xb3, 0xed, 0x77, 0x63, 0xd8, 0xc3, 0x9e, 0xf4,
+  0xdd, 0xdf, 0x79, 0x9a, 0x7a, 0xd4, 0xee, 0xde, 0xdd, 0x9a, 0xcc, 0xc3,
+  0xb7, 0xa9, 0x5d, 0xcc, 0x11, 0x3a, 0x07, 0xbb, 0x6f, 0x97, 0xa4, 0x01,
+  0x23, 0x47, 0x95, 0x1f, 0xa3, 0x77, 0xfa, 0x58, 0x92, 0xc6, 0xc7, 0xd0,
+  0xbd, 0xcf, 0x93, 0x18, 0x42, 0xb7, 0x7e, 0xf7, 0x9e, 0x65, 0xea, 0xd5,
+  0x3b, 0xca, 0xed, 0xac, 0xc5, 0x70, 0xa1, 0xfe, 0xd4, 0x10, 0x9a, 0xf0,
+  0x12, 0x04, 0x44, 0xac, 0x1a, 0x5b, 0x78, 0x50, 0x45, 0x57, 0x4c, 0x6f,
+  0xbd, 0x80, 0xcb, 0x81, 0x5c, 0x2d, 0xb3, 0xbc, 0x76, 0xa1, 0x1e, 0x65,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4a, 0x30, 0x82, 0x01,
+  0x46, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+  0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xd2, 0x6f, 0xf7,
+  0x96, 0xf4, 0x85, 0x3f, 0x72, 0x3c, 0x30, 0x7d, 0x23, 0xda, 0x85, 0x78,
+  0x9b, 0xa3, 0x7c, 0x5a, 0x7c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x36, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27, 0x86, 0x25,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+  0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73,
+  0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72,
+  0x6c, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01,
+  0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+  0x6f, 0x6d, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30,
+  0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+  0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75,
+  0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03,
+  0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+  0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+  0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+  0x35, 0x33, 0x39, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa0,
+  0xd4, 0xf7, 0x2c, 0xfb, 0x74, 0x0b, 0x7f, 0x64, 0xf1, 0xcd, 0x43, 0x6a,
+  0x9f, 0x62, 0x53, 0x1c, 0x02, 0x7c, 0x98, 0x90, 0xa2, 0xee, 0x4f, 0x68,
+  0xd4, 0x20, 0x1a, 0x73, 0x12, 0x3e, 0x77, 0xb3, 0x50, 0xeb, 0x72, 0xbc,
+  0xee, 0x88, 0xbe, 0x7f, 0x17, 0xea, 0x77, 0x8f, 0x83, 0x61, 0x95, 0x4f,
+  0x84, 0xa1, 0xcb, 0x32, 0x4f, 0x6c, 0x21, 0xbe, 0xd2, 0x69, 0x96, 0x7d,
+  0x63, 0xbd, 0xdc, 0x2b, 0xa8, 0x1f, 0xd0, 0x13, 0x84, 0x70, 0xfe, 0xf6,
+  0x35, 0x95, 0x89, 0xf9, 0xa6, 0x77, 0xb0, 0x46, 0xc8, 0xbb, 0xb7, 0x13,
+  0xf5, 0xc9, 0x60, 0x69, 0xd6, 0x4c, 0xfe, 0xd2, 0x8e, 0xef, 0xd3, 0x60,
+  0xc1, 0x80, 0x80, 0xe1, 0xe7, 0xfb, 0x8b, 0x6f, 0x21, 0x79, 0x4a, 0xe0,
+  0xdc, 0xa9, 0x1b, 0xc1, 0xb7, 0xfb, 0xc3, 0x49, 0x59, 0x5c, 0xb5, 0x77,
+  0x07, 0x44, 0xd4, 0x97, 0xfc, 0x49, 0x00, 0x89, 0x6f, 0x06, 0x4e, 0x01,
+  0x70, 0x19, 0xac, 0x2f, 0x11, 0xc0, 0xe2, 0xe6, 0x0f, 0x2f, 0x86, 0x4b,
+  0x8d, 0x7b, 0xc3, 0xb9, 0xa7, 0x2e, 0xf4, 0xf1, 0xac, 0x16, 0x3e, 0x39,
+  0x49, 0x51, 0x9e, 0x17, 0x4b, 0x4f, 0x10, 0x3a, 0x5b, 0xa5, 0xa8, 0x92,
+  0x6f, 0xfd, 0xfa, 0xd6, 0x0b, 0x03, 0x4d, 0x47, 0x56, 0x57, 0x19, 0xf3,
+  0xcb, 0x6b, 0xf5, 0xf3, 0xd6, 0xcf, 0xb0, 0xf5, 0xf5, 0xa3, 0x11, 0xd2,
+  0x20, 0x53, 0x13, 0x34, 0x37, 0x05, 0x2c, 0x43, 0x5a, 0x63, 0xdf, 0x8d,
+  0x40, 0xd6, 0x85, 0x1e, 0x51, 0xe9, 0x51, 0x17, 0x1e, 0x03, 0x56, 0xc9,
+  0xf1, 0x30, 0xad, 0xe7, 0x9b, 0x11, 0xa2, 0xb9, 0xd0, 0x31, 0x81, 0x9b,
+  0x68, 0xb1, 0xd9, 0xe8, 0xf3, 0xe6, 0x94, 0x7e, 0xc7, 0xae, 0x13, 0x2f,
+  0x87, 0xed, 0xd0, 0x25, 0xb0, 0x68, 0xf9, 0xde, 0x08, 0x5a, 0xf3, 0x29,
+  0xcc, 0xd4, 0x92,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146019 (0x23a63)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Aug 27 20:40:40 2012 GMT
+            Not After : May 20 20:40:40 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SSL CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b9:27:f9:4f:d8:f6:b7:15:3f:8f:cd:ce:d6:8d:
+                    1c:6b:fd:7f:da:54:21:4e:03:d8:ca:d0:72:52:15:
+                    b8:c9:82:5b:58:79:84:ff:24:72:6f:f2:69:7f:bc:
+                    96:d9:9a:7a:c3:3e:a9:cf:50:22:13:0e:86:19:db:
+                    e8:49:ef:8b:e6:d6:47:f2:fd:73:45:08:ae:8f:ac:
+                    5e:b6:f8:9e:7c:f7:10:ff:92:43:66:ef:1c:d4:ee:
+                    a1:46:88:11:89:49:79:7a:25:ce:4b:6a:f0:d7:1c:
+                    76:1a:29:3c:c9:e4:fd:1e:85:dc:e0:31:65:05:47:
+                    16:ac:0a:07:4b:2e:70:5e:6b:06:a7:6b:3a:6c:af:
+                    05:12:c4:b2:11:25:d6:3e:97:29:f0:83:6c:57:1c:
+                    d8:a5:ef:cc:ec:fd:d6:12:f1:3f:db:40:b4:ae:0f:
+                    18:d3:c5:af:40:92:5d:07:5e:4e:fe:62:17:37:89:
+                    e9:8b:74:26:a2:ed:b8:0a:e7:6c:15:5b:35:90:72:
+                    dd:d8:4d:21:d4:40:23:5c:8f:ee:80:31:16:ab:68:
+                    55:f4:0e:3b:54:e9:04:4d:f0:cc:4e:81:5e:e9:6f:
+                    52:69:4e:be:a6:16:6d:42:f5:51:ff:e0:0b:56:3c:
+                    98:4f:73:8f:0e:6f:1a:23:f1:c9:c8:d9:df:bc:ec:
+                    52:d7
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                11:4A:D0:73:39:D5:5B:69:08:5C:BA:3D:BF:64:9A:A8:8B:1C:55:BC
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.geotrust.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-254
+    Signature Algorithm: sha1WithRSAEncryption
+         3c:e5:3d:5a:1b:a2:37:2a:e3:46:cf:36:96:18:3c:7b:f1:84:
+         c5:57:86:77:40:9d:35:f0:12:f0:78:18:fb:22:a4:de:98:4b:
+         78:81:e6:4d:86:e3:91:0f:42:e3:b9:dc:a0:d6:ff:a9:f8:b1:
+         79:97:99:d1:c3:6c:42:a5:92:94:e0:5d:0c:33:18:25:c9:2b:
+         95:53:e0:e5:a9:0c:7d:47:fe:7f:51:31:44:5e:f7:2a:1e:35:
+         a2:94:32:f7:c9:ee:c0:b6:c6:9a:ac:de:99:21:6a:23:a0:38:
+         64:ee:a3:c4:88:73:32:3b:50:ce:bf:ad:d3:75:1e:a6:f4:e9:
+         f9:42:6b:60:b2:dd:45:fd:5d:57:08:ce:2d:50:e6:12:32:16:
+         13:8a:f2:94:a2:9b:47:a8:86:7f:d9:98:e5:f7:e5:76:74:64:
+         d8:91:bc:84:16:28:d8:25:44:30:7e:82:d8:ac:b1:e4:c0:e4:
+         15:6c:db:b6:24:27:02:2a:01:12:85:ba:31:88:58:47:74:e3:
+         b8:d2:64:a6:c3:32:59:2e:29:4b:45:f1:5b:89:49:2e:82:9a:
+         c6:18:15:44:d0:2e:64:01:15:68:38:f9:f6:f9:66:03:0c:55:
+         1b:9d:bf:00:40:ae:f0:48:27:4c:e0:80:5e:2d:b9:2a:15:7a:
+         bc:66:f8:35
+-----BEGIN CERTIFICATE-----
+MIIEWTCCA0GgAwIBAgIDAjpjMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTIwODI3MjA0MDQwWhcNMjIwNTIwMjA0MDQwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+U1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5J/lP
+2Pa3FT+Pzc7WjRxr/X/aVCFOA9jK0HJSFbjJgltYeYT/JHJv8ml/vJbZmnrDPqnP
+UCITDoYZ2+hJ74vm1kfy/XNFCK6PrF62+J589xD/kkNm7xzU7qFGiBGJSXl6Jc5L
+avDXHHYaKTzJ5P0ehdzgMWUFRxasCgdLLnBeawanazpsrwUSxLIRJdY+lynwg2xX
+HNil78zs/dYS8T/bQLSuDxjTxa9Akl0HXk7+Yhc3iemLdCai7bgK52wVWzWQct3Y
+TSHUQCNcj+6AMRaraFX0DjtU6QRN8MxOgV7pb1JpTr6mFm1C9VH/4AtWPJhPc48O
+bxoj8cnI2d+87FLXAgMBAAGjggFUMIIBUDAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjAdBgNVHQ4EFgQUEUrQcznVW2kIXLo9v2SaqIscVbwwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwOgYDVR0fBDMwMTAvoC2gK4Yp
+aHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Jscy9ndGdsb2JhbC5jcmwwNAYIKwYB
+BQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5nZW90cnVzdC5jb20w
+TAYDVR0gBEUwQzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwKgYDVR0RBCMwIaQfMB0xGzAZ
+BgNVBAMTElZlcmlTaWduTVBLSS0yLTI1NDANBgkqhkiG9w0BAQUFAAOCAQEAPOU9
+WhuiNyrjRs82lhg8e/GExVeGd0CdNfAS8HgY+yKk3phLeIHmTYbjkQ9C47ncoNb/
+qfixeZeZ0cNsQqWSlOBdDDMYJckrlVPg5akMfUf+f1ExRF73Kh41opQy98nuwLbG
+mqzemSFqI6A4ZO6jxIhzMjtQzr+t03UepvTp+UJrYLLdRf1dVwjOLVDmEjIWE4ry
+lKKbR6iGf9mY5ffldnRk2JG8hBYo2CVEMH6C2Kyx5MDkFWzbtiQnAioBEoW6MYhY
+R3TjuNJkpsMyWS4pS0XxW4lJLoKaxhgVRNAuZAEVaDj59vlmAwxVG52/AECu8Egn
+TOCAXi25KhV6vGb4NQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert11[] = {
+  0x30, 0x82, 0x04, 0x59, 0x30, 0x82, 0x03, 0x41, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x63, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x32, 0x30,
+  0x38, 0x32, 0x37, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x30, 0x34, 0x30, 0x34, 0x30,
+  0x5a, 0x30, 0x44, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x14, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+  0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30,
+  0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0x27, 0xf9, 0x4f,
+  0xd8, 0xf6, 0xb7, 0x15, 0x3f, 0x8f, 0xcd, 0xce, 0xd6, 0x8d, 0x1c, 0x6b,
+  0xfd, 0x7f, 0xda, 0x54, 0x21, 0x4e, 0x03, 0xd8, 0xca, 0xd0, 0x72, 0x52,
+  0x15, 0xb8, 0xc9, 0x82, 0x5b, 0x58, 0x79, 0x84, 0xff, 0x24, 0x72, 0x6f,
+  0xf2, 0x69, 0x7f, 0xbc, 0x96, 0xd9, 0x9a, 0x7a, 0xc3, 0x3e, 0xa9, 0xcf,
+  0x50, 0x22, 0x13, 0x0e, 0x86, 0x19, 0xdb, 0xe8, 0x49, 0xef, 0x8b, 0xe6,
+  0xd6, 0x47, 0xf2, 0xfd, 0x73, 0x45, 0x08, 0xae, 0x8f, 0xac, 0x5e, 0xb6,
+  0xf8, 0x9e, 0x7c, 0xf7, 0x10, 0xff, 0x92, 0x43, 0x66, 0xef, 0x1c, 0xd4,
+  0xee, 0xa1, 0x46, 0x88, 0x11, 0x89, 0x49, 0x79, 0x7a, 0x25, 0xce, 0x4b,
+  0x6a, 0xf0, 0xd7, 0x1c, 0x76, 0x1a, 0x29, 0x3c, 0xc9, 0xe4, 0xfd, 0x1e,
+  0x85, 0xdc, 0xe0, 0x31, 0x65, 0x05, 0x47, 0x16, 0xac, 0x0a, 0x07, 0x4b,
+  0x2e, 0x70, 0x5e, 0x6b, 0x06, 0xa7, 0x6b, 0x3a, 0x6c, 0xaf, 0x05, 0x12,
+  0xc4, 0xb2, 0x11, 0x25, 0xd6, 0x3e, 0x97, 0x29, 0xf0, 0x83, 0x6c, 0x57,
+  0x1c, 0xd8, 0xa5, 0xef, 0xcc, 0xec, 0xfd, 0xd6, 0x12, 0xf1, 0x3f, 0xdb,
+  0x40, 0xb4, 0xae, 0x0f, 0x18, 0xd3, 0xc5, 0xaf, 0x40, 0x92, 0x5d, 0x07,
+  0x5e, 0x4e, 0xfe, 0x62, 0x17, 0x37, 0x89, 0xe9, 0x8b, 0x74, 0x26, 0xa2,
+  0xed, 0xb8, 0x0a, 0xe7, 0x6c, 0x15, 0x5b, 0x35, 0x90, 0x72, 0xdd, 0xd8,
+  0x4d, 0x21, 0xd4, 0x40, 0x23, 0x5c, 0x8f, 0xee, 0x80, 0x31, 0x16, 0xab,
+  0x68, 0x55, 0xf4, 0x0e, 0x3b, 0x54, 0xe9, 0x04, 0x4d, 0xf0, 0xcc, 0x4e,
+  0x81, 0x5e, 0xe9, 0x6f, 0x52, 0x69, 0x4e, 0xbe, 0xa6, 0x16, 0x6d, 0x42,
+  0xf5, 0x51, 0xff, 0xe0, 0x0b, 0x56, 0x3c, 0x98, 0x4f, 0x73, 0x8f, 0x0e,
+  0x6f, 0x1a, 0x23, 0xf1, 0xc9, 0xc8, 0xd9, 0xdf, 0xbc, 0xec, 0x52, 0xd7,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x54, 0x30, 0x82, 0x01,
+  0x50, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64,
+  0x0c, 0x11, 0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x11, 0x4a, 0xd0,
+  0x73, 0x39, 0xd5, 0x5b, 0x69, 0x08, 0x5c, 0xba, 0x3d, 0xbf, 0x64, 0x9a,
+  0xa8, 0x8b, 0x1c, 0x55, 0xbc, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x33, 0x30, 0x31, 0x30, 0x2f, 0xa0, 0x2d, 0xa0, 0x2b, 0x86, 0x29,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+  0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74, 0x67, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+  0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41,
+  0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36,
+  0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
+  0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+  0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11,
+  0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53,
+  0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x32, 0x35,
+  0x34, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3c, 0xe5, 0x3d,
+  0x5a, 0x1b, 0xa2, 0x37, 0x2a, 0xe3, 0x46, 0xcf, 0x36, 0x96, 0x18, 0x3c,
+  0x7b, 0xf1, 0x84, 0xc5, 0x57, 0x86, 0x77, 0x40, 0x9d, 0x35, 0xf0, 0x12,
+  0xf0, 0x78, 0x18, 0xfb, 0x22, 0xa4, 0xde, 0x98, 0x4b, 0x78, 0x81, 0xe6,
+  0x4d, 0x86, 0xe3, 0x91, 0x0f, 0x42, 0xe3, 0xb9, 0xdc, 0xa0, 0xd6, 0xff,
+  0xa9, 0xf8, 0xb1, 0x79, 0x97, 0x99, 0xd1, 0xc3, 0x6c, 0x42, 0xa5, 0x92,
+  0x94, 0xe0, 0x5d, 0x0c, 0x33, 0x18, 0x25, 0xc9, 0x2b, 0x95, 0x53, 0xe0,
+  0xe5, 0xa9, 0x0c, 0x7d, 0x47, 0xfe, 0x7f, 0x51, 0x31, 0x44, 0x5e, 0xf7,
+  0x2a, 0x1e, 0x35, 0xa2, 0x94, 0x32, 0xf7, 0xc9, 0xee, 0xc0, 0xb6, 0xc6,
+  0x9a, 0xac, 0xde, 0x99, 0x21, 0x6a, 0x23, 0xa0, 0x38, 0x64, 0xee, 0xa3,
+  0xc4, 0x88, 0x73, 0x32, 0x3b, 0x50, 0xce, 0xbf, 0xad, 0xd3, 0x75, 0x1e,
+  0xa6, 0xf4, 0xe9, 0xf9, 0x42, 0x6b, 0x60, 0xb2, 0xdd, 0x45, 0xfd, 0x5d,
+  0x57, 0x08, 0xce, 0x2d, 0x50, 0xe6, 0x12, 0x32, 0x16, 0x13, 0x8a, 0xf2,
+  0x94, 0xa2, 0x9b, 0x47, 0xa8, 0x86, 0x7f, 0xd9, 0x98, 0xe5, 0xf7, 0xe5,
+  0x76, 0x74, 0x64, 0xd8, 0x91, 0xbc, 0x84, 0x16, 0x28, 0xd8, 0x25, 0x44,
+  0x30, 0x7e, 0x82, 0xd8, 0xac, 0xb1, 0xe4, 0xc0, 0xe4, 0x15, 0x6c, 0xdb,
+  0xb6, 0x24, 0x27, 0x02, 0x2a, 0x01, 0x12, 0x85, 0xba, 0x31, 0x88, 0x58,
+  0x47, 0x74, 0xe3, 0xb8, 0xd2, 0x64, 0xa6, 0xc3, 0x32, 0x59, 0x2e, 0x29,
+  0x4b, 0x45, 0xf1, 0x5b, 0x89, 0x49, 0x2e, 0x82, 0x9a, 0xc6, 0x18, 0x15,
+  0x44, 0xd0, 0x2e, 0x64, 0x01, 0x15, 0x68, 0x38, 0xf9, 0xf6, 0xf9, 0x66,
+  0x03, 0x0c, 0x55, 0x1b, 0x9d, 0xbf, 0x00, 0x40, 0xae, 0xf0, 0x48, 0x27,
+  0x4c, 0xe0, 0x80, 0x5e, 0x2d, 0xb9, 0x2a, 0x15, 0x7a, 0xbc, 0x66, 0xf8,
+  0x35,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:00:00:00:00:01:44:4e:f0:3e:20
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+        Validity
+            Not Before: Feb 20 10:00:00 2014 GMT
+            Not After : Feb 20 10:00:00 2024 GMT
+        Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Domain Validation CA - SHA256 - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a9:dd:cc:0e:b3:e2:32:39:dd:49:22:a8:13:69:
+                    93:87:88:e1:0c:ee:71:7d:bd:90:87:96:5d:59:f2:
+                    cc:b3:d2:58:57:57:f9:46:ef:6c:26:d8:36:42:8e:
+                    7e:30:b3:2f:9a:3e:53:7b:1f:6e:b6:a2:4c:45:1f:
+                    3c:d3:15:93:1c:89:ed:3c:f4:57:de:ca:bd:ec:06:
+                    9a:6a:2a:a0:19:52:7f:51:d1:74:39:08:9f:ab:eb:
+                    d7:86:13:15:97:ae:36:c3:54:66:0e:5a:f2:a0:73:
+                    85:31:e3:b2:64:14:6a:ff:a5:a2:8e:24:bb:bd:85:
+                    52:15:a2:79:ee:f0:b5:ee:3d:b8:f4:7d:80:bc:d9:
+                    90:35:65:b8:17:a9:ad:b3:98:9f:a0:7e:7d:6e:fb:
+                    3f:ad:7c:c2:1b:59:36:96:da:37:32:4b:4b:5d:35:
+                    02:63:8e:db:a7:cf:62:ee:cc:2e:d4:8d:c9:bd:3c:
+                    6a:91:72:a2:22:a7:72:2d:20:d1:fa:ca:37:da:18:
+                    98:e6:16:24:71:25:4b:c4:e5:7b:89:52:09:02:fd:
+                    59:2b:04:6e:ca:07:81:d4:b3:da:da:db:e3:cc:80:
+                    a8:56:07:06:7c:96:08:37:9d:db:38:b6:62:34:91:
+                    62:07:74:01:38:d8:72:30:e2:eb:90:71:26:62:c0:
+                    57:f3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Subject Key Identifier: 
+                EA:4E:7C:D4:80:2D:E5:15:81:86:26:8C:82:6D:C0:98:A4:CF:97:0F
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.globalsign.com/repository/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.globalsign.net/root.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+            X509v3 Authority Key Identifier: 
+                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+    Signature Algorithm: sha256WithRSAEncryption
+         d7:45:9e:a0:dc:e0:e3:61:5a:0b:7d:77:84:17:2d:65:5a:82:
+         9a:8d:a3:27:2a:85:f7:c9:ef:e9:86:fd:d4:47:cd:01:52:96:
+         c5:43:bd:37:b1:e1:b8:f2:a9:d2:8a:11:84:71:91:15:89:dc:
+         02:9d:0b:cb:6c:33:85:34:28:9e:20:b2:b1:97:dc:6d:0b:10:
+         c1:3c:cd:5f:ea:5d:d7:98:31:c5:34:99:5c:00:61:55:c4:1b:
+         02:5b:c5:e3:89:c8:b4:b8:6f:1e:38:f2:56:26:e9:41:ef:3d:
+         cd:ac:99:4f:59:4a:57:2d:4b:7d:ae:c7:88:fb:d6:98:3b:f5:
+         e5:f0:e8:89:89:b9:8b:03:cb:5a:23:1f:a4:fd:b8:ea:fb:2e:
+         9d:ae:6a:73:09:bc:fc:d5:a0:b5:44:82:ab:44:91:2e:50:2e:
+         57:c1:43:d8:91:04:8b:e9:11:2e:5f:b4:3f:79:df:1e:fb:3f:
+         30:00:8b:53:e3:b7:2c:1d:3b:4d:8b:dc:e4:64:1d:04:58:33:
+         af:1b:55:e7:ab:0c:bf:30:04:74:e4:f3:0e:2f:30:39:8d:4b:
+         04:8c:1e:75:66:66:49:e0:be:40:34:c7:5c:5a:51:92:ba:12:
+         3c:52:d5:04:82:55:2d:67:a5:df:b7:95:7c:ee:3f:c3:08:ba:
+         04:be:c0:46
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTYwNAYDVQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0
+aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCp3cwOs+IyOd1JIqgTaZOHiOEM7nF9vZCHll1Z8syz0lhXV/lG72wm2DZC
+jn4wsy+aPlN7H262okxFHzzTFZMcie089Ffeyr3sBppqKqAZUn9R0XQ5CJ+r69eG
+ExWXrjbDVGYOWvKgc4Ux47JkFGr/paKOJLu9hVIVonnu8LXuPbj0fYC82ZA1ZbgX
+qa2zmJ+gfn1u+z+tfMIbWTaW2jcyS0tdNQJjjtunz2LuzC7Ujcm9PGqRcqIip3It
+INH6yjfaGJjmFiRxJUvE5XuJUgkC/VkrBG7KB4HUs9ra2+PMgKhWBwZ8lgg3nds4
+tmI0kWIHdAE42HIw4uuQcSZiwFfzAgMBAAGjggElMIIBITAOBgNVHQ8BAf8EBAMC
+AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6k581IAt5RWBhiaMgm3A
+mKTPlw8wRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+d3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSG
+Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYBBQUHAQEE
+MTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290
+cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZIhvcNAQEL
+BQADggEBANdFnqDc4ONhWgt9d4QXLWVagpqNoycqhffJ7+mG/dRHzQFSlsVDvTex
+4bjyqdKKEYRxkRWJ3AKdC8tsM4U0KJ4gsrGX3G0LEME8zV/qXdeYMcU0mVwAYVXE
+GwJbxeOJyLS4bx448lYm6UHvPc2smU9ZSlctS32ux4j71pg79eXw6ImJuYsDy1oj
+H6T9uOr7Lp2uanMJvPzVoLVEgqtEkS5QLlfBQ9iRBIvpES5ftD953x77PzAAi1Pj
+tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
+EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert12[] = {
+  0x30, 0x82, 0x04, 0x63, 0x30, 0x82, 0x03, 0x4b, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+  0x3e, 0x20, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+  0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+  0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x60, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+  0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+  0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x44, 0x6f,
+  0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x53, 0x48, 0x41,
+  0x32, 0x35, 0x36, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xa9, 0xdd, 0xcc, 0x0e, 0xb3, 0xe2, 0x32,
+  0x39, 0xdd, 0x49, 0x22, 0xa8, 0x13, 0x69, 0x93, 0x87, 0x88, 0xe1, 0x0c,
+  0xee, 0x71, 0x7d, 0xbd, 0x90, 0x87, 0x96, 0x5d, 0x59, 0xf2, 0xcc, 0xb3,
+  0xd2, 0x58, 0x57, 0x57, 0xf9, 0x46, 0xef, 0x6c, 0x26, 0xd8, 0x36, 0x42,
+  0x8e, 0x7e, 0x30, 0xb3, 0x2f, 0x9a, 0x3e, 0x53, 0x7b, 0x1f, 0x6e, 0xb6,
+  0xa2, 0x4c, 0x45, 0x1f, 0x3c, 0xd3, 0x15, 0x93, 0x1c, 0x89, 0xed, 0x3c,
+  0xf4, 0x57, 0xde, 0xca, 0xbd, 0xec, 0x06, 0x9a, 0x6a, 0x2a, 0xa0, 0x19,
+  0x52, 0x7f, 0x51, 0xd1, 0x74, 0x39, 0x08, 0x9f, 0xab, 0xeb, 0xd7, 0x86,
+  0x13, 0x15, 0x97, 0xae, 0x36, 0xc3, 0x54, 0x66, 0x0e, 0x5a, 0xf2, 0xa0,
+  0x73, 0x85, 0x31, 0xe3, 0xb2, 0x64, 0x14, 0x6a, 0xff, 0xa5, 0xa2, 0x8e,
+  0x24, 0xbb, 0xbd, 0x85, 0x52, 0x15, 0xa2, 0x79, 0xee, 0xf0, 0xb5, 0xee,
+  0x3d, 0xb8, 0xf4, 0x7d, 0x80, 0xbc, 0xd9, 0x90, 0x35, 0x65, 0xb8, 0x17,
+  0xa9, 0xad, 0xb3, 0x98, 0x9f, 0xa0, 0x7e, 0x7d, 0x6e, 0xfb, 0x3f, 0xad,
+  0x7c, 0xc2, 0x1b, 0x59, 0x36, 0x96, 0xda, 0x37, 0x32, 0x4b, 0x4b, 0x5d,
+  0x35, 0x02, 0x63, 0x8e, 0xdb, 0xa7, 0xcf, 0x62, 0xee, 0xcc, 0x2e, 0xd4,
+  0x8d, 0xc9, 0xbd, 0x3c, 0x6a, 0x91, 0x72, 0xa2, 0x22, 0xa7, 0x72, 0x2d,
+  0x20, 0xd1, 0xfa, 0xca, 0x37, 0xda, 0x18, 0x98, 0xe6, 0x16, 0x24, 0x71,
+  0x25, 0x4b, 0xc4, 0xe5, 0x7b, 0x89, 0x52, 0x09, 0x02, 0xfd, 0x59, 0x2b,
+  0x04, 0x6e, 0xca, 0x07, 0x81, 0xd4, 0xb3, 0xda, 0xda, 0xdb, 0xe3, 0xcc,
+  0x80, 0xa8, 0x56, 0x07, 0x06, 0x7c, 0x96, 0x08, 0x37, 0x9d, 0xdb, 0x38,
+  0xb6, 0x62, 0x34, 0x91, 0x62, 0x07, 0x74, 0x01, 0x38, 0xd8, 0x72, 0x30,
+  0xe2, 0xeb, 0x90, 0x71, 0x26, 0x62, 0xc0, 0x57, 0xf3, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x25, 0x30, 0x82, 0x01, 0x21, 0x30, 0x0e,
+  0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+  0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+  0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xea, 0x4e, 0x7c,
+  0xd4, 0x80, 0x2d, 0xe5, 0x15, 0x81, 0x86, 0x26, 0x8c, 0x82, 0x6d, 0xc0,
+  0x98, 0xa4, 0xcf, 0x97, 0x0f, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20,
+  0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+  0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69,
+  0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73,
+  0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86,
+  0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e,
+  0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e,
+  0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73,
+  0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74,
+  0x72, 0x31, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89,
+  0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xd7, 0x45, 0x9e, 0xa0, 0xdc,
+  0xe0, 0xe3, 0x61, 0x5a, 0x0b, 0x7d, 0x77, 0x84, 0x17, 0x2d, 0x65, 0x5a,
+  0x82, 0x9a, 0x8d, 0xa3, 0x27, 0x2a, 0x85, 0xf7, 0xc9, 0xef, 0xe9, 0x86,
+  0xfd, 0xd4, 0x47, 0xcd, 0x01, 0x52, 0x96, 0xc5, 0x43, 0xbd, 0x37, 0xb1,
+  0xe1, 0xb8, 0xf2, 0xa9, 0xd2, 0x8a, 0x11, 0x84, 0x71, 0x91, 0x15, 0x89,
+  0xdc, 0x02, 0x9d, 0x0b, 0xcb, 0x6c, 0x33, 0x85, 0x34, 0x28, 0x9e, 0x20,
+  0xb2, 0xb1, 0x97, 0xdc, 0x6d, 0x0b, 0x10, 0xc1, 0x3c, 0xcd, 0x5f, 0xea,
+  0x5d, 0xd7, 0x98, 0x31, 0xc5, 0x34, 0x99, 0x5c, 0x00, 0x61, 0x55, 0xc4,
+  0x1b, 0x02, 0x5b, 0xc5, 0xe3, 0x89, 0xc8, 0xb4, 0xb8, 0x6f, 0x1e, 0x38,
+  0xf2, 0x56, 0x26, 0xe9, 0x41, 0xef, 0x3d, 0xcd, 0xac, 0x99, 0x4f, 0x59,
+  0x4a, 0x57, 0x2d, 0x4b, 0x7d, 0xae, 0xc7, 0x88, 0xfb, 0xd6, 0x98, 0x3b,
+  0xf5, 0xe5, 0xf0, 0xe8, 0x89, 0x89, 0xb9, 0x8b, 0x03, 0xcb, 0x5a, 0x23,
+  0x1f, 0xa4, 0xfd, 0xb8, 0xea, 0xfb, 0x2e, 0x9d, 0xae, 0x6a, 0x73, 0x09,
+  0xbc, 0xfc, 0xd5, 0xa0, 0xb5, 0x44, 0x82, 0xab, 0x44, 0x91, 0x2e, 0x50,
+  0x2e, 0x57, 0xc1, 0x43, 0xd8, 0x91, 0x04, 0x8b, 0xe9, 0x11, 0x2e, 0x5f,
+  0xb4, 0x3f, 0x79, 0xdf, 0x1e, 0xfb, 0x3f, 0x30, 0x00, 0x8b, 0x53, 0xe3,
+  0xb7, 0x2c, 0x1d, 0x3b, 0x4d, 0x8b, 0xdc, 0xe4, 0x64, 0x1d, 0x04, 0x58,
+  0x33, 0xaf, 0x1b, 0x55, 0xe7, 0xab, 0x0c, 0xbf, 0x30, 0x04, 0x74, 0xe4,
+  0xf3, 0x0e, 0x2f, 0x30, 0x39, 0x8d, 0x4b, 0x04, 0x8c, 0x1e, 0x75, 0x66,
+  0x66, 0x49, 0xe0, 0xbe, 0x40, 0x34, 0xc7, 0x5c, 0x5a, 0x51, 0x92, 0xba,
+  0x12, 0x3c, 0x52, 0xd5, 0x04, 0x82, 0x55, 0x2d, 0x67, 0xa5, 0xdf, 0xb7,
+  0x95, 0x7c, 0xee, 0x3f, 0xc3, 0x08, 0xba, 0x04, 0xbe, 0xc0, 0x46,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:00:00:00:00:01:44:4e:f0:42:47
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+        Validity
+            Not Before: Feb 20 10:00:00 2014 GMT
+            Not After : Feb 20 10:00:00 2024 GMT
+        Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c7:0e:6c:3f:23:93:7f:cc:70:a5:9d:20:c3:0e:
+                    53:3f:7e:c0:4e:c2:98:49:ca:47:d5:23:ef:03:34:
+                    85:74:c8:a3:02:2e:46:5c:0b:7d:c9:88:9d:4f:8b:
+                    f0:f8:9c:6c:8c:55:35:db:bf:f2:b3:ea:fb:e3:56:
+                    e7:4a:46:d9:13:22:ca:36:d5:9b:c1:a8:e3:96:43:
+                    93:f2:0c:bc:e6:f9:e6:e8:99:c8:63:48:78:7f:57:
+                    36:69:1a:19:1d:5a:d1:d4:7d:c2:9c:d4:7f:e1:80:
+                    12:ae:7a:ea:88:ea:57:d8:ca:0a:0a:3a:12:49:a2:
+                    62:19:7a:0d:24:f7:37:eb:b4:73:92:7b:05:23:9b:
+                    12:b5:ce:eb:29:df:a4:14:02:b9:01:a5:d4:a6:9c:
+                    43:64:88:de:f8:7e:fe:e3:f5:1e:e5:fe:dc:a3:a8:
+                    e4:66:31:d9:4c:25:e9:18:b9:89:59:09:ae:e9:9d:
+                    1c:6d:37:0f:4a:1e:35:20:28:e2:af:d4:21:8b:01:
+                    c4:45:ad:6e:2b:63:ab:92:6b:61:0a:4d:20:ed:73:
+                    ba:7c:ce:fe:16:b5:db:9f:80:f0:d6:8b:6c:d9:08:
+                    79:4a:4f:78:65:da:92:bc:be:35:f9:b3:c4:f9:27:
+                    80:4e:ff:96:52:e6:02:20:e1:07:73:e9:5d:2b:bd:
+                    b2:f1
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Subject Key Identifier: 
+                96:DE:61:F1:BD:1C:16:29:53:1C:C0:CC:7D:3B:83:00:40:E6:1A:7C
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.globalsign.com/repository/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.globalsign.net/root.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+            X509v3 Authority Key Identifier: 
+                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+    Signature Algorithm: sha256WithRSAEncryption
+         46:2a:ee:5e:bd:ae:01:60:37:31:11:86:71:74:b6:46:49:c8:
+         10:16:fe:2f:62:23:17:ab:1f:87:f8:82:ed:ca:df:0e:2c:df:
+         64:75:8e:e5:18:72:a7:8c:3a:8b:c9:ac:a5:77:50:f7:ef:9e:
+         a4:e0:a0:8f:14:57:a3:2a:5f:ec:7e:6d:10:e6:ba:8d:b0:08:
+         87:76:0e:4c:b2:d9:51:bb:11:02:f2:5c:dd:1c:bd:f3:55:96:
+         0f:d4:06:c0:fc:e2:23:8a:24:70:d3:bb:f0:79:1a:a7:61:70:
+         83:8a:af:06:c5:20:d8:a1:63:d0:6c:ae:4f:32:d7:ae:7c:18:
+         45:75:05:29:77:df:42:40:64:64:86:be:2a:76:09:31:6f:1d:
+         24:f4:99:d0:85:fe:f2:21:08:f9:c6:f6:f1:d0:59:ed:d6:56:
+         3c:08:28:03:67:ba:f0:f9:f1:90:16:47:ae:67:e6:bc:80:48:
+         e9:42:76:34:97:55:69:24:0e:83:d6:a0:2d:b4:f5:f3:79:8a:
+         49:28:74:1a:41:a1:c2:d3:24:88:35:30:60:94:17:b4:e1:04:
+         22:31:3d:3b:2f:17:06:b2:b8:9d:86:2b:5a:69:ef:83:f5:4b:
+         c4:aa:b4:2a:f8:7c:a1:b1:85:94:8c:f4:0c:87:0c:f4:ac:40:
+         f8:59:49:98
+-----BEGIN CERTIFICATE-----
+MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
+MDBaFw0yNDAyMjAxMDAwMDBaMGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMTwwOgYDVQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBW
+YWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDHDmw/I5N/zHClnSDDDlM/fsBOwphJykfVI+8DNIV0yKMCLkZc
+C33JiJ1Pi/D4nGyMVTXbv/Kz6vvjVudKRtkTIso21ZvBqOOWQ5PyDLzm+ebomchj
+SHh/VzZpGhkdWtHUfcKc1H/hgBKueuqI6lfYygoKOhJJomIZeg0k9zfrtHOSewUj
+mxK1zusp36QUArkBpdSmnENkiN74fv7j9R7l/tyjqORmMdlMJekYuYlZCa7pnRxt
+Nw9KHjUgKOKv1CGLAcRFrW4rY6uSa2EKTSDtc7p8zv4WtdufgPDWi2zZCHlKT3hl
+2pK8vjX5s8T5J4BO/5ZS5gIg4Qdz6V0rvbLxAgMBAAGjggElMIIBITAOBgNVHQ8B
+Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUlt5h8b0cFilT
+HMDMfTuDAEDmGnwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0
+dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCow
+KKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYB
+BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNv
+bS9yb290cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZI
+hvcNAQELBQADggEBAEYq7l69rgFgNzERhnF0tkZJyBAW/i9iIxerH4f4gu3K3w4s
+32R1juUYcqeMOovJrKV3UPfvnqTgoI8UV6MqX+x+bRDmuo2wCId2Dkyy2VG7EQLy
+XN0cvfNVlg/UBsD84iOKJHDTu/B5GqdhcIOKrwbFINihY9Bsrk8y1658GEV1BSl3
+30JAZGSGvip2CTFvHST0mdCF/vIhCPnG9vHQWe3WVjwIKANnuvD58ZAWR65n5ryA
+SOlCdjSXVWkkDoPWoC209fN5ikkodBpBocLTJIg1MGCUF7ThBCIxPTsvFwayuJ2G
+K1pp74P1S8SqtCr4fKGxhZSM9AyHDPSsQPhZSZg=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert13[] = {
+  0x30, 0x82, 0x04, 0x69, 0x30, 0x82, 0x03, 0x51, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x4e, 0xf0,
+  0x42, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x07, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69,
+  0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e,
+  0x17, 0x0d, 0x31, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x32, 0x32, 0x30, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
+  0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d, 0x73, 0x61,
+  0x31, 0x3c, 0x30, 0x3a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x33, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x4f, 0x72,
+  0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56,
+  0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x41,
+  0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20,
+  0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc7,
+  0x0e, 0x6c, 0x3f, 0x23, 0x93, 0x7f, 0xcc, 0x70, 0xa5, 0x9d, 0x20, 0xc3,
+  0x0e, 0x53, 0x3f, 0x7e, 0xc0, 0x4e, 0xc2, 0x98, 0x49, 0xca, 0x47, 0xd5,
+  0x23, 0xef, 0x03, 0x34, 0x85, 0x74, 0xc8, 0xa3, 0x02, 0x2e, 0x46, 0x5c,
+  0x0b, 0x7d, 0xc9, 0x88, 0x9d, 0x4f, 0x8b, 0xf0, 0xf8, 0x9c, 0x6c, 0x8c,
+  0x55, 0x35, 0xdb, 0xbf, 0xf2, 0xb3, 0xea, 0xfb, 0xe3, 0x56, 0xe7, 0x4a,
+  0x46, 0xd9, 0x13, 0x22, 0xca, 0x36, 0xd5, 0x9b, 0xc1, 0xa8, 0xe3, 0x96,
+  0x43, 0x93, 0xf2, 0x0c, 0xbc, 0xe6, 0xf9, 0xe6, 0xe8, 0x99, 0xc8, 0x63,
+  0x48, 0x78, 0x7f, 0x57, 0x36, 0x69, 0x1a, 0x19, 0x1d, 0x5a, 0xd1, 0xd4,
+  0x7d, 0xc2, 0x9c, 0xd4, 0x7f, 0xe1, 0x80, 0x12, 0xae, 0x7a, 0xea, 0x88,
+  0xea, 0x57, 0xd8, 0xca, 0x0a, 0x0a, 0x3a, 0x12, 0x49, 0xa2, 0x62, 0x19,
+  0x7a, 0x0d, 0x24, 0xf7, 0x37, 0xeb, 0xb4, 0x73, 0x92, 0x7b, 0x05, 0x23,
+  0x9b, 0x12, 0xb5, 0xce, 0xeb, 0x29, 0xdf, 0xa4, 0x14, 0x02, 0xb9, 0x01,
+  0xa5, 0xd4, 0xa6, 0x9c, 0x43, 0x64, 0x88, 0xde, 0xf8, 0x7e, 0xfe, 0xe3,
+  0xf5, 0x1e, 0xe5, 0xfe, 0xdc, 0xa3, 0xa8, 0xe4, 0x66, 0x31, 0xd9, 0x4c,
+  0x25, 0xe9, 0x18, 0xb9, 0x89, 0x59, 0x09, 0xae, 0xe9, 0x9d, 0x1c, 0x6d,
+  0x37, 0x0f, 0x4a, 0x1e, 0x35, 0x20, 0x28, 0xe2, 0xaf, 0xd4, 0x21, 0x8b,
+  0x01, 0xc4, 0x45, 0xad, 0x6e, 0x2b, 0x63, 0xab, 0x92, 0x6b, 0x61, 0x0a,
+  0x4d, 0x20, 0xed, 0x73, 0xba, 0x7c, 0xce, 0xfe, 0x16, 0xb5, 0xdb, 0x9f,
+  0x80, 0xf0, 0xd6, 0x8b, 0x6c, 0xd9, 0x08, 0x79, 0x4a, 0x4f, 0x78, 0x65,
+  0xda, 0x92, 0xbc, 0xbe, 0x35, 0xf9, 0xb3, 0xc4, 0xf9, 0x27, 0x80, 0x4e,
+  0xff, 0x96, 0x52, 0xe6, 0x02, 0x20, 0xe1, 0x07, 0x73, 0xe9, 0x5d, 0x2b,
+  0xbd, 0xb2, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x25,
+  0x30, 0x82, 0x01, 0x21, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0x96, 0xde, 0x61, 0xf1, 0xbd, 0x1c, 0x16, 0x29, 0x53,
+  0x1c, 0xc0, 0xcc, 0x7d, 0x3b, 0x83, 0x00, 0x40, 0xe6, 0x1a, 0x7c, 0x30,
+  0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x40, 0x30, 0x3e, 0x30, 0x3c,
+  0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74,
+  0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6c,
+  0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30,
+  0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
+  0x73, 0x69, 0x67, 0x6e, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f,
+  0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x72, 0x31, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66,
+  0x1a, 0x45, 0x0d, 0x97, 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34,
+  0xa8, 0xff, 0xfc, 0xfd, 0x4b, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0x46, 0x2a, 0xee, 0x5e, 0xbd, 0xae, 0x01, 0x60, 0x37, 0x31, 0x11,
+  0x86, 0x71, 0x74, 0xb6, 0x46, 0x49, 0xc8, 0x10, 0x16, 0xfe, 0x2f, 0x62,
+  0x23, 0x17, 0xab, 0x1f, 0x87, 0xf8, 0x82, 0xed, 0xca, 0xdf, 0x0e, 0x2c,
+  0xdf, 0x64, 0x75, 0x8e, 0xe5, 0x18, 0x72, 0xa7, 0x8c, 0x3a, 0x8b, 0xc9,
+  0xac, 0xa5, 0x77, 0x50, 0xf7, 0xef, 0x9e, 0xa4, 0xe0, 0xa0, 0x8f, 0x14,
+  0x57, 0xa3, 0x2a, 0x5f, 0xec, 0x7e, 0x6d, 0x10, 0xe6, 0xba, 0x8d, 0xb0,
+  0x08, 0x87, 0x76, 0x0e, 0x4c, 0xb2, 0xd9, 0x51, 0xbb, 0x11, 0x02, 0xf2,
+  0x5c, 0xdd, 0x1c, 0xbd, 0xf3, 0x55, 0x96, 0x0f, 0xd4, 0x06, 0xc0, 0xfc,
+  0xe2, 0x23, 0x8a, 0x24, 0x70, 0xd3, 0xbb, 0xf0, 0x79, 0x1a, 0xa7, 0x61,
+  0x70, 0x83, 0x8a, 0xaf, 0x06, 0xc5, 0x20, 0xd8, 0xa1, 0x63, 0xd0, 0x6c,
+  0xae, 0x4f, 0x32, 0xd7, 0xae, 0x7c, 0x18, 0x45, 0x75, 0x05, 0x29, 0x77,
+  0xdf, 0x42, 0x40, 0x64, 0x64, 0x86, 0xbe, 0x2a, 0x76, 0x09, 0x31, 0x6f,
+  0x1d, 0x24, 0xf4, 0x99, 0xd0, 0x85, 0xfe, 0xf2, 0x21, 0x08, 0xf9, 0xc6,
+  0xf6, 0xf1, 0xd0, 0x59, 0xed, 0xd6, 0x56, 0x3c, 0x08, 0x28, 0x03, 0x67,
+  0xba, 0xf0, 0xf9, 0xf1, 0x90, 0x16, 0x47, 0xae, 0x67, 0xe6, 0xbc, 0x80,
+  0x48, 0xe9, 0x42, 0x76, 0x34, 0x97, 0x55, 0x69, 0x24, 0x0e, 0x83, 0xd6,
+  0xa0, 0x2d, 0xb4, 0xf5, 0xf3, 0x79, 0x8a, 0x49, 0x28, 0x74, 0x1a, 0x41,
+  0xa1, 0xc2, 0xd3, 0x24, 0x88, 0x35, 0x30, 0x60, 0x94, 0x17, 0xb4, 0xe1,
+  0x04, 0x22, 0x31, 0x3d, 0x3b, 0x2f, 0x17, 0x06, 0xb2, 0xb8, 0x9d, 0x86,
+  0x2b, 0x5a, 0x69, 0xef, 0x83, 0xf5, 0x4b, 0xc4, 0xaa, 0xb4, 0x2a, 0xf8,
+  0x7c, 0xa1, 0xb1, 0x85, 0x94, 0x8c, 0xf4, 0x0c, 0x87, 0x0c, 0xf4, 0xac,
+  0x40, 0xf8, 0x59, 0x49, 0x98,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            4d:5f:2c:34:08:b2:4c:20:cd:6d:50:7e:24:4d:c9:ec
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Feb  8 00:00:00 2010 GMT
+            Not After : Feb  7 23:59:59 2020 GMT
+        Subject: C=US, O=Thawte, Inc., CN=Thawte SSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:99:e4:85:5b:76:49:7d:2f:05:d8:c5:ac:c8:c8:
+                    a9:d3:dc:98:e6:d7:34:a6:2f:0c:f2:22:26:d8:a3:
+                    c9:14:4c:8f:05:a4:45:e8:14:0c:58:90:05:1a:b7:
+                    c5:c1:06:a5:80:af:bb:1d:49:6b:52:34:88:c3:59:
+                    e7:ef:6b:c4:27:41:8c:2b:66:1d:d0:e0:a3:97:98:
+                    19:34:4b:41:d5:98:d5:c7:05:ad:a2:e4:d7:ed:0c:
+                    ad:4f:c1:b5:b0:21:fd:3e:50:53:b2:c4:90:d0:d4:
+                    30:67:6c:9a:f1:0e:74:c4:c2:dc:8a:e8:97:ff:c9:
+                    92:ae:01:8a:56:0a:98:32:b0:00:23:ec:90:1a:60:
+                    c3:ed:bb:3a:cb:0f:63:9f:0d:44:c9:52:e1:25:96:
+                    bf:ed:50:95:89:7f:56:14:b1:b7:61:1d:1c:07:8c:
+                    3a:2c:f7:ff:80:de:39:45:d5:af:1a:d1:78:d8:c7:
+                    71:6a:a3:19:a7:32:50:21:e9:f2:0e:a1:c6:13:03:
+                    44:48:d1:66:a8:52:57:d7:11:b4:93:8b:e5:99:9f:
+                    5d:e7:78:51:e5:4d:f6:b7:59:b4:76:b5:09:37:4d:
+                    06:38:13:7a:1c:08:98:5c:c4:48:4a:cb:52:a0:a9:
+                    f8:b1:9d:8e:7b:79:b0:20:2f:3c:96:a8:11:62:47:
+                    bb:11
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.thawte.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.thawte.com/ThawtePCA.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-9
+            X509v3 Subject Key Identifier: 
+                A7:A2:83:BB:34:45:40:3D:FC:D5:30:4F:12:B9:3E:A1:01:9F:F6:DB
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha1WithRSAEncryption
+         80:22:80:e0:6c:c8:95:16:d7:57:26:87:f3:72:34:db:c6:72:
+         56:27:3e:d3:96:f6:2e:25:91:a5:3e:33:97:a7:4b:e5:2f:fb:
+         25:7d:2f:07:61:fa:6f:83:74:4c:4c:53:72:20:a4:7a:cf:51:
+         51:56:81:88:b0:6d:1f:36:2c:c8:2b:b1:88:99:c1:fe:44:ab:
+         48:51:7c:d8:f2:44:64:2a:d8:71:a7:fb:1a:2f:f9:19:8d:34:
+         b2:23:bf:c4:4c:55:1d:8e:44:e8:aa:5d:9a:dd:9f:fd:03:c7:
+         ba:24:43:8d:2d:47:44:db:f6:d8:98:c8:b2:f9:da:ef:ed:29:
+         5c:69:12:fa:d1:23:96:0f:bf:9c:0d:f2:79:45:53:37:9a:56:
+         2f:e8:57:10:70:f6:ee:89:0c:49:89:9a:c1:23:f5:c2:2a:cc:
+         41:cf:22:ab:65:6e:b7:94:82:6d:2f:40:5f:58:de:eb:95:2b:
+         a6:72:68:52:19:91:2a:ae:75:9d:4e:92:e6:ca:de:54:ea:18:
+         ab:25:3c:e6:64:a6:79:1f:26:7d:61:ed:7d:d2:e5:71:55:d8:
+         93:17:7c:14:38:30:3c:df:86:e3:4c:ad:49:e3:97:59:ce:1b:
+         9b:2b:ce:dc:65:d4:0b:28:6b:4e:84:46:51:44:f7:33:08:2d:
+         58:97:21:ae
+-----BEGIN CERTIFICATE-----
+MIIEbDCCA1SgAwIBAgIQTV8sNAiyTCDNbVB+JE3J7DANBgkqhkiG9w0BAQUFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTAwMjA4MDAwMDAwWhcNMjAw
+MjA3MjM1OTU5WjA8MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMVGhhd3RlLCBJbmMu
+MRYwFAYDVQQDEw1UaGF3dGUgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAmeSFW3ZJfS8F2MWsyMip09yY5tc0pi8M8iIm2KPJFEyPBaRF6BQM
+WJAFGrfFwQalgK+7HUlrUjSIw1nn72vEJ0GMK2Yd0OCjl5gZNEtB1ZjVxwWtouTX
+7QytT8G1sCH9PlBTssSQ0NQwZ2ya8Q50xMLciuiX/8mSrgGKVgqYMrAAI+yQGmDD
+7bs6yw9jnw1EyVLhJZa/7VCViX9WFLG3YR0cB4w6LPf/gN45RdWvGtF42MdxaqMZ
+pzJQIenyDqHGEwNESNFmqFJX1xG0k4vlmZ9d53hR5U32t1m0drUJN00GOBN6HAiY
+XMRISstSoKn4sZ2Oe3mwIC88lqgRYke7EQIDAQABo4H7MIH4MDIGCCsGAQUFBwEB
+BCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTASBgNVHRMB
+Af8ECDAGAQH/AgEAMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwudGhhd3Rl
+LmNvbS9UaGF3dGVQQ0EuY3JsMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0w
+GzEZMBcGA1UEAxMQVmVyaVNpZ25NUEtJLTItOTAdBgNVHQ4EFgQUp6KDuzRFQD38
+1TBPErk+oQGf9tswHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutXSFAwDQYJ
+KoZIhvcNAQEFBQADggEBAIAigOBsyJUW11cmh/NyNNvGclYnPtOW9i4lkaU+M5en
+S+Uv+yV9Lwdh+m+DdExMU3IgpHrPUVFWgYiwbR82LMgrsYiZwf5Eq0hRfNjyRGQq
+2HGn+xov+RmNNLIjv8RMVR2OROiqXZrdn/0Dx7okQ40tR0Tb9tiYyLL52u/tKVxp
+EvrRI5YPv5wN8nlFUzeaVi/oVxBw9u6JDEmJmsEj9cIqzEHPIqtlbreUgm0vQF9Y
+3uuVK6ZyaFIZkSqudZ1OkubK3lTqGKslPOZkpnkfJn1h7X3S5XFV2JMXfBQ4MDzf
+huNMrUnjl1nOG5srztxl1Asoa06ERlFE9zMILViXIa4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert14[] = {
+  0x30, 0x82, 0x04, 0x6c, 0x30, 0x82, 0x03, 0x54, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x4d, 0x5f, 0x2c, 0x34, 0x08, 0xb2, 0x4c, 0x20, 0xcd,
+  0x6d, 0x50, 0x7e, 0x24, 0x4d, 0xc9, 0xec, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30,
+  0x32, 0x30, 0x37, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x54,
+  0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x99, 0xe4, 0x85,
+  0x5b, 0x76, 0x49, 0x7d, 0x2f, 0x05, 0xd8, 0xc5, 0xac, 0xc8, 0xc8, 0xa9,
+  0xd3, 0xdc, 0x98, 0xe6, 0xd7, 0x34, 0xa6, 0x2f, 0x0c, 0xf2, 0x22, 0x26,
+  0xd8, 0xa3, 0xc9, 0x14, 0x4c, 0x8f, 0x05, 0xa4, 0x45, 0xe8, 0x14, 0x0c,
+  0x58, 0x90, 0x05, 0x1a, 0xb7, 0xc5, 0xc1, 0x06, 0xa5, 0x80, 0xaf, 0xbb,
+  0x1d, 0x49, 0x6b, 0x52, 0x34, 0x88, 0xc3, 0x59, 0xe7, 0xef, 0x6b, 0xc4,
+  0x27, 0x41, 0x8c, 0x2b, 0x66, 0x1d, 0xd0, 0xe0, 0xa3, 0x97, 0x98, 0x19,
+  0x34, 0x4b, 0x41, 0xd5, 0x98, 0xd5, 0xc7, 0x05, 0xad, 0xa2, 0xe4, 0xd7,
+  0xed, 0x0c, 0xad, 0x4f, 0xc1, 0xb5, 0xb0, 0x21, 0xfd, 0x3e, 0x50, 0x53,
+  0xb2, 0xc4, 0x90, 0xd0, 0xd4, 0x30, 0x67, 0x6c, 0x9a, 0xf1, 0x0e, 0x74,
+  0xc4, 0xc2, 0xdc, 0x8a, 0xe8, 0x97, 0xff, 0xc9, 0x92, 0xae, 0x01, 0x8a,
+  0x56, 0x0a, 0x98, 0x32, 0xb0, 0x00, 0x23, 0xec, 0x90, 0x1a, 0x60, 0xc3,
+  0xed, 0xbb, 0x3a, 0xcb, 0x0f, 0x63, 0x9f, 0x0d, 0x44, 0xc9, 0x52, 0xe1,
+  0x25, 0x96, 0xbf, 0xed, 0x50, 0x95, 0x89, 0x7f, 0x56, 0x14, 0xb1, 0xb7,
+  0x61, 0x1d, 0x1c, 0x07, 0x8c, 0x3a, 0x2c, 0xf7, 0xff, 0x80, 0xde, 0x39,
+  0x45, 0xd5, 0xaf, 0x1a, 0xd1, 0x78, 0xd8, 0xc7, 0x71, 0x6a, 0xa3, 0x19,
+  0xa7, 0x32, 0x50, 0x21, 0xe9, 0xf2, 0x0e, 0xa1, 0xc6, 0x13, 0x03, 0x44,
+  0x48, 0xd1, 0x66, 0xa8, 0x52, 0x57, 0xd7, 0x11, 0xb4, 0x93, 0x8b, 0xe5,
+  0x99, 0x9f, 0x5d, 0xe7, 0x78, 0x51, 0xe5, 0x4d, 0xf6, 0xb7, 0x59, 0xb4,
+  0x76, 0xb5, 0x09, 0x37, 0x4d, 0x06, 0x38, 0x13, 0x7a, 0x1c, 0x08, 0x98,
+  0x5c, 0xc4, 0x48, 0x4a, 0xcb, 0x52, 0xa0, 0xa9, 0xf8, 0xb1, 0x9d, 0x8e,
+  0x7b, 0x79, 0xb0, 0x20, 0x2f, 0x3c, 0x96, 0xa8, 0x11, 0x62, 0x47, 0xbb,
+  0x11, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xfb, 0x30, 0x81, 0xf8,
+  0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+  0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30,
+  0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50,
+  0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x28,
+  0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21, 0x30, 0x1f, 0xa4, 0x1d, 0x30,
+  0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x10,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+  0x2d, 0x32, 0x2d, 0x39, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0xa7, 0xa2, 0x83, 0xbb, 0x34, 0x45, 0x40, 0x3d, 0xfc,
+  0xd5, 0x30, 0x4f, 0x12, 0xb9, 0x3e, 0xa1, 0x01, 0x9f, 0xf6, 0xdb, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a,
+  0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x80, 0x22, 0x80, 0xe0, 0x6c, 0xc8, 0x95, 0x16,
+  0xd7, 0x57, 0x26, 0x87, 0xf3, 0x72, 0x34, 0xdb, 0xc6, 0x72, 0x56, 0x27,
+  0x3e, 0xd3, 0x96, 0xf6, 0x2e, 0x25, 0x91, 0xa5, 0x3e, 0x33, 0x97, 0xa7,
+  0x4b, 0xe5, 0x2f, 0xfb, 0x25, 0x7d, 0x2f, 0x07, 0x61, 0xfa, 0x6f, 0x83,
+  0x74, 0x4c, 0x4c, 0x53, 0x72, 0x20, 0xa4, 0x7a, 0xcf, 0x51, 0x51, 0x56,
+  0x81, 0x88, 0xb0, 0x6d, 0x1f, 0x36, 0x2c, 0xc8, 0x2b, 0xb1, 0x88, 0x99,
+  0xc1, 0xfe, 0x44, 0xab, 0x48, 0x51, 0x7c, 0xd8, 0xf2, 0x44, 0x64, 0x2a,
+  0xd8, 0x71, 0xa7, 0xfb, 0x1a, 0x2f, 0xf9, 0x19, 0x8d, 0x34, 0xb2, 0x23,
+  0xbf, 0xc4, 0x4c, 0x55, 0x1d, 0x8e, 0x44, 0xe8, 0xaa, 0x5d, 0x9a, 0xdd,
+  0x9f, 0xfd, 0x03, 0xc7, 0xba, 0x24, 0x43, 0x8d, 0x2d, 0x47, 0x44, 0xdb,
+  0xf6, 0xd8, 0x98, 0xc8, 0xb2, 0xf9, 0xda, 0xef, 0xed, 0x29, 0x5c, 0x69,
+  0x12, 0xfa, 0xd1, 0x23, 0x96, 0x0f, 0xbf, 0x9c, 0x0d, 0xf2, 0x79, 0x45,
+  0x53, 0x37, 0x9a, 0x56, 0x2f, 0xe8, 0x57, 0x10, 0x70, 0xf6, 0xee, 0x89,
+  0x0c, 0x49, 0x89, 0x9a, 0xc1, 0x23, 0xf5, 0xc2, 0x2a, 0xcc, 0x41, 0xcf,
+  0x22, 0xab, 0x65, 0x6e, 0xb7, 0x94, 0x82, 0x6d, 0x2f, 0x40, 0x5f, 0x58,
+  0xde, 0xeb, 0x95, 0x2b, 0xa6, 0x72, 0x68, 0x52, 0x19, 0x91, 0x2a, 0xae,
+  0x75, 0x9d, 0x4e, 0x92, 0xe6, 0xca, 0xde, 0x54, 0xea, 0x18, 0xab, 0x25,
+  0x3c, 0xe6, 0x64, 0xa6, 0x79, 0x1f, 0x26, 0x7d, 0x61, 0xed, 0x7d, 0xd2,
+  0xe5, 0x71, 0x55, 0xd8, 0x93, 0x17, 0x7c, 0x14, 0x38, 0x30, 0x3c, 0xdf,
+  0x86, 0xe3, 0x4c, 0xad, 0x49, 0xe3, 0x97, 0x59, 0xce, 0x1b, 0x9b, 0x2b,
+  0xce, 0xdc, 0x65, 0xd4, 0x0b, 0x28, 0x6b, 0x4e, 0x84, 0x46, 0x51, 0x44,
+  0xf7, 0x33, 0x08, 0x2d, 0x58, 0x97, 0x21, 0xae,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            6e:8a:90:eb:cf:f0:44:8a:72:0d:08:05:d0:82:a5:44
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Primary Certification Authority
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust EV SSL CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d9:b4:05:f2:38:67:0f:09:e7:7c:f5:63:2a:e5:
+                    b9:5e:a8:11:ae:75:71:d9:4c:84:67:ad:89:5d:fc:
+                    28:3d:2a:b0:a5:d5:d4:e6:30:0a:84:d4:e4:18:cb:
+                    85:37:c5:46:71:eb:1c:7b:69:db:65:69:8c:30:05:
+                    3e:07:e1:6f:3c:c1:0b:61:e6:38:44:fc:bc:8c:2f:
+                    4e:75:57:f5:96:99:7c:3e:87:1f:0f:90:4b:70:c3:
+                    3f:39:45:3b:3a:6b:cb:bb:7b:40:54:d1:8b:4b:a1:
+                    72:d2:04:e9:e0:72:1a:93:11:7a:2f:f1:ab:9d:9c:
+                    98:58:ae:2c:ea:77:5f:2f:2e:87:af:b8:6b:e3:e2:
+                    e2:3f:d6:3d:e0:96:44:df:11:55:63:52:2f:f4:26:
+                    78:c4:0f:20:4d:0a:c0:68:70:15:86:38:ee:b7:76:
+                    88:ab:18:8f:4f:35:1e:d4:8c:c9:db:7e:3d:44:d4:
+                    36:8c:c1:37:b5:59:5b:87:f9:e9:f1:d4:c5:28:bd:
+                    1d:dc:cc:96:72:d1:7a:a1:a7:20:b5:b8:af:f8:6e:
+                    a5:60:7b:2b:8d:1f:ee:f4:2b:d6:69:cd:af:ca:80:
+                    58:29:e8:4c:00:20:8a:49:0a:6e:8e:8c:a8:d1:00:
+                    12:84:b6:c5:e2:95:a2:c0:3b:a4:6b:f0:82:d0:96:
+                    5d:25
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://g2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.geotrust.com/resources/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g1.symcb.com/GeoTrustPCA.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-538
+            X509v3 Subject Key Identifier: 
+                DE:CF:5C:50:B7:AE:02:1F:15:17:AA:16:E8:0D:B5:28:9D:6A:5A:F3
+            X509v3 Authority Key Identifier: 
+                keyid:2C:D5:50:41:97:15:8B:F0:8F:36:61:5B:4A:FB:6B:D9:99:C9:33:92
+
+    Signature Algorithm: sha256WithRSAEncryption
+         b4:8e:bd:07:b9:9a:85:ec:3b:67:bd:07:60:61:e6:84:d1:d4:
+         ef:eb:1b:ba:0b:82:4b:95:64:b6:66:53:23:bd:b7:84:dd:e4:
+         7b:8d:09:da:cf:b2:f5:f1:c3:bf:87:84:be:4e:a6:a8:c2:e7:
+         12:39:28:34:e0:a4:56:44:40:0c:9f:88:a3:15:d3:e8:d3:5e:
+         e3:1c:04:60:fb:69:36:4f:6a:7e:0c:2a:28:c1:f3:aa:58:0e:
+         6c:ce:1d:07:c3:4a:c0:9c:8d:c3:74:b1:ae:82:f0:1a:e1:f9:
+         4e:29:bd:46:de:b7:1d:f9:7d:db:d9:0f:84:cb:92:45:cc:1c:
+         b3:18:f6:a0:cf:71:6f:0c:2e:9b:d2:2d:b3:99:93:83:44:ac:
+         15:aa:9b:2e:67:ec:4f:88:69:05:56:7b:8b:b2:43:a9:3a:6c:
+         1c:13:33:25:1b:fd:a8:c8:57:02:fb:1c:e0:d1:bd:3b:56:44:
+         65:c3:63:f5:1b:ef:ec:30:d9:e3:6e:2e:13:e9:39:08:2a:0c:
+         72:f3:9a:cc:f6:27:29:84:d3:ef:4c:c7:84:11:65:1f:c6:e3:
+         81:03:db:87:cc:78:f7:b5:9d:96:3e:6a:7f:bc:11:85:7a:75:
+         e6:41:7d:0d:cf:f9:e5:85:69:25:8f:c7:8d:07:2d:f8:69:0f:
+         cb:41:53:00
+-----BEGIN CERTIFICATE-----
+MIIEbjCCA1agAwIBAgIQboqQ68/wRIpyDQgF0IKlRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMzEw
+MzEwMDAwMDBaFw0yMzEwMzAyMzU5NTlaMEcxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdHZW9UcnVzdCBFViBTU0wgQ0EgLSBH
+NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANm0BfI4Zw8J53z1Yyrl
+uV6oEa51cdlMhGetiV38KD0qsKXV1OYwCoTU5BjLhTfFRnHrHHtp22VpjDAFPgfh
+bzzBC2HmOET8vIwvTnVX9ZaZfD6HHw+QS3DDPzlFOzpry7t7QFTRi0uhctIE6eBy
+GpMRei/xq52cmFiuLOp3Xy8uh6+4a+Pi4j/WPeCWRN8RVWNSL/QmeMQPIE0KwGhw
+FYY47rd2iKsYj081HtSMydt+PUTUNozBN7VZW4f56fHUxSi9HdzMlnLReqGnILW4
+r/hupWB7K40f7vQr1mnNr8qAWCnoTAAgikkKbo6MqNEAEoS2xeKVosA7pGvwgtCW
+XSUCAwEAAaOCAUMwggE/MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD
+AgEGMC8GCCsGAQUFBwEBBCMwITAfBggrBgEFBQcwAYYTaHR0cDovL2cyLnN5bWNi
+LmNvbTBHBgNVHSAEQDA+MDwGBFUdIAAwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93
+d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2cxLnN5bWNiLmNvbS9HZW9UcnVzdFBDQS5jcmwwKQYDVR0RBCIwIKQe
+MBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTM4MB0GA1UdDgQWBBTez1xQt64C
+HxUXqhboDbUonWpa8zAfBgNVHSMEGDAWgBQs1VBBlxWL8I82YVtK+2vZmckzkjAN
+BgkqhkiG9w0BAQsFAAOCAQEAtI69B7mahew7Z70HYGHmhNHU7+sbuguCS5VktmZT
+I723hN3ke40J2s+y9fHDv4eEvk6mqMLnEjkoNOCkVkRADJ+IoxXT6NNe4xwEYPtp
+Nk9qfgwqKMHzqlgObM4dB8NKwJyNw3SxroLwGuH5Tim9Rt63Hfl929kPhMuSRcwc
+sxj2oM9xbwwum9Its5mTg0SsFaqbLmfsT4hpBVZ7i7JDqTpsHBMzJRv9qMhXAvsc
+4NG9O1ZEZcNj9Rvv7DDZ424uE+k5CCoMcvOazPYnKYTT70zHhBFlH8bjgQPbh8x4
+97Wdlj5qf7wRhXp15kF9Dc/55YVpJY/HjQct+GkPy0FTAA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert15[] = {
+  0x30, 0x82, 0x04, 0x6e, 0x30, 0x82, 0x03, 0x56, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x6e, 0x8a, 0x90, 0xeb, 0xcf, 0xf0, 0x44, 0x8a, 0x72,
+  0x0d, 0x08, 0x05, 0xd0, 0x82, 0xa5, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x58,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+  0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30,
+  0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32,
+  0x33, 0x31, 0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a,
+  0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x17, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45,
+  0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47,
+  0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f,
+  0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd9, 0xb4,
+  0x05, 0xf2, 0x38, 0x67, 0x0f, 0x09, 0xe7, 0x7c, 0xf5, 0x63, 0x2a, 0xe5,
+  0xb9, 0x5e, 0xa8, 0x11, 0xae, 0x75, 0x71, 0xd9, 0x4c, 0x84, 0x67, 0xad,
+  0x89, 0x5d, 0xfc, 0x28, 0x3d, 0x2a, 0xb0, 0xa5, 0xd5, 0xd4, 0xe6, 0x30,
+  0x0a, 0x84, 0xd4, 0xe4, 0x18, 0xcb, 0x85, 0x37, 0xc5, 0x46, 0x71, 0xeb,
+  0x1c, 0x7b, 0x69, 0xdb, 0x65, 0x69, 0x8c, 0x30, 0x05, 0x3e, 0x07, 0xe1,
+  0x6f, 0x3c, 0xc1, 0x0b, 0x61, 0xe6, 0x38, 0x44, 0xfc, 0xbc, 0x8c, 0x2f,
+  0x4e, 0x75, 0x57, 0xf5, 0x96, 0x99, 0x7c, 0x3e, 0x87, 0x1f, 0x0f, 0x90,
+  0x4b, 0x70, 0xc3, 0x3f, 0x39, 0x45, 0x3b, 0x3a, 0x6b, 0xcb, 0xbb, 0x7b,
+  0x40, 0x54, 0xd1, 0x8b, 0x4b, 0xa1, 0x72, 0xd2, 0x04, 0xe9, 0xe0, 0x72,
+  0x1a, 0x93, 0x11, 0x7a, 0x2f, 0xf1, 0xab, 0x9d, 0x9c, 0x98, 0x58, 0xae,
+  0x2c, 0xea, 0x77, 0x5f, 0x2f, 0x2e, 0x87, 0xaf, 0xb8, 0x6b, 0xe3, 0xe2,
+  0xe2, 0x3f, 0xd6, 0x3d, 0xe0, 0x96, 0x44, 0xdf, 0x11, 0x55, 0x63, 0x52,
+  0x2f, 0xf4, 0x26, 0x78, 0xc4, 0x0f, 0x20, 0x4d, 0x0a, 0xc0, 0x68, 0x70,
+  0x15, 0x86, 0x38, 0xee, 0xb7, 0x76, 0x88, 0xab, 0x18, 0x8f, 0x4f, 0x35,
+  0x1e, 0xd4, 0x8c, 0xc9, 0xdb, 0x7e, 0x3d, 0x44, 0xd4, 0x36, 0x8c, 0xc1,
+  0x37, 0xb5, 0x59, 0x5b, 0x87, 0xf9, 0xe9, 0xf1, 0xd4, 0xc5, 0x28, 0xbd,
+  0x1d, 0xdc, 0xcc, 0x96, 0x72, 0xd1, 0x7a, 0xa1, 0xa7, 0x20, 0xb5, 0xb8,
+  0xaf, 0xf8, 0x6e, 0xa5, 0x60, 0x7b, 0x2b, 0x8d, 0x1f, 0xee, 0xf4, 0x2b,
+  0xd6, 0x69, 0xcd, 0xaf, 0xca, 0x80, 0x58, 0x29, 0xe8, 0x4c, 0x00, 0x20,
+  0x8a, 0x49, 0x0a, 0x6e, 0x8e, 0x8c, 0xa8, 0xd1, 0x00, 0x12, 0x84, 0xb6,
+  0xc5, 0xe2, 0x95, 0xa2, 0xc0, 0x3b, 0xa4, 0x6b, 0xf0, 0x82, 0xd0, 0x96,
+  0x5d, 0x25, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x43, 0x30,
+  0x82, 0x01, 0x3f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+  0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x47, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x40, 0x30, 0x3e, 0x30, 0x3c, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30,
+  0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77,
+  0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+  0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x34, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27, 0xa0, 0x25, 0x86, 0x23,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x31, 0x2e, 0x73, 0x79,
+  0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e,
+  0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49,
+  0x2d, 0x31, 0x2d, 0x35, 0x33, 0x38, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0xde, 0xcf, 0x5c, 0x50, 0xb7, 0xae, 0x02,
+  0x1f, 0x15, 0x17, 0xaa, 0x16, 0xe8, 0x0d, 0xb5, 0x28, 0x9d, 0x6a, 0x5a,
+  0xf3, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0x2c, 0xd5, 0x50, 0x41, 0x97, 0x15, 0x8b, 0xf0, 0x8f, 0x36,
+  0x61, 0x5b, 0x4a, 0xfb, 0x6b, 0xd9, 0x99, 0xc9, 0x33, 0x92, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xb4, 0x8e, 0xbd, 0x07, 0xb9, 0x9a,
+  0x85, 0xec, 0x3b, 0x67, 0xbd, 0x07, 0x60, 0x61, 0xe6, 0x84, 0xd1, 0xd4,
+  0xef, 0xeb, 0x1b, 0xba, 0x0b, 0x82, 0x4b, 0x95, 0x64, 0xb6, 0x66, 0x53,
+  0x23, 0xbd, 0xb7, 0x84, 0xdd, 0xe4, 0x7b, 0x8d, 0x09, 0xda, 0xcf, 0xb2,
+  0xf5, 0xf1, 0xc3, 0xbf, 0x87, 0x84, 0xbe, 0x4e, 0xa6, 0xa8, 0xc2, 0xe7,
+  0x12, 0x39, 0x28, 0x34, 0xe0, 0xa4, 0x56, 0x44, 0x40, 0x0c, 0x9f, 0x88,
+  0xa3, 0x15, 0xd3, 0xe8, 0xd3, 0x5e, 0xe3, 0x1c, 0x04, 0x60, 0xfb, 0x69,
+  0x36, 0x4f, 0x6a, 0x7e, 0x0c, 0x2a, 0x28, 0xc1, 0xf3, 0xaa, 0x58, 0x0e,
+  0x6c, 0xce, 0x1d, 0x07, 0xc3, 0x4a, 0xc0, 0x9c, 0x8d, 0xc3, 0x74, 0xb1,
+  0xae, 0x82, 0xf0, 0x1a, 0xe1, 0xf9, 0x4e, 0x29, 0xbd, 0x46, 0xde, 0xb7,
+  0x1d, 0xf9, 0x7d, 0xdb, 0xd9, 0x0f, 0x84, 0xcb, 0x92, 0x45, 0xcc, 0x1c,
+  0xb3, 0x18, 0xf6, 0xa0, 0xcf, 0x71, 0x6f, 0x0c, 0x2e, 0x9b, 0xd2, 0x2d,
+  0xb3, 0x99, 0x93, 0x83, 0x44, 0xac, 0x15, 0xaa, 0x9b, 0x2e, 0x67, 0xec,
+  0x4f, 0x88, 0x69, 0x05, 0x56, 0x7b, 0x8b, 0xb2, 0x43, 0xa9, 0x3a, 0x6c,
+  0x1c, 0x13, 0x33, 0x25, 0x1b, 0xfd, 0xa8, 0xc8, 0x57, 0x02, 0xfb, 0x1c,
+  0xe0, 0xd1, 0xbd, 0x3b, 0x56, 0x44, 0x65, 0xc3, 0x63, 0xf5, 0x1b, 0xef,
+  0xec, 0x30, 0xd9, 0xe3, 0x6e, 0x2e, 0x13, 0xe9, 0x39, 0x08, 0x2a, 0x0c,
+  0x72, 0xf3, 0x9a, 0xcc, 0xf6, 0x27, 0x29, 0x84, 0xd3, 0xef, 0x4c, 0xc7,
+  0x84, 0x11, 0x65, 0x1f, 0xc6, 0xe3, 0x81, 0x03, 0xdb, 0x87, 0xcc, 0x78,
+  0xf7, 0xb5, 0x9d, 0x96, 0x3e, 0x6a, 0x7f, 0xbc, 0x11, 0x85, 0x7a, 0x75,
+  0xe6, 0x41, 0x7d, 0x0d, 0xcf, 0xf9, 0xe5, 0x85, 0x69, 0x25, 0x8f, 0xc7,
+  0x8d, 0x07, 0x2d, 0xf8, 0x69, 0x0f, 0xcb, 0x41, 0x53, 0x00,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 146035 (0x23a73)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
+        Validity
+            Not Before: Jun 11 22:02:59 2014 GMT
+            Not After : May 20 22:02:59 2022 GMT
+        Subject: C=US, O=GeoTrust Inc., OU=Domain Validated SSL, CN=GeoTrust DV SSL CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b3:44:3a:6c:b0:ae:cb:14:f9:8c:19:74:34:5c:
+                    a9:69:e3:88:53:77:a5:a7:ff:bd:d1:3c:0d:27:e4:
+                    de:ad:7f:bc:d1:90:58:93:d6:a6:da:39:9c:ad:e1:
+                    0e:56:46:ee:95:9e:10:68:4c:9c:2b:f6:6a:3a:8b:
+                    80:81:87:06:57:25:1a:56:52:94:dd:90:eb:67:3b:
+                    de:fa:ae:36:68:d3:62:69:f6:6c:82:24:44:4f:87:
+                    5c:98:11:95:64:6b:e8:0c:d1:dd:e6:27:97:ae:cc:
+                    e2:91:6a:41:12:b6:ab:e5:cc:6e:cc:23:b8:63:8a:
+                    1f:31:93:2d:06:c4:f7:e8:3d:58:cd:97:08:46:6c:
+                    7b:74:c0:f8:fc:31:3b:a7:7f:d7:8f:b0:c9:15:63:
+                    50:7a:12:4d:f5:12:1e:a3:7e:55:e3:75:b7:ea:1e:
+                    ea:31:2c:08:4e:d8:cb:43:74:89:24:bc:d2:0e:1e:
+                    f0:db:05:24:f6:8a:bf:10:27:84:41:1a:f6:18:53:
+                    ee:91:d0:54:17:d3:7d:3e:7e:b2:7d:a8:bf:db:b9:
+                    21:2a:f0:89:b9:08:6e:5a:b3:5e:ea:82:b8:7e:27:
+                    0b:cc:56:73:81:05:4f:e3:96:2d:71:d5:78:a7:60:
+                    c3:d7:ec:aa:39:1a:05:39:82:81:e0:15:2c:35:d1:
+                    ee:25
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Authority Key Identifier: 
+                keyid:C0:7A:98:68:8D:89:FB:AB:05:64:0C:11:7D:AA:7D:65:B8:CA:CC:4E
+
+            X509v3 Subject Key Identifier: 
+                AD:65:22:85:90:D0:3B:E3:A1:49:8B:37:F9:F1:0B:1D:5F:17:A0:77
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/crls/gtglobal.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-699
+    Signature Algorithm: sha256WithRSAEncryption
+         4e:27:b8:1a:c7:3b:dc:5d:bb:9e:1a:35:23:1e:88:55:90:d1:
+         ec:86:9c:88:b7:e0:1f:67:87:e2:7c:b5:43:03:0e:b6:02:e8:
+         e0:ff:86:84:19:71:e9:f2:4b:f5:9e:2e:2e:5e:db:ab:d6:1c:
+         4e:c4:3e:b8:2c:78:86:71:10:ae:8d:c5:70:bf:a4:f9:89:e6:
+         b4:ed:e8:4b:ed:7c:09:2a:09:08:06:3e:d4:e1:de:82:92:0c:
+         34:30:35:0a:c1:60:75:ca:b6:55:6b:aa:00:42:cb:3f:fb:10:
+         e1:fb:85:c1:21:90:72:2b:6e:c0:e8:9d:d9:b5:5a:50:8e:34:
+         1e:bb:38:a7:3c:31:bd:7a:f2:43:8b:eb:16:ca:ad:9b:de:6b:
+         1e:f8:4f:b6:5e:4a:29:1f:7a:14:ee:91:f4:94:4f:a4:bd:9b:
+         76:7a:bc:f1:51:7a:96:a8:81:0e:83:87:3f:8b:ae:5e:32:9b:
+         34:9e:b2:e7:db:2f:ec:02:a0:e1:fd:51:52:fe:2c:db:36:ba:
+         c1:d6:5e:4b:58:6d:de:c6:e1:e1:fa:9a:03:2c:5b:a2:e1:b3:
+         9b:f9:36:ec:c1:73:fa:33:12:66:95:e3:69:10:b6:d7:aa:33:
+         fa:f6:9d:41:6d:96:2a:ba:be:83:31:41:7f:0c:0a:d2:69:d6:
+         fc:35:4c:c3
+-----BEGIN CERTIFICATE-----
+MIIEbzCCA1egAwIBAgIDAjpzMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMTQwNjExMjIwMjU5WhcNMjIwNTIwMjIwMjU5WjBmMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh
+bGlkYXRlZCBTU0wxIDAeBgNVBAMTF0dlb1RydXN0IERWIFNTTCBDQSAtIEczMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs0Q6bLCuyxT5jBl0NFypaeOI
+U3elp/+90TwNJ+TerX+80ZBYk9am2jmcreEOVkbulZ4QaEycK/ZqOouAgYcGVyUa
+VlKU3ZDrZzve+q42aNNiafZsgiRET4dcmBGVZGvoDNHd5ieXrszikWpBErar5cxu
+zCO4Y4ofMZMtBsT36D1YzZcIRmx7dMD4/DE7p3/Xj7DJFWNQehJN9RIeo35V43W3
+6h7qMSwITtjLQ3SJJLzSDh7w2wUk9oq/ECeEQRr2GFPukdBUF9N9Pn6yfai/27kh
+KvCJuQhuWrNe6oK4ficLzFZzgQVP45YtcdV4p2DD1+yqORoFOYKB4BUsNdHuJQID
+AQABo4IBSDCCAUQwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwRfap9ZbjKzE4wHQYD
+VR0OBBYEFK1lIoWQ0DvjoUmLN/nxCx1fF6B3MBIGA1UdEwEB/wQIMAYBAf8CAQAw
+DgYDVR0PAQH/BAQDAgEGMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9nLnN5bWNi
+LmNvbS9jcmxzL2d0Z2xvYmFsLmNybDAuBggrBgEFBQcBAQQiMCAwHgYIKwYBBQUH
+MAGGEmh0dHA6Ly9nLnN5bWNkLmNvbTBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYw
+MzAxBggrBgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2Vz
+L2NwczApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS02OTkw
+DQYJKoZIhvcNAQELBQADggEBAE4nuBrHO9xdu54aNSMeiFWQ0eyGnIi34B9nh+J8
+tUMDDrYC6OD/hoQZcenyS/WeLi5e26vWHE7EPrgseIZxEK6NxXC/pPmJ5rTt6Evt
+fAkqCQgGPtTh3oKSDDQwNQrBYHXKtlVrqgBCyz/7EOH7hcEhkHIrbsDondm1WlCO
+NB67OKc8Mb168kOL6xbKrZveax74T7ZeSikfehTukfSUT6S9m3Z6vPFRepaogQ6D
+hz+Lrl4ymzSesufbL+wCoOH9UVL+LNs2usHWXktYbd7G4eH6mgMsW6Lhs5v5NuzB
+c/ozEmaV42kQtteqM/r2nUFtliq6voMxQX8MCtJp1vw1TMM=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert16[] = {
+  0x30, 0x82, 0x04, 0x6f, 0x30, 0x82, 0x03, 0x57, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x02, 0x3a, 0x73, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x42, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47,
+  0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30,
+  0x36, 0x31, 0x31, 0x32, 0x32, 0x30, 0x32, 0x35, 0x39, 0x5a, 0x17, 0x0d,
+  0x32, 0x32, 0x30, 0x35, 0x32, 0x30, 0x32, 0x32, 0x30, 0x32, 0x35, 0x39,
+  0x5a, 0x30, 0x66, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x14, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61,
+  0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31,
+  0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x47, 0x65,
+  0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x44, 0x56, 0x20, 0x53, 0x53,
+  0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb3, 0x44, 0x3a, 0x6c, 0xb0, 0xae,
+  0xcb, 0x14, 0xf9, 0x8c, 0x19, 0x74, 0x34, 0x5c, 0xa9, 0x69, 0xe3, 0x88,
+  0x53, 0x77, 0xa5, 0xa7, 0xff, 0xbd, 0xd1, 0x3c, 0x0d, 0x27, 0xe4, 0xde,
+  0xad, 0x7f, 0xbc, 0xd1, 0x90, 0x58, 0x93, 0xd6, 0xa6, 0xda, 0x39, 0x9c,
+  0xad, 0xe1, 0x0e, 0x56, 0x46, 0xee, 0x95, 0x9e, 0x10, 0x68, 0x4c, 0x9c,
+  0x2b, 0xf6, 0x6a, 0x3a, 0x8b, 0x80, 0x81, 0x87, 0x06, 0x57, 0x25, 0x1a,
+  0x56, 0x52, 0x94, 0xdd, 0x90, 0xeb, 0x67, 0x3b, 0xde, 0xfa, 0xae, 0x36,
+  0x68, 0xd3, 0x62, 0x69, 0xf6, 0x6c, 0x82, 0x24, 0x44, 0x4f, 0x87, 0x5c,
+  0x98, 0x11, 0x95, 0x64, 0x6b, 0xe8, 0x0c, 0xd1, 0xdd, 0xe6, 0x27, 0x97,
+  0xae, 0xcc, 0xe2, 0x91, 0x6a, 0x41, 0x12, 0xb6, 0xab, 0xe5, 0xcc, 0x6e,
+  0xcc, 0x23, 0xb8, 0x63, 0x8a, 0x1f, 0x31, 0x93, 0x2d, 0x06, 0xc4, 0xf7,
+  0xe8, 0x3d, 0x58, 0xcd, 0x97, 0x08, 0x46, 0x6c, 0x7b, 0x74, 0xc0, 0xf8,
+  0xfc, 0x31, 0x3b, 0xa7, 0x7f, 0xd7, 0x8f, 0xb0, 0xc9, 0x15, 0x63, 0x50,
+  0x7a, 0x12, 0x4d, 0xf5, 0x12, 0x1e, 0xa3, 0x7e, 0x55, 0xe3, 0x75, 0xb7,
+  0xea, 0x1e, 0xea, 0x31, 0x2c, 0x08, 0x4e, 0xd8, 0xcb, 0x43, 0x74, 0x89,
+  0x24, 0xbc, 0xd2, 0x0e, 0x1e, 0xf0, 0xdb, 0x05, 0x24, 0xf6, 0x8a, 0xbf,
+  0x10, 0x27, 0x84, 0x41, 0x1a, 0xf6, 0x18, 0x53, 0xee, 0x91, 0xd0, 0x54,
+  0x17, 0xd3, 0x7d, 0x3e, 0x7e, 0xb2, 0x7d, 0xa8, 0xbf, 0xdb, 0xb9, 0x21,
+  0x2a, 0xf0, 0x89, 0xb9, 0x08, 0x6e, 0x5a, 0xb3, 0x5e, 0xea, 0x82, 0xb8,
+  0x7e, 0x27, 0x0b, 0xcc, 0x56, 0x73, 0x81, 0x05, 0x4f, 0xe3, 0x96, 0x2d,
+  0x71, 0xd5, 0x78, 0xa7, 0x60, 0xc3, 0xd7, 0xec, 0xaa, 0x39, 0x1a, 0x05,
+  0x39, 0x82, 0x81, 0xe0, 0x15, 0x2c, 0x35, 0xd1, 0xee, 0x25, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x48, 0x30, 0x82, 0x01, 0x44, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0xc0, 0x7a, 0x98, 0x68, 0x8d, 0x89, 0xfb, 0xab, 0x05, 0x64, 0x0c, 0x11,
+  0x7d, 0xaa, 0x7d, 0x65, 0xb8, 0xca, 0xcc, 0x4e, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xad, 0x65, 0x22, 0x85, 0x90,
+  0xd0, 0x3b, 0xe3, 0xa1, 0x49, 0x8b, 0x37, 0xf9, 0xf1, 0x0b, 0x1d, 0x5f,
+  0x17, 0xa0, 0x77, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2e,
+  0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x72, 0x6c, 0x73, 0x2f, 0x67, 0x74,
+  0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x2e,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22,
+  0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67,
+  0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4c,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06,
+  0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30,
+  0x33, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x01, 0x16, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+  0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04,
+  0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74,
+  0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x36, 0x39, 0x39, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x4e, 0x27, 0xb8, 0x1a, 0xc7,
+  0x3b, 0xdc, 0x5d, 0xbb, 0x9e, 0x1a, 0x35, 0x23, 0x1e, 0x88, 0x55, 0x90,
+  0xd1, 0xec, 0x86, 0x9c, 0x88, 0xb7, 0xe0, 0x1f, 0x67, 0x87, 0xe2, 0x7c,
+  0xb5, 0x43, 0x03, 0x0e, 0xb6, 0x02, 0xe8, 0xe0, 0xff, 0x86, 0x84, 0x19,
+  0x71, 0xe9, 0xf2, 0x4b, 0xf5, 0x9e, 0x2e, 0x2e, 0x5e, 0xdb, 0xab, 0xd6,
+  0x1c, 0x4e, 0xc4, 0x3e, 0xb8, 0x2c, 0x78, 0x86, 0x71, 0x10, 0xae, 0x8d,
+  0xc5, 0x70, 0xbf, 0xa4, 0xf9, 0x89, 0xe6, 0xb4, 0xed, 0xe8, 0x4b, 0xed,
+  0x7c, 0x09, 0x2a, 0x09, 0x08, 0x06, 0x3e, 0xd4, 0xe1, 0xde, 0x82, 0x92,
+  0x0c, 0x34, 0x30, 0x35, 0x0a, 0xc1, 0x60, 0x75, 0xca, 0xb6, 0x55, 0x6b,
+  0xaa, 0x00, 0x42, 0xcb, 0x3f, 0xfb, 0x10, 0xe1, 0xfb, 0x85, 0xc1, 0x21,
+  0x90, 0x72, 0x2b, 0x6e, 0xc0, 0xe8, 0x9d, 0xd9, 0xb5, 0x5a, 0x50, 0x8e,
+  0x34, 0x1e, 0xbb, 0x38, 0xa7, 0x3c, 0x31, 0xbd, 0x7a, 0xf2, 0x43, 0x8b,
+  0xeb, 0x16, 0xca, 0xad, 0x9b, 0xde, 0x6b, 0x1e, 0xf8, 0x4f, 0xb6, 0x5e,
+  0x4a, 0x29, 0x1f, 0x7a, 0x14, 0xee, 0x91, 0xf4, 0x94, 0x4f, 0xa4, 0xbd,
+  0x9b, 0x76, 0x7a, 0xbc, 0xf1, 0x51, 0x7a, 0x96, 0xa8, 0x81, 0x0e, 0x83,
+  0x87, 0x3f, 0x8b, 0xae, 0x5e, 0x32, 0x9b, 0x34, 0x9e, 0xb2, 0xe7, 0xdb,
+  0x2f, 0xec, 0x02, 0xa0, 0xe1, 0xfd, 0x51, 0x52, 0xfe, 0x2c, 0xdb, 0x36,
+  0xba, 0xc1, 0xd6, 0x5e, 0x4b, 0x58, 0x6d, 0xde, 0xc6, 0xe1, 0xe1, 0xfa,
+  0x9a, 0x03, 0x2c, 0x5b, 0xa2, 0xe1, 0xb3, 0x9b, 0xf9, 0x36, 0xec, 0xc1,
+  0x73, 0xfa, 0x33, 0x12, 0x66, 0x95, 0xe3, 0x69, 0x10, 0xb6, 0xd7, 0xaa,
+  0x33, 0xfa, 0xf6, 0x9d, 0x41, 0x6d, 0x96, 0x2a, 0xba, 0xbe, 0x83, 0x31,
+  0x41, 0x7f, 0x0c, 0x0a, 0xd2, 0x69, 0xd6, 0xfc, 0x35, 0x4c, 0xc3,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 12037640545166866303 (0xa70e4a4c3482b77f)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
+        Validity
+            Not Before: Sep  2 00:00:00 2009 GMT
+            Not After : Jun 28 17:39:16 2034 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d5:0c:3a:c4:2a:f9:4e:e2:f5:be:19:97:5f:8e:
+                    88:53:b1:1f:3f:cb:cf:9f:20:13:6d:29:3a:c8:0f:
+                    7d:3c:f7:6b:76:38:63:d9:36:60:a8:9b:5e:5c:00:
+                    80:b2:2f:59:7f:f6:87:f9:25:43:86:e7:69:1b:52:
+                    9a:90:e1:71:e3:d8:2d:0d:4e:6f:f6:c8:49:d9:b6:
+                    f3:1a:56:ae:2b:b6:74:14:eb:cf:fb:26:e3:1a:ba:
+                    1d:96:2e:6a:3b:58:94:89:47:56:ff:25:a0:93:70:
+                    53:83:da:84:74:14:c3:67:9e:04:68:3a:df:8e:40:
+                    5a:1d:4a:4e:cf:43:91:3b:e7:56:d6:00:70:cb:52:
+                    ee:7b:7d:ae:3a:e7:bc:31:f9:45:f6:c2:60:cf:13:
+                    59:02:2b:80:cc:34:47:df:b9:de:90:65:6d:02:cf:
+                    2c:91:a6:a6:e7:de:85:18:49:7c:66:4e:a3:3a:6d:
+                    a9:b5:ee:34:2e:ba:0d:03:b8:33:df:47:eb:b1:6b:
+                    8d:25:d9:9b:ce:81:d1:45:46:32:96:70:87:de:02:
+                    0e:49:43:85:b6:6c:73:bb:64:ea:61:41:ac:c9:d4:
+                    54:df:87:2f:c7:22:b2:26:cc:9f:59:54:68:9f:fc:
+                    be:2a:2f:c4:55:1c:75:40:60:17:85:02:55:39:8b:
+                    7f:05
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                9C:5F:00:DF:AA:01:D7:30:2B:38:88:A2:B8:6D:4A:9C:F2:11:91:83
+            X509v3 Authority Key Identifier: 
+                keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
+
+            Authority Information Access: 
+                OCSP - URI:http://o.ss2.us/
+                CA Issuers - URI:http://x.ss2.us/x.cer
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://s.ss2.us/r.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+
+    Signature Algorithm: sha256WithRSAEncryption
+         23:1d:e3:8a:57:ca:7d:e9:17:79:4c:f1:1e:55:fd:cc:53:6e:
+         3e:47:0f:df:c6:55:f2:b2:04:36:ed:80:1f:53:c4:5d:34:28:
+         6b:be:c7:55:fc:67:ea:cb:3f:7f:90:b2:33:cd:1b:58:10:82:
+         02:f8:f8:2f:f5:13:60:d4:05:ce:f1:81:08:c1:dd:a7:75:97:
+         4f:18:b9:6d:de:f7:93:91:08:ba:7e:40:2c:ed:c1:ea:bb:76:
+         9e:33:06:77:1d:0d:08:7f:53:dd:1b:64:ab:82:27:f1:69:d5:
+         4d:5e:ae:f4:a1:c3:75:a7:58:44:2d:f2:3c:70:98:ac:ba:69:
+         b6:95:77:7f:0f:31:5e:2c:fc:a0:87:3a:47:69:f0:79:5f:f4:
+         14:54:a4:95:5e:11:78:12:60:27:ce:9f:c2:77:ff:23:53:77:
+         5d:ba:ff:ea:59:e7:db:cf:af:92:96:ef:24:9a:35:10:7a:9c:
+         91:c6:0e:7d:99:f6:3f:19:df:f5:72:54:e1:15:a9:07:59:7b:
+         83:bf:52:2e:46:8c:b2:00:64:76:1c:48:d3:d8:79:e8:6e:56:
+         cc:ae:2c:03:90:d7:19:38:99:e4:ca:09:19:5b:ff:07:96:b0:
+         a8:7f:34:49:df:56:a9:f7:b0:5f:ed:33:ed:8c:47:b7:30:03:
+         5d:f4:03:8c
+-----BEGIN CERTIFICATE-----
+MIIEdTCCA12gAwIBAgIJAKcOSkw0grd/MA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV
+BAYTAlVTMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIw
+MAYDVQQLEylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eTAeFw0wOTA5MDIwMDAwMDBaFw0zNDA2MjgxNzM5MTZaMIGYMQswCQYDVQQGEwJV
+UzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UE
+ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjE7MDkGA1UEAxMyU3RhcmZp
+ZWxkIFNlcnZpY2VzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVDDrEKvlO4vW+GZdfjohTsR8/
+y8+fIBNtKTrID30892t2OGPZNmCom15cAICyL1l/9of5JUOG52kbUpqQ4XHj2C0N
+Tm/2yEnZtvMaVq4rtnQU68/7JuMauh2WLmo7WJSJR1b/JaCTcFOD2oR0FMNnngRo
+Ot+OQFodSk7PQ5E751bWAHDLUu57fa4657wx+UX2wmDPE1kCK4DMNEffud6QZW0C
+zyyRpqbn3oUYSXxmTqM6bam17jQuug0DuDPfR+uxa40l2ZvOgdFFRjKWcIfeAg5J
+Q4W2bHO7ZOphQazJ1FTfhy/HIrImzJ9ZVGif/L4qL8RVHHVAYBeFAlU5i38FAgMB
+AAGjgfAwge0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0O
+BBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMB8GA1UdIwQYMBaAFL9ft9HO3R+G9FtV
+rNzXEMIOqYjnME8GCCsGAQUFBwEBBEMwQTAcBggrBgEFBQcwAYYQaHR0cDovL28u
+c3MyLnVzLzAhBggrBgEFBQcwAoYVaHR0cDovL3guc3MyLnVzL3guY2VyMCYGA1Ud
+HwQfMB0wG6AZoBeGFWh0dHA6Ly9zLnNzMi51cy9yLmNybDARBgNVHSAECjAIMAYG
+BFUdIAAwDQYJKoZIhvcNAQELBQADggEBACMd44pXyn3pF3lM8R5V/cxTbj5HD9/G
+VfKyBDbtgB9TxF00KGu+x1X8Z+rLP3+QsjPNG1gQggL4+C/1E2DUBc7xgQjB3ad1
+l08YuW3e95ORCLp+QCztweq7dp4zBncdDQh/U90bZKuCJ/Fp1U1ervShw3WnWEQt
+8jxwmKy6abaVd38PMV4s/KCHOkdp8Hlf9BRUpJVeEXgSYCfOn8J3/yNTd126/+pZ
+59vPr5KW7ySaNRB6nJHGDn2Z9j8Z3/VyVOEVqQdZe4O/Ui5GjLIAZHYcSNPYeehu
+VsyuLAOQ1xk4meTKCRlb/weWsKh/NEnfVqn3sF/tM+2MR7cwA130A4w=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert17[] = {
+  0x30, 0x82, 0x04, 0x75, 0x30, 0x82, 0x03, 0x5d, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x09, 0x00, 0xa7, 0x0e, 0x4a, 0x4c, 0x34, 0x82, 0xb7, 0x7f,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x30, 0x68, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03,
+  0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65,
+  0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67,
+  0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30,
+  0x30, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x29, 0x53, 0x74, 0x61, 0x72,
+  0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+  0x32, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+  0x79, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x39, 0x30, 0x39, 0x30, 0x32, 0x30,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x34, 0x30, 0x36,
+  0x32, 0x38, 0x31, 0x37, 0x33, 0x39, 0x31, 0x36, 0x5a, 0x30, 0x81, 0x98,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07,
+  0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06,
+  0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73,
+  0x64, 0x61, 0x6c, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64,
+  0x20, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65,
+  0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x3b, 0x30, 0x39, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69,
+  0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73,
+  0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xd5, 0x0c, 0x3a, 0xc4, 0x2a, 0xf9, 0x4e,
+  0xe2, 0xf5, 0xbe, 0x19, 0x97, 0x5f, 0x8e, 0x88, 0x53, 0xb1, 0x1f, 0x3f,
+  0xcb, 0xcf, 0x9f, 0x20, 0x13, 0x6d, 0x29, 0x3a, 0xc8, 0x0f, 0x7d, 0x3c,
+  0xf7, 0x6b, 0x76, 0x38, 0x63, 0xd9, 0x36, 0x60, 0xa8, 0x9b, 0x5e, 0x5c,
+  0x00, 0x80, 0xb2, 0x2f, 0x59, 0x7f, 0xf6, 0x87, 0xf9, 0x25, 0x43, 0x86,
+  0xe7, 0x69, 0x1b, 0x52, 0x9a, 0x90, 0xe1, 0x71, 0xe3, 0xd8, 0x2d, 0x0d,
+  0x4e, 0x6f, 0xf6, 0xc8, 0x49, 0xd9, 0xb6, 0xf3, 0x1a, 0x56, 0xae, 0x2b,
+  0xb6, 0x74, 0x14, 0xeb, 0xcf, 0xfb, 0x26, 0xe3, 0x1a, 0xba, 0x1d, 0x96,
+  0x2e, 0x6a, 0x3b, 0x58, 0x94, 0x89, 0x47, 0x56, 0xff, 0x25, 0xa0, 0x93,
+  0x70, 0x53, 0x83, 0xda, 0x84, 0x74, 0x14, 0xc3, 0x67, 0x9e, 0x04, 0x68,
+  0x3a, 0xdf, 0x8e, 0x40, 0x5a, 0x1d, 0x4a, 0x4e, 0xcf, 0x43, 0x91, 0x3b,
+  0xe7, 0x56, 0xd6, 0x00, 0x70, 0xcb, 0x52, 0xee, 0x7b, 0x7d, 0xae, 0x3a,
+  0xe7, 0xbc, 0x31, 0xf9, 0x45, 0xf6, 0xc2, 0x60, 0xcf, 0x13, 0x59, 0x02,
+  0x2b, 0x80, 0xcc, 0x34, 0x47, 0xdf, 0xb9, 0xde, 0x90, 0x65, 0x6d, 0x02,
+  0xcf, 0x2c, 0x91, 0xa6, 0xa6, 0xe7, 0xde, 0x85, 0x18, 0x49, 0x7c, 0x66,
+  0x4e, 0xa3, 0x3a, 0x6d, 0xa9, 0xb5, 0xee, 0x34, 0x2e, 0xba, 0x0d, 0x03,
+  0xb8, 0x33, 0xdf, 0x47, 0xeb, 0xb1, 0x6b, 0x8d, 0x25, 0xd9, 0x9b, 0xce,
+  0x81, 0xd1, 0x45, 0x46, 0x32, 0x96, 0x70, 0x87, 0xde, 0x02, 0x0e, 0x49,
+  0x43, 0x85, 0xb6, 0x6c, 0x73, 0xbb, 0x64, 0xea, 0x61, 0x41, 0xac, 0xc9,
+  0xd4, 0x54, 0xdf, 0x87, 0x2f, 0xc7, 0x22, 0xb2, 0x26, 0xcc, 0x9f, 0x59,
+  0x54, 0x68, 0x9f, 0xfc, 0xbe, 0x2a, 0x2f, 0xc4, 0x55, 0x1c, 0x75, 0x40,
+  0x60, 0x17, 0x85, 0x02, 0x55, 0x39, 0x8b, 0x7f, 0x05, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x81, 0xf0, 0x30, 0x81, 0xed, 0x30, 0x0f, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01,
+  0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+  0x04, 0x16, 0x04, 0x14, 0x9c, 0x5f, 0x00, 0xdf, 0xaa, 0x01, 0xd7, 0x30,
+  0x2b, 0x38, 0x88, 0xa2, 0xb8, 0x6d, 0x4a, 0x9c, 0xf2, 0x11, 0x91, 0x83,
+  0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+  0x14, 0xbf, 0x5f, 0xb7, 0xd1, 0xce, 0xdd, 0x1f, 0x86, 0xf4, 0x5b, 0x55,
+  0xac, 0xdc, 0xd7, 0x10, 0xc2, 0x0e, 0xa9, 0x88, 0xe7, 0x30, 0x4f, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x43, 0x30,
+  0x41, 0x30, 0x1c, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+  0x01, 0x86, 0x10, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x2e,
+  0x73, 0x73, 0x32, 0x2e, 0x75, 0x73, 0x2f, 0x30, 0x21, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x15, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x2e, 0x73, 0x73, 0x32, 0x2e, 0x75, 0x73,
+  0x2f, 0x78, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x26, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x1f, 0x30, 0x1d, 0x30, 0x1b, 0xa0, 0x19, 0xa0, 0x17, 0x86,
+  0x15, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x2e, 0x73, 0x73,
+  0x32, 0x2e, 0x75, 0x73, 0x2f, 0x72, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x11,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0a, 0x30, 0x08, 0x30, 0x06, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0x23, 0x1d, 0xe3, 0x8a, 0x57, 0xca, 0x7d, 0xe9, 0x17, 0x79, 0x4c,
+  0xf1, 0x1e, 0x55, 0xfd, 0xcc, 0x53, 0x6e, 0x3e, 0x47, 0x0f, 0xdf, 0xc6,
+  0x55, 0xf2, 0xb2, 0x04, 0x36, 0xed, 0x80, 0x1f, 0x53, 0xc4, 0x5d, 0x34,
+  0x28, 0x6b, 0xbe, 0xc7, 0x55, 0xfc, 0x67, 0xea, 0xcb, 0x3f, 0x7f, 0x90,
+  0xb2, 0x33, 0xcd, 0x1b, 0x58, 0x10, 0x82, 0x02, 0xf8, 0xf8, 0x2f, 0xf5,
+  0x13, 0x60, 0xd4, 0x05, 0xce, 0xf1, 0x81, 0x08, 0xc1, 0xdd, 0xa7, 0x75,
+  0x97, 0x4f, 0x18, 0xb9, 0x6d, 0xde, 0xf7, 0x93, 0x91, 0x08, 0xba, 0x7e,
+  0x40, 0x2c, 0xed, 0xc1, 0xea, 0xbb, 0x76, 0x9e, 0x33, 0x06, 0x77, 0x1d,
+  0x0d, 0x08, 0x7f, 0x53, 0xdd, 0x1b, 0x64, 0xab, 0x82, 0x27, 0xf1, 0x69,
+  0xd5, 0x4d, 0x5e, 0xae, 0xf4, 0xa1, 0xc3, 0x75, 0xa7, 0x58, 0x44, 0x2d,
+  0xf2, 0x3c, 0x70, 0x98, 0xac, 0xba, 0x69, 0xb6, 0x95, 0x77, 0x7f, 0x0f,
+  0x31, 0x5e, 0x2c, 0xfc, 0xa0, 0x87, 0x3a, 0x47, 0x69, 0xf0, 0x79, 0x5f,
+  0xf4, 0x14, 0x54, 0xa4, 0x95, 0x5e, 0x11, 0x78, 0x12, 0x60, 0x27, 0xce,
+  0x9f, 0xc2, 0x77, 0xff, 0x23, 0x53, 0x77, 0x5d, 0xba, 0xff, 0xea, 0x59,
+  0xe7, 0xdb, 0xcf, 0xaf, 0x92, 0x96, 0xef, 0x24, 0x9a, 0x35, 0x10, 0x7a,
+  0x9c, 0x91, 0xc6, 0x0e, 0x7d, 0x99, 0xf6, 0x3f, 0x19, 0xdf, 0xf5, 0x72,
+  0x54, 0xe1, 0x15, 0xa9, 0x07, 0x59, 0x7b, 0x83, 0xbf, 0x52, 0x2e, 0x46,
+  0x8c, 0xb2, 0x00, 0x64, 0x76, 0x1c, 0x48, 0xd3, 0xd8, 0x79, 0xe8, 0x6e,
+  0x56, 0xcc, 0xae, 0x2c, 0x03, 0x90, 0xd7, 0x19, 0x38, 0x99, 0xe4, 0xca,
+  0x09, 0x19, 0x5b, 0xff, 0x07, 0x96, 0xb0, 0xa8, 0x7f, 0x34, 0x49, 0xdf,
+  0x56, 0xa9, 0xf7, 0xb0, 0x5f, 0xed, 0x33, 0xed, 0x8c, 0x47, 0xb7, 0x30,
+  0x03, 0x5d, 0xf4, 0x03, 0x8c,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120038006 (0x727a276)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Validity
+            Not Before: Feb 27 18:09:27 2014 GMT
+            Not After : Jun  9 17:07:29 2020 GMT
+        Subject: C=JP, O=Cybertrust Japan Co., Ltd., CN=Cybertrust Japan Public CA G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:94:56:a3:45:44:54:aa:60:64:bf:b8:57:9f:4e:
+                    db:d4:79:68:5f:13:05:f4:3f:cd:25:dd:3c:5e:58:
+                    77:1c:9d:e6:9f:e3:32:49:ef:02:3a:34:53:8d:52:
+                    e5:e3:39:66:1f:e7:33:61:b6:27:c6:24:55:50:27:
+                    02:65:f0:b0:8c:41:8d:30:5e:47:5b:82:6f:c7:9c:
+                    a3:28:43:6d:58:7b:c8:15:98:4e:25:6f:cb:76:27:
+                    5b:0b:2c:2c:b5:98:23:e7:8b:7c:fd:77:1a:c4:52:
+                    ba:5d:19:ee:78:21:4d:21:9a:d9:12:7c:33:15:6b:
+                    1a:c9:81:ea:da:da:57:b7:d5:2f:ce:1f:4b:fc:b4:
+                    33:e0:a0:c9:94:27:bb:27:40:b6:90:db:ac:9e:75:
+                    a6:11:2b:49:19:2d:c3:c2:43:07:09:bb:3d:6e:88:
+                    a3:e3:8a:c5:d2:86:f6:65:5b:34:c3:9f:4c:02:e5:
+                    09:ba:2c:c6:76:66:eb:d1:76:25:f4:30:13:fb:58:
+                    60:a8:58:e3:51:6f:4b:08:04:61:8d:ac:a9:30:2f:
+                    52:41:a3:22:c1:33:59:ab:7b:59:f9:93:67:4b:c9:
+                    89:75:52:ef:29:49:34:93:1c:9c:93:73:9c:19:ce:
+                    5c:18:cd:4c:09:27:c1:3f:f5:49:ec:f4:e2:df:4b:
+                    af:8f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6334.1.0
+                  CPS: http://cybertrust.omniroot.com/repository.cfm
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Authority Key Identifier: 
+                keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+            X509v3 Subject Key Identifier: 
+                73:A8:08:53:29:B8:15:FB:99:80:E5:C5:37:D8:F8:39:7B:A4:13:06
+    Signature Algorithm: sha256WithRSAEncryption
+         68:df:fe:72:54:4e:1b:fb:5c:6e:5a:45:46:cf:42:be:b2:02:
+         9c:9d:90:6a:09:2e:b7:36:64:24:b6:b1:e2:48:67:ce:17:46:
+         9b:23:75:78:11:f6:c6:09:38:42:62:96:97:30:7b:51:77:df:
+         33:b5:00:51:29:d5:24:fe:b7:98:a2:ac:6c:a1:13:7f:ca:f3:
+         b7:a6:52:c2:16:0d:ec:3a:bf:a3:37:77:4f:ae:7b:55:1d:46:
+         e9:10:da:c3:b4:05:5c:5b:f6:48:21:00:89:f4:bb:38:8e:1e:
+         33:f3:49:97:81:31:6c:16:74:08:91:17:c0:d3:25:b3:bc:c1:
+         15:b5:a4:cd:84:4d:b9:c8:eb:c5:59:42:10:14:25:79:f8:db:
+         b6:d0:e6:d3:a0:14:7c:17:1c:20:1e:ed:99:90:65:c0:41:71:
+         c3:ab:3f:29:41:67:f9:e2:d1:98:e3:f8:df:3a:b8:ca:a3:6f:
+         68:8b:6c:9f:6e:88:7c:9d:41:5c:ba:cb:19:05:83:9c:99:f4:
+         1a:d2:24:69:57:0a:0f:7a:c3:1b:2c:4b:06:d3:2a:97:7e:07:
+         b0:f9:20:5a:b5:92:4b:5b:a8:eb:eb:36:33:47:36:da:72:9c:
+         bf:68:45:81:31:be:d2:fd:3b:e9:72:d5:70:dd:a6:de:5f:0d:
+         b6:5e:00:49
+-----BEGIN CERTIFICATE-----
+MIIEeTCCA2GgAwIBAgIEByeidjANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDIyNzE4MDkyN1oX
+DTIwMDYwOTE3MDcyOVowWjELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1
+c3QgSmFwYW4gQ28uLCBMdGQuMSYwJAYDVQQDEx1DeWJlcnRydXN0IEphcGFuIFB1
+YmxpYyBDQSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJRWo0VE
+VKpgZL+4V59O29R5aF8TBfQ/zSXdPF5Ydxyd5p/jMknvAjo0U41S5eM5Zh/nM2G2
+J8YkVVAnAmXwsIxBjTBeR1uCb8ecoyhDbVh7yBWYTiVvy3YnWwssLLWYI+eLfP13
+GsRSul0Z7nghTSGa2RJ8MxVrGsmB6traV7fVL84fS/y0M+CgyZQnuydAtpDbrJ51
+phErSRktw8JDBwm7PW6Io+OKxdKG9mVbNMOfTALlCbosxnZm69F2JfQwE/tYYKhY
+41FvSwgEYY2sqTAvUkGjIsEzWat7WfmTZ0vJiXVS7ylJNJMcnJNznBnOXBjNTAkn
+wT/1Sez04t9Lr48CAwEAAaOCAUUwggFBMBIGA1UdEwEB/wQIMAYBAf8CAQAwUwYD
+VR0gBEwwSjBIBgkrBgEEAbE+AQAwOzA5BggrBgEFBQcCARYtaHR0cDovL2N5YmVy
+dHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnkuY2ZtMEIGCCsGAQUFBwEBBDYw
+NDAyBggrBgEFBQcwAYYmaHR0cDovL29jc3Aub21uaXJvb3QuY29tL2JhbHRpbW9y
+ZXJvb3QwDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFOWdWTCCR1jMrPoIVDaG
+ezq1BE3wMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jZHAxLnB1YmxpYy10cnVz
+dC5jb20vQ1JML09tbmlyb290MjAyNS5jcmwwHQYDVR0OBBYEFHOoCFMpuBX7mYDl
+xTfY+Dl7pBMGMA0GCSqGSIb3DQEBCwUAA4IBAQBo3/5yVE4b+1xuWkVGz0K+sgKc
+nZBqCS63NmQktrHiSGfOF0abI3V4EfbGCThCYpaXMHtRd98ztQBRKdUk/reYoqxs
+oRN/yvO3plLCFg3sOr+jN3dPrntVHUbpENrDtAVcW/ZIIQCJ9Ls4jh4z80mXgTFs
+FnQIkRfA0yWzvMEVtaTNhE25yOvFWUIQFCV5+Nu20ObToBR8FxwgHu2ZkGXAQXHD
+qz8pQWf54tGY4/jfOrjKo29oi2yfboh8nUFcussZBYOcmfQa0iRpVwoPesMbLEsG
+0yqXfgew+SBatZJLW6jr6zYzRzbacpy/aEWBMb7S/TvpctVw3abeXw22XgBJ
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert18[] = {
+  0x30, 0x82, 0x04, 0x79, 0x30, 0x82, 0x03, 0x61, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0xa2, 0x76, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+  0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+  0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+  0x30, 0x32, 0x32, 0x37, 0x31, 0x38, 0x30, 0x39, 0x32, 0x37, 0x5a, 0x17,
+  0x0d, 0x32, 0x30, 0x30, 0x36, 0x30, 0x39, 0x31, 0x37, 0x30, 0x37, 0x32,
+  0x39, 0x5a, 0x30, 0x5a, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
+  0x06, 0x13, 0x02, 0x4a, 0x50, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55,
+  0x04, 0x0a, 0x13, 0x1a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x20, 0x4a, 0x61, 0x70, 0x61, 0x6e, 0x20, 0x43, 0x6f, 0x2e,
+  0x2c, 0x20, 0x4c, 0x74, 0x64, 0x2e, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x1d, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x4a, 0x61, 0x70, 0x61, 0x6e, 0x20, 0x50, 0x75,
+  0x62, 0x6c, 0x69, 0x63, 0x20, 0x43, 0x41, 0x20, 0x47, 0x33, 0x30, 0x82,
+  0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82,
+  0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x94, 0x56, 0xa3, 0x45, 0x44,
+  0x54, 0xaa, 0x60, 0x64, 0xbf, 0xb8, 0x57, 0x9f, 0x4e, 0xdb, 0xd4, 0x79,
+  0x68, 0x5f, 0x13, 0x05, 0xf4, 0x3f, 0xcd, 0x25, 0xdd, 0x3c, 0x5e, 0x58,
+  0x77, 0x1c, 0x9d, 0xe6, 0x9f, 0xe3, 0x32, 0x49, 0xef, 0x02, 0x3a, 0x34,
+  0x53, 0x8d, 0x52, 0xe5, 0xe3, 0x39, 0x66, 0x1f, 0xe7, 0x33, 0x61, 0xb6,
+  0x27, 0xc6, 0x24, 0x55, 0x50, 0x27, 0x02, 0x65, 0xf0, 0xb0, 0x8c, 0x41,
+  0x8d, 0x30, 0x5e, 0x47, 0x5b, 0x82, 0x6f, 0xc7, 0x9c, 0xa3, 0x28, 0x43,
+  0x6d, 0x58, 0x7b, 0xc8, 0x15, 0x98, 0x4e, 0x25, 0x6f, 0xcb, 0x76, 0x27,
+  0x5b, 0x0b, 0x2c, 0x2c, 0xb5, 0x98, 0x23, 0xe7, 0x8b, 0x7c, 0xfd, 0x77,
+  0x1a, 0xc4, 0x52, 0xba, 0x5d, 0x19, 0xee, 0x78, 0x21, 0x4d, 0x21, 0x9a,
+  0xd9, 0x12, 0x7c, 0x33, 0x15, 0x6b, 0x1a, 0xc9, 0x81, 0xea, 0xda, 0xda,
+  0x57, 0xb7, 0xd5, 0x2f, 0xce, 0x1f, 0x4b, 0xfc, 0xb4, 0x33, 0xe0, 0xa0,
+  0xc9, 0x94, 0x27, 0xbb, 0x27, 0x40, 0xb6, 0x90, 0xdb, 0xac, 0x9e, 0x75,
+  0xa6, 0x11, 0x2b, 0x49, 0x19, 0x2d, 0xc3, 0xc2, 0x43, 0x07, 0x09, 0xbb,
+  0x3d, 0x6e, 0x88, 0xa3, 0xe3, 0x8a, 0xc5, 0xd2, 0x86, 0xf6, 0x65, 0x5b,
+  0x34, 0xc3, 0x9f, 0x4c, 0x02, 0xe5, 0x09, 0xba, 0x2c, 0xc6, 0x76, 0x66,
+  0xeb, 0xd1, 0x76, 0x25, 0xf4, 0x30, 0x13, 0xfb, 0x58, 0x60, 0xa8, 0x58,
+  0xe3, 0x51, 0x6f, 0x4b, 0x08, 0x04, 0x61, 0x8d, 0xac, 0xa9, 0x30, 0x2f,
+  0x52, 0x41, 0xa3, 0x22, 0xc1, 0x33, 0x59, 0xab, 0x7b, 0x59, 0xf9, 0x93,
+  0x67, 0x4b, 0xc9, 0x89, 0x75, 0x52, 0xef, 0x29, 0x49, 0x34, 0x93, 0x1c,
+  0x9c, 0x93, 0x73, 0x9c, 0x19, 0xce, 0x5c, 0x18, 0xcd, 0x4c, 0x09, 0x27,
+  0xc1, 0x3f, 0xf5, 0x49, 0xec, 0xf4, 0xe2, 0xdf, 0x4b, 0xaf, 0x8f, 0x02,
+  0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x45, 0x30, 0x82, 0x01, 0x41,
+  0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+  0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x53, 0x06, 0x03,
+  0x55, 0x1d, 0x20, 0x04, 0x4c, 0x30, 0x4a, 0x30, 0x48, 0x06, 0x09, 0x2b,
+  0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e, 0x01, 0x00, 0x30, 0x3b, 0x30, 0x39,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x2d,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f,
+  0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73,
+  0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x63, 0x66, 0x6d, 0x30, 0x42, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x36, 0x30,
+  0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+  0x01, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63,
+  0x73, 0x70, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72,
+  0x65, 0x72, 0x6f, 0x6f, 0x74, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+  0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d,
+  0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86,
+  0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86,
+  0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31,
+  0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d,
+  0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0x73, 0xa8, 0x08, 0x53, 0x29, 0xb8, 0x15, 0xfb, 0x99, 0x80, 0xe5,
+  0xc5, 0x37, 0xd8, 0xf8, 0x39, 0x7b, 0xa4, 0x13, 0x06, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0x68, 0xdf, 0xfe, 0x72, 0x54, 0x4e, 0x1b,
+  0xfb, 0x5c, 0x6e, 0x5a, 0x45, 0x46, 0xcf, 0x42, 0xbe, 0xb2, 0x02, 0x9c,
+  0x9d, 0x90, 0x6a, 0x09, 0x2e, 0xb7, 0x36, 0x64, 0x24, 0xb6, 0xb1, 0xe2,
+  0x48, 0x67, 0xce, 0x17, 0x46, 0x9b, 0x23, 0x75, 0x78, 0x11, 0xf6, 0xc6,
+  0x09, 0x38, 0x42, 0x62, 0x96, 0x97, 0x30, 0x7b, 0x51, 0x77, 0xdf, 0x33,
+  0xb5, 0x00, 0x51, 0x29, 0xd5, 0x24, 0xfe, 0xb7, 0x98, 0xa2, 0xac, 0x6c,
+  0xa1, 0x13, 0x7f, 0xca, 0xf3, 0xb7, 0xa6, 0x52, 0xc2, 0x16, 0x0d, 0xec,
+  0x3a, 0xbf, 0xa3, 0x37, 0x77, 0x4f, 0xae, 0x7b, 0x55, 0x1d, 0x46, 0xe9,
+  0x10, 0xda, 0xc3, 0xb4, 0x05, 0x5c, 0x5b, 0xf6, 0x48, 0x21, 0x00, 0x89,
+  0xf4, 0xbb, 0x38, 0x8e, 0x1e, 0x33, 0xf3, 0x49, 0x97, 0x81, 0x31, 0x6c,
+  0x16, 0x74, 0x08, 0x91, 0x17, 0xc0, 0xd3, 0x25, 0xb3, 0xbc, 0xc1, 0x15,
+  0xb5, 0xa4, 0xcd, 0x84, 0x4d, 0xb9, 0xc8, 0xeb, 0xc5, 0x59, 0x42, 0x10,
+  0x14, 0x25, 0x79, 0xf8, 0xdb, 0xb6, 0xd0, 0xe6, 0xd3, 0xa0, 0x14, 0x7c,
+  0x17, 0x1c, 0x20, 0x1e, 0xed, 0x99, 0x90, 0x65, 0xc0, 0x41, 0x71, 0xc3,
+  0xab, 0x3f, 0x29, 0x41, 0x67, 0xf9, 0xe2, 0xd1, 0x98, 0xe3, 0xf8, 0xdf,
+  0x3a, 0xb8, 0xca, 0xa3, 0x6f, 0x68, 0x8b, 0x6c, 0x9f, 0x6e, 0x88, 0x7c,
+  0x9d, 0x41, 0x5c, 0xba, 0xcb, 0x19, 0x05, 0x83, 0x9c, 0x99, 0xf4, 0x1a,
+  0xd2, 0x24, 0x69, 0x57, 0x0a, 0x0f, 0x7a, 0xc3, 0x1b, 0x2c, 0x4b, 0x06,
+  0xd3, 0x2a, 0x97, 0x7e, 0x07, 0xb0, 0xf9, 0x20, 0x5a, 0xb5, 0x92, 0x4b,
+  0x5b, 0xa8, 0xeb, 0xeb, 0x36, 0x33, 0x47, 0x36, 0xda, 0x72, 0x9c, 0xbf,
+  0x68, 0x45, 0x81, 0x31, 0xbe, 0xd2, 0xfd, 0x3b, 0xe9, 0x72, 0xd5, 0x70,
+  0xdd, 0xa6, 0xde, 0x5f, 0x0d, 0xb6, 0x5e, 0x00, 0x49,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1828629 (0x1be715)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
+        Validity
+            Not Before: Jan  1 07:00:00 2014 GMT
+            Not After : May 30 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bf:71:62:08:f1:fa:59:34:f7:1b:c9:18:a3:f7:
+                    80:49:58:e9:22:83:13:a6:c5:20:43:01:3b:84:f1:
+                    e6:85:49:9f:27:ea:f6:84:1b:4e:a0:b4:db:70:98:
+                    c7:32:01:b1:05:3e:07:4e:ee:f4:fa:4f:2f:59:30:
+                    22:e7:ab:19:56:6b:e2:80:07:fc:f3:16:75:80:39:
+                    51:7b:e5:f9:35:b6:74:4e:a9:8d:82:13:e4:b6:3f:
+                    a9:03:83:fa:a2:be:8a:15:6a:7f:de:0b:c3:b6:19:
+                    14:05:ca:ea:c3:a8:04:94:3b:46:7c:32:0d:f3:00:
+                    66:22:c8:8d:69:6d:36:8c:11:18:b7:d3:b2:1c:60:
+                    b4:38:fa:02:8c:ce:d3:dd:46:07:de:0a:3e:eb:5d:
+                    7c:c8:7c:fb:b0:2b:53:a4:92:62:69:51:25:05:61:
+                    1a:44:81:8c:2c:a9:43:96:23:df:ac:3a:81:9a:0e:
+                    29:c5:1c:a9:e9:5d:1e:b6:9e:9e:30:0a:39:ce:f1:
+                    88:80:fb:4b:5d:cc:32:ec:85:62:43:25:34:02:56:
+                    27:01:91:b4:3b:70:2a:3f:6e:b1:e8:9c:88:01:7d:
+                    9f:d4:f9:db:53:6d:60:9d:bf:2c:e7:58:ab:b8:5f:
+                    46:fc:ce:c4:1b:03:3c:09:eb:49:31:5c:69:46:b3:
+                    e0:47
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+            X509v3 Authority Key Identifier: 
+                keyid:D2:C4:B0:D2:91:D4:4C:11:71:B3:61:CB:3D:A1:FE:DD:A8:6A:D4:E3
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.godaddy.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.godaddy.com/gdroot.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.godaddy.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         59:0b:53:bd:92:86:11:a7:24:7b:ed:5b:31:cf:1d:1f:6c:70:
+         c5:b8:6e:be:4e:bb:f6:be:97:50:e1:30:7f:ba:28:5c:62:94:
+         c2:e3:7e:33:f7:fb:42:76:85:db:95:1c:8c:22:58:75:09:0c:
+         88:65:67:39:0a:16:09:c5:a0:38:97:a4:c5:23:93:3f:b4:18:
+         a6:01:06:44:91:e3:a7:69:27:b4:5a:25:7f:3a:b7:32:cd:dd:
+         84:ff:2a:38:29:33:a4:dd:67:b2:85:fe:a1:88:20:1c:50:89:
+         c8:dc:2a:f6:42:03:37:4c:e6:88:df:d5:af:24:f2:b1:c3:df:
+         cc:b5:ec:e0:99:5e:b7:49:54:20:3c:94:18:0c:c7:1c:52:18:
+         49:a4:6d:e1:b3:58:0b:c9:d8:ec:d9:ae:1c:32:8e:28:70:0d:
+         e2:fe:a6:17:9e:84:0f:bd:57:70:b3:5a:e9:1f:a0:86:53:bb:
+         ef:7c:ff:69:0b:e0:48:c3:b7:93:0b:c8:0a:54:c4:ac:5d:14:
+         67:37:6c:ca:a5:2f:31:08:37:aa:6e:6f:8c:bc:9b:e2:57:5d:
+         24:81:af:97:97:9c:84:ad:6c:ac:37:4c:66:f3:61:91:11:20:
+         e4:be:30:9f:7a:a4:29:09:b0:e1:34:5f:64:77:18:40:51:df:
+         8c:30:a6:af
+-----BEGIN CERTIFICATE-----
+MIIEfTCCA2WgAwIBAgIDG+cVMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVT
+MSEwHwYDVQQKExhUaGUgR28gRGFkZHkgR3JvdXAsIEluYy4xMTAvBgNVBAsTKEdv
+IERhZGR5IENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMTAx
+MDcwMDAwWhcNMzEwNTMwMDcwMDAwWjCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHku
+Y29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1
+dGhvcml0eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3Fi
+CPH6WTT3G8kYo/eASVjpIoMTpsUgQwE7hPHmhUmfJ+r2hBtOoLTbcJjHMgGxBT4H
+Tu70+k8vWTAi56sZVmvigAf88xZ1gDlRe+X5NbZ0TqmNghPktj+pA4P6or6KFWp/
+3gvDthkUBcrqw6gElDtGfDIN8wBmIsiNaW02jBEYt9OyHGC0OPoCjM7T3UYH3go+
+6118yHz7sCtTpJJiaVElBWEaRIGMLKlDliPfrDqBmg4pxRyp6V0etp6eMAo5zvGI
+gPtLXcwy7IViQyU0AlYnAZG0O3AqP26x6JyIAX2f1PnbU21gnb8s51iruF9G/M7E
+GwM8CetJMVxpRrPgRwIDAQABo4IBFzCCARMwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9BUFuIMGU2g/eMB8GA1Ud
+IwQYMBaAFNLEsNKR1EwRcbNhyz2h/t2oatTjMDQGCCsGAQUFBwEBBCgwJjAkBggr
+BgEFBQcwAYYYaHR0cDovL29jc3AuZ29kYWRkeS5jb20vMDIGA1UdHwQrMCkwJ6Al
+oCOGIWh0dHA6Ly9jcmwuZ29kYWRkeS5jb20vZ2Ryb290LmNybDBGBgNVHSAEPzA9
+MDsGBFUdIAAwMzAxBggrBgEFBQcCARYlaHR0cHM6Ly9jZXJ0cy5nb2RhZGR5LmNv
+bS9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWQtTvZKGEacke+1bMc8d
+H2xwxbhuvk679r6XUOEwf7ooXGKUwuN+M/f7QnaF25UcjCJYdQkMiGVnOQoWCcWg
+OJekxSOTP7QYpgEGRJHjp2kntFolfzq3Ms3dhP8qOCkzpN1nsoX+oYggHFCJyNwq
+9kIDN0zmiN/VryTyscPfzLXs4Jlet0lUIDyUGAzHHFIYSaRt4bNYC8nY7NmuHDKO
+KHAN4v6mF56ED71XcLNa6R+ghlO773z/aQvgSMO3kwvIClTErF0UZzdsyqUvMQg3
+qm5vjLyb4lddJIGvl5echK1srDdMZvNhkREg5L4wn3qkKQmw4TRfZHcYQFHfjDCm
+rw==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert19[] = {
+  0x30, 0x82, 0x04, 0x7d, 0x30, 0x82, 0x03, 0x65, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x1b, 0xe7, 0x15, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x63, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x54,
+  0x68, 0x65, 0x20, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20,
+  0x47, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+  0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x28, 0x47, 0x6f,
+  0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+  0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x31, 0x30, 0x31,
+  0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30,
+  0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81,
+  0x83, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
+  0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11,
+  0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74,
+  0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55,
+  0x04, 0x0a, 0x13, 0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30,
+  0x2f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44,
+  0x61, 0x64, 0x64, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbf, 0x71, 0x62,
+  0x08, 0xf1, 0xfa, 0x59, 0x34, 0xf7, 0x1b, 0xc9, 0x18, 0xa3, 0xf7, 0x80,
+  0x49, 0x58, 0xe9, 0x22, 0x83, 0x13, 0xa6, 0xc5, 0x20, 0x43, 0x01, 0x3b,
+  0x84, 0xf1, 0xe6, 0x85, 0x49, 0x9f, 0x27, 0xea, 0xf6, 0x84, 0x1b, 0x4e,
+  0xa0, 0xb4, 0xdb, 0x70, 0x98, 0xc7, 0x32, 0x01, 0xb1, 0x05, 0x3e, 0x07,
+  0x4e, 0xee, 0xf4, 0xfa, 0x4f, 0x2f, 0x59, 0x30, 0x22, 0xe7, 0xab, 0x19,
+  0x56, 0x6b, 0xe2, 0x80, 0x07, 0xfc, 0xf3, 0x16, 0x75, 0x80, 0x39, 0x51,
+  0x7b, 0xe5, 0xf9, 0x35, 0xb6, 0x74, 0x4e, 0xa9, 0x8d, 0x82, 0x13, 0xe4,
+  0xb6, 0x3f, 0xa9, 0x03, 0x83, 0xfa, 0xa2, 0xbe, 0x8a, 0x15, 0x6a, 0x7f,
+  0xde, 0x0b, 0xc3, 0xb6, 0x19, 0x14, 0x05, 0xca, 0xea, 0xc3, 0xa8, 0x04,
+  0x94, 0x3b, 0x46, 0x7c, 0x32, 0x0d, 0xf3, 0x00, 0x66, 0x22, 0xc8, 0x8d,
+  0x69, 0x6d, 0x36, 0x8c, 0x11, 0x18, 0xb7, 0xd3, 0xb2, 0x1c, 0x60, 0xb4,
+  0x38, 0xfa, 0x02, 0x8c, 0xce, 0xd3, 0xdd, 0x46, 0x07, 0xde, 0x0a, 0x3e,
+  0xeb, 0x5d, 0x7c, 0xc8, 0x7c, 0xfb, 0xb0, 0x2b, 0x53, 0xa4, 0x92, 0x62,
+  0x69, 0x51, 0x25, 0x05, 0x61, 0x1a, 0x44, 0x81, 0x8c, 0x2c, 0xa9, 0x43,
+  0x96, 0x23, 0xdf, 0xac, 0x3a, 0x81, 0x9a, 0x0e, 0x29, 0xc5, 0x1c, 0xa9,
+  0xe9, 0x5d, 0x1e, 0xb6, 0x9e, 0x9e, 0x30, 0x0a, 0x39, 0xce, 0xf1, 0x88,
+  0x80, 0xfb, 0x4b, 0x5d, 0xcc, 0x32, 0xec, 0x85, 0x62, 0x43, 0x25, 0x34,
+  0x02, 0x56, 0x27, 0x01, 0x91, 0xb4, 0x3b, 0x70, 0x2a, 0x3f, 0x6e, 0xb1,
+  0xe8, 0x9c, 0x88, 0x01, 0x7d, 0x9f, 0xd4, 0xf9, 0xdb, 0x53, 0x6d, 0x60,
+  0x9d, 0xbf, 0x2c, 0xe7, 0x58, 0xab, 0xb8, 0x5f, 0x46, 0xfc, 0xce, 0xc4,
+  0x1b, 0x03, 0x3c, 0x09, 0xeb, 0x49, 0x31, 0x5c, 0x69, 0x46, 0xb3, 0xe0,
+  0x47, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x17, 0x30, 0x82,
+  0x01, 0x13, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
+  0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x3a, 0x9a,
+  0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef, 0xf6, 0xbd, 0x05, 0x41, 0x6e,
+  0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xd2, 0xc4, 0xb0, 0xd2, 0x91,
+  0xd4, 0x4c, 0x11, 0x71, 0xb3, 0x61, 0xcb, 0x3d, 0xa1, 0xfe, 0xdd, 0xa8,
+  0x6a, 0xd4, 0xe3, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64,
+  0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x32, 0x06,
+  0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25,
+  0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x67, 0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72,
+  0x6c, 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d,
+  0x30, 0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25,
+  0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74,
+  0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+  0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x59, 0x0b, 0x53,
+  0xbd, 0x92, 0x86, 0x11, 0xa7, 0x24, 0x7b, 0xed, 0x5b, 0x31, 0xcf, 0x1d,
+  0x1f, 0x6c, 0x70, 0xc5, 0xb8, 0x6e, 0xbe, 0x4e, 0xbb, 0xf6, 0xbe, 0x97,
+  0x50, 0xe1, 0x30, 0x7f, 0xba, 0x28, 0x5c, 0x62, 0x94, 0xc2, 0xe3, 0x7e,
+  0x33, 0xf7, 0xfb, 0x42, 0x76, 0x85, 0xdb, 0x95, 0x1c, 0x8c, 0x22, 0x58,
+  0x75, 0x09, 0x0c, 0x88, 0x65, 0x67, 0x39, 0x0a, 0x16, 0x09, 0xc5, 0xa0,
+  0x38, 0x97, 0xa4, 0xc5, 0x23, 0x93, 0x3f, 0xb4, 0x18, 0xa6, 0x01, 0x06,
+  0x44, 0x91, 0xe3, 0xa7, 0x69, 0x27, 0xb4, 0x5a, 0x25, 0x7f, 0x3a, 0xb7,
+  0x32, 0xcd, 0xdd, 0x84, 0xff, 0x2a, 0x38, 0x29, 0x33, 0xa4, 0xdd, 0x67,
+  0xb2, 0x85, 0xfe, 0xa1, 0x88, 0x20, 0x1c, 0x50, 0x89, 0xc8, 0xdc, 0x2a,
+  0xf6, 0x42, 0x03, 0x37, 0x4c, 0xe6, 0x88, 0xdf, 0xd5, 0xaf, 0x24, 0xf2,
+  0xb1, 0xc3, 0xdf, 0xcc, 0xb5, 0xec, 0xe0, 0x99, 0x5e, 0xb7, 0x49, 0x54,
+  0x20, 0x3c, 0x94, 0x18, 0x0c, 0xc7, 0x1c, 0x52, 0x18, 0x49, 0xa4, 0x6d,
+  0xe1, 0xb3, 0x58, 0x0b, 0xc9, 0xd8, 0xec, 0xd9, 0xae, 0x1c, 0x32, 0x8e,
+  0x28, 0x70, 0x0d, 0xe2, 0xfe, 0xa6, 0x17, 0x9e, 0x84, 0x0f, 0xbd, 0x57,
+  0x70, 0xb3, 0x5a, 0xe9, 0x1f, 0xa0, 0x86, 0x53, 0xbb, 0xef, 0x7c, 0xff,
+  0x69, 0x0b, 0xe0, 0x48, 0xc3, 0xb7, 0x93, 0x0b, 0xc8, 0x0a, 0x54, 0xc4,
+  0xac, 0x5d, 0x14, 0x67, 0x37, 0x6c, 0xca, 0xa5, 0x2f, 0x31, 0x08, 0x37,
+  0xaa, 0x6e, 0x6f, 0x8c, 0xbc, 0x9b, 0xe2, 0x57, 0x5d, 0x24, 0x81, 0xaf,
+  0x97, 0x97, 0x9c, 0x84, 0xad, 0x6c, 0xac, 0x37, 0x4c, 0x66, 0xf3, 0x61,
+  0x91, 0x11, 0x20, 0xe4, 0xbe, 0x30, 0x9f, 0x7a, 0xa4, 0x29, 0x09, 0xb0,
+  0xe1, 0x34, 0x5f, 0x64, 0x77, 0x18, 0x40, 0x51, 0xdf, 0x8c, 0x30, 0xa6,
+  0xaf,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            46:f0:8c:db:cf:2c:54:66:ef:33:01:dd:5f:34
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
+        Validity
+            Not Before: Aug 19 00:00:00 2015 GMT
+            Not After : Aug 19 00:00:00 2025 GMT
+        Subject: C=BE, O=GlobalSign nv-sa, CN=GlobalSign CloudSSL CA - SHA256 - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a3:c0:75:e1:32:98:e5:d9:ae:84:7c:8d:e8:23:
+                    5f:46:95:5b:4c:a2:25:70:d7:90:04:85:80:c9:b5:
+                    f4:8a:65:4d:92:cb:a5:c4:42:a0:b6:79:25:31:ed:
+                    f1:85:20:cd:13:51:3d:67:ac:97:4d:68:9b:33:86:
+                    5c:b3:7b:2d:aa:df:77:a0:61:d1:f5:3c:fb:9a:fc:
+                    d3:d5:94:ca:c9:1e:80:1b:90:90:c8:ac:8d:f6:60:
+                    17:9c:31:b8:c5:61:a2:e2:6e:57:25:08:6f:24:99:
+                    99:cf:94:bf:c7:8b:6b:b0:1f:ca:14:fa:18:9b:6c:
+                    10:7c:99:2b:da:4a:63:e5:b2:4e:c2:fd:3e:10:0b:
+                    48:f4:77:0b:2f:f0:96:4b:3a:ee:bd:35:de:85:8d:
+                    da:13:0e:ce:01:c4:71:d3:d3:77:c5:08:a6:60:39:
+                    25:a7:27:69:5c:83:d1:6f:76:78:ee:c5:44:5b:45:
+                    bd:29:3b:e2:c6:09:0f:a2:be:2b:dc:e3:5c:da:5a:
+                    6f:8e:e7:c9:07:6b:7e:a1:c0:53:95:82:89:e0:78:
+                    5c:72:a8:6c:be:67:6b:ab:e7:33:d9:87:f2:f8:5c:
+                    27:f4:f6:2a:3b:87:ef:da:c2:47:da:bf:ac:eb:27:
+                    64:7b:4c:53:eb:34:e1:2f:9b:20:4d:54:12:6b:7d:
+                    28:bd
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Subject Key Identifier: 
+                A9:2B:87:E1:CE:24:47:3B:1B:BF:CF:85:37:02:55:9D:0D:94:58:E6
+            X509v3 Authority Key Identifier: 
+                keyid:60:7B:66:1A:45:0D:97:CA:89:50:2F:7D:04:CD:34:A8:FF:FC:FD:4B
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.globalsign.com/rootr1
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.globalsign.com/root.crl
+
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.4146.1.20
+                Policy: 2.23.140.1.2.2
+                  CPS: https://www.globalsign.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         a2:1d:69:8a:0a:8e:c4:14:83:2a:2a:12:4d:39:27:90:4e:f0:
+         8d:ac:d2:96:62:47:36:5e:92:d1:fa:c5:93:b5:37:07:65:29:
+         d2:f4:53:50:6b:c9:f4:fe:34:f5:dd:b8:1d:fa:fc:dc:14:ac:
+         56:94:27:9c:42:aa:04:4d:b7:ed:58:d9:99:d2:49:e6:20:2f:
+         d3:a7:77:b8:2a:89:1a:ef:a7:cf:86:2d:d6:53:e9:0b:93:9c:
+         4e:ab:d9:45:ee:a4:84:85:ff:34:e4:0e:c0:bb:a5:ce:5f:95:
+         89:85:70:aa:c1:5d:ec:cf:2b:d3:d9:83:df:03:ca:81:a7:02:
+         32:b7:77:61:10:25:4e:d9:74:f3:d9:79:82:b5:26:70:b4:52:
+         bc:8f:33:d7:8a:ae:19:d0:fc:92:ad:2f:ba:3c:a0:48:58:47:
+         5e:fd:20:56:95:20:c1:72:1d:ab:66:99:a4:d5:78:37:48:1b:
+         9f:b2:4c:37:67:7a:fd:42:d2:d3:56:9e:d3:1d:8e:c4:0c:68:
+         96:b6:47:51:10:f7:7b:eb:15:09:64:f5:f9:f0:63:16:2d:3d:
+         df:23:42:3a:93:63:cc:ab:af:4f:57:06:c7:fe:14:55:62:ce:
+         27:11:19:e1:f4:42:ed:22:30:6b:35:1a:4a:05:80:a4:65:df:
+         cc:cb:6f:d0
+-----BEGIN CERTIFICATE-----
+MIIEizCCA3OgAwIBAgIORvCM288sVGbvMwHdXzQwDQYJKoZIhvcNAQELBQAwVzEL
+MAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsT
+B1Jvb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNTA4MTkw
+MDAwMDBaFw0yNTA4MTkwMDAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBH
+bG9iYWxTaWduIG52LXNhMS0wKwYDVQQDEyRHbG9iYWxTaWduIENsb3VkU1NMIENB
+IC0gU0hBMjU2IC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCj
+wHXhMpjl2a6EfI3oI19GlVtMoiVw15AEhYDJtfSKZU2Sy6XEQqC2eSUx7fGFIM0T
+UT1nrJdNaJszhlyzey2q33egYdH1PPua/NPVlMrJHoAbkJDIrI32YBecMbjFYaLi
+blclCG8kmZnPlL/Hi2uwH8oU+hibbBB8mSvaSmPlsk7C/T4QC0j0dwsv8JZLOu69
+Nd6FjdoTDs4BxHHT03fFCKZgOSWnJ2lcg9FvdnjuxURbRb0pO+LGCQ+ivivc41za
+Wm+O58kHa36hwFOVgongeFxyqGy+Z2ur5zPZh/L4XCf09io7h+/awkfav6zrJ2R7
+TFPrNOEvmyBNVBJrfSi9AgMBAAGjggFTMIIBTzAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAw
+HQYDVR0OBBYEFKkrh+HOJEc7G7/PhTcCVZ0NlFjmMB8GA1UdIwQYMBaAFGB7ZhpF
+DZfKiVAvfQTNNKj//P1LMD0GCCsGAQUFBwEBBDEwLzAtBggrBgEFBQcwAYYhaHR0
+cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vcm9vdHIxMDMGA1UdHwQsMCowKKAmoCSG
+Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vcm9vdC5jcmwwVgYDVR0gBE8wTTAL
+BgkrBgEEAaAyARQwPgYGZ4EMAQICMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3
+Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEBCwUAA4IBAQCi
+HWmKCo7EFIMqKhJNOSeQTvCNrNKWYkc2XpLR+sWTtTcHZSnS9FNQa8n0/jT13bgd
++vzcFKxWlCecQqoETbftWNmZ0knmIC/Tp3e4Koka76fPhi3WU+kLk5xOq9lF7qSE
+hf805A7Au6XOX5WJhXCqwV3szyvT2YPfA8qBpwIyt3dhECVO2XTz2XmCtSZwtFK8
+jzPXiq4Z0PySrS+6PKBIWEde/SBWlSDBch2rZpmk1Xg3SBufskw3Z3r9QtLTVp7T
+HY7EDGiWtkdREPd76xUJZPX58GMWLT3fI0I6k2PMq69PVwbH/hRVYs4nERnh9ELt
+IjBrNRpKBYCkZd/My2/Q
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert20[] = {
+  0x30, 0x82, 0x04, 0x8b, 0x30, 0x82, 0x03, 0x73, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0e, 0x46, 0xf0, 0x8c, 0xdb, 0xcf, 0x2c, 0x54, 0x66, 0xef,
+  0x33, 0x01, 0xdd, 0x5f, 0x34, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x57, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31,
+  0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47, 0x6c,
+  0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76, 0x2d,
+  0x73, 0x61, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x07, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x1b, 0x30, 0x19,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+  0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+  0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x38, 0x31, 0x39, 0x30,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x38,
+  0x31, 0x39, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x57, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x10, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x6e, 0x76,
+  0x2d, 0x73, 0x61, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e,
+  0x20, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+  0x20, 0x2d, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x2d, 0x20,
+  0x47, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3,
+  0xc0, 0x75, 0xe1, 0x32, 0x98, 0xe5, 0xd9, 0xae, 0x84, 0x7c, 0x8d, 0xe8,
+  0x23, 0x5f, 0x46, 0x95, 0x5b, 0x4c, 0xa2, 0x25, 0x70, 0xd7, 0x90, 0x04,
+  0x85, 0x80, 0xc9, 0xb5, 0xf4, 0x8a, 0x65, 0x4d, 0x92, 0xcb, 0xa5, 0xc4,
+  0x42, 0xa0, 0xb6, 0x79, 0x25, 0x31, 0xed, 0xf1, 0x85, 0x20, 0xcd, 0x13,
+  0x51, 0x3d, 0x67, 0xac, 0x97, 0x4d, 0x68, 0x9b, 0x33, 0x86, 0x5c, 0xb3,
+  0x7b, 0x2d, 0xaa, 0xdf, 0x77, 0xa0, 0x61, 0xd1, 0xf5, 0x3c, 0xfb, 0x9a,
+  0xfc, 0xd3, 0xd5, 0x94, 0xca, 0xc9, 0x1e, 0x80, 0x1b, 0x90, 0x90, 0xc8,
+  0xac, 0x8d, 0xf6, 0x60, 0x17, 0x9c, 0x31, 0xb8, 0xc5, 0x61, 0xa2, 0xe2,
+  0x6e, 0x57, 0x25, 0x08, 0x6f, 0x24, 0x99, 0x99, 0xcf, 0x94, 0xbf, 0xc7,
+  0x8b, 0x6b, 0xb0, 0x1f, 0xca, 0x14, 0xfa, 0x18, 0x9b, 0x6c, 0x10, 0x7c,
+  0x99, 0x2b, 0xda, 0x4a, 0x63, 0xe5, 0xb2, 0x4e, 0xc2, 0xfd, 0x3e, 0x10,
+  0x0b, 0x48, 0xf4, 0x77, 0x0b, 0x2f, 0xf0, 0x96, 0x4b, 0x3a, 0xee, 0xbd,
+  0x35, 0xde, 0x85, 0x8d, 0xda, 0x13, 0x0e, 0xce, 0x01, 0xc4, 0x71, 0xd3,
+  0xd3, 0x77, 0xc5, 0x08, 0xa6, 0x60, 0x39, 0x25, 0xa7, 0x27, 0x69, 0x5c,
+  0x83, 0xd1, 0x6f, 0x76, 0x78, 0xee, 0xc5, 0x44, 0x5b, 0x45, 0xbd, 0x29,
+  0x3b, 0xe2, 0xc6, 0x09, 0x0f, 0xa2, 0xbe, 0x2b, 0xdc, 0xe3, 0x5c, 0xda,
+  0x5a, 0x6f, 0x8e, 0xe7, 0xc9, 0x07, 0x6b, 0x7e, 0xa1, 0xc0, 0x53, 0x95,
+  0x82, 0x89, 0xe0, 0x78, 0x5c, 0x72, 0xa8, 0x6c, 0xbe, 0x67, 0x6b, 0xab,
+  0xe7, 0x33, 0xd9, 0x87, 0xf2, 0xf8, 0x5c, 0x27, 0xf4, 0xf6, 0x2a, 0x3b,
+  0x87, 0xef, 0xda, 0xc2, 0x47, 0xda, 0xbf, 0xac, 0xeb, 0x27, 0x64, 0x7b,
+  0x4c, 0x53, 0xeb, 0x34, 0xe1, 0x2f, 0x9b, 0x20, 0x4d, 0x54, 0x12, 0x6b,
+  0x7d, 0x28, 0xbd, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x53,
+  0x30, 0x82, 0x01, 0x4f, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x03, 0x02, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01,
+  0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xa9, 0x2b,
+  0x87, 0xe1, 0xce, 0x24, 0x47, 0x3b, 0x1b, 0xbf, 0xcf, 0x85, 0x37, 0x02,
+  0x55, 0x9d, 0x0d, 0x94, 0x58, 0xe6, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x60, 0x7b, 0x66, 0x1a, 0x45,
+  0x0d, 0x97, 0xca, 0x89, 0x50, 0x2f, 0x7d, 0x04, 0xcd, 0x34, 0xa8, 0xff,
+  0xfc, 0xfd, 0x4b, 0x30, 0x3d, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x21, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6c, 0x6f,
+  0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x72, 0x6f, 0x6f, 0x74, 0x72, 0x31, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x2c, 0x30, 0x2a, 0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86,
+  0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e,
+  0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x56, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4f, 0x30, 0x4d, 0x30, 0x0b,
+  0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xa0, 0x32, 0x01, 0x14, 0x30,
+  0x3e, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x02, 0x30, 0x34, 0x30,
+  0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+  0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
+  0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+  0x72, 0x79, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa2,
+  0x1d, 0x69, 0x8a, 0x0a, 0x8e, 0xc4, 0x14, 0x83, 0x2a, 0x2a, 0x12, 0x4d,
+  0x39, 0x27, 0x90, 0x4e, 0xf0, 0x8d, 0xac, 0xd2, 0x96, 0x62, 0x47, 0x36,
+  0x5e, 0x92, 0xd1, 0xfa, 0xc5, 0x93, 0xb5, 0x37, 0x07, 0x65, 0x29, 0xd2,
+  0xf4, 0x53, 0x50, 0x6b, 0xc9, 0xf4, 0xfe, 0x34, 0xf5, 0xdd, 0xb8, 0x1d,
+  0xfa, 0xfc, 0xdc, 0x14, 0xac, 0x56, 0x94, 0x27, 0x9c, 0x42, 0xaa, 0x04,
+  0x4d, 0xb7, 0xed, 0x58, 0xd9, 0x99, 0xd2, 0x49, 0xe6, 0x20, 0x2f, 0xd3,
+  0xa7, 0x77, 0xb8, 0x2a, 0x89, 0x1a, 0xef, 0xa7, 0xcf, 0x86, 0x2d, 0xd6,
+  0x53, 0xe9, 0x0b, 0x93, 0x9c, 0x4e, 0xab, 0xd9, 0x45, 0xee, 0xa4, 0x84,
+  0x85, 0xff, 0x34, 0xe4, 0x0e, 0xc0, 0xbb, 0xa5, 0xce, 0x5f, 0x95, 0x89,
+  0x85, 0x70, 0xaa, 0xc1, 0x5d, 0xec, 0xcf, 0x2b, 0xd3, 0xd9, 0x83, 0xdf,
+  0x03, 0xca, 0x81, 0xa7, 0x02, 0x32, 0xb7, 0x77, 0x61, 0x10, 0x25, 0x4e,
+  0xd9, 0x74, 0xf3, 0xd9, 0x79, 0x82, 0xb5, 0x26, 0x70, 0xb4, 0x52, 0xbc,
+  0x8f, 0x33, 0xd7, 0x8a, 0xae, 0x19, 0xd0, 0xfc, 0x92, 0xad, 0x2f, 0xba,
+  0x3c, 0xa0, 0x48, 0x58, 0x47, 0x5e, 0xfd, 0x20, 0x56, 0x95, 0x20, 0xc1,
+  0x72, 0x1d, 0xab, 0x66, 0x99, 0xa4, 0xd5, 0x78, 0x37, 0x48, 0x1b, 0x9f,
+  0xb2, 0x4c, 0x37, 0x67, 0x7a, 0xfd, 0x42, 0xd2, 0xd3, 0x56, 0x9e, 0xd3,
+  0x1d, 0x8e, 0xc4, 0x0c, 0x68, 0x96, 0xb6, 0x47, 0x51, 0x10, 0xf7, 0x7b,
+  0xeb, 0x15, 0x09, 0x64, 0xf5, 0xf9, 0xf0, 0x63, 0x16, 0x2d, 0x3d, 0xdf,
+  0x23, 0x42, 0x3a, 0x93, 0x63, 0xcc, 0xab, 0xaf, 0x4f, 0x57, 0x06, 0xc7,
+  0xfe, 0x14, 0x55, 0x62, 0xce, 0x27, 0x11, 0x19, 0xe1, 0xf4, 0x42, 0xed,
+  0x22, 0x30, 0x6b, 0x35, 0x1a, 0x4a, 0x05, 0x80, 0xa4, 0x65, 0xdf, 0xcc,
+  0xcb, 0x6f, 0xd0,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            1b:09:3b:78:60:96:da:37:bb:a4:51:94:46:c8:96:78
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+        Validity
+            Not Before: Nov  8 00:00:00 2006 GMT
+            Not After : Nov  7 23:59:59 2021 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+                    4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+                    08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+                    2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+                    8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+                    a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+                    54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+                    d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+                    7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+                    bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+                    f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+                    ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+                    f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+                    21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+                    63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+                    ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+                    9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+                    25:15
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.verisign.com/pca3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.verisign.com/cps
+
+            X509v3 Subject Key Identifier: 
+                7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.verisign.com
+
+    Signature Algorithm: sha1WithRSAEncryption
+         a3:cd:7d:1e:f7:c7:75:8d:48:e7:56:34:4c:00:90:75:a9:51:
+         a5:56:c1:6d:bc:fe:f5:53:22:e9:98:a2:ac:9a:7e:70:1e:b3:
+         8e:3b:45:e3:86:95:31:da:6d:4c:fb:34:50:80:96:cd:24:f2:
+         40:df:04:3f:e2:65:ce:34:22:61:15:ea:66:70:64:d2:f1:6e:
+         f3:ca:18:59:6a:41:46:7e:82:de:19:b0:70:31:56:69:0d:0c:
+         e6:1d:9d:71:58:dc:cc:de:62:f5:e1:7a:10:02:d8:7a:dc:3b:
+         fa:57:bd:c9:e9:8f:46:21:39:9f:51:65:4c:8e:3a:be:28:41:
+         70:1d
+-----BEGIN CERTIFICATE-----
+MIIEkDCCA/mgAwIBAgIQGwk7eGCW2je7pFGURsiWeDANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggFbMIIBVzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wDQYJKoZIhvcNAQEFBQADgYEAo819HvfHdY1I51Y0
+TACQdalRpVbBbbz+9VMi6ZiirJp+cB6zjjtF44aVMdptTPs0UICWzSTyQN8EP+Jl
+zjQiYRXqZnBk0vFu88oYWWpBRn6C3hmwcDFWaQ0M5h2dcVjczN5i9eF6EALYetw7
++le9yemPRiE5n1FlTI46vihBcB0=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert21[] = {
+  0x30, 0x82, 0x04, 0x90, 0x30, 0x82, 0x03, 0xf9, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x1b, 0x09, 0x3b, 0x78, 0x60, 0x96, 0xda, 0x37, 0xbb,
+  0xa4, 0x51, 0x94, 0x46, 0xc8, 0x96, 0x78, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+  0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+  0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+  0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+  0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+  0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+  0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+  0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+  0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+  0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+  0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+  0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+  0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+  0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+  0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+  0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+  0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+  0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+  0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+  0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+  0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+  0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+  0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+  0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+  0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+  0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+  0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+  0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+  0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+  0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+  0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x5b, 0x30, 0x82, 0x01, 0x57, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+  0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+  0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+  0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+  0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+  0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+  0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+  0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+  0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00,
+  0xa3, 0xcd, 0x7d, 0x1e, 0xf7, 0xc7, 0x75, 0x8d, 0x48, 0xe7, 0x56, 0x34,
+  0x4c, 0x00, 0x90, 0x75, 0xa9, 0x51, 0xa5, 0x56, 0xc1, 0x6d, 0xbc, 0xfe,
+  0xf5, 0x53, 0x22, 0xe9, 0x98, 0xa2, 0xac, 0x9a, 0x7e, 0x70, 0x1e, 0xb3,
+  0x8e, 0x3b, 0x45, 0xe3, 0x86, 0x95, 0x31, 0xda, 0x6d, 0x4c, 0xfb, 0x34,
+  0x50, 0x80, 0x96, 0xcd, 0x24, 0xf2, 0x40, 0xdf, 0x04, 0x3f, 0xe2, 0x65,
+  0xce, 0x34, 0x22, 0x61, 0x15, 0xea, 0x66, 0x70, 0x64, 0xd2, 0xf1, 0x6e,
+  0xf3, 0xca, 0x18, 0x59, 0x6a, 0x41, 0x46, 0x7e, 0x82, 0xde, 0x19, 0xb0,
+  0x70, 0x31, 0x56, 0x69, 0x0d, 0x0c, 0xe6, 0x1d, 0x9d, 0x71, 0x58, 0xdc,
+  0xcc, 0xde, 0x62, 0xf5, 0xe1, 0x7a, 0x10, 0x02, 0xd8, 0x7a, 0xdc, 0x3b,
+  0xfa, 0x57, 0xbd, 0xc9, 0xe9, 0x8f, 0x46, 0x21, 0x39, 0x9f, 0x51, 0x65,
+  0x4c, 0x8e, 0x3a, 0xbe, 0x28, 0x41, 0x70, 0x1d,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            0a:01:41:42:00:00:01:53:85:73:6a:0b:85:ec:a7:08
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: O=Digital Signature Trust Co., CN=DST Root CA X3
+        Validity
+            Not Before: Mar 17 16:40:46 2016 GMT
+            Not After : Mar 17 16:40:46 2021 GMT
+        Subject: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:9c:d3:0c:f0:5a:e5:2e:47:b7:72:5d:37:83:b3:
+                    68:63:30:ea:d7:35:26:19:25:e1:bd:be:35:f1:70:
+                    92:2f:b7:b8:4b:41:05:ab:a9:9e:35:08:58:ec:b1:
+                    2a:c4:68:87:0b:a3:e3:75:e4:e6:f3:a7:62:71:ba:
+                    79:81:60:1f:d7:91:9a:9f:f3:d0:78:67:71:c8:69:
+                    0e:95:91:cf:fe:e6:99:e9:60:3c:48:cc:7e:ca:4d:
+                    77:12:24:9d:47:1b:5a:eb:b9:ec:1e:37:00:1c:9c:
+                    ac:7b:a7:05:ea:ce:4a:eb:bd:41:e5:36:98:b9:cb:
+                    fd:6d:3c:96:68:df:23:2a:42:90:0c:86:74:67:c8:
+                    7f:a5:9a:b8:52:61:14:13:3f:65:e9:82:87:cb:db:
+                    fa:0e:56:f6:86:89:f3:85:3f:97:86:af:b0:dc:1a:
+                    ef:6b:0d:95:16:7d:c4:2b:a0:65:b2:99:04:36:75:
+                    80:6b:ac:4a:f3:1b:90:49:78:2f:a2:96:4f:2a:20:
+                    25:29:04:c6:74:c0:d0:31:cd:8f:31:38:95:16:ba:
+                    a8:33:b8:43:f1:b1:1f:c3:30:7f:a2:79:31:13:3d:
+                    2d:36:f8:e3:fc:f2:33:6a:b9:39:31:c5:af:c4:8d:
+                    0d:1d:64:16:33:aa:fa:84:29:b6:d4:0b:c0:d8:7d:
+                    c3:93
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://isrg.trustid.ocsp.identrust.com
+                CA Issuers - URI:http://apps.identrust.com/roots/dstrootcax3.p7c
+
+            X509v3 Authority Key Identifier: 
+                keyid:C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10
+
+            X509v3 Certificate Policies: 
+                Policy: 2.23.140.1.2.1
+                Policy: 1.3.6.1.4.1.44947.1.1.1
+                  CPS: http://cps.root-x1.letsencrypt.org
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.identrust.com/DSTROOTCAX3CRL.crl
+
+            X509v3 Subject Key Identifier: 
+                A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1
+    Signature Algorithm: sha256WithRSAEncryption
+         dd:33:d7:11:f3:63:58:38:dd:18:15:fb:09:55:be:76:56:b9:
+         70:48:a5:69:47:27:7b:c2:24:08:92:f1:5a:1f:4a:12:29:37:
+         24:74:51:1c:62:68:b8:cd:95:70:67:e5:f7:a4:bc:4e:28:51:
+         cd:9b:e8:ae:87:9d:ea:d8:ba:5a:a1:01:9a:dc:f0:dd:6a:1d:
+         6a:d8:3e:57:23:9e:a6:1e:04:62:9a:ff:d7:05:ca:b7:1f:3f:
+         c0:0a:48:bc:94:b0:b6:65:62:e0:c1:54:e5:a3:2a:ad:20:c4:
+         e9:e6:bb:dc:c8:f6:b5:c3:32:a3:98:cc:77:a8:e6:79:65:07:
+         2b:cb:28:fe:3a:16:52:81:ce:52:0c:2e:5f:83:e8:d5:06:33:
+         fb:77:6c:ce:40:ea:32:9e:1f:92:5c:41:c1:74:6c:5b:5d:0a:
+         5f:33:cc:4d:9f:ac:38:f0:2f:7b:2c:62:9d:d9:a3:91:6f:25:
+         1b:2f:90:b1:19:46:3d:f6:7e:1b:a6:7a:87:b9:a3:7a:6d:18:
+         fa:25:a5:91:87:15:e0:f2:16:2f:58:b0:06:2f:2c:68:26:c6:
+         4b:98:cd:da:9f:0c:f9:7f:90:ed:43:4a:12:44:4e:6f:73:7a:
+         28:ea:a4:aa:6e:7b:4c:7d:87:dd:e0:c9:02:44:a7:87:af:c3:
+         34:5b:b4:42
+-----BEGIN CERTIFICATE-----
+MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
+MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
+DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
+SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
+GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
+q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
+SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
+Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
+a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
+/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
+AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
+CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
+bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
+c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
+VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
+ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
+MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
+Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
+AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
+uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
+wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
+X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
+PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
+KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert22[] = {
+  0x30, 0x82, 0x04, 0x92, 0x30, 0x82, 0x03, 0x7a, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x0a, 0x01, 0x41, 0x42, 0x00, 0x00, 0x01, 0x53, 0x85,
+  0x73, 0x6a, 0x0b, 0x85, 0xec, 0xa7, 0x08, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3f,
+  0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1b, 0x44,
+  0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61,
+  0x74, 0x75, 0x72, 0x65, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43,
+  0x6f, 0x2e, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x0e, 0x44, 0x53, 0x54, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+  0x20, 0x58, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x36, 0x30, 0x33, 0x31,
+  0x37, 0x31, 0x36, 0x34, 0x30, 0x34, 0x36, 0x5a, 0x17, 0x0d, 0x32, 0x31,
+  0x30, 0x33, 0x31, 0x37, 0x31, 0x36, 0x34, 0x30, 0x34, 0x36, 0x5a, 0x30,
+  0x4a, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x4c, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6e, 0x63, 0x72, 0x79,
+  0x70, 0x74, 0x31, 0x23, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x1a, 0x4c, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6e, 0x63, 0x72, 0x79,
+  0x70, 0x74, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+  0x20, 0x58, 0x33, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0x9c, 0xd3, 0x0c, 0xf0, 0x5a, 0xe5, 0x2e, 0x47, 0xb7, 0x72, 0x5d, 0x37,
+  0x83, 0xb3, 0x68, 0x63, 0x30, 0xea, 0xd7, 0x35, 0x26, 0x19, 0x25, 0xe1,
+  0xbd, 0xbe, 0x35, 0xf1, 0x70, 0x92, 0x2f, 0xb7, 0xb8, 0x4b, 0x41, 0x05,
+  0xab, 0xa9, 0x9e, 0x35, 0x08, 0x58, 0xec, 0xb1, 0x2a, 0xc4, 0x68, 0x87,
+  0x0b, 0xa3, 0xe3, 0x75, 0xe4, 0xe6, 0xf3, 0xa7, 0x62, 0x71, 0xba, 0x79,
+  0x81, 0x60, 0x1f, 0xd7, 0x91, 0x9a, 0x9f, 0xf3, 0xd0, 0x78, 0x67, 0x71,
+  0xc8, 0x69, 0x0e, 0x95, 0x91, 0xcf, 0xfe, 0xe6, 0x99, 0xe9, 0x60, 0x3c,
+  0x48, 0xcc, 0x7e, 0xca, 0x4d, 0x77, 0x12, 0x24, 0x9d, 0x47, 0x1b, 0x5a,
+  0xeb, 0xb9, 0xec, 0x1e, 0x37, 0x00, 0x1c, 0x9c, 0xac, 0x7b, 0xa7, 0x05,
+  0xea, 0xce, 0x4a, 0xeb, 0xbd, 0x41, 0xe5, 0x36, 0x98, 0xb9, 0xcb, 0xfd,
+  0x6d, 0x3c, 0x96, 0x68, 0xdf, 0x23, 0x2a, 0x42, 0x90, 0x0c, 0x86, 0x74,
+  0x67, 0xc8, 0x7f, 0xa5, 0x9a, 0xb8, 0x52, 0x61, 0x14, 0x13, 0x3f, 0x65,
+  0xe9, 0x82, 0x87, 0xcb, 0xdb, 0xfa, 0x0e, 0x56, 0xf6, 0x86, 0x89, 0xf3,
+  0x85, 0x3f, 0x97, 0x86, 0xaf, 0xb0, 0xdc, 0x1a, 0xef, 0x6b, 0x0d, 0x95,
+  0x16, 0x7d, 0xc4, 0x2b, 0xa0, 0x65, 0xb2, 0x99, 0x04, 0x36, 0x75, 0x80,
+  0x6b, 0xac, 0x4a, 0xf3, 0x1b, 0x90, 0x49, 0x78, 0x2f, 0xa2, 0x96, 0x4f,
+  0x2a, 0x20, 0x25, 0x29, 0x04, 0xc6, 0x74, 0xc0, 0xd0, 0x31, 0xcd, 0x8f,
+  0x31, 0x38, 0x95, 0x16, 0xba, 0xa8, 0x33, 0xb8, 0x43, 0xf1, 0xb1, 0x1f,
+  0xc3, 0x30, 0x7f, 0xa2, 0x79, 0x31, 0x13, 0x3d, 0x2d, 0x36, 0xf8, 0xe3,
+  0xfc, 0xf2, 0x33, 0x6a, 0xb9, 0x39, 0x31, 0xc5, 0xaf, 0xc4, 0x8d, 0x0d,
+  0x1d, 0x64, 0x16, 0x33, 0xaa, 0xfa, 0x84, 0x29, 0xb6, 0xd4, 0x0b, 0xc0,
+  0xd8, 0x7d, 0xc3, 0x93, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+  0x7d, 0x30, 0x82, 0x01, 0x79, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04,
+  0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x7f, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x73, 0x30, 0x71, 0x30, 0x32, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x26, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x69, 0x73, 0x72, 0x67, 0x2e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x69, 0x64, 0x2e, 0x6f, 0x63, 0x73, 0x70, 0x2e,
+  0x69, 0x64, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x30, 0x3b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+  0x02, 0x86, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x70,
+  0x70, 0x73, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x2f, 0x64,
+  0x73, 0x74, 0x72, 0x6f, 0x6f, 0x74, 0x63, 0x61, 0x78, 0x33, 0x2e, 0x70,
+  0x37, 0x63, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0xc4, 0xa7, 0xb1, 0xa4, 0x7b, 0x2c, 0x71, 0xfa, 0xdb,
+  0xe1, 0x4b, 0x90, 0x75, 0xff, 0xc4, 0x15, 0x60, 0x85, 0x89, 0x10, 0x30,
+  0x54, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4d, 0x30, 0x4b, 0x30, 0x08,
+  0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x01, 0x30, 0x3f, 0x06, 0x0b,
+  0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xdf, 0x13, 0x01, 0x01, 0x01, 0x30,
+  0x30, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x01, 0x16, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x70,
+  0x73, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x2d, 0x78, 0x31, 0x2e, 0x6c, 0x65,
+  0x74, 0x73, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x2e, 0x6f, 0x72,
+  0x67, 0x30, 0x3c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x35, 0x30, 0x33,
+  0x30, 0x31, 0xa0, 0x2f, 0xa0, 0x2d, 0x86, 0x2b, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x53, 0x54,
+  0x52, 0x4f, 0x4f, 0x54, 0x43, 0x41, 0x58, 0x33, 0x43, 0x52, 0x4c, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+  0x04, 0x14, 0xa8, 0x4a, 0x6a, 0x63, 0x04, 0x7d, 0xdd, 0xba, 0xe6, 0xd1,
+  0x39, 0xb7, 0xa6, 0x45, 0x65, 0xef, 0xf3, 0xa8, 0xec, 0xa1, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xdd, 0x33, 0xd7, 0x11, 0xf3, 0x63,
+  0x58, 0x38, 0xdd, 0x18, 0x15, 0xfb, 0x09, 0x55, 0xbe, 0x76, 0x56, 0xb9,
+  0x70, 0x48, 0xa5, 0x69, 0x47, 0x27, 0x7b, 0xc2, 0x24, 0x08, 0x92, 0xf1,
+  0x5a, 0x1f, 0x4a, 0x12, 0x29, 0x37, 0x24, 0x74, 0x51, 0x1c, 0x62, 0x68,
+  0xb8, 0xcd, 0x95, 0x70, 0x67, 0xe5, 0xf7, 0xa4, 0xbc, 0x4e, 0x28, 0x51,
+  0xcd, 0x9b, 0xe8, 0xae, 0x87, 0x9d, 0xea, 0xd8, 0xba, 0x5a, 0xa1, 0x01,
+  0x9a, 0xdc, 0xf0, 0xdd, 0x6a, 0x1d, 0x6a, 0xd8, 0x3e, 0x57, 0x23, 0x9e,
+  0xa6, 0x1e, 0x04, 0x62, 0x9a, 0xff, 0xd7, 0x05, 0xca, 0xb7, 0x1f, 0x3f,
+  0xc0, 0x0a, 0x48, 0xbc, 0x94, 0xb0, 0xb6, 0x65, 0x62, 0xe0, 0xc1, 0x54,
+  0xe5, 0xa3, 0x2a, 0xad, 0x20, 0xc4, 0xe9, 0xe6, 0xbb, 0xdc, 0xc8, 0xf6,
+  0xb5, 0xc3, 0x32, 0xa3, 0x98, 0xcc, 0x77, 0xa8, 0xe6, 0x79, 0x65, 0x07,
+  0x2b, 0xcb, 0x28, 0xfe, 0x3a, 0x16, 0x52, 0x81, 0xce, 0x52, 0x0c, 0x2e,
+  0x5f, 0x83, 0xe8, 0xd5, 0x06, 0x33, 0xfb, 0x77, 0x6c, 0xce, 0x40, 0xea,
+  0x32, 0x9e, 0x1f, 0x92, 0x5c, 0x41, 0xc1, 0x74, 0x6c, 0x5b, 0x5d, 0x0a,
+  0x5f, 0x33, 0xcc, 0x4d, 0x9f, 0xac, 0x38, 0xf0, 0x2f, 0x7b, 0x2c, 0x62,
+  0x9d, 0xd9, 0xa3, 0x91, 0x6f, 0x25, 0x1b, 0x2f, 0x90, 0xb1, 0x19, 0x46,
+  0x3d, 0xf6, 0x7e, 0x1b, 0xa6, 0x7a, 0x87, 0xb9, 0xa3, 0x7a, 0x6d, 0x18,
+  0xfa, 0x25, 0xa5, 0x91, 0x87, 0x15, 0xe0, 0xf2, 0x16, 0x2f, 0x58, 0xb0,
+  0x06, 0x2f, 0x2c, 0x68, 0x26, 0xc6, 0x4b, 0x98, 0xcd, 0xda, 0x9f, 0x0c,
+  0xf9, 0x7f, 0x90, 0xed, 0x43, 0x4a, 0x12, 0x44, 0x4e, 0x6f, 0x73, 0x7a,
+  0x28, 0xea, 0xa4, 0xaa, 0x6e, 0x7b, 0x4c, 0x7d, 0x87, 0xdd, 0xe0, 0xc9,
+  0x02, 0x44, 0xa7, 0x87, 0xaf, 0xc3, 0x34, 0x5b, 0xb4, 0x42,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            06:7f:94:4a:2a:27:cd:f3:fa:c2:ae:2b:01:f9:08:ee:b9:c4:c6
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
+        Validity
+            Not Before: May 25 12:00:00 2015 GMT
+            Not After : Dec 31 01:00:00 2037 GMT
+        Subject: C=US, O=Amazon, CN=Amazon Root CA 1
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b2:78:80:71:ca:78:d5:e3:71:af:47:80:50:74:
+                    7d:6e:d8:d7:88:76:f4:99:68:f7:58:21:60:f9:74:
+                    84:01:2f:ac:02:2d:86:d3:a0:43:7a:4e:b2:a4:d0:
+                    36:ba:01:be:8d:db:48:c8:07:17:36:4c:f4:ee:88:
+                    23:c7:3e:eb:37:f5:b5:19:f8:49:68:b0:de:d7:b9:
+                    76:38:1d:61:9e:a4:fe:82:36:a5:e5:4a:56:e4:45:
+                    e1:f9:fd:b4:16:fa:74:da:9c:9b:35:39:2f:fa:b0:
+                    20:50:06:6c:7a:d0:80:b2:a6:f9:af:ec:47:19:8f:
+                    50:38:07:dc:a2:87:39:58:f8:ba:d5:a9:f9:48:67:
+                    30:96:ee:94:78:5e:6f:89:a3:51:c0:30:86:66:a1:
+                    45:66:ba:54:eb:a3:c3:91:f9:48:dc:ff:d1:e8:30:
+                    2d:7d:2d:74:70:35:d7:88:24:f7:9e:c4:59:6e:bb:
+                    73:87:17:f2:32:46:28:b8:43:fa:b7:1d:aa:ca:b4:
+                    f2:9f:24:0e:2d:4b:f7:71:5c:5e:69:ff:ea:95:02:
+                    cb:38:8a:ae:50:38:6f:db:fb:2d:62:1b:c5:c7:1e:
+                    54:e1:77:e0:67:c8:0f:9c:87:23:d6:3f:40:20:7f:
+                    20:80:c4:80:4c:3e:3b:24:26:8e:04:ae:6c:9a:c8:
+                    aa:0d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                84:18:CC:85:34:EC:BC:0C:94:94:2E:08:59:9C:C7:B2:10:4E:0A:08
+            X509v3 Authority Key Identifier: 
+                keyid:9C:5F:00:DF:AA:01:D7:30:2B:38:88:A2:B8:6D:4A:9C:F2:11:91:83
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.rootg2.amazontrust.com
+                CA Issuers - URI:http://crt.rootg2.amazontrust.com/rootg2.cer
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.rootg2.amazontrust.com/rootg2.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+
+    Signature Algorithm: sha256WithRSAEncryption
+         62:37:42:5c:bc:10:b5:3e:8b:2c:e9:0c:9b:6c:45:e2:07:00:
+         7a:f9:c5:58:0b:b9:08:8c:3e:ed:b3:25:3c:b5:6f:50:e4:cd:
+         35:6a:a7:93:34:96:32:21:a9:48:44:ab:9c:ed:3d:b4:aa:73:
+         6d:e4:7f:16:80:89:6c:cf:28:03:18:83:47:79:a3:10:7e:30:
+         5b:ac:3b:b0:60:e0:77:d4:08:a6:e1:1d:7c:5e:c0:bb:f9:9a:
+         7b:22:9d:a7:00:09:7e:ac:46:17:83:dc:9c:26:57:99:30:39:
+         62:96:8f:ed:da:de:aa:c5:cc:1b:3e:ca:43:68:6c:57:16:bc:
+         d5:0e:20:2e:fe:ff:c2:6a:5d:2e:a0:4a:6d:14:58:87:94:e6:
+         39:31:5f:7c:73:cb:90:88:6a:84:11:96:27:a6:ed:d9:81:46:
+         a6:7e:a3:72:00:0a:52:3e:83:88:07:63:77:89:69:17:0f:39:
+         85:d2:ab:08:45:4d:d0:51:3a:fd:5d:5d:37:64:4c:7e:30:b2:
+         55:24:42:9d:36:b0:5d:9c:17:81:61:f1:ca:f9:10:02:24:ab:
+         eb:0d:74:91:8d:7b:45:29:50:39:88:b2:a6:89:35:25:1e:14:
+         6a:47:23:31:2f:5c:9a:fa:ad:9a:0e:62:51:a4:2a:a9:c4:f9:
+         34:9d:21:18
+-----BEGIN CERTIFICATE-----
+MIIEkjCCA3qgAwIBAgITBn+USionzfP6wq4rAfkI7rnExjANBgkqhkiG9w0BAQsF
+ADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNj
+b3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4x
+OzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1
+dGhvcml0eSAtIEcyMB4XDTE1MDUyNTEyMDAwMFoXDTM3MTIzMTAxMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
+ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
+9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
+IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
+VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
+93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
+jgSubJrIqg0CAwEAAaOCATEwggEtMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgGGMB0GA1UdDgQWBBSEGMyFNOy8DJSULghZnMeyEE4KCDAfBgNVHSMEGDAW
+gBScXwDfqgHXMCs4iKK4bUqc8hGRgzB4BggrBgEFBQcBAQRsMGowLgYIKwYBBQUH
+MAGGImh0dHA6Ly9vY3NwLnJvb3RnMi5hbWF6b250cnVzdC5jb20wOAYIKwYBBQUH
+MAKGLGh0dHA6Ly9jcnQucm9vdGcyLmFtYXpvbnRydXN0LmNvbS9yb290ZzIuY2Vy
+MD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jcmwucm9vdGcyLmFtYXpvbnRydXN0
+LmNvbS9yb290ZzIuY3JsMBEGA1UdIAQKMAgwBgYEVR0gADANBgkqhkiG9w0BAQsF
+AAOCAQEAYjdCXLwQtT6LLOkMm2xF4gcAevnFWAu5CIw+7bMlPLVvUOTNNWqnkzSW
+MiGpSESrnO09tKpzbeR/FoCJbM8oAxiDR3mjEH4wW6w7sGDgd9QIpuEdfF7Au/ma
+eyKdpwAJfqxGF4PcnCZXmTA5YpaP7dreqsXMGz7KQ2hsVxa81Q4gLv7/wmpdLqBK
+bRRYh5TmOTFffHPLkIhqhBGWJ6bt2YFGpn6jcgAKUj6DiAdjd4lpFw85hdKrCEVN
+0FE6/V1dN2RMfjCyVSRCnTawXZwXgWHxyvkQAiSr6w10kY17RSlQOYiypok1JR4U
+akcjMS9cmvqtmg5iUaQqqcT5NJ0hGA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert23[] = {
+  0x30, 0x82, 0x04, 0x92, 0x30, 0x82, 0x03, 0x7a, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x13, 0x06, 0x7f, 0x94, 0x4a, 0x2a, 0x27, 0xcd, 0xf3, 0xfa,
+  0xc2, 0xae, 0x2b, 0x01, 0xf9, 0x08, 0xee, 0xb9, 0xc4, 0xc6, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x30, 0x81, 0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
+  0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55,
+  0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31,
+  0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a, 0x53, 0x63,
+  0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x25, 0x30, 0x23,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61, 0x72, 0x66,
+  0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c,
+  0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+  0x3b, 0x30, 0x39, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x53, 0x74,
+  0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x72, 0x76,
+  0x69, 0x63, 0x65, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32,
+  0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x35, 0x32, 0x35, 0x31, 0x32,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x33, 0x37, 0x31, 0x32, 0x33,
+  0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x39, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x06, 0x41, 0x6d,
+  0x61, 0x7a, 0x6f, 0x6e, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x10, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x20, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xb2, 0x78, 0x80, 0x71, 0xca, 0x78, 0xd5, 0xe3,
+  0x71, 0xaf, 0x47, 0x80, 0x50, 0x74, 0x7d, 0x6e, 0xd8, 0xd7, 0x88, 0x76,
+  0xf4, 0x99, 0x68, 0xf7, 0x58, 0x21, 0x60, 0xf9, 0x74, 0x84, 0x01, 0x2f,
+  0xac, 0x02, 0x2d, 0x86, 0xd3, 0xa0, 0x43, 0x7a, 0x4e, 0xb2, 0xa4, 0xd0,
+  0x36, 0xba, 0x01, 0xbe, 0x8d, 0xdb, 0x48, 0xc8, 0x07, 0x17, 0x36, 0x4c,
+  0xf4, 0xee, 0x88, 0x23, 0xc7, 0x3e, 0xeb, 0x37, 0xf5, 0xb5, 0x19, 0xf8,
+  0x49, 0x68, 0xb0, 0xde, 0xd7, 0xb9, 0x76, 0x38, 0x1d, 0x61, 0x9e, 0xa4,
+  0xfe, 0x82, 0x36, 0xa5, 0xe5, 0x4a, 0x56, 0xe4, 0x45, 0xe1, 0xf9, 0xfd,
+  0xb4, 0x16, 0xfa, 0x74, 0xda, 0x9c, 0x9b, 0x35, 0x39, 0x2f, 0xfa, 0xb0,
+  0x20, 0x50, 0x06, 0x6c, 0x7a, 0xd0, 0x80, 0xb2, 0xa6, 0xf9, 0xaf, 0xec,
+  0x47, 0x19, 0x8f, 0x50, 0x38, 0x07, 0xdc, 0xa2, 0x87, 0x39, 0x58, 0xf8,
+  0xba, 0xd5, 0xa9, 0xf9, 0x48, 0x67, 0x30, 0x96, 0xee, 0x94, 0x78, 0x5e,
+  0x6f, 0x89, 0xa3, 0x51, 0xc0, 0x30, 0x86, 0x66, 0xa1, 0x45, 0x66, 0xba,
+  0x54, 0xeb, 0xa3, 0xc3, 0x91, 0xf9, 0x48, 0xdc, 0xff, 0xd1, 0xe8, 0x30,
+  0x2d, 0x7d, 0x2d, 0x74, 0x70, 0x35, 0xd7, 0x88, 0x24, 0xf7, 0x9e, 0xc4,
+  0x59, 0x6e, 0xbb, 0x73, 0x87, 0x17, 0xf2, 0x32, 0x46, 0x28, 0xb8, 0x43,
+  0xfa, 0xb7, 0x1d, 0xaa, 0xca, 0xb4, 0xf2, 0x9f, 0x24, 0x0e, 0x2d, 0x4b,
+  0xf7, 0x71, 0x5c, 0x5e, 0x69, 0xff, 0xea, 0x95, 0x02, 0xcb, 0x38, 0x8a,
+  0xae, 0x50, 0x38, 0x6f, 0xdb, 0xfb, 0x2d, 0x62, 0x1b, 0xc5, 0xc7, 0x1e,
+  0x54, 0xe1, 0x77, 0xe0, 0x67, 0xc8, 0x0f, 0x9c, 0x87, 0x23, 0xd6, 0x3f,
+  0x40, 0x20, 0x7f, 0x20, 0x80, 0xc4, 0x80, 0x4c, 0x3e, 0x3b, 0x24, 0x26,
+  0x8e, 0x04, 0xae, 0x6c, 0x9a, 0xc8, 0xaa, 0x0d, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x82, 0x01, 0x31, 0x30, 0x82, 0x01, 0x2d, 0x30, 0x0f, 0x06,
+  0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,
+  0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x84, 0x18, 0xcc, 0x85, 0x34, 0xec, 0xbc,
+  0x0c, 0x94, 0x94, 0x2e, 0x08, 0x59, 0x9c, 0xc7, 0xb2, 0x10, 0x4e, 0x0a,
+  0x08, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0x9c, 0x5f, 0x00, 0xdf, 0xaa, 0x01, 0xd7, 0x30, 0x2b, 0x38,
+  0x88, 0xa2, 0xb8, 0x6d, 0x4a, 0x9c, 0xf2, 0x11, 0x91, 0x83, 0x30, 0x78,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x6c,
+  0x30, 0x6a, 0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f,
+  0x63, 0x73, 0x70, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e, 0x61,
+  0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x30, 0x38, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x02, 0x86, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x74, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e, 0x61, 0x6d,
+  0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e, 0x63, 0x65, 0x72,
+  0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x36, 0x30, 0x34, 0x30,
+  0x32, 0xa0, 0x30, 0xa0, 0x2e, 0x86, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32,
+  0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x67, 0x32, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x11, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0a,
+  0x30, 0x08, 0x30, 0x06, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x62, 0x37, 0x42, 0x5c, 0xbc, 0x10,
+  0xb5, 0x3e, 0x8b, 0x2c, 0xe9, 0x0c, 0x9b, 0x6c, 0x45, 0xe2, 0x07, 0x00,
+  0x7a, 0xf9, 0xc5, 0x58, 0x0b, 0xb9, 0x08, 0x8c, 0x3e, 0xed, 0xb3, 0x25,
+  0x3c, 0xb5, 0x6f, 0x50, 0xe4, 0xcd, 0x35, 0x6a, 0xa7, 0x93, 0x34, 0x96,
+  0x32, 0x21, 0xa9, 0x48, 0x44, 0xab, 0x9c, 0xed, 0x3d, 0xb4, 0xaa, 0x73,
+  0x6d, 0xe4, 0x7f, 0x16, 0x80, 0x89, 0x6c, 0xcf, 0x28, 0x03, 0x18, 0x83,
+  0x47, 0x79, 0xa3, 0x10, 0x7e, 0x30, 0x5b, 0xac, 0x3b, 0xb0, 0x60, 0xe0,
+  0x77, 0xd4, 0x08, 0xa6, 0xe1, 0x1d, 0x7c, 0x5e, 0xc0, 0xbb, 0xf9, 0x9a,
+  0x7b, 0x22, 0x9d, 0xa7, 0x00, 0x09, 0x7e, 0xac, 0x46, 0x17, 0x83, 0xdc,
+  0x9c, 0x26, 0x57, 0x99, 0x30, 0x39, 0x62, 0x96, 0x8f, 0xed, 0xda, 0xde,
+  0xaa, 0xc5, 0xcc, 0x1b, 0x3e, 0xca, 0x43, 0x68, 0x6c, 0x57, 0x16, 0xbc,
+  0xd5, 0x0e, 0x20, 0x2e, 0xfe, 0xff, 0xc2, 0x6a, 0x5d, 0x2e, 0xa0, 0x4a,
+  0x6d, 0x14, 0x58, 0x87, 0x94, 0xe6, 0x39, 0x31, 0x5f, 0x7c, 0x73, 0xcb,
+  0x90, 0x88, 0x6a, 0x84, 0x11, 0x96, 0x27, 0xa6, 0xed, 0xd9, 0x81, 0x46,
+  0xa6, 0x7e, 0xa3, 0x72, 0x00, 0x0a, 0x52, 0x3e, 0x83, 0x88, 0x07, 0x63,
+  0x77, 0x89, 0x69, 0x17, 0x0f, 0x39, 0x85, 0xd2, 0xab, 0x08, 0x45, 0x4d,
+  0xd0, 0x51, 0x3a, 0xfd, 0x5d, 0x5d, 0x37, 0x64, 0x4c, 0x7e, 0x30, 0xb2,
+  0x55, 0x24, 0x42, 0x9d, 0x36, 0xb0, 0x5d, 0x9c, 0x17, 0x81, 0x61, 0xf1,
+  0xca, 0xf9, 0x10, 0x02, 0x24, 0xab, 0xeb, 0x0d, 0x74, 0x91, 0x8d, 0x7b,
+  0x45, 0x29, 0x50, 0x39, 0x88, 0xb2, 0xa6, 0x89, 0x35, 0x25, 0x1e, 0x14,
+  0x6a, 0x47, 0x23, 0x31, 0x2f, 0x5c, 0x9a, 0xfa, 0xad, 0x9a, 0x0e, 0x62,
+  0x51, 0xa4, 0x2a, 0xa9, 0xc4, 0xf9, 0x34, 0x9d, 0x21, 0x18,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            01:fd:a3:eb:6e:ca:75:c8:88:43:8b:72:4b:cf:bc:91
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA
+        Validity
+            Not Before: Mar  8 12:00:00 2013 GMT
+            Not After : Mar  8 12:00:00 2023 GMT
+        Subject: C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:dc:ae:58:90:4d:c1:c4:30:15:90:35:5b:6e:3c:
+                    82:15:f5:2c:5c:bd:e3:db:ff:71:43:fa:64:25:80:
+                    d4:ee:18:a2:4d:f0:66:d0:0a:73:6e:11:98:36:17:
+                    64:af:37:9d:fd:fa:41:84:af:c7:af:8c:fe:1a:73:
+                    4d:cf:33:97:90:a2:96:87:53:83:2b:b9:a6:75:48:
+                    2d:1d:56:37:7b:da:31:32:1a:d7:ac:ab:06:f4:aa:
+                    5d:4b:b7:47:46:dd:2a:93:c3:90:2e:79:80:80:ef:
+                    13:04:6a:14:3b:b5:9b:92:be:c2:07:65:4e:fc:da:
+                    fc:ff:7a:ae:dc:5c:7e:55:31:0c:e8:39:07:a4:d7:
+                    be:2f:d3:0b:6a:d2:b1:df:5f:fe:57:74:53:3b:35:
+                    80:dd:ae:8e:44:98:b3:9f:0e:d3:da:e0:d7:f4:6b:
+                    29:ab:44:a7:4b:58:84:6d:92:4b:81:c3:da:73:8b:
+                    12:97:48:90:04:45:75:1a:dd:37:31:97:92:e8:cd:
+                    54:0d:3b:e4:c1:3f:39:5e:2e:b8:f3:5c:7e:10:8e:
+                    86:41:00:8d:45:66:47:b0:a1:65:ce:a0:aa:29:09:
+                    4e:f3:97:eb:e8:2e:ab:0f:72:a7:30:0e:fa:c7:f4:
+                    fd:14:77:c3:a4:5b:28:57:c2:b3:f9:82:fd:b7:45:
+                    58:9b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertGlobalRootCA.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.digicert.com/CPS
+
+            X509v3 Subject Key Identifier: 
+                0F:80:61:1C:82:31:61:D5:2F:28:E7:8D:46:38:B4:2C:E1:C6:D9:E2
+            X509v3 Authority Key Identifier: 
+                keyid:03:DE:50:35:56:D1:4C:BB:66:F0:A3:E2:1B:1B:C3:97:B2:3D:D1:55
+
+    Signature Algorithm: sha256WithRSAEncryption
+         23:3e:df:4b:d2:31:42:a5:b6:7e:42:5c:1a:44:cc:69:d1:68:
+         b4:5d:4b:e0:04:21:6c:4b:e2:6d:cc:b1:e0:97:8f:a6:53:09:
+         cd:aa:2a:65:e5:39:4f:1e:83:a5:6e:5c:98:a2:24:26:e6:fb:
+         a1:ed:93:c7:2e:02:c6:4d:4a:bf:b0:42:df:78:da:b3:a8:f9:
+         6d:ff:21:85:53:36:60:4c:76:ce:ec:38:dc:d6:51:80:f0:c5:
+         d6:e5:d4:4d:27:64:ab:9b:c7:3e:71:fb:48:97:b8:33:6d:c9:
+         13:07:ee:96:a2:1b:18:15:f6:5c:4c:40:ed:b3:c2:ec:ff:71:
+         c1:e3:47:ff:d4:b9:00:b4:37:42:da:20:c9:ea:6e:8a:ee:14:
+         06:ae:7d:a2:59:98:88:a8:1b:6f:2d:f4:f2:c9:14:5f:26:cf:
+         2c:8d:7e:ed:37:c0:a9:d5:39:b9:82:bf:19:0c:ea:34:af:00:
+         21:68:f8:ad:73:e2:c9:32:da:38:25:0b:55:d3:9a:1d:f0:68:
+         86:ed:2e:41:34:ef:7c:a5:50:1d:bf:3a:f9:d3:c1:08:0c:e6:
+         ed:1e:8a:58:25:e4:b8:77:ad:2d:6e:f5:52:dd:b4:74:8f:ab:
+         49:2e:9d:3b:93:34:28:1f:78:ce:94:ea:c7:bd:d3:c9:6d:1c:
+         de:5c:32:f3
+-----BEGIN CERTIFICATE-----
+MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
+U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
+nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
+KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f
+/ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
+kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0
+/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
+aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
+Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
+oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
+QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
+d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh
+xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
+CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
+5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
+8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
+2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
+c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
+j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert24[] = {
+  0x30, 0x82, 0x04, 0x94, 0x30, 0x82, 0x03, 0x7c, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x01, 0xfd, 0xa3, 0xeb, 0x6e, 0xca, 0x75, 0xc8, 0x88,
+  0x43, 0x8b, 0x72, 0x4b, 0xcf, 0xbc, 0x91, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x61,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x17, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+  0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30, 0x33, 0x30, 0x38, 0x31,
+  0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33,
+  0x30, 0x38, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x4d, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44,
+  0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31,
+  0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1e, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41, 0x32, 0x20,
+  0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65,
+  0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xdc, 0xae, 0x58, 0x90, 0x4d, 0xc1, 0xc4, 0x30, 0x15, 0x90, 0x35,
+  0x5b, 0x6e, 0x3c, 0x82, 0x15, 0xf5, 0x2c, 0x5c, 0xbd, 0xe3, 0xdb, 0xff,
+  0x71, 0x43, 0xfa, 0x64, 0x25, 0x80, 0xd4, 0xee, 0x18, 0xa2, 0x4d, 0xf0,
+  0x66, 0xd0, 0x0a, 0x73, 0x6e, 0x11, 0x98, 0x36, 0x17, 0x64, 0xaf, 0x37,
+  0x9d, 0xfd, 0xfa, 0x41, 0x84, 0xaf, 0xc7, 0xaf, 0x8c, 0xfe, 0x1a, 0x73,
+  0x4d, 0xcf, 0x33, 0x97, 0x90, 0xa2, 0x96, 0x87, 0x53, 0x83, 0x2b, 0xb9,
+  0xa6, 0x75, 0x48, 0x2d, 0x1d, 0x56, 0x37, 0x7b, 0xda, 0x31, 0x32, 0x1a,
+  0xd7, 0xac, 0xab, 0x06, 0xf4, 0xaa, 0x5d, 0x4b, 0xb7, 0x47, 0x46, 0xdd,
+  0x2a, 0x93, 0xc3, 0x90, 0x2e, 0x79, 0x80, 0x80, 0xef, 0x13, 0x04, 0x6a,
+  0x14, 0x3b, 0xb5, 0x9b, 0x92, 0xbe, 0xc2, 0x07, 0x65, 0x4e, 0xfc, 0xda,
+  0xfc, 0xff, 0x7a, 0xae, 0xdc, 0x5c, 0x7e, 0x55, 0x31, 0x0c, 0xe8, 0x39,
+  0x07, 0xa4, 0xd7, 0xbe, 0x2f, 0xd3, 0x0b, 0x6a, 0xd2, 0xb1, 0xdf, 0x5f,
+  0xfe, 0x57, 0x74, 0x53, 0x3b, 0x35, 0x80, 0xdd, 0xae, 0x8e, 0x44, 0x98,
+  0xb3, 0x9f, 0x0e, 0xd3, 0xda, 0xe0, 0xd7, 0xf4, 0x6b, 0x29, 0xab, 0x44,
+  0xa7, 0x4b, 0x58, 0x84, 0x6d, 0x92, 0x4b, 0x81, 0xc3, 0xda, 0x73, 0x8b,
+  0x12, 0x97, 0x48, 0x90, 0x04, 0x45, 0x75, 0x1a, 0xdd, 0x37, 0x31, 0x97,
+  0x92, 0xe8, 0xcd, 0x54, 0x0d, 0x3b, 0xe4, 0xc1, 0x3f, 0x39, 0x5e, 0x2e,
+  0xb8, 0xf3, 0x5c, 0x7e, 0x10, 0x8e, 0x86, 0x41, 0x00, 0x8d, 0x45, 0x66,
+  0x47, 0xb0, 0xa1, 0x65, 0xce, 0xa0, 0xaa, 0x29, 0x09, 0x4e, 0xf3, 0x97,
+  0xeb, 0xe8, 0x2e, 0xab, 0x0f, 0x72, 0xa7, 0x30, 0x0e, 0xfa, 0xc7, 0xf4,
+  0xfd, 0x14, 0x77, 0xc3, 0xa4, 0x5b, 0x28, 0x57, 0xc2, 0xb3, 0xf9, 0x82,
+  0xfd, 0xb7, 0x45, 0x58, 0x9b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x5a, 0x30, 0x82, 0x01, 0x56, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e,
+  0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x7b, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x74, 0x30, 0x72, 0x30,
+  0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x33, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63,
+  0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69,
+  0x43, 0x65, 0x72, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f,
+  0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x37, 0xa0, 0x35,
+  0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72,
+  0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43,
+  0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20,
+  0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00,
+  0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03,
+  0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x0f, 0x80, 0x61, 0x1c, 0x82,
+  0x31, 0x61, 0xd5, 0x2f, 0x28, 0xe7, 0x8d, 0x46, 0x38, 0xb4, 0x2c, 0xe1,
+  0xc6, 0xd9, 0xe2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
+  0x30, 0x16, 0x80, 0x14, 0x03, 0xde, 0x50, 0x35, 0x56, 0xd1, 0x4c, 0xbb,
+  0x66, 0xf0, 0xa3, 0xe2, 0x1b, 0x1b, 0xc3, 0x97, 0xb2, 0x3d, 0xd1, 0x55,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x23, 0x3e, 0xdf, 0x4b,
+  0xd2, 0x31, 0x42, 0xa5, 0xb6, 0x7e, 0x42, 0x5c, 0x1a, 0x44, 0xcc, 0x69,
+  0xd1, 0x68, 0xb4, 0x5d, 0x4b, 0xe0, 0x04, 0x21, 0x6c, 0x4b, 0xe2, 0x6d,
+  0xcc, 0xb1, 0xe0, 0x97, 0x8f, 0xa6, 0x53, 0x09, 0xcd, 0xaa, 0x2a, 0x65,
+  0xe5, 0x39, 0x4f, 0x1e, 0x83, 0xa5, 0x6e, 0x5c, 0x98, 0xa2, 0x24, 0x26,
+  0xe6, 0xfb, 0xa1, 0xed, 0x93, 0xc7, 0x2e, 0x02, 0xc6, 0x4d, 0x4a, 0xbf,
+  0xb0, 0x42, 0xdf, 0x78, 0xda, 0xb3, 0xa8, 0xf9, 0x6d, 0xff, 0x21, 0x85,
+  0x53, 0x36, 0x60, 0x4c, 0x76, 0xce, 0xec, 0x38, 0xdc, 0xd6, 0x51, 0x80,
+  0xf0, 0xc5, 0xd6, 0xe5, 0xd4, 0x4d, 0x27, 0x64, 0xab, 0x9b, 0xc7, 0x3e,
+  0x71, 0xfb, 0x48, 0x97, 0xb8, 0x33, 0x6d, 0xc9, 0x13, 0x07, 0xee, 0x96,
+  0xa2, 0x1b, 0x18, 0x15, 0xf6, 0x5c, 0x4c, 0x40, 0xed, 0xb3, 0xc2, 0xec,
+  0xff, 0x71, 0xc1, 0xe3, 0x47, 0xff, 0xd4, 0xb9, 0x00, 0xb4, 0x37, 0x42,
+  0xda, 0x20, 0xc9, 0xea, 0x6e, 0x8a, 0xee, 0x14, 0x06, 0xae, 0x7d, 0xa2,
+  0x59, 0x98, 0x88, 0xa8, 0x1b, 0x6f, 0x2d, 0xf4, 0xf2, 0xc9, 0x14, 0x5f,
+  0x26, 0xcf, 0x2c, 0x8d, 0x7e, 0xed, 0x37, 0xc0, 0xa9, 0xd5, 0x39, 0xb9,
+  0x82, 0xbf, 0x19, 0x0c, 0xea, 0x34, 0xaf, 0x00, 0x21, 0x68, 0xf8, 0xad,
+  0x73, 0xe2, 0xc9, 0x32, 0xda, 0x38, 0x25, 0x0b, 0x55, 0xd3, 0x9a, 0x1d,
+  0xf0, 0x68, 0x86, 0xed, 0x2e, 0x41, 0x34, 0xef, 0x7c, 0xa5, 0x50, 0x1d,
+  0xbf, 0x3a, 0xf9, 0xd3, 0xc1, 0x08, 0x0c, 0xe6, 0xed, 0x1e, 0x8a, 0x58,
+  0x25, 0xe4, 0xb8, 0x77, 0xad, 0x2d, 0x6e, 0xf5, 0x52, 0xdd, 0xb4, 0x74,
+  0x8f, 0xab, 0x49, 0x2e, 0x9d, 0x3b, 0x93, 0x34, 0x28, 0x1f, 0x78, 0xce,
+  0x94, 0xea, 0xc7, 0xbd, 0xd3, 0xc9, 0x6d, 0x1c, 0xde, 0x5c, 0x32, 0xf3,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 3740804 (0x391484)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
+        Validity
+            Not Before: Jan  1 07:00:00 2014 GMT
+            Not After : May 30 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:bd:ed:c1:03:fc:f6:8f:fc:02:b1:6f:5b:9f:48:
+                    d9:9d:79:e2:a2:b7:03:61:56:18:c3:47:b6:d7:ca:
+                    3d:35:2e:89:43:f7:a1:69:9b:de:8a:1a:fd:13:20:
+                    9c:b4:49:77:32:29:56:fd:b9:ec:8c:dd:22:fa:72:
+                    dc:27:61:97:ee:f6:5a:84:ec:6e:19:b9:89:2c:dc:
+                    84:5b:d5:74:fb:6b:5f:c5:89:a5:10:52:89:46:55:
+                    f4:b8:75:1c:e6:7f:e4:54:ae:4b:f8:55:72:57:02:
+                    19:f8:17:71:59:eb:1e:28:07:74:c5:9d:48:be:6c:
+                    b4:f4:a4:b0:f3:64:37:79:92:c0:ec:46:5e:7f:e1:
+                    6d:53:4c:62:af:cd:1f:0b:63:bb:3a:9d:fb:fc:79:
+                    00:98:61:74:cf:26:82:40:63:f3:b2:72:6a:19:0d:
+                    99:ca:d4:0e:75:cc:37:fb:8b:89:c1:59:f1:62:7f:
+                    5f:b3:5f:65:30:f8:a7:b7:4d:76:5a:1e:76:5e:34:
+                    c0:e8:96:56:99:8a:b3:f0:7f:a4:cd:bd:dc:32:31:
+                    7c:91:cf:e0:5f:11:f8:6b:aa:49:5c:d1:99:94:d1:
+                    a2:e3:63:5b:09:76:b5:56:62:e1:4b:74:1d:96:d4:
+                    26:d4:08:04:59:d0:98:0e:0e:e6:de:fc:c3:ec:1f:
+                    90:f1
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+            X509v3 Authority Key Identifier: 
+                keyid:BF:5F:B7:D1:CE:DD:1F:86:F4:5B:55:AC:DC:D7:10:C2:0E:A9:88:E7
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.starfieldtech.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.starfieldtech.com/sfroot.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.starfieldtech.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         85:63:c1:d9:dd:b9:ff:a9:bd:a6:19:dc:bf:13:3a:11:38:22:
+         54:b1:ac:05:10:fb:7c:b3:96:3f:31:8b:66:ff:88:f3:e1:bf:
+         fb:c7:1f:00:ff:46:6a:8b:61:32:c9:01:51:76:fb:9a:c6:fa:
+         20:51:c8:46:c4:98:d7:79:a3:e3:04:72:3f:8b:4d:34:53:67:
+         ec:33:2c:7b:e8:94:01:28:7c:3a:34:5b:02:77:16:8d:40:25:
+         33:b0:bc:6c:97:d7:05:7a:ff:8c:85:ce:6f:a0:53:00:17:6e:
+         1e:6c:bd:22:d7:0a:88:37:f6:7d:eb:99:41:ef:27:cb:8c:60:
+         6b:4c:01:7e:65:50:0b:4f:b8:95:9a:9a:6e:34:fd:73:3a:33:
+         f1:91:d5:f3:4e:2d:74:e8:ef:d3:90:35:f1:06:68:64:d4:d0:
+         13:fd:52:d3:c6:6d:c1:3a:8a:31:dd:05:26:35:4a:8c:65:b8:
+         52:6b:81:ec:d2:9c:b5:34:10:97:9c:3e:c6:2f:ed:8e:42:42:
+         24:2e:e9:73:9a:25:f9:11:f1:f2:23:69:cb:e5:94:69:a0:d2:
+         dc:b0:fc:44:89:ac:17:a8:cc:d5:37:77:16:c5:80:b9:0c:8f:
+         57:02:55:99:85:7b:49:f0:2e:5b:a0:c2:57:53:5d:a2:e8:a6:
+         37:c3:01:fa
+-----BEGIN CERTIFICATE-----
+MIIEoDCCA4igAwIBAgIDORSEMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYTAlVT
+MSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQL
+EylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NDAxMDEwNzAwMDBaFw0zMTA1MzAwNzAwMDBaMIGPMQswCQYDVQQGEwJVUzEQMA4G
+A1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UEChMcU3Rh
+cmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UEAxMpU3RhcmZpZWxkIFJv
+b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQC97cED/PaP/AKxb1ufSNmdeeKitwNhVhjDR7bXyj01LolD
+96Fpm96KGv0TIJy0SXcyKVb9ueyM3SL6ctwnYZfu9lqE7G4ZuYks3IRb1XT7a1/F
+iaUQUolGVfS4dRzmf+RUrkv4VXJXAhn4F3FZ6x4oB3TFnUi+bLT0pLDzZDd5ksDs
+Rl5/4W1TTGKvzR8LY7s6nfv8eQCYYXTPJoJAY/OycmoZDZnK1A51zDf7i4nBWfFi
+f1+zX2Uw+Ke3TXZaHnZeNMDollaZirPwf6TNvdwyMXyRz+BfEfhrqklc0ZmU0aLj
+Y1sJdrVWYuFLdB2W1CbUCARZ0JgODube/MPsH5DxAgMBAAGjggEpMIIBJTAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfAwyH6fZMH/E
+fWijYqihzqsHWycwHwYDVR0jBBgwFoAUv1+30c7dH4b0W1Ws3NcQwg6piOcwOgYI
+KwYBBQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0
+ZWNoLmNvbS8wOAYDVR0fBDEwLzAtoCugKYYnaHR0cDovL2NybC5zdGFyZmllbGR0
+ZWNoLmNvbS9zZnJvb3QuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQCFY8HZ3bn/qb2mGdy/EzoROCJUsawFEPt8s5Y/
+MYtm/4jz4b/7xx8A/0Zqi2EyyQFRdvuaxvogUchGxJjXeaPjBHI/i000U2fsMyx7
+6JQBKHw6NFsCdxaNQCUzsLxsl9cFev+Mhc5voFMAF24ebL0i1wqIN/Z965lB7yfL
+jGBrTAF+ZVALT7iVmppuNP1zOjPxkdXzTi106O/TkDXxBmhk1NAT/VLTxm3BOoox
+3QUmNUqMZbhSa4Hs0py1NBCXnD7GL+2OQkIkLulzmiX5EfHyI2nL5ZRpoNLcsPxE
+iawXqMzVN3cWxYC5DI9XAlWZhXtJ8C5boMJXU12i6KY3wwH6
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert25[] = {
+  0x30, 0x82, 0x04, 0xa0, 0x30, 0x82, 0x03, 0x88, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x03, 0x39, 0x14, 0x84, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x68, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53,
+  0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+  0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20,
+  0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+  0x34, 0x30, 0x31, 0x30, 0x31, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x5a,
+  0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x33, 0x30, 0x30, 0x37, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x30, 0x81, 0x8f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+  0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a, 0x6f, 0x6e,
+  0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x0a,
+  0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65, 0x31, 0x25,
+  0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53, 0x74, 0x61,
+  0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63, 0x68, 0x6e,
+  0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x29,
+  0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79,
+  0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xbd, 0xed, 0xc1, 0x03, 0xfc, 0xf6, 0x8f, 0xfc, 0x02, 0xb1,
+  0x6f, 0x5b, 0x9f, 0x48, 0xd9, 0x9d, 0x79, 0xe2, 0xa2, 0xb7, 0x03, 0x61,
+  0x56, 0x18, 0xc3, 0x47, 0xb6, 0xd7, 0xca, 0x3d, 0x35, 0x2e, 0x89, 0x43,
+  0xf7, 0xa1, 0x69, 0x9b, 0xde, 0x8a, 0x1a, 0xfd, 0x13, 0x20, 0x9c, 0xb4,
+  0x49, 0x77, 0x32, 0x29, 0x56, 0xfd, 0xb9, 0xec, 0x8c, 0xdd, 0x22, 0xfa,
+  0x72, 0xdc, 0x27, 0x61, 0x97, 0xee, 0xf6, 0x5a, 0x84, 0xec, 0x6e, 0x19,
+  0xb9, 0x89, 0x2c, 0xdc, 0x84, 0x5b, 0xd5, 0x74, 0xfb, 0x6b, 0x5f, 0xc5,
+  0x89, 0xa5, 0x10, 0x52, 0x89, 0x46, 0x55, 0xf4, 0xb8, 0x75, 0x1c, 0xe6,
+  0x7f, 0xe4, 0x54, 0xae, 0x4b, 0xf8, 0x55, 0x72, 0x57, 0x02, 0x19, 0xf8,
+  0x17, 0x71, 0x59, 0xeb, 0x1e, 0x28, 0x07, 0x74, 0xc5, 0x9d, 0x48, 0xbe,
+  0x6c, 0xb4, 0xf4, 0xa4, 0xb0, 0xf3, 0x64, 0x37, 0x79, 0x92, 0xc0, 0xec,
+  0x46, 0x5e, 0x7f, 0xe1, 0x6d, 0x53, 0x4c, 0x62, 0xaf, 0xcd, 0x1f, 0x0b,
+  0x63, 0xbb, 0x3a, 0x9d, 0xfb, 0xfc, 0x79, 0x00, 0x98, 0x61, 0x74, 0xcf,
+  0x26, 0x82, 0x40, 0x63, 0xf3, 0xb2, 0x72, 0x6a, 0x19, 0x0d, 0x99, 0xca,
+  0xd4, 0x0e, 0x75, 0xcc, 0x37, 0xfb, 0x8b, 0x89, 0xc1, 0x59, 0xf1, 0x62,
+  0x7f, 0x5f, 0xb3, 0x5f, 0x65, 0x30, 0xf8, 0xa7, 0xb7, 0x4d, 0x76, 0x5a,
+  0x1e, 0x76, 0x5e, 0x34, 0xc0, 0xe8, 0x96, 0x56, 0x99, 0x8a, 0xb3, 0xf0,
+  0x7f, 0xa4, 0xcd, 0xbd, 0xdc, 0x32, 0x31, 0x7c, 0x91, 0xcf, 0xe0, 0x5f,
+  0x11, 0xf8, 0x6b, 0xaa, 0x49, 0x5c, 0xd1, 0x99, 0x94, 0xd1, 0xa2, 0xe3,
+  0x63, 0x5b, 0x09, 0x76, 0xb5, 0x56, 0x62, 0xe1, 0x4b, 0x74, 0x1d, 0x96,
+  0xd4, 0x26, 0xd4, 0x08, 0x04, 0x59, 0xd0, 0x98, 0x0e, 0x0e, 0xe6, 0xde,
+  0xfc, 0xc3, 0xec, 0x1f, 0x90, 0xf1, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+  0x82, 0x01, 0x29, 0x30, 0x82, 0x01, 0x25, 0x30, 0x0f, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff,
+  0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+  0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0x7c, 0x0c, 0x32, 0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4,
+  0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1, 0xce, 0xab, 0x07, 0x5b, 0x27, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0xbf, 0x5f, 0xb7, 0xd1, 0xce, 0xdd, 0x1f, 0x86, 0xf4, 0x5b, 0x55, 0xac,
+  0xdc, 0xd7, 0x10, 0xc2, 0x0e, 0xa9, 0x88, 0xe7, 0x30, 0x3a, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c,
+  0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+  0x70, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+  0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x38, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x31, 0x30, 0x2f, 0x30, 0x2d, 0xa0, 0x2b, 0xa0,
+  0x29, 0x86, 0x27, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74,
+  0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f,
+  0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+  0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+  0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x85, 0x63, 0xc1, 0xd9,
+  0xdd, 0xb9, 0xff, 0xa9, 0xbd, 0xa6, 0x19, 0xdc, 0xbf, 0x13, 0x3a, 0x11,
+  0x38, 0x22, 0x54, 0xb1, 0xac, 0x05, 0x10, 0xfb, 0x7c, 0xb3, 0x96, 0x3f,
+  0x31, 0x8b, 0x66, 0xff, 0x88, 0xf3, 0xe1, 0xbf, 0xfb, 0xc7, 0x1f, 0x00,
+  0xff, 0x46, 0x6a, 0x8b, 0x61, 0x32, 0xc9, 0x01, 0x51, 0x76, 0xfb, 0x9a,
+  0xc6, 0xfa, 0x20, 0x51, 0xc8, 0x46, 0xc4, 0x98, 0xd7, 0x79, 0xa3, 0xe3,
+  0x04, 0x72, 0x3f, 0x8b, 0x4d, 0x34, 0x53, 0x67, 0xec, 0x33, 0x2c, 0x7b,
+  0xe8, 0x94, 0x01, 0x28, 0x7c, 0x3a, 0x34, 0x5b, 0x02, 0x77, 0x16, 0x8d,
+  0x40, 0x25, 0x33, 0xb0, 0xbc, 0x6c, 0x97, 0xd7, 0x05, 0x7a, 0xff, 0x8c,
+  0x85, 0xce, 0x6f, 0xa0, 0x53, 0x00, 0x17, 0x6e, 0x1e, 0x6c, 0xbd, 0x22,
+  0xd7, 0x0a, 0x88, 0x37, 0xf6, 0x7d, 0xeb, 0x99, 0x41, 0xef, 0x27, 0xcb,
+  0x8c, 0x60, 0x6b, 0x4c, 0x01, 0x7e, 0x65, 0x50, 0x0b, 0x4f, 0xb8, 0x95,
+  0x9a, 0x9a, 0x6e, 0x34, 0xfd, 0x73, 0x3a, 0x33, 0xf1, 0x91, 0xd5, 0xf3,
+  0x4e, 0x2d, 0x74, 0xe8, 0xef, 0xd3, 0x90, 0x35, 0xf1, 0x06, 0x68, 0x64,
+  0xd4, 0xd0, 0x13, 0xfd, 0x52, 0xd3, 0xc6, 0x6d, 0xc1, 0x3a, 0x8a, 0x31,
+  0xdd, 0x05, 0x26, 0x35, 0x4a, 0x8c, 0x65, 0xb8, 0x52, 0x6b, 0x81, 0xec,
+  0xd2, 0x9c, 0xb5, 0x34, 0x10, 0x97, 0x9c, 0x3e, 0xc6, 0x2f, 0xed, 0x8e,
+  0x42, 0x42, 0x24, 0x2e, 0xe9, 0x73, 0x9a, 0x25, 0xf9, 0x11, 0xf1, 0xf2,
+  0x23, 0x69, 0xcb, 0xe5, 0x94, 0x69, 0xa0, 0xd2, 0xdc, 0xb0, 0xfc, 0x44,
+  0x89, 0xac, 0x17, 0xa8, 0xcc, 0xd5, 0x37, 0x77, 0x16, 0xc5, 0x80, 0xb9,
+  0x0c, 0x8f, 0x57, 0x02, 0x55, 0x99, 0x85, 0x7b, 0x49, 0xf0, 0x2e, 0x5b,
+  0xa0, 0xc2, 0x57, 0x53, 0x5d, 0xa2, 0xe8, 0xa6, 0x37, 0xc3, 0x01, 0xfa,
+};
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_3b.inc b/vendor/brightray/vendor/libchromiumcontent/src/net/quic/core/crypto/common_cert_set_3b.inc
new file mode 100644 (file)
index 0000000..7ba882c
--- /dev/null
@@ -0,0 +1,5722 @@
+/* Copyright (c) 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            28:1c:89:29:66:14:43:80:42:63:55:3a:32:40:ae:b3
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+        Validity
+            Not Before: Jun 30 00:00:00 2015 GMT
+            Not After : Jun 29 23:59:59 2025 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c0:9e:3a:0f:9a:b2:ba:d3:d2:dc:15:ec:d0:30:
+                    54:59:30:4d:40:51:ae:42:71:71:d2:8d:53:73:81:
+                    fe:b8:e0:c4:96:c5:8e:7e:c2:f1:b7:63:4a:cf:a7:
+                    1e:3f:a8:e7:ce:53:a0:fa:2d:f7:d6:e6:ce:70:11:
+                    a6:ee:e1:03:52:d2:68:de:3d:08:0d:87:fd:1c:d7:
+                    0b:97:62:6d:82:30:76:1b:47:3a:c4:f7:ce:ed:1d:
+                    7c:8c:b7:17:8e:53:80:1e:1d:0f:5d:8c:f9:90:e4:
+                    04:1e:02:7e:cb:b0:49:ef:da:52:25:fb:fb:67:ed:
+                    dd:84:74:59:84:0e:f3:de:70:66:8d:e4:52:38:f7:
+                    53:5a:37:13:67:0b:3e:bb:a8:58:b7:2e:ed:ff:b7:
+                    5e:11:73:b9:77:45:52:67:46:ae:c4:dc:24:81:89:
+                    76:0a:ca:a1:6c:66:73:04:82:aa:f5:70:6c:5f:1b:
+                    9a:00:79:46:d6:7f:7a:26:17:30:cf:39:4b:2c:74:
+                    d9:89:44:76:10:d0:ed:f7:8b:bb:89:05:75:4d:0b:
+                    0d:b3:da:e9:bf:f1:6a:7d:2a:11:db:1e:9f:8c:e3:
+                    c4:06:69:e1:1d:88:45:39:d1:6e:55:d8:aa:b7:9b:
+                    6f:ea:f4:de:ac:17:11:92:5d:40:9b:83:7b:9a:e2:
+                    f7:a9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.23.140.1.2.1
+                  CPS: https://www.geotrust.com/resources/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/GeoTrustPCA-G3.crl
+
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                F3:B5:56:0C:C4:09:B0:B4:CF:1F:AA:F9:DD:23:56:F0:77:E8:A1:F9
+            X509v3 Authority Key Identifier: 
+                keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+    Signature Algorithm: sha256WithRSAEncryption
+         c3:7e:d8:83:4b:04:4c:55:29:2a:4f:14:9d:9a:6e:de:90:70:
+         c1:a4:26:4c:88:8e:78:48:ef:bd:9c:b0:a0:f5:f0:66:fc:fe:
+         59:26:e1:79:ef:c8:b7:60:64:a8:8b:47:ea:2f:e0:83:99:da:
+         41:19:d7:c5:be:05:fa:f2:90:11:f0:0a:ff:6c:dc:05:b4:d8:
+         06:6f:a4:6f:8d:be:20:2b:54:db:f9:a2:45:83:9a:1e:a5:21:
+         89:35:1d:7c:20:5c:17:fd:04:2e:45:d8:b2:c6:f8:42:99:fc:
+         54:08:4e:4b:80:5f:39:37:ba:95:4e:a6:37:0a:9e:93:5e:87:
+         5b:e9:90:d6:a8:b6:65:08:8d:61:49:eb:83:20:a9:5d:1b:16:
+         60:62:6b:2f:54:fb:5a:02:0d:7a:27:e2:4b:e1:05:14:c2:e4:
+         e9:f9:70:c0:d9:f7:34:65:0e:a2:91:4b:ac:28:f2:b7:08:0f:
+         98:ca:d7:3e:70:b6:c8:0b:f1:8b:9c:51:f8:c6:10:6c:d2:53:
+         4f:62:8c:11:00:3e:88:df:bf:e6:d2:cc:70:bd:ed:25:9c:fb:
+         dd:24:0a:bd:59:91:4a:42:03:38:12:71:32:88:76:a0:8e:7c:
+         bb:32:ef:88:2a:1b:d4:6a:6f:50:b9:52:67:8b:ab:30:fa:1f:
+         fd:e3:24:9a
+-----BEGIN CERTIFICATE-----
+MIIEpjCCA46gAwIBAgIQKByJKWYUQ4BCY1U6MkCuszANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTE1MDYzMDAwMDAwMFoXDTI1MDYyOTIzNTk1OVowRzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xIDAeBgNVBAMTF1JhcGlk
+U1NMIFNIQTI1NiBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAwJ46D5qyutPS3BXs0DBUWTBNQFGuQnFx0o1Tc4H+uODElsWOfsLxt2NKz6ce
+P6jnzlOg+i331ubOcBGm7uEDUtJo3j0IDYf9HNcLl2JtgjB2G0c6xPfO7R18jLcX
+jlOAHh0PXYz5kOQEHgJ+y7BJ79pSJfv7Z+3dhHRZhA7z3nBmjeRSOPdTWjcTZws+
+u6hYty7t/7deEXO5d0VSZ0auxNwkgYl2CsqhbGZzBIKq9XBsXxuaAHlG1n96Jhcw
+zzlLLHTZiUR2ENDt94u7iQV1TQsNs9rpv/FqfSoR2x6fjOPEBmnhHYhFOdFuVdiq
+t5tv6vTerBcRkl1Am4N7muL3qQIDAQABo4IBOjCCATYwLgYIKwYBBQUHAQEEIjAg
+MB4GCCsGAQUFBzABhhJodHRwOi8vZy5zeW1jZC5jb20wEgYDVR0TAQH/BAgwBgEB
+/wIBADBJBgNVHSAEQjBAMD4GBmeBDAECATA0MDIGCCsGAQUFBwIBFiZodHRwczov
+L3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA2BgNVHR8ELzAtMCugKaAn
+hiVodHRwOi8vZy5zeW1jYi5jb20vR2VvVHJ1c3RQQ0EtRzMuY3JsMB0GA1UdJQQW
+MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FPO1VgzECbC0zx+q+d0jVvB36KH5MB8GA1UdIwQYMBaAFMR5yo6hTgMdHNxr2zFb
+lD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQDDftiDSwRMVSkqTxSdmm7ekHDBpCZM
+iI54SO+9nLCg9fBm/P5ZJuF578i3YGSoi0fqL+CDmdpBGdfFvgX68pAR8Ar/bNwF
+tNgGb6Rvjb4gK1Tb+aJFg5oepSGJNR18IFwX/QQuRdiyxvhCmfxUCE5LgF85N7qV
+TqY3Cp6TXodb6ZDWqLZlCI1hSeuDIKldGxZgYmsvVPtaAg16J+JL4QUUwuTp+XDA
+2fc0ZQ6ikUusKPK3CA+Yytc+cLbIC/GLnFH4xhBs0lNPYowRAD6I37/m0sxwve0l
+nPvdJAq9WZFKQgM4EnEyiHagjny7Mu+IKhvUam9QuVJni6sw+h/94ySa
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert26[] = {
+  0x30, 0x82, 0x04, 0xa6, 0x30, 0x82, 0x03, 0x8e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x28, 0x1c, 0x89, 0x29, 0x66, 0x14, 0x43, 0x80, 0x42,
+  0x63, 0x55, 0x3a, 0x32, 0x40, 0xae, 0xb3, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+  0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+  0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+  0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+  0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x35, 0x30, 0x36, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x32, 0x35, 0x30, 0x36, 0x32, 0x39, 0x32, 0x33,
+  0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64,
+  0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43,
+  0x41, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0xc0, 0x9e, 0x3a, 0x0f, 0x9a, 0xb2, 0xba, 0xd3, 0xd2,
+  0xdc, 0x15, 0xec, 0xd0, 0x30, 0x54, 0x59, 0x30, 0x4d, 0x40, 0x51, 0xae,
+  0x42, 0x71, 0x71, 0xd2, 0x8d, 0x53, 0x73, 0x81, 0xfe, 0xb8, 0xe0, 0xc4,
+  0x96, 0xc5, 0x8e, 0x7e, 0xc2, 0xf1, 0xb7, 0x63, 0x4a, 0xcf, 0xa7, 0x1e,
+  0x3f, 0xa8, 0xe7, 0xce, 0x53, 0xa0, 0xfa, 0x2d, 0xf7, 0xd6, 0xe6, 0xce,
+  0x70, 0x11, 0xa6, 0xee, 0xe1, 0x03, 0x52, 0xd2, 0x68, 0xde, 0x3d, 0x08,
+  0x0d, 0x87, 0xfd, 0x1c, 0xd7, 0x0b, 0x97, 0x62, 0x6d, 0x82, 0x30, 0x76,
+  0x1b, 0x47, 0x3a, 0xc4, 0xf7, 0xce, 0xed, 0x1d, 0x7c, 0x8c, 0xb7, 0x17,
+  0x8e, 0x53, 0x80, 0x1e, 0x1d, 0x0f, 0x5d, 0x8c, 0xf9, 0x90, 0xe4, 0x04,
+  0x1e, 0x02, 0x7e, 0xcb, 0xb0, 0x49, 0xef, 0xda, 0x52, 0x25, 0xfb, 0xfb,
+  0x67, 0xed, 0xdd, 0x84, 0x74, 0x59, 0x84, 0x0e, 0xf3, 0xde, 0x70, 0x66,
+  0x8d, 0xe4, 0x52, 0x38, 0xf7, 0x53, 0x5a, 0x37, 0x13, 0x67, 0x0b, 0x3e,
+  0xbb, 0xa8, 0x58, 0xb7, 0x2e, 0xed, 0xff, 0xb7, 0x5e, 0x11, 0x73, 0xb9,
+  0x77, 0x45, 0x52, 0x67, 0x46, 0xae, 0xc4, 0xdc, 0x24, 0x81, 0x89, 0x76,
+  0x0a, 0xca, 0xa1, 0x6c, 0x66, 0x73, 0x04, 0x82, 0xaa, 0xf5, 0x70, 0x6c,
+  0x5f, 0x1b, 0x9a, 0x00, 0x79, 0x46, 0xd6, 0x7f, 0x7a, 0x26, 0x17, 0x30,
+  0xcf, 0x39, 0x4b, 0x2c, 0x74, 0xd9, 0x89, 0x44, 0x76, 0x10, 0xd0, 0xed,
+  0xf7, 0x8b, 0xbb, 0x89, 0x05, 0x75, 0x4d, 0x0b, 0x0d, 0xb3, 0xda, 0xe9,
+  0xbf, 0xf1, 0x6a, 0x7d, 0x2a, 0x11, 0xdb, 0x1e, 0x9f, 0x8c, 0xe3, 0xc4,
+  0x06, 0x69, 0xe1, 0x1d, 0x88, 0x45, 0x39, 0xd1, 0x6e, 0x55, 0xd8, 0xaa,
+  0xb7, 0x9b, 0x6f, 0xea, 0xf4, 0xde, 0xac, 0x17, 0x11, 0x92, 0x5d, 0x40,
+  0x9b, 0x83, 0x7b, 0x9a, 0xe2, 0xf7, 0xa9, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x01, 0x3a, 0x30, 0x82, 0x01, 0x36, 0x30, 0x2e, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20,
+  0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+  0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x49, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x42, 0x30, 0x40, 0x30, 0x3e, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02,
+  0x01, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
+  0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x36, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0, 0x29, 0xa0, 0x27,
+  0x86, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+  0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f,
+  0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16,
+  0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x0e,
+  0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
+  0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0xf3, 0xb5, 0x56, 0x0c, 0xc4, 0x09, 0xb0, 0xb4, 0xcf, 0x1f, 0xaa,
+  0xf9, 0xdd, 0x23, 0x56, 0xf0, 0x77, 0xe8, 0xa1, 0xf9, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc4, 0x79,
+  0xca, 0x8e, 0xa1, 0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b, 0xdb, 0x31, 0x5b,
+  0x94, 0x3e, 0x3f, 0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x01, 0x00, 0xc3, 0x7e, 0xd8, 0x83, 0x4b, 0x04, 0x4c, 0x55, 0x29, 0x2a,
+  0x4f, 0x14, 0x9d, 0x9a, 0x6e, 0xde, 0x90, 0x70, 0xc1, 0xa4, 0x26, 0x4c,
+  0x88, 0x8e, 0x78, 0x48, 0xef, 0xbd, 0x9c, 0xb0, 0xa0, 0xf5, 0xf0, 0x66,
+  0xfc, 0xfe, 0x59, 0x26, 0xe1, 0x79, 0xef, 0xc8, 0xb7, 0x60, 0x64, 0xa8,
+  0x8b, 0x47, 0xea, 0x2f, 0xe0, 0x83, 0x99, 0xda, 0x41, 0x19, 0xd7, 0xc5,
+  0xbe, 0x05, 0xfa, 0xf2, 0x90, 0x11, 0xf0, 0x0a, 0xff, 0x6c, 0xdc, 0x05,
+  0xb4, 0xd8, 0x06, 0x6f, 0xa4, 0x6f, 0x8d, 0xbe, 0x20, 0x2b, 0x54, 0xdb,
+  0xf9, 0xa2, 0x45, 0x83, 0x9a, 0x1e, 0xa5, 0x21, 0x89, 0x35, 0x1d, 0x7c,
+  0x20, 0x5c, 0x17, 0xfd, 0x04, 0x2e, 0x45, 0xd8, 0xb2, 0xc6, 0xf8, 0x42,
+  0x99, 0xfc, 0x54, 0x08, 0x4e, 0x4b, 0x80, 0x5f, 0x39, 0x37, 0xba, 0x95,
+  0x4e, 0xa6, 0x37, 0x0a, 0x9e, 0x93, 0x5e, 0x87, 0x5b, 0xe9, 0x90, 0xd6,
+  0xa8, 0xb6, 0x65, 0x08, 0x8d, 0x61, 0x49, 0xeb, 0x83, 0x20, 0xa9, 0x5d,
+  0x1b, 0x16, 0x60, 0x62, 0x6b, 0x2f, 0x54, 0xfb, 0x5a, 0x02, 0x0d, 0x7a,
+  0x27, 0xe2, 0x4b, 0xe1, 0x05, 0x14, 0xc2, 0xe4, 0xe9, 0xf9, 0x70, 0xc0,
+  0xd9, 0xf7, 0x34, 0x65, 0x0e, 0xa2, 0x91, 0x4b, 0xac, 0x28, 0xf2, 0xb7,
+  0x08, 0x0f, 0x98, 0xca, 0xd7, 0x3e, 0x70, 0xb6, 0xc8, 0x0b, 0xf1, 0x8b,
+  0x9c, 0x51, 0xf8, 0xc6, 0x10, 0x6c, 0xd2, 0x53, 0x4f, 0x62, 0x8c, 0x11,
+  0x00, 0x3e, 0x88, 0xdf, 0xbf, 0xe6, 0xd2, 0xcc, 0x70, 0xbd, 0xed, 0x25,
+  0x9c, 0xfb, 0xdd, 0x24, 0x0a, 0xbd, 0x59, 0x91, 0x4a, 0x42, 0x03, 0x38,
+  0x12, 0x71, 0x32, 0x88, 0x76, 0xa0, 0x8e, 0x7c, 0xbb, 0x32, 0xef, 0x88,
+  0x2a, 0x1b, 0xd4, 0x6a, 0x6f, 0x50, 0xb9, 0x52, 0x67, 0x8b, 0xab, 0x30,
+  0xfa, 0x1f, 0xfd, 0xe3, 0x24, 0x9a,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            e4:05:47:83:0e:0c:64:52:97:6f:7a:35:49:c0:dd:48
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Trusted Network CA
+        Validity
+            Not Before: Jan 21 12:00:00 2015 GMT
+            Not After : Jan 18 12:00:00 2025 GMT
+        Subject: C=RU, O=Yandex LLC, OU=Yandex Certification Authority, CN=Yandex CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a6:05:24:76:61:b9:9e:42:60:22:63:85:59:e5:
+                    9d:88:0d:df:ef:21:64:5a:26:94:71:3a:a4:7f:2b:
+                    53:c3:ac:7b:ba:95:42:6d:6a:5b:d6:7e:78:0c:67:
+                    40:98:2f:6a:2d:d0:b7:18:3a:7e:99:60:01:e5:27:
+                    bf:ff:49:f5:cd:c4:58:c3:4c:e1:70:d5:fd:08:a8:
+                    79:95:76:1c:0e:05:41:fa:bd:80:38:2a:87:4f:c1:
+                    67:42:aa:17:a6:ee:a7:8c:8e:ef:2d:7f:7a:1d:05:
+                    17:8f:7e:3b:92:35:f5:68:ed:93:03:55:23:4f:4b:
+                    a2:00:86:65:91:0f:eb:f6:3c:d5:db:6d:0e:ed:e8:
+                    7c:3a:c8:ba:b7:53:c1:a4:d8:40:02:e5:b5:a2:ca:
+                    bf:da:9c:94:0d:fc:c5:1c:2a:59:88:62:57:93:2e:
+                    11:f0:38:2c:7a:81:2a:f2:25:15:17:35:70:2c:4b:
+                    f7:23:4c:82:ef:33:9f:c2:9a:0b:a3:e2:5d:6b:38:
+                    77:f9:60:33:cf:2e:7b:56:b7:13:93:1f:34:97:71:
+                    99:76:02:46:35:14:7c:dc:ca:48:8a:0a:72:4b:78:
+                    6d:82:34:96:13:45:cf:02:2f:50:13:39:43:89:c0:
+                    e1:74:d7:28:71:21:e5:aa:97:0e:ee:46:ec:93:f7:
+                    23:7d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Subject Key Identifier: 
+                37:5C:E3:19:E0:B2:8E:A1:A8:4E:D2:CF:AB:D0:DC:E3:0B:5C:35:4D
+            X509v3 Authority Key Identifier: 
+                keyid:08:76:CD:CB:07:FF:24:F6:C5:CD:ED:BB:90:BC:E2:84:37:46:75:F7
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.certum.pl/ctnca.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://subca.ocsp-certum.com
+                CA Issuers - URI:http://repository.certum.pl/ctnca.cer
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.certum.pl/CPS
+
+    Signature Algorithm: sha256WithRSAEncryption
+         02:5e:8e:7b:e0:66:a1:c6:ab:8b:18:1f:0e:b9:c4:cd:71:db:
+         44:5c:03:7d:65:ea:b8:47:b5:1e:ce:24:70:a0:7f:d3:df:66:
+         4b:8c:90:e2:a5:ed:9b:94:36:b4:a8:be:f0:74:8c:26:92:75:
+         9d:56:50:9e:ad:d0:1a:a0:df:a4:14:56:10:75:93:7a:c1:f4:
+         53:a0:76:74:2c:72:ba:b5:d1:c9:e2:dc:46:86:3f:1d:f6:33:
+         87:59:ec:9c:dc:2d:1e:4d:43:1a:ce:ba:d9:87:7e:e2:47:45:
+         72:3d:28:03:c9:0a:4d:e0:57:a3:5e:6e:7e:cc:5a:c8:c4:78:
+         01:57:68:7a:38:3b:53:36:e7:92:6d:8a:2c:2f:d7:8b:b6:34:
+         a8:d1:b6:f8:5e:3b:ab:ed:a5:8f:39:6f:45:ad:cb:63:ed:6a:
+         64:c9:10:a7:03:08:12:53:b1:1c:af:ca:f7:53:fc:d8:29:4b:
+         1b:fb:38:cd:c0:63:ff:5f:e4:b9:8d:5e:aa:2b:d2:c3:22:35:
+         31:f6:30:0e:53:32:f4:93:c5:43:cb:c8:f0:15:56:8f:00:19:
+         87:ca:78:22:8d:a0:2e:db:2f:a0:c3:7e:29:5d:91:25:84:1d:
+         1d:39:ab:1b:c5:d6:91:fe:69:0e:46:80:bc:45:7b:35:53:2a:
+         df:00:b6:77
+-----BEGIN CERTIFICATE-----
+MIIEqDCCA5CgAwIBAgIRAOQFR4MODGRSl296NUnA3UgwDQYJKoZIhvcNAQELBQAw
+fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
+QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
+A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTAeFw0xNTAxMjExMjAwMDBa
+Fw0yNTAxMTgxMjAwMDBaMF8xCzAJBgNVBAYTAlJVMRMwEQYDVQQKEwpZYW5kZXgg
+TExDMScwJQYDVQQLEx5ZYW5kZXggQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEjAQ
+BgNVBAMTCVlhbmRleCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKYFJHZhuZ5CYCJjhVnlnYgN3+8hZFomlHE6pH8rU8Ose7qVQm1qW9Z+eAxnQJgv
+ai3Qtxg6fplgAeUnv/9J9c3EWMNM4XDV/QioeZV2HA4FQfq9gDgqh0/BZ0KqF6bu
+p4yO7y1/eh0FF49+O5I19WjtkwNVI09LogCGZZEP6/Y81dttDu3ofDrIurdTwaTY
+QALltaLKv9qclA38xRwqWYhiV5MuEfA4LHqBKvIlFRc1cCxL9yNMgu8zn8KaC6Pi
+XWs4d/lgM88ue1a3E5MfNJdxmXYCRjUUfNzKSIoKckt4bYI0lhNFzwIvUBM5Q4nA
+4XTXKHEh5aqXDu5G7JP3I30CAwEAAaOCAT4wggE6MA8GA1UdEwEB/wQFMAMBAf8w
+HQYDVR0OBBYEFDdc4xngso6hqE7Sz6vQ3OMLXDVNMB8GA1UdIwQYMBaAFAh2zcsH
+/yT2xc3tu5C84oQ3RnX3MA4GA1UdDwEB/wQEAwIBBjAvBgNVHR8EKDAmMCSgIqAg
+hh5odHRwOi8vY3JsLmNlcnR1bS5wbC9jdG5jYS5jcmwwawYIKwYBBQUHAQEEXzBd
+MCgGCCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1jZXJ0dW0uY29tMDEGCCsG
+AQUFBzAChiVodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvY3RuY2EuY2VyMDkG
+A1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3LmNlcnR1
+bS5wbC9DUFMwDQYJKoZIhvcNAQELBQADggEBAAJejnvgZqHGq4sYHw65xM1x20Rc
+A31l6rhHtR7OJHCgf9PfZkuMkOKl7ZuUNrSovvB0jCaSdZ1WUJ6t0Bqg36QUVhB1
+k3rB9FOgdnQscrq10cni3EaGPx32M4dZ7JzcLR5NQxrOutmHfuJHRXI9KAPJCk3g
+V6Nebn7MWsjEeAFXaHo4O1M255Jtiiwv14u2NKjRtvheO6vtpY85b0Wty2PtamTJ
+EKcDCBJTsRyvyvdT/NgpSxv7OM3AY/9f5LmNXqor0sMiNTH2MA5TMvSTxUPLyPAV
+Vo8AGYfKeCKNoC7bL6DDfildkSWEHR05qxvF1pH+aQ5GgLxFezVTKt8Atnc=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert27[] = {
+  0x30, 0x82, 0x04, 0xa8, 0x30, 0x82, 0x03, 0x90, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x11, 0x00, 0xe4, 0x05, 0x47, 0x83, 0x0e, 0x0c, 0x64, 0x52,
+  0x97, 0x6f, 0x7a, 0x35, 0x49, 0xc0, 0xdd, 0x48, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
+  0x7e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x50, 0x4c, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x19, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x54, 0x65, 0x63,
+  0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x20, 0x53, 0x2e,
+  0x41, 0x2e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x1e, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x22, 0x30, 0x20, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d,
+  0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x4e, 0x65, 0x74,
+  0x77, 0x6f, 0x72, 0x6b, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+  0x35, 0x30, 0x31, 0x32, 0x31, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a,
+  0x17, 0x0d, 0x32, 0x35, 0x30, 0x31, 0x31, 0x38, 0x31, 0x32, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x52, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+  0x55, 0x04, 0x0a, 0x13, 0x0a, 0x59, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x20,
+  0x4c, 0x4c, 0x43, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x1e, 0x59, 0x61, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x43, 0x65, 0x72,
+  0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41,
+  0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x12, 0x30, 0x10,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x09, 0x59, 0x61, 0x6e, 0x64, 0x65,
+  0x78, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xa6, 0x05, 0x24, 0x76, 0x61, 0xb9, 0x9e, 0x42, 0x60, 0x22, 0x63,
+  0x85, 0x59, 0xe5, 0x9d, 0x88, 0x0d, 0xdf, 0xef, 0x21, 0x64, 0x5a, 0x26,
+  0x94, 0x71, 0x3a, 0xa4, 0x7f, 0x2b, 0x53, 0xc3, 0xac, 0x7b, 0xba, 0x95,
+  0x42, 0x6d, 0x6a, 0x5b, 0xd6, 0x7e, 0x78, 0x0c, 0x67, 0x40, 0x98, 0x2f,
+  0x6a, 0x2d, 0xd0, 0xb7, 0x18, 0x3a, 0x7e, 0x99, 0x60, 0x01, 0xe5, 0x27,
+  0xbf, 0xff, 0x49, 0xf5, 0xcd, 0xc4, 0x58, 0xc3, 0x4c, 0xe1, 0x70, 0xd5,
+  0xfd, 0x08, 0xa8, 0x79, 0x95, 0x76, 0x1c, 0x0e, 0x05, 0x41, 0xfa, 0xbd,
+  0x80, 0x38, 0x2a, 0x87, 0x4f, 0xc1, 0x67, 0x42, 0xaa, 0x17, 0xa6, 0xee,
+  0xa7, 0x8c, 0x8e, 0xef, 0x2d, 0x7f, 0x7a, 0x1d, 0x05, 0x17, 0x8f, 0x7e,
+  0x3b, 0x92, 0x35, 0xf5, 0x68, 0xed, 0x93, 0x03, 0x55, 0x23, 0x4f, 0x4b,
+  0xa2, 0x00, 0x86, 0x65, 0x91, 0x0f, 0xeb, 0xf6, 0x3c, 0xd5, 0xdb, 0x6d,
+  0x0e, 0xed, 0xe8, 0x7c, 0x3a, 0xc8, 0xba, 0xb7, 0x53, 0xc1, 0xa4, 0xd8,
+  0x40, 0x02, 0xe5, 0xb5, 0xa2, 0xca, 0xbf, 0xda, 0x9c, 0x94, 0x0d, 0xfc,
+  0xc5, 0x1c, 0x2a, 0x59, 0x88, 0x62, 0x57, 0x93, 0x2e, 0x11, 0xf0, 0x38,
+  0x2c, 0x7a, 0x81, 0x2a, 0xf2, 0x25, 0x15, 0x17, 0x35, 0x70, 0x2c, 0x4b,
+  0xf7, 0x23, 0x4c, 0x82, 0xef, 0x33, 0x9f, 0xc2, 0x9a, 0x0b, 0xa3, 0xe2,
+  0x5d, 0x6b, 0x38, 0x77, 0xf9, 0x60, 0x33, 0xcf, 0x2e, 0x7b, 0x56, 0xb7,
+  0x13, 0x93, 0x1f, 0x34, 0x97, 0x71, 0x99, 0x76, 0x02, 0x46, 0x35, 0x14,
+  0x7c, 0xdc, 0xca, 0x48, 0x8a, 0x0a, 0x72, 0x4b, 0x78, 0x6d, 0x82, 0x34,
+  0x96, 0x13, 0x45, 0xcf, 0x02, 0x2f, 0x50, 0x13, 0x39, 0x43, 0x89, 0xc0,
+  0xe1, 0x74, 0xd7, 0x28, 0x71, 0x21, 0xe5, 0xaa, 0x97, 0x0e, 0xee, 0x46,
+  0xec, 0x93, 0xf7, 0x23, 0x7d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x3e, 0x30, 0x82, 0x01, 0x3a, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x37, 0x5c,
+  0xe3, 0x19, 0xe0, 0xb2, 0x8e, 0xa1, 0xa8, 0x4e, 0xd2, 0xcf, 0xab, 0xd0,
+  0xdc, 0xe3, 0x0b, 0x5c, 0x35, 0x4d, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x08, 0x76, 0xcd, 0xcb, 0x07,
+  0xff, 0x24, 0xf6, 0xc5, 0xcd, 0xed, 0xbb, 0x90, 0xbc, 0xe2, 0x84, 0x37,
+  0x46, 0x75, 0xf7, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0xa0, 0x22, 0xa0, 0x20,
+  0x86, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+  0x2e, 0x63, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x63,
+  0x74, 0x6e, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x6b, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x5f, 0x30, 0x5d,
+  0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x75, 0x62,
+  0x63, 0x61, 0x2e, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x63, 0x65, 0x72, 0x74,
+  0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x31, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x25, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
+  0x79, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e, 0x70, 0x6c, 0x2f,
+  0x63, 0x74, 0x6e, 0x63, 0x61, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x39, 0x06,
+  0x03, 0x55, 0x1d, 0x20, 0x04, 0x32, 0x30, 0x30, 0x30, 0x2e, 0x06, 0x04,
+  0x55, 0x1d, 0x20, 0x00, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x18, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75,
+  0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x02, 0x5e, 0x8e, 0x7b, 0xe0, 0x66, 0xa1, 0xc6,
+  0xab, 0x8b, 0x18, 0x1f, 0x0e, 0xb9, 0xc4, 0xcd, 0x71, 0xdb, 0x44, 0x5c,
+  0x03, 0x7d, 0x65, 0xea, 0xb8, 0x47, 0xb5, 0x1e, 0xce, 0x24, 0x70, 0xa0,
+  0x7f, 0xd3, 0xdf, 0x66, 0x4b, 0x8c, 0x90, 0xe2, 0xa5, 0xed, 0x9b, 0x94,
+  0x36, 0xb4, 0xa8, 0xbe, 0xf0, 0x74, 0x8c, 0x26, 0x92, 0x75, 0x9d, 0x56,
+  0x50, 0x9e, 0xad, 0xd0, 0x1a, 0xa0, 0xdf, 0xa4, 0x14, 0x56, 0x10, 0x75,
+  0x93, 0x7a, 0xc1, 0xf4, 0x53, 0xa0, 0x76, 0x74, 0x2c, 0x72, 0xba, 0xb5,
+  0xd1, 0xc9, 0xe2, 0xdc, 0x46, 0x86, 0x3f, 0x1d, 0xf6, 0x33, 0x87, 0x59,
+  0xec, 0x9c, 0xdc, 0x2d, 0x1e, 0x4d, 0x43, 0x1a, 0xce, 0xba, 0xd9, 0x87,
+  0x7e, 0xe2, 0x47, 0x45, 0x72, 0x3d, 0x28, 0x03, 0xc9, 0x0a, 0x4d, 0xe0,
+  0x57, 0xa3, 0x5e, 0x6e, 0x7e, 0xcc, 0x5a, 0xc8, 0xc4, 0x78, 0x01, 0x57,
+  0x68, 0x7a, 0x38, 0x3b, 0x53, 0x36, 0xe7, 0x92, 0x6d, 0x8a, 0x2c, 0x2f,
+  0xd7, 0x8b, 0xb6, 0x34, 0xa8, 0xd1, 0xb6, 0xf8, 0x5e, 0x3b, 0xab, 0xed,
+  0xa5, 0x8f, 0x39, 0x6f, 0x45, 0xad, 0xcb, 0x63, 0xed, 0x6a, 0x64, 0xc9,
+  0x10, 0xa7, 0x03, 0x08, 0x12, 0x53, 0xb1, 0x1c, 0xaf, 0xca, 0xf7, 0x53,
+  0xfc, 0xd8, 0x29, 0x4b, 0x1b, 0xfb, 0x38, 0xcd, 0xc0, 0x63, 0xff, 0x5f,
+  0xe4, 0xb9, 0x8d, 0x5e, 0xaa, 0x2b, 0xd2, 0xc3, 0x22, 0x35, 0x31, 0xf6,
+  0x30, 0x0e, 0x53, 0x32, 0xf4, 0x93, 0xc5, 0x43, 0xcb, 0xc8, 0xf0, 0x15,
+  0x56, 0x8f, 0x00, 0x19, 0x87, 0xca, 0x78, 0x22, 0x8d, 0xa0, 0x2e, 0xdb,
+  0x2f, 0xa0, 0xc3, 0x7e, 0x29, 0x5d, 0x91, 0x25, 0x84, 0x1d, 0x1d, 0x39,
+  0xab, 0x1b, 0xc5, 0xd6, 0x91, 0xfe, 0x69, 0x0e, 0x46, 0x80, 0xbc, 0x45,
+  0x7b, 0x35, 0x53, 0x2a, 0xdf, 0x00, 0xb6, 0x77,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            5d:72:fb:33:76:20:f6:4c:72:80:db:e9:12:81:ff:6a
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=thawte, Inc., CN=thawte EV SSL CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c4:dd:da:94:1e:32:b2:2e:a0:83:c0:a6:7d:5f:
+                    65:2d:fd:27:b8:73:0e:f8:0b:a9:d4:56:26:69:98:
+                    67:35:39:64:58:ce:82:6f:98:94:d1:8f:e0:90:d6:
+                    ed:55:4b:98:4b:d7:10:59:34:02:1b:e7:51:31:51:
+                    c4:38:c2:bc:db:03:5c:ca:e1:7c:dc:4f:59:97:ea:
+                    07:7f:0f:85:3e:92:ea:aa:a7:d9:be:01:41:e4:62:
+                    56:47:36:bd:57:91:e6:21:d3:f8:41:0b:d8:ba:e8:
+                    ed:81:ad:70:c0:8b:6e:f3:89:6e:27:9e:a6:a6:73:
+                    59:bb:71:00:d4:4f:4b:48:e9:d5:c9:27:36:9c:7c:
+                    1c:02:aa:ac:bd:3b:d1:53:83:6a:1f:e6:08:47:33:
+                    a7:b1:9f:02:be:9b:47:ed:33:04:dc:1c:80:27:d1:
+                    4a:33:a0:8c:eb:01:47:a1:32:90:64:7b:c4:e0:84:
+                    c9:32:e9:dd:34:1f:8a:68:67:f3:ad:10:63:eb:ee:
+                    8a:9a:b1:2a:1b:26:74:a1:2a:b0:8f:fe:52:98:46:
+                    97:cf:a3:56:1c:6f:6e:99:97:8d:26:0e:a9:ec:c2:
+                    53:70:fc:7a:a5:19:49:bd:b5:17:82:55:de:97:e0:
+                    5d:62:84:81:f0:70:a8:34:53:4f:14:fd:3d:5d:3d:
+                    6f:b9
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://t2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://t1.symcb.com/ThawtePCA.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-536
+            X509v3 Subject Key Identifier: 
+                F0:70:51:DA:D3:2A:91:4F:52:77:D7:86:77:74:0F:CE:71:1A:6C:22
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha256WithRSAEncryption
+         a1:2e:94:3e:9b:16:f4:58:1a:6f:c1:fa:c1:7e:43:93:b2:c3:
+         f7:89:eb:13:62:5d:dd:cc:61:13:2b:1d:4e:88:79:11:62:14:
+         37:30:46:ff:89:62:10:85:2a:87:1e:f8:e2:af:fe:93:02:93:
+         ca:f2:e9:46:03:6b:a1:1a:ac:d5:f0:80:1b:98:6f:b8:3a:50:
+         f8:54:71:06:03:e7:84:cc:8e:61:d2:5f:4d:0c:97:02:65:b5:
+         8c:26:bc:05:98:f4:dc:c6:af:e4:57:7f:e3:dc:a1:d7:27:47:
+         2a:e0:2c:3f:09:74:dc:5a:e5:b5:7c:fa:82:9a:15:fa:74:2b:
+         84:2e:6b:ac:ef:35:a6:30:fa:47:4a:aa:36:44:f6:5a:91:07:
+         d3:e4:4e:97:3f:a6:53:d8:29:33:32:6f:8b:3d:b5:a5:0d:e5:
+         e4:8a:e8:f5:c0:fa:af:d8:37:28:27:c3:ed:34:31:d9:7c:a6:
+         af:4d:12:4f:d0:2b:92:9c:69:95:f2:28:a6:fe:a8:c6:e0:2c:
+         4d:36:eb:11:34:d6:e1:81:99:9d:41:f2:e7:c5:57:05:0e:19:
+         ca:af:42:39:1f:a7:27:5e:e0:0a:17:b8:ae:47:ab:92:f1:8a:
+         04:df:30:e0:bb:4f:8a:f9:1b:88:4f:03:b4:25:7a:78:de:2e:
+         7d:29:d1:31
+-----BEGIN CERTIFICATE-----
+MIIErzCCA5egAwIBAgIQXXL7M3Yg9kxygNvpEoH/ajANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR4wHAYDVQQDExV0aGF3dGUgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDE3dqUHjKyLqCDwKZ9X2Ut/Se4cw74C6nUViZpmGc1
+OWRYzoJvmJTRj+CQ1u1VS5hL1xBZNAIb51ExUcQ4wrzbA1zK4XzcT1mX6gd/D4U+
+kuqqp9m+AUHkYlZHNr1XkeYh0/hBC9i66O2BrXDAi27ziW4nnqamc1m7cQDUT0tI
+6dXJJzacfBwCqqy9O9FTg2of5ghHM6exnwK+m0ftMwTcHIAn0UozoIzrAUehMpBk
+e8TghMky6d00H4poZ/OtEGPr7oqasSobJnShKrCP/lKYRpfPo1Ycb26Zl40mDqns
+wlNw/HqlGUm9tReCVd6X4F1ihIHwcKg0U08U/T1dPW+5AgMBAAGjggE1MIIBMTAS
+BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly90Mi5zeW1jYi5jb20wOwYDVR0gBDQwMjAw
+BgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3Bz
+MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly90MS5zeW1jYi5jb20vVGhhd3RlUENB
+LmNybDApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01MzYw
+HQYDVR0OBBYEFPBwUdrTKpFPUnfXhnd0D85xGmwiMB8GA1UdIwQYMBaAFHtbRc+v
+zst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQChLpQ+mxb0WBpvwfrB
+fkOTssP3iesTYl3dzGETKx1OiHkRYhQ3MEb/iWIQhSqHHvjir/6TApPK8ulGA2uh
+GqzV8IAbmG+4OlD4VHEGA+eEzI5h0l9NDJcCZbWMJrwFmPTcxq/kV3/j3KHXJ0cq
+4Cw/CXTcWuW1fPqCmhX6dCuELmus7zWmMPpHSqo2RPZakQfT5E6XP6ZT2CkzMm+L
+PbWlDeXkiuj1wPqv2DcoJ8PtNDHZfKavTRJP0CuSnGmV8iim/qjG4CxNNusRNNbh
+gZmdQfLnxVcFDhnKr0I5H6cnXuAKF7iuR6uS8YoE3zDgu0+K+RuITwO0JXp43i59
+KdEx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert28[] = {
+  0x30, 0x82, 0x04, 0xaf, 0x30, 0x82, 0x03, 0x97, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x5d, 0x72, 0xfb, 0x33, 0x76, 0x20, 0xf6, 0x4c, 0x72,
+  0x80, 0xdb, 0xe9, 0x12, 0x81, 0xff, 0x6a, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+  0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x44,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74,
+  0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+  0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xc4, 0xdd, 0xda, 0x94, 0x1e, 0x32, 0xb2,
+  0x2e, 0xa0, 0x83, 0xc0, 0xa6, 0x7d, 0x5f, 0x65, 0x2d, 0xfd, 0x27, 0xb8,
+  0x73, 0x0e, 0xf8, 0x0b, 0xa9, 0xd4, 0x56, 0x26, 0x69, 0x98, 0x67, 0x35,
+  0x39, 0x64, 0x58, 0xce, 0x82, 0x6f, 0x98, 0x94, 0xd1, 0x8f, 0xe0, 0x90,
+  0xd6, 0xed, 0x55, 0x4b, 0x98, 0x4b, 0xd7, 0x10, 0x59, 0x34, 0x02, 0x1b,
+  0xe7, 0x51, 0x31, 0x51, 0xc4, 0x38, 0xc2, 0xbc, 0xdb, 0x03, 0x5c, 0xca,
+  0xe1, 0x7c, 0xdc, 0x4f, 0x59, 0x97, 0xea, 0x07, 0x7f, 0x0f, 0x85, 0x3e,
+  0x92, 0xea, 0xaa, 0xa7, 0xd9, 0xbe, 0x01, 0x41, 0xe4, 0x62, 0x56, 0x47,
+  0x36, 0xbd, 0x57, 0x91, 0xe6, 0x21, 0xd3, 0xf8, 0x41, 0x0b, 0xd8, 0xba,
+  0xe8, 0xed, 0x81, 0xad, 0x70, 0xc0, 0x8b, 0x6e, 0xf3, 0x89, 0x6e, 0x27,
+  0x9e, 0xa6, 0xa6, 0x73, 0x59, 0xbb, 0x71, 0x00, 0xd4, 0x4f, 0x4b, 0x48,
+  0xe9, 0xd5, 0xc9, 0x27, 0x36, 0x9c, 0x7c, 0x1c, 0x02, 0xaa, 0xac, 0xbd,
+  0x3b, 0xd1, 0x53, 0x83, 0x6a, 0x1f, 0xe6, 0x08, 0x47, 0x33, 0xa7, 0xb1,
+  0x9f, 0x02, 0xbe, 0x9b, 0x47, 0xed, 0x33, 0x04, 0xdc, 0x1c, 0x80, 0x27,
+  0xd1, 0x4a, 0x33, 0xa0, 0x8c, 0xeb, 0x01, 0x47, 0xa1, 0x32, 0x90, 0x64,
+  0x7b, 0xc4, 0xe0, 0x84, 0xc9, 0x32, 0xe9, 0xdd, 0x34, 0x1f, 0x8a, 0x68,
+  0x67, 0xf3, 0xad, 0x10, 0x63, 0xeb, 0xee, 0x8a, 0x9a, 0xb1, 0x2a, 0x1b,
+  0x26, 0x74, 0xa1, 0x2a, 0xb0, 0x8f, 0xfe, 0x52, 0x98, 0x46, 0x97, 0xcf,
+  0xa3, 0x56, 0x1c, 0x6f, 0x6e, 0x99, 0x97, 0x8d, 0x26, 0x0e, 0xa9, 0xec,
+  0xc2, 0x53, 0x70, 0xfc, 0x7a, 0xa5, 0x19, 0x49, 0xbd, 0xb5, 0x17, 0x82,
+  0x55, 0xde, 0x97, 0xe0, 0x5d, 0x62, 0x84, 0x81, 0xf0, 0x70, 0xa8, 0x34,
+  0x53, 0x4f, 0x14, 0xfd, 0x3d, 0x5d, 0x3d, 0x6f, 0xb9, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x35, 0x30, 0x82, 0x01, 0x31, 0x30, 0x12,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+  0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+  0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74,
+  0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x3b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30,
+  0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74,
+  0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68,
+  0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73,
+  0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30,
+  0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x74, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41,
+  0x2e, 0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04,
+  0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74,
+  0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35, 0x33, 0x36, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf0, 0x70,
+  0x51, 0xda, 0xd3, 0x2a, 0x91, 0x4f, 0x52, 0x77, 0xd7, 0x86, 0x77, 0x74,
+  0x0f, 0xce, 0x71, 0x1a, 0x6c, 0x22, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf,
+  0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb,
+  0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xa1,
+  0x2e, 0x94, 0x3e, 0x9b, 0x16, 0xf4, 0x58, 0x1a, 0x6f, 0xc1, 0xfa, 0xc1,
+  0x7e, 0x43, 0x93, 0xb2, 0xc3, 0xf7, 0x89, 0xeb, 0x13, 0x62, 0x5d, 0xdd,
+  0xcc, 0x61, 0x13, 0x2b, 0x1d, 0x4e, 0x88, 0x79, 0x11, 0x62, 0x14, 0x37,
+  0x30, 0x46, 0xff, 0x89, 0x62, 0x10, 0x85, 0x2a, 0x87, 0x1e, 0xf8, 0xe2,
+  0xaf, 0xfe, 0x93, 0x02, 0x93, 0xca, 0xf2, 0xe9, 0x46, 0x03, 0x6b, 0xa1,
+  0x1a, 0xac, 0xd5, 0xf0, 0x80, 0x1b, 0x98, 0x6f, 0xb8, 0x3a, 0x50, 0xf8,
+  0x54, 0x71, 0x06, 0x03, 0xe7, 0x84, 0xcc, 0x8e, 0x61, 0xd2, 0x5f, 0x4d,
+  0x0c, 0x97, 0x02, 0x65, 0xb5, 0x8c, 0x26, 0xbc, 0x05, 0x98, 0xf4, 0xdc,
+  0xc6, 0xaf, 0xe4, 0x57, 0x7f, 0xe3, 0xdc, 0xa1, 0xd7, 0x27, 0x47, 0x2a,
+  0xe0, 0x2c, 0x3f, 0x09, 0x74, 0xdc, 0x5a, 0xe5, 0xb5, 0x7c, 0xfa, 0x82,
+  0x9a, 0x15, 0xfa, 0x74, 0x2b, 0x84, 0x2e, 0x6b, 0xac, 0xef, 0x35, 0xa6,
+  0x30, 0xfa, 0x47, 0x4a, 0xaa, 0x36, 0x44, 0xf6, 0x5a, 0x91, 0x07, 0xd3,
+  0xe4, 0x4e, 0x97, 0x3f, 0xa6, 0x53, 0xd8, 0x29, 0x33, 0x32, 0x6f, 0x8b,
+  0x3d, 0xb5, 0xa5, 0x0d, 0xe5, 0xe4, 0x8a, 0xe8, 0xf5, 0xc0, 0xfa, 0xaf,
+  0xd8, 0x37, 0x28, 0x27, 0xc3, 0xed, 0x34, 0x31, 0xd9, 0x7c, 0xa6, 0xaf,
+  0x4d, 0x12, 0x4f, 0xd0, 0x2b, 0x92, 0x9c, 0x69, 0x95, 0xf2, 0x28, 0xa6,
+  0xfe, 0xa8, 0xc6, 0xe0, 0x2c, 0x4d, 0x36, 0xeb, 0x11, 0x34, 0xd6, 0xe1,
+  0x81, 0x99, 0x9d, 0x41, 0xf2, 0xe7, 0xc5, 0x57, 0x05, 0x0e, 0x19, 0xca,
+  0xaf, 0x42, 0x39, 0x1f, 0xa7, 0x27, 0x5e, 0xe0, 0x0a, 0x17, 0xb8, 0xae,
+  0x47, 0xab, 0x92, 0xf1, 0x8a, 0x04, 0xdf, 0x30, 0xe0, 0xbb, 0x4f, 0x8a,
+  0xf9, 0x1b, 0x88, 0x4f, 0x03, 0xb4, 0x25, 0x7a, 0x78, 0xde, 0x2e, 0x7d,
+  0x29, 0xd1, 0x31,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            04:e1:e7:a4:dc:5c:f2:f3:6d:c0:2b:42:b8:5d:15:9f
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+        Validity
+            Not Before: Oct 22 12:00:00 2013 GMT
+            Not After : Oct 22 12:00:00 2028 GMT
+        Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b6:e0:2f:c2:24:06:c8:6d:04:5f:d7:ef:0a:64:
+                    06:b2:7d:22:26:65:16:ae:42:40:9b:ce:dc:9f:9f:
+                    76:07:3e:c3:30:55:87:19:b9:4f:94:0e:5a:94:1f:
+                    55:56:b4:c2:02:2a:af:d0:98:ee:0b:40:d7:c4:d0:
+                    3b:72:c8:14:9e:ef:90:b1:11:a9:ae:d2:c8:b8:43:
+                    3a:d9:0b:0b:d5:d5:95:f5:40:af:c8:1d:ed:4d:9c:
+                    5f:57:b7:86:50:68:99:f5:8a:da:d2:c7:05:1f:a8:
+                    97:c9:dc:a4:b1:82:84:2d:c6:ad:a5:9c:c7:19:82:
+                    a6:85:0f:5e:44:58:2a:37:8f:fd:35:f1:0b:08:27:
+                    32:5a:f5:bb:8b:9e:a4:bd:51:d0:27:e2:dd:3b:42:
+                    33:a3:05:28:c4:bb:28:cc:9a:ac:2b:23:0d:78:c6:
+                    7b:e6:5e:71:b7:4a:3e:08:fb:81:b7:16:16:a1:9d:
+                    23:12:4d:e5:d7:92:08:ac:75:a4:9c:ba:cd:17:b2:
+                    1e:44:35:65:7f:53:25:39:d1:1c:0a:9a:63:1b:19:
+                    92:74:68:0a:37:c2:c2:52:48:cb:39:5a:a2:b6:e1:
+                    5d:c1:dd:a0:20:b8:21:a2:93:26:6f:14:4a:21:41:
+                    c7:ed:6d:9b:f2:48:2f:f3:03:f5:a2:68:92:53:2f:
+                    5e:e3
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.digicert.com/CPS
+
+            X509v3 Subject Key Identifier: 
+                51:68:FF:90:AF:02:07:75:3C:CC:D9:65:64:62:A2:12:B8:59:72:3B
+            X509v3 Authority Key Identifier: 
+                keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+    Signature Algorithm: sha256WithRSAEncryption
+         18:8a:95:89:03:e6:6d:df:5c:fc:1d:68:ea:4a:8f:83:d6:51:
+         2f:8d:6b:44:16:9e:ac:63:f5:d2:6e:6c:84:99:8b:aa:81:71:
+         84:5b:ed:34:4e:b0:b7:79:92:29:cc:2d:80:6a:f0:8e:20:e1:
+         79:a4:fe:03:47:13:ea:f5:86:ca:59:71:7d:f4:04:96:6b:d3:
+         59:58:3d:fe:d3:31:25:5c:18:38:84:a3:e6:9f:82:fd:8c:5b:
+         98:31:4e:cd:78:9e:1a:fd:85:cb:49:aa:f2:27:8b:99:72:fc:
+         3e:aa:d5:41:0b:da:d5:36:a1:bf:1c:6e:47:49:7f:5e:d9:48:
+         7c:03:d9:fd:8b:49:a0:98:26:42:40:eb:d6:92:11:a4:64:0a:
+         57:54:c4:f5:1d:d6:02:5e:6b:ac:ee:c4:80:9a:12:72:fa:56:
+         93:d7:ff:bf:30:85:06:30:bf:0b:7f:4e:ff:57:05:9d:24:ed:
+         85:c3:2b:fb:a6:75:a8:ac:2d:16:ef:7d:79:27:b2:eb:c2:9d:
+         0b:07:ea:aa:85:d3:01:a3:20:28:41:59:43:28:d2:81:e3:aa:
+         f6:ec:7b:3b:77:b6:40:62:80:05:41:45:01:ef:17:06:3e:de:
+         c0:33:9b:67:d3:61:2e:72:87:e4:69:fc:12:00:57:40:1e:70:
+         f5:1e:c9:b4
+-----BEGIN CERTIFICATE-----
+MIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy
+YW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2
+4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC
+Kq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1
+itrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn
+4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X
+sh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft
+bZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
+dC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t
+L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG
+BFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ
+UzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D
+aQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd
+aOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH
+E+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly
+/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu
+xICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF
+0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae
+cPUeybQ=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert29[] = {
+  0x30, 0x82, 0x04, 0xb1, 0x30, 0x82, 0x03, 0x99, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x04, 0xe1, 0xe7, 0xa4, 0xdc, 0x5c, 0xf2, 0xf3, 0x6d,
+  0xc0, 0x2b, 0x42, 0xb8, 0x5d, 0x15, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+  0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+  0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+  0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+  0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x70, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+  0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+  0x32, 0x20, 0x48, 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72,
+  0x61, 0x6e, 0x63, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+  0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xb6,
+  0xe0, 0x2f, 0xc2, 0x24, 0x06, 0xc8, 0x6d, 0x04, 0x5f, 0xd7, 0xef, 0x0a,
+  0x64, 0x06, 0xb2, 0x7d, 0x22, 0x26, 0x65, 0x16, 0xae, 0x42, 0x40, 0x9b,
+  0xce, 0xdc, 0x9f, 0x9f, 0x76, 0x07, 0x3e, 0xc3, 0x30, 0x55, 0x87, 0x19,
+  0xb9, 0x4f, 0x94, 0x0e, 0x5a, 0x94, 0x1f, 0x55, 0x56, 0xb4, 0xc2, 0x02,
+  0x2a, 0xaf, 0xd0, 0x98, 0xee, 0x0b, 0x40, 0xd7, 0xc4, 0xd0, 0x3b, 0x72,
+  0xc8, 0x14, 0x9e, 0xef, 0x90, 0xb1, 0x11, 0xa9, 0xae, 0xd2, 0xc8, 0xb8,
+  0x43, 0x3a, 0xd9, 0x0b, 0x0b, 0xd5, 0xd5, 0x95, 0xf5, 0x40, 0xaf, 0xc8,
+  0x1d, 0xed, 0x4d, 0x9c, 0x5f, 0x57, 0xb7, 0x86, 0x50, 0x68, 0x99, 0xf5,
+  0x8a, 0xda, 0xd2, 0xc7, 0x05, 0x1f, 0xa8, 0x97, 0xc9, 0xdc, 0xa4, 0xb1,
+  0x82, 0x84, 0x2d, 0xc6, 0xad, 0xa5, 0x9c, 0xc7, 0x19, 0x82, 0xa6, 0x85,
+  0x0f, 0x5e, 0x44, 0x58, 0x2a, 0x37, 0x8f, 0xfd, 0x35, 0xf1, 0x0b, 0x08,
+  0x27, 0x32, 0x5a, 0xf5, 0xbb, 0x8b, 0x9e, 0xa4, 0xbd, 0x51, 0xd0, 0x27,
+  0xe2, 0xdd, 0x3b, 0x42, 0x33, 0xa3, 0x05, 0x28, 0xc4, 0xbb, 0x28, 0xcc,
+  0x9a, 0xac, 0x2b, 0x23, 0x0d, 0x78, 0xc6, 0x7b, 0xe6, 0x5e, 0x71, 0xb7,
+  0x4a, 0x3e, 0x08, 0xfb, 0x81, 0xb7, 0x16, 0x16, 0xa1, 0x9d, 0x23, 0x12,
+  0x4d, 0xe5, 0xd7, 0x92, 0x08, 0xac, 0x75, 0xa4, 0x9c, 0xba, 0xcd, 0x17,
+  0xb2, 0x1e, 0x44, 0x35, 0x65, 0x7f, 0x53, 0x25, 0x39, 0xd1, 0x1c, 0x0a,
+  0x9a, 0x63, 0x1b, 0x19, 0x92, 0x74, 0x68, 0x0a, 0x37, 0xc2, 0xc2, 0x52,
+  0x48, 0xcb, 0x39, 0x5a, 0xa2, 0xb6, 0xe1, 0x5d, 0xc1, 0xdd, 0xa0, 0x20,
+  0xb8, 0x21, 0xa2, 0x93, 0x26, 0x6f, 0x14, 0x4a, 0x21, 0x41, 0xc7, 0xed,
+  0x6d, 0x9b, 0xf2, 0x48, 0x2f, 0xf3, 0x03, 0xf5, 0xa2, 0x68, 0x92, 0x53,
+  0x2f, 0x5e, 0xe3, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x49,
+  0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+  0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+  0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+  0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+  0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0, 0x3e, 0xa0, 0x3c, 0x86, 0x3a,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x34, 0x2e,
+  0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x48, 0x69, 0x67,
+  0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x56,
+  0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3d,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x64, 0x69, 0x67,
+  0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x50,
+  0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x51, 0x68, 0xff, 0x90, 0xaf, 0x02, 0x07, 0x75, 0x3c, 0xcc, 0xd9, 0x65,
+  0x64, 0x62, 0xa2, 0x12, 0xb8, 0x59, 0x72, 0x3b, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb1, 0x3e, 0xc3,
+  0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4, 0x98, 0x26, 0x1a, 0x08, 0x02,
+  0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
+  0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+  0x00, 0x18, 0x8a, 0x95, 0x89, 0x03, 0xe6, 0x6d, 0xdf, 0x5c, 0xfc, 0x1d,
+  0x68, 0xea, 0x4a, 0x8f, 0x83, 0xd6, 0x51, 0x2f, 0x8d, 0x6b, 0x44, 0x16,
+  0x9e, 0xac, 0x63, 0xf5, 0xd2, 0x6e, 0x6c, 0x84, 0x99, 0x8b, 0xaa, 0x81,
+  0x71, 0x84, 0x5b, 0xed, 0x34, 0x4e, 0xb0, 0xb7, 0x79, 0x92, 0x29, 0xcc,
+  0x2d, 0x80, 0x6a, 0xf0, 0x8e, 0x20, 0xe1, 0x79, 0xa4, 0xfe, 0x03, 0x47,
+  0x13, 0xea, 0xf5, 0x86, 0xca, 0x59, 0x71, 0x7d, 0xf4, 0x04, 0x96, 0x6b,
+  0xd3, 0x59, 0x58, 0x3d, 0xfe, 0xd3, 0x31, 0x25, 0x5c, 0x18, 0x38, 0x84,
+  0xa3, 0xe6, 0x9f, 0x82, 0xfd, 0x8c, 0x5b, 0x98, 0x31, 0x4e, 0xcd, 0x78,
+  0x9e, 0x1a, 0xfd, 0x85, 0xcb, 0x49, 0xaa, 0xf2, 0x27, 0x8b, 0x99, 0x72,
+  0xfc, 0x3e, 0xaa, 0xd5, 0x41, 0x0b, 0xda, 0xd5, 0x36, 0xa1, 0xbf, 0x1c,
+  0x6e, 0x47, 0x49, 0x7f, 0x5e, 0xd9, 0x48, 0x7c, 0x03, 0xd9, 0xfd, 0x8b,
+  0x49, 0xa0, 0x98, 0x26, 0x42, 0x40, 0xeb, 0xd6, 0x92, 0x11, 0xa4, 0x64,
+  0x0a, 0x57, 0x54, 0xc4, 0xf5, 0x1d, 0xd6, 0x02, 0x5e, 0x6b, 0xac, 0xee,
+  0xc4, 0x80, 0x9a, 0x12, 0x72, 0xfa, 0x56, 0x93, 0xd7, 0xff, 0xbf, 0x30,
+  0x85, 0x06, 0x30, 0xbf, 0x0b, 0x7f, 0x4e, 0xff, 0x57, 0x05, 0x9d, 0x24,
+  0xed, 0x85, 0xc3, 0x2b, 0xfb, 0xa6, 0x75, 0xa8, 0xac, 0x2d, 0x16, 0xef,
+  0x7d, 0x79, 0x27, 0xb2, 0xeb, 0xc2, 0x9d, 0x0b, 0x07, 0xea, 0xaa, 0x85,
+  0xd3, 0x01, 0xa3, 0x20, 0x28, 0x41, 0x59, 0x43, 0x28, 0xd2, 0x81, 0xe3,
+  0xaa, 0xf6, 0xec, 0x7b, 0x3b, 0x77, 0xb6, 0x40, 0x62, 0x80, 0x05, 0x41,
+  0x45, 0x01, 0xef, 0x17, 0x06, 0x3e, 0xde, 0xc0, 0x33, 0x9b, 0x67, 0xd3,
+  0x61, 0x2e, 0x72, 0x87, 0xe4, 0x69, 0xfc, 0x12, 0x00, 0x57, 0x40, 0x1e,
+  0x70, 0xf5, 0x1e, 0xc9, 0xb4,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            16:87:d6:88:6d:e2:30:06:85:23:3d:bf:11:bf:65:97
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=thawte, Inc., CN=thawte SSL CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b2:fc:06:fb:04:93:d2:ea:59:20:3b:44:85:97:
+                    52:39:e7:10:f0:7a:e0:b0:94:40:da:46:f8:0c:28:
+                    bb:b9:ce:60:38:3f:d2:d8:11:42:1b:91:ad:49:ee:
+                    8f:c7:de:6c:de:37:6f:fd:8b:20:3c:6d:e7:74:d3:
+                    dc:d5:24:88:41:80:89:ee:36:be:c4:d5:be:8d:53:
+                    13:aa:e4:a5:b8:93:0a:be:ec:da:cd:3c:d4:32:56:
+                    ef:d0:4e:a0:b8:97:bb:39:50:1e:6e:65:c3:fd:b2:
+                    ce:e0:59:a9:48:09:c6:fe:be:ae:fc:3e:3b:81:20:
+                    97:8b:8f:46:df:60:64:07:75:bb:1b:86:38:9f:47:
+                    7b:34:ce:a1:d1:97:ad:76:d8:9f:b7:26:db:79:80:
+                    36:48:f2:c5:37:f8:d9:32:ae:7c:a4:53:81:c7:99:
+                    a1:54:38:2f:4f:75:a0:bb:5a:a5:bb:cd:ac:02:5b:
+                    19:02:d5:13:18:a7:ce:ac:74:55:12:05:8b:9b:a2:
+                    95:46:64:72:38:cd:5a:1b:3a:16:a7:be:71:99:8c:
+                    54:03:b8:96:6c:01:d3:3e:06:98:3f:21:81:3b:02:
+                    7e:00:47:53:01:1e:0e:46:43:fb:4b:2d:dc:0b:1a:
+                    e8:2f:98:f8:7e:d1:99:ab:13:6c:a4:17:de:6f:f6:
+                    15:f5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://t1.symcb.com/ThawtePCA.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://t2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-537
+            X509v3 Subject Key Identifier: 
+                C2:4F:48:57:FC:D1:4F:9A:C0:5D:38:7D:0E:05:DB:D9:2E:B5:52:60
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha256WithRSAEncryption
+         8d:06:de:43:c9:76:02:ca:d9:23:97:5e:f3:63:d7:7d:44:c2:
+         0f:6b:0a:f5:07:e5:8b:b8:fa:e0:a3:fa:6b:80:92:b5:03:2c:
+         c5:37:e0:c2:e5:95:b5:92:70:18:28:42:94:ee:4b:77:6a:01:
+         0f:8b:23:ec:56:4d:f4:00:69:e5:84:c8:e2:ea:de:5b:3e:f6:
+         3c:07:3a:94:ca:6c:27:b1:cc:83:1a:60:71:27:d2:bf:02:f5:
+         1e:44:d3:48:d5:a6:d3:76:21:00:9c:fa:98:64:eb:17:36:3f:
+         eb:1b:3c:3e:a6:b1:d9:58:06:0e:72:d9:68:be:f1:a7:20:d7:
+         52:e4:a4:77:1f:71:70:9d:55:35:85:37:e1:1d:4d:94:c2:70:
+         7f:95:40:6e:4b:7d:b2:b4:29:2a:03:79:c8:b9:4c:67:61:04:
+         a0:8b:27:ff:59:00:eb:55:7f:c6:b7:33:35:2d:5e:4e:ac:b8:
+         ea:12:c5:e8:f7:b9:ab:be:74:92:2c:b7:d9:4d:ca:84:2f:1c:
+         c2:f0:72:7c:b2:31:6e:cf:80:e5:88:07:36:51:7b:ba:61:af:
+         6d:8d:23:5b:34:a3:95:bc:a2:31:7f:f2:f5:e7:b7:e8:ef:c4:
+         b5:27:32:e9:f7:9e:69:c7:2b:e8:be:bb:0c:aa:e7:ea:60:12:
+         ea:26:8a:78
+-----BEGIN CERTIFICATE-----
+MIIEsjCCA5qgAwIBAgIQFofWiG3iMAaFIz2/Eb9llzANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTMxMDMxMDAwMDAwWhcNMjMx
+MDMwMjM1OTU5WjBBMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MRswGQYDVQQDExJ0aGF3dGUgU1NMIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCy/Ab7BJPS6lkgO0SFl1I55xDweuCwlEDaRvgMKLu5zmA4
+P9LYEUIbka1J7o/H3mzeN2/9iyA8bed009zVJIhBgInuNr7E1b6NUxOq5KW4kwq+
+7NrNPNQyVu/QTqC4l7s5UB5uZcP9ss7gWalICcb+vq78PjuBIJeLj0bfYGQHdbsb
+hjifR3s0zqHRl6122J+3Jtt5gDZI8sU3+NkyrnykU4HHmaFUOC9PdaC7WqW7zawC
+WxkC1RMYp86sdFUSBYubopVGZHI4zVobOhanvnGZjFQDuJZsAdM+Bpg/IYE7An4A
+R1MBHg5GQ/tLLdwLGugvmPh+0ZmrE2ykF95v9hX1AgMBAAGjggE7MIIBNzASBgNV
+HRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAyBgNVHR8EKzApMCegJaAj
+hiFodHRwOi8vdDEuc3ltY2IuY29tL1RoYXd0ZVBDQS5jcmwwLwYIKwYBBQUHAQEE
+IzAhMB8GCCsGAQUFBzABhhNodHRwOi8vdDIuc3ltY2IuY29tMEEGA1UdIAQ6MDgw
+NgYKYIZIAYb4RQEHNjAoMCYGCCsGAQUFBwIBFhpodHRwczovL3d3dy50aGF3dGUu
+Y29tL2NwczApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0ktMS01
+MzcwHQYDVR0OBBYEFMJPSFf80U+awF04fQ4F29kutVJgMB8GA1UdIwQYMBaAFHtb
+Rc+vzst6/TGSGmq280brV0hQMA0GCSqGSIb3DQEBCwUAA4IBAQCNBt5DyXYCytkj
+l17zY9d9RMIPawr1B+WLuPrgo/prgJK1AyzFN+DC5ZW1knAYKEKU7kt3agEPiyPs
+Vk30AGnlhMji6t5bPvY8BzqUymwnscyDGmBxJ9K/AvUeRNNI1abTdiEAnPqYZOsX
+Nj/rGzw+prHZWAYOctlovvGnINdS5KR3H3FwnVU1hTfhHU2UwnB/lUBuS32ytCkq
+A3nIuUxnYQSgiyf/WQDrVX/GtzM1LV5OrLjqEsXo97mrvnSSLLfZTcqELxzC8HJ8
+sjFuz4DliAc2UXu6Ya9tjSNbNKOVvKIxf/L157fo78S1JzLp955pxyvovrsMqufq
+YBLqJop4
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert30[] = {
+  0x30, 0x82, 0x04, 0xb2, 0x30, 0x82, 0x03, 0x9a, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x16, 0x87, 0xd6, 0x88, 0x6d, 0xe2, 0x30, 0x06, 0x85,
+  0x23, 0x3d, 0xbf, 0x11, 0xbf, 0x65, 0x97, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31,
+  0x30, 0x33, 0x30, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x41,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12, 0x74,
+  0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+  0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xb2, 0xfc, 0x06, 0xfb, 0x04, 0x93, 0xd2, 0xea, 0x59, 0x20,
+  0x3b, 0x44, 0x85, 0x97, 0x52, 0x39, 0xe7, 0x10, 0xf0, 0x7a, 0xe0, 0xb0,
+  0x94, 0x40, 0xda, 0x46, 0xf8, 0x0c, 0x28, 0xbb, 0xb9, 0xce, 0x60, 0x38,
+  0x3f, 0xd2, 0xd8, 0x11, 0x42, 0x1b, 0x91, 0xad, 0x49, 0xee, 0x8f, 0xc7,
+  0xde, 0x6c, 0xde, 0x37, 0x6f, 0xfd, 0x8b, 0x20, 0x3c, 0x6d, 0xe7, 0x74,
+  0xd3, 0xdc, 0xd5, 0x24, 0x88, 0x41, 0x80, 0x89, 0xee, 0x36, 0xbe, 0xc4,
+  0xd5, 0xbe, 0x8d, 0x53, 0x13, 0xaa, 0xe4, 0xa5, 0xb8, 0x93, 0x0a, 0xbe,
+  0xec, 0xda, 0xcd, 0x3c, 0xd4, 0x32, 0x56, 0xef, 0xd0, 0x4e, 0xa0, 0xb8,
+  0x97, 0xbb, 0x39, 0x50, 0x1e, 0x6e, 0x65, 0xc3, 0xfd, 0xb2, 0xce, 0xe0,
+  0x59, 0xa9, 0x48, 0x09, 0xc6, 0xfe, 0xbe, 0xae, 0xfc, 0x3e, 0x3b, 0x81,
+  0x20, 0x97, 0x8b, 0x8f, 0x46, 0xdf, 0x60, 0x64, 0x07, 0x75, 0xbb, 0x1b,
+  0x86, 0x38, 0x9f, 0x47, 0x7b, 0x34, 0xce, 0xa1, 0xd1, 0x97, 0xad, 0x76,
+  0xd8, 0x9f, 0xb7, 0x26, 0xdb, 0x79, 0x80, 0x36, 0x48, 0xf2, 0xc5, 0x37,
+  0xf8, 0xd9, 0x32, 0xae, 0x7c, 0xa4, 0x53, 0x81, 0xc7, 0x99, 0xa1, 0x54,
+  0x38, 0x2f, 0x4f, 0x75, 0xa0, 0xbb, 0x5a, 0xa5, 0xbb, 0xcd, 0xac, 0x02,
+  0x5b, 0x19, 0x02, 0xd5, 0x13, 0x18, 0xa7, 0xce, 0xac, 0x74, 0x55, 0x12,
+  0x05, 0x8b, 0x9b, 0xa2, 0x95, 0x46, 0x64, 0x72, 0x38, 0xcd, 0x5a, 0x1b,
+  0x3a, 0x16, 0xa7, 0xbe, 0x71, 0x99, 0x8c, 0x54, 0x03, 0xb8, 0x96, 0x6c,
+  0x01, 0xd3, 0x3e, 0x06, 0x98, 0x3f, 0x21, 0x81, 0x3b, 0x02, 0x7e, 0x00,
+  0x47, 0x53, 0x01, 0x1e, 0x0e, 0x46, 0x43, 0xfb, 0x4b, 0x2d, 0xdc, 0x0b,
+  0x1a, 0xe8, 0x2f, 0x98, 0xf8, 0x7e, 0xd1, 0x99, 0xab, 0x13, 0x6c, 0xa4,
+  0x17, 0xde, 0x6f, 0xf6, 0x15, 0xf5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+  0x82, 0x01, 0x3b, 0x30, 0x82, 0x01, 0x37, 0x30, 0x12, 0x06, 0x03, 0x55,
+  0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+  0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x32, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23,
+  0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x74, 0x31, 0x2e,
+  0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x68,
+  0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x2f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x23, 0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x74, 0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38, 0x30,
+  0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+  0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x29, 0x06, 0x03, 0x55,
+  0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a,
+  0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d,
+  0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x35,
+  0x33, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0xc2, 0x4f, 0x48, 0x57, 0xfc, 0xd1, 0x4f, 0x9a, 0xc0, 0x5d, 0x38,
+  0x7d, 0x0e, 0x05, 0xdb, 0xd9, 0x2e, 0xb5, 0x52, 0x60, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b,
+  0x45, 0xcf, 0xaf, 0xce, 0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6,
+  0xf3, 0x46, 0xeb, 0x57, 0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x01, 0x00, 0x8d, 0x06, 0xde, 0x43, 0xc9, 0x76, 0x02, 0xca, 0xd9, 0x23,
+  0x97, 0x5e, 0xf3, 0x63, 0xd7, 0x7d, 0x44, 0xc2, 0x0f, 0x6b, 0x0a, 0xf5,
+  0x07, 0xe5, 0x8b, 0xb8, 0xfa, 0xe0, 0xa3, 0xfa, 0x6b, 0x80, 0x92, 0xb5,
+  0x03, 0x2c, 0xc5, 0x37, 0xe0, 0xc2, 0xe5, 0x95, 0xb5, 0x92, 0x70, 0x18,
+  0x28, 0x42, 0x94, 0xee, 0x4b, 0x77, 0x6a, 0x01, 0x0f, 0x8b, 0x23, 0xec,
+  0x56, 0x4d, 0xf4, 0x00, 0x69, 0xe5, 0x84, 0xc8, 0xe2, 0xea, 0xde, 0x5b,
+  0x3e, 0xf6, 0x3c, 0x07, 0x3a, 0x94, 0xca, 0x6c, 0x27, 0xb1, 0xcc, 0x83,
+  0x1a, 0x60, 0x71, 0x27, 0xd2, 0xbf, 0x02, 0xf5, 0x1e, 0x44, 0xd3, 0x48,
+  0xd5, 0xa6, 0xd3, 0x76, 0x21, 0x00, 0x9c, 0xfa, 0x98, 0x64, 0xeb, 0x17,
+  0x36, 0x3f, 0xeb, 0x1b, 0x3c, 0x3e, 0xa6, 0xb1, 0xd9, 0x58, 0x06, 0x0e,
+  0x72, 0xd9, 0x68, 0xbe, 0xf1, 0xa7, 0x20, 0xd7, 0x52, 0xe4, 0xa4, 0x77,
+  0x1f, 0x71, 0x70, 0x9d, 0x55, 0x35, 0x85, 0x37, 0xe1, 0x1d, 0x4d, 0x94,
+  0xc2, 0x70, 0x7f, 0x95, 0x40, 0x6e, 0x4b, 0x7d, 0xb2, 0xb4, 0x29, 0x2a,
+  0x03, 0x79, 0xc8, 0xb9, 0x4c, 0x67, 0x61, 0x04, 0xa0, 0x8b, 0x27, 0xff,
+  0x59, 0x00, 0xeb, 0x55, 0x7f, 0xc6, 0xb7, 0x33, 0x35, 0x2d, 0x5e, 0x4e,
+  0xac, 0xb8, 0xea, 0x12, 0xc5, 0xe8, 0xf7, 0xb9, 0xab, 0xbe, 0x74, 0x92,
+  0x2c, 0xb7, 0xd9, 0x4d, 0xca, 0x84, 0x2f, 0x1c, 0xc2, 0xf0, 0x72, 0x7c,
+  0xb2, 0x31, 0x6e, 0xcf, 0x80, 0xe5, 0x88, 0x07, 0x36, 0x51, 0x7b, 0xba,
+  0x61, 0xaf, 0x6d, 0x8d, 0x23, 0x5b, 0x34, 0xa3, 0x95, 0xbc, 0xa2, 0x31,
+  0x7f, 0xf2, 0xf5, 0xe7, 0xb7, 0xe8, 0xef, 0xc4, 0xb5, 0x27, 0x32, 0xe9,
+  0xf7, 0x9e, 0x69, 0xc7, 0x2b, 0xe8, 0xbe, 0xbb, 0x0c, 0xaa, 0xe7, 0xea,
+  0x60, 0x12, 0xea, 0x26, 0x8a, 0x78,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            93:92:85:40:01:65:71:5f:94:7f:28:8f:ef:c9:9b:28
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=PL, O=Unizeto Sp. z o.o., CN=Certum CA
+        Validity
+            Not Before: Oct 22 12:07:37 2008 GMT
+            Not After : Jun 10 10:46:39 2027 GMT
+        Subject: C=PL, O=Unizeto Technologies S.A., OU=Certum Certification Authority, CN=Certum Trusted Network CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e3:fb:7d:a3:72:ba:c2:f0:c9:14:87:f5:6b:01:
+                    4e:e1:6e:40:07:ba:6d:27:5d:7f:f7:5b:2d:b3:5a:
+                    c7:51:5f:ab:a4:32:a6:61:87:b6:6e:0f:86:d2:30:
+                    02:97:f8:d7:69:57:a1:18:39:5d:6a:64:79:c6:01:
+                    59:ac:3c:31:4a:38:7c:d2:04:d2:4b:28:e8:20:5f:
+                    3b:07:a2:cc:4d:73:db:f3:ae:4f:c7:56:d5:5a:a7:
+                    96:89:fa:f3:ab:68:d4:23:86:59:27:cf:09:27:bc:
+                    ac:6e:72:83:1c:30:72:df:e0:a2:e9:d2:e1:74:75:
+                    19:bd:2a:9e:7b:15:54:04:1b:d7:43:39:ad:55:28:
+                    c5:e2:1a:bb:f4:c0:e4:ae:38:49:33:cc:76:85:9f:
+                    39:45:d2:a4:9e:f2:12:8c:51:f8:7c:e4:2d:7f:f5:
+                    ac:5f:eb:16:9f:b1:2d:d1:ba:cc:91:42:77:4c:25:
+                    c9:90:38:6f:db:f0:cc:fb:8e:1e:97:59:3e:d5:60:
+                    4e:e6:05:28:ed:49:79:13:4b:ba:48:db:2f:f9:72:
+                    d3:39:ca:fe:1f:d8:34:72:f5:b4:40:cf:31:01:c3:
+                    ec:de:11:2d:17:5d:1f:b8:50:d1:5e:19:a7:69:de:
+                    07:33:28:ca:50:95:f9:a7:54:cb:54:86:50:45:a9:
+                    f9:49
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Subject Key Identifier: 
+                08:76:CD:CB:07:FF:24:F6:C5:CD:ED:BB:90:BC:E2:84:37:46:75:F7
+            X509v3 Authority Key Identifier: 
+                DirName:/C=PL/O=Unizeto Sp. z o.o./CN=Certum CA
+                serial:01:00:20
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.certum.pl/ca.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://subca.ocsp-certum.com
+                CA Issuers - URI:http://repository.certum.pl/ca.cer
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.certum.pl/CPS
+
+    Signature Algorithm: sha256WithRSAEncryption
+         8d:e6:fd:40:66:a3:4c:9c:a7:ab:a1:da:84:dd:1c:30:07:e6:
+         db:c7:2d:ec:83:a1:56:e4:1d:3c:26:a1:a5:09:2b:e8:7d:62:
+         be:b2:75:94:dd:08:f2:7f:28:41:e4:80:67:02:4e:8a:8f:c3:
+         35:d0:d5:a9:27:28:ea:d2:f4:ab:06:86:43:ae:8c:e3:f9:88:
+         7d:e0:db:bd:42:81:80:02:12:75:b2:e8:17:71:ab:21:95:31:
+         46:42:0d:88:10:39:d3:6f:ec:2f:42:ea:40:53:62:bf:eb:ca:
+         78:9e:ab:a2:d5:2e:05:ea:33:ab:e9:d6:97:94:42:5e:04:ed:
+         2c:ed:6a:9c:7a:95:7d:05:2a:05:7f:08:5d:66:ad:61:d4:76:
+         ac:75:96:97:73:63:bd:1a:41:59:29:a5:5e:22:83:c3:8b:59:
+         fa:9a:a2:f6:bd:30:bf:72:1d:1c:99:86:9c:f2:85:3c:1d:f7:
+         26:96:2f:2e:f9:02:b1:b5:a9:50:e8:38:fa:9b:0a:5e:b4:04:
+         c0:ce:4e:39:2c:ca:0b:5b:62:f0:4d:58:50:34:99:e6:9a:2c:
+         d2:90:d7:09:81:d6:c0:aa:5e:ce:fe:d2:f7:a1:ba:4b:d9:d6:
+         86:8e:19:1f:a6:06:47:42:72:e0:56:0a:00:1c:78:b9:8d:cc:
+         99:04:37:49
+-----BEGIN CERTIFICATE-----
+MIIEtDCCA5ygAwIBAgIRAJOShUABZXFflH8oj+/JmygwDQYJKoZIhvcNAQELBQAw
+PjELMAkGA1UEBhMCUEwxGzAZBgNVBAoTElVuaXpldG8gU3AuIHogby5vLjESMBAG
+A1UEAxMJQ2VydHVtIENBMB4XDTA4MTAyMjEyMDczN1oXDTI3MDYxMDEwNDYzOVow
+fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
+QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
+A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAOP7faNyusLwyRSH9WsBTuFuQAe6bSddf/dbLbNax1Ff
+q6QypmGHtm4PhtIwApf412lXoRg5XWpkecYBWaw8MUo4fNIE0kso6CBfOweizE1z
+2/OuT8dW1Vqnlon686to1COGWSfPCSe8rG5ygxwwct/gounS4XR1Gb0qnnsVVAQb
+10M5rVUoxeIau/TA5K44STPMdoWfOUXSpJ7yEoxR+HzkLX/1rF/rFp+xLdG6zJFC
+d0wlyZA4b9vwzPuOHpdZPtVgTuYFKO1JeRNLukjbL/ly0znK/h/YNHL1tEDPMQHD
+7N4RLRddH7hQ0V4Zp2neBzMoylCV+adUy1SGUEWp+UkCAwEAAaOCAWswggFnMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAh2zcsH/yT2xc3tu5C84oQ3RnX3MFIG
+A1UdIwRLMEmhQqRAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNw
+LiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQYIDAQAgMA4GA1UdDwEB/wQEAwIB
+BjAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vY3JsLmNlcnR1bS5wbC9jYS5jcmww
+aAYIKwYBBQUHAQEEXDBaMCgGCCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1j
+ZXJ0dW0uY29tMC4GCCsGAQUFBzAChiJodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0u
+cGwvY2EuY2VyMDkGA1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRw
+Oi8vd3d3LmNlcnR1bS5wbC9DUFMwDQYJKoZIhvcNAQELBQADggEBAI3m/UBmo0yc
+p6uh2oTdHDAH5tvHLeyDoVbkHTwmoaUJK+h9Yr6ydZTdCPJ/KEHkgGcCToqPwzXQ
+1aknKOrS9KsGhkOujOP5iH3g271CgYACEnWy6BdxqyGVMUZCDYgQOdNv7C9C6kBT
+Yr/rynieq6LVLgXqM6vp1peUQl4E7Sztapx6lX0FKgV/CF1mrWHUdqx1lpdzY70a
+QVkppV4ig8OLWfqaova9ML9yHRyZhpzyhTwd9yaWLy75ArG1qVDoOPqbCl60BMDO
+TjksygtbYvBNWFA0meaaLNKQ1wmB1sCqXs7+0vehukvZ1oaOGR+mBkdCcuBWCgAc
+eLmNzJkEN0k=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert31[] = {
+  0x30, 0x82, 0x04, 0xb4, 0x30, 0x82, 0x03, 0x9c, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x11, 0x00, 0x93, 0x92, 0x85, 0x40, 0x01, 0x65, 0x71, 0x5f,
+  0x94, 0x7f, 0x28, 0x8f, 0xef, 0xc9, 0x9b, 0x28, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30,
+  0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x50, 0x4c, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x12, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x53, 0x70, 0x2e,
+  0x20, 0x7a, 0x20, 0x6f, 0x2e, 0x6f, 0x2e, 0x31, 0x12, 0x30, 0x10, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x09, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d,
+  0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x38, 0x31, 0x30, 0x32,
+  0x32, 0x31, 0x32, 0x30, 0x37, 0x33, 0x37, 0x5a, 0x17, 0x0d, 0x32, 0x37,
+  0x30, 0x36, 0x31, 0x30, 0x31, 0x30, 0x34, 0x36, 0x33, 0x39, 0x5a, 0x30,
+  0x7e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x50, 0x4c, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x19, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x54, 0x65, 0x63,
+  0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x20, 0x53, 0x2e,
+  0x41, 0x2e, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x1e, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x22, 0x30, 0x20, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x19, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d,
+  0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x4e, 0x65, 0x74,
+  0x77, 0x6f, 0x72, 0x6b, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xe3, 0xfb, 0x7d, 0xa3, 0x72, 0xba, 0xc2, 0xf0,
+  0xc9, 0x14, 0x87, 0xf5, 0x6b, 0x01, 0x4e, 0xe1, 0x6e, 0x40, 0x07, 0xba,
+  0x6d, 0x27, 0x5d, 0x7f, 0xf7, 0x5b, 0x2d, 0xb3, 0x5a, 0xc7, 0x51, 0x5f,
+  0xab, 0xa4, 0x32, 0xa6, 0x61, 0x87, 0xb6, 0x6e, 0x0f, 0x86, 0xd2, 0x30,
+  0x02, 0x97, 0xf8, 0xd7, 0x69, 0x57, 0xa1, 0x18, 0x39, 0x5d, 0x6a, 0x64,
+  0x79, 0xc6, 0x01, 0x59, 0xac, 0x3c, 0x31, 0x4a, 0x38, 0x7c, 0xd2, 0x04,
+  0xd2, 0x4b, 0x28, 0xe8, 0x20, 0x5f, 0x3b, 0x07, 0xa2, 0xcc, 0x4d, 0x73,
+  0xdb, 0xf3, 0xae, 0x4f, 0xc7, 0x56, 0xd5, 0x5a, 0xa7, 0x96, 0x89, 0xfa,
+  0xf3, 0xab, 0x68, 0xd4, 0x23, 0x86, 0x59, 0x27, 0xcf, 0x09, 0x27, 0xbc,
+  0xac, 0x6e, 0x72, 0x83, 0x1c, 0x30, 0x72, 0xdf, 0xe0, 0xa2, 0xe9, 0xd2,
+  0xe1, 0x74, 0x75, 0x19, 0xbd, 0x2a, 0x9e, 0x7b, 0x15, 0x54, 0x04, 0x1b,
+  0xd7, 0x43, 0x39, 0xad, 0x55, 0x28, 0xc5, 0xe2, 0x1a, 0xbb, 0xf4, 0xc0,
+  0xe4, 0xae, 0x38, 0x49, 0x33, 0xcc, 0x76, 0x85, 0x9f, 0x39, 0x45, 0xd2,
+  0xa4, 0x9e, 0xf2, 0x12, 0x8c, 0x51, 0xf8, 0x7c, 0xe4, 0x2d, 0x7f, 0xf5,
+  0xac, 0x5f, 0xeb, 0x16, 0x9f, 0xb1, 0x2d, 0xd1, 0xba, 0xcc, 0x91, 0x42,
+  0x77, 0x4c, 0x25, 0xc9, 0x90, 0x38, 0x6f, 0xdb, 0xf0, 0xcc, 0xfb, 0x8e,
+  0x1e, 0x97, 0x59, 0x3e, 0xd5, 0x60, 0x4e, 0xe6, 0x05, 0x28, 0xed, 0x49,
+  0x79, 0x13, 0x4b, 0xba, 0x48, 0xdb, 0x2f, 0xf9, 0x72, 0xd3, 0x39, 0xca,
+  0xfe, 0x1f, 0xd8, 0x34, 0x72, 0xf5, 0xb4, 0x40, 0xcf, 0x31, 0x01, 0xc3,
+  0xec, 0xde, 0x11, 0x2d, 0x17, 0x5d, 0x1f, 0xb8, 0x50, 0xd1, 0x5e, 0x19,
+  0xa7, 0x69, 0xde, 0x07, 0x33, 0x28, 0xca, 0x50, 0x95, 0xf9, 0xa7, 0x54,
+  0xcb, 0x54, 0x86, 0x50, 0x45, 0xa9, 0xf9, 0x49, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x82, 0x01, 0x6b, 0x30, 0x82, 0x01, 0x67, 0x30, 0x0f, 0x06,
+  0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01,
+  0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0x08, 0x76, 0xcd, 0xcb, 0x07, 0xff, 0x24, 0xf6, 0xc5, 0xcd, 0xed,
+  0xbb, 0x90, 0xbc, 0xe2, 0x84, 0x37, 0x46, 0x75, 0xf7, 0x30, 0x52, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x4b, 0x30, 0x49, 0xa1, 0x42, 0xa4, 0x40,
+  0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+  0x02, 0x50, 0x4c, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x0a,
+  0x13, 0x12, 0x55, 0x6e, 0x69, 0x7a, 0x65, 0x74, 0x6f, 0x20, 0x53, 0x70,
+  0x2e, 0x20, 0x7a, 0x20, 0x6f, 0x2e, 0x6f, 0x2e, 0x31, 0x12, 0x30, 0x10,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x09, 0x43, 0x65, 0x72, 0x74, 0x75,
+  0x6d, 0x20, 0x43, 0x41, 0x82, 0x03, 0x01, 0x00, 0x20, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x06, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x25, 0x30, 0x23,
+  0x30, 0x21, 0xa0, 0x1f, 0xa0, 0x1d, 0x86, 0x1b, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75,
+  0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x68, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x5c, 0x30, 0x5a, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x73, 0x75, 0x62, 0x63, 0x61, 0x2e, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x63,
+  0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x2e, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x22, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
+  0x74, 0x6f, 0x72, 0x79, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x2e,
+  0x70, 0x6c, 0x2f, 0x63, 0x61, 0x2e, 0x63, 0x65, 0x72, 0x30, 0x39, 0x06,
+  0x03, 0x55, 0x1d, 0x20, 0x04, 0x32, 0x30, 0x30, 0x30, 0x2e, 0x06, 0x04,
+  0x55, 0x1d, 0x20, 0x00, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x18, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x75,
+  0x6d, 0x2e, 0x70, 0x6c, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x8d, 0xe6, 0xfd, 0x40, 0x66, 0xa3, 0x4c, 0x9c,
+  0xa7, 0xab, 0xa1, 0xda, 0x84, 0xdd, 0x1c, 0x30, 0x07, 0xe6, 0xdb, 0xc7,
+  0x2d, 0xec, 0x83, 0xa1, 0x56, 0xe4, 0x1d, 0x3c, 0x26, 0xa1, 0xa5, 0x09,
+  0x2b, 0xe8, 0x7d, 0x62, 0xbe, 0xb2, 0x75, 0x94, 0xdd, 0x08, 0xf2, 0x7f,
+  0x28, 0x41, 0xe4, 0x80, 0x67, 0x02, 0x4e, 0x8a, 0x8f, 0xc3, 0x35, 0xd0,
+  0xd5, 0xa9, 0x27, 0x28, 0xea, 0xd2, 0xf4, 0xab, 0x06, 0x86, 0x43, 0xae,
+  0x8c, 0xe3, 0xf9, 0x88, 0x7d, 0xe0, 0xdb, 0xbd, 0x42, 0x81, 0x80, 0x02,
+  0x12, 0x75, 0xb2, 0xe8, 0x17, 0x71, 0xab, 0x21, 0x95, 0x31, 0x46, 0x42,
+  0x0d, 0x88, 0x10, 0x39, 0xd3, 0x6f, 0xec, 0x2f, 0x42, 0xea, 0x40, 0x53,
+  0x62, 0xbf, 0xeb, 0xca, 0x78, 0x9e, 0xab, 0xa2, 0xd5, 0x2e, 0x05, 0xea,
+  0x33, 0xab, 0xe9, 0xd6, 0x97, 0x94, 0x42, 0x5e, 0x04, 0xed, 0x2c, 0xed,
+  0x6a, 0x9c, 0x7a, 0x95, 0x7d, 0x05, 0x2a, 0x05, 0x7f, 0x08, 0x5d, 0x66,
+  0xad, 0x61, 0xd4, 0x76, 0xac, 0x75, 0x96, 0x97, 0x73, 0x63, 0xbd, 0x1a,
+  0x41, 0x59, 0x29, 0xa5, 0x5e, 0x22, 0x83, 0xc3, 0x8b, 0x59, 0xfa, 0x9a,
+  0xa2, 0xf6, 0xbd, 0x30, 0xbf, 0x72, 0x1d, 0x1c, 0x99, 0x86, 0x9c, 0xf2,
+  0x85, 0x3c, 0x1d, 0xf7, 0x26, 0x96, 0x2f, 0x2e, 0xf9, 0x02, 0xb1, 0xb5,
+  0xa9, 0x50, 0xe8, 0x38, 0xfa, 0x9b, 0x0a, 0x5e, 0xb4, 0x04, 0xc0, 0xce,
+  0x4e, 0x39, 0x2c, 0xca, 0x0b, 0x5b, 0x62, 0xf0, 0x4d, 0x58, 0x50, 0x34,
+  0x99, 0xe6, 0x9a, 0x2c, 0xd2, 0x90, 0xd7, 0x09, 0x81, 0xd6, 0xc0, 0xaa,
+  0x5e, 0xce, 0xfe, 0xd2, 0xf7, 0xa1, 0xba, 0x4b, 0xd9, 0xd6, 0x86, 0x8e,
+  0x19, 0x1f, 0xa6, 0x06, 0x47, 0x42, 0x72, 0xe0, 0x56, 0x0a, 0x00, 0x1c,
+  0x78, 0xb9, 0x8d, 0xcc, 0x99, 0x04, 0x37, 0x49,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            48:e9:94:40:d4:36:49:1c:b8:b8:82:3d:09:43:94:c7
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+        Validity
+            Not Before: Jun 10 00:00:00 2014 GMT
+            Not After : Jun  9 23:59:59 2024 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=RapidSSL SHA256 CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c4:95:63:28:d0:4e:30:45:af:8b:97:34:14:45:
+                    f8:5c:58:4a:fa:33:8e:6e:9c:60:ab:f3:86:ff:34:
+                    74:b2:2b:be:a1:8c:d5:a2:a3:60:7a:40:b9:e1:fc:
+                    22:ca:67:ba:60:aa:c7:9a:f9:06:7f:ee:f7:ba:85:
+                    05:b0:03:ff:72:ae:15:41:4a:98:64:d7:17:4b:54:
+                    ef:05:c6:98:07:93:27:3e:4f:dc:0f:c6:7b:8b:e7:
+                    f3:06:5e:8d:e8:b4:ae:29:b4:1e:1e:2d:16:90:d3:
+                    ea:aa:e7:8c:3b:6d:af:36:59:ff:c5:0a:fa:c7:4c:
+                    bd:36:8b:64:c4:4a:f5:ce:33:f9:07:be:7f:45:90:
+                    a8:08:14:b0:d0:a5:4f:df:82:80:da:1b:ee:c3:13:
+                    b0:98:f5:0f:f9:7e:76:b5:e6:b9:5d:68:b9:5c:50:
+                    90:89:a4:36:b1:70:16:ea:b1:10:b5:6a:76:df:e1:
+                    bb:fc:78:f2:72:99:cf:c9:a2:d4:73:54:77:bf:c0:
+                    39:77:e5:ae:12:c5:78:5a:19:45:d4:41:19:d3:7c:
+                    f5:6f:99:6b:d7:8b:bc:2d:09:9d:4b:10:61:c0:da:
+                    52:c3:af:22:43:c6:eb:37:7e:63:74:30:0d:6a:71:
+                    8e:de:5d:5b:8a:c8:c5:d7:9b:29:e8:ae:b6:25:61:
+                    81:eb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://g.symcd.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://g.symcb.com/GeoTrustPCA-G3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-697
+            X509v3 Subject Key Identifier: 
+                4C:F4:BF:E8:3B:BE:C2:24:F3:1B:47:3B:B5:6E:48:8E:16:AB:AF:12
+            X509v3 Authority Key Identifier: 
+                keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+    Signature Algorithm: sha256WithRSAEncryption
+         7a:53:b5:de:b6:ef:52:a3:5f:8a:f5:89:f1:42:cc:5e:46:88:
+         ae:a5:08:87:51:de:0f:0f:02:eb:0c:82:78:e3:73:7d:71:bd:
+         43:e9:ca:8a:3f:e0:25:92:9b:33:33:74:49:5e:00:d9:73:14:
+         1c:0b:46:76:1c:8a:0d:4d:8c:6c:7e:4b:f7:60:d8:81:78:a0:
+         78:d0:25:62:ab:10:ca:22:e8:1c:19:dd:52:83:64:05:e5:87:
+         66:ae:e7:7a:a4:3b:3e:d8:70:7a:76:a2:67:39:d4:c9:fa:e5:
+         b7:1e:41:e2:09:39:88:1c:18:55:0a:c4:41:af:b2:f3:f3:0f:
+         42:14:61:74:81:e3:da:87:5a:9a:4d:8b:d3:c9:8f:89:66:13:
+         29:11:e4:ff:e2:df:8e:96:0c:5a:a1:aa:6b:9b:fd:fc:03:3b:
+         55:0d:a6:a2:25:48:17:1f:42:a8:da:6c:7e:69:6e:a0:df:67:
+         d2:6d:f4:0e:6a:12:79:f5:7c:c8:a5:32:1c:c4:31:b2:e6:bb:
+         a8:6b:6a:a2:8a:60:69:c0:57:7d:b2:f2:31:0c:98:65:32:ec:
+         08:5a:ce:c6:98:e9:21:97:3f:2c:79:29:03:f5:f6:94:2b:53:
+         31:f3:93:68:57:e1:d7:4f:3a:d1:61:a1:60:ce:b9:ab:98:ae:
+         35:54:63:8b
+-----BEGIN CERTIFICATE-----
+MIIEtTCCA52gAwIBAgIQSOmUQNQ2SRy4uII9CUOUxzANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTE0MDYxMDAwMDAwMFoXDTI0MDYwOTIzNTk1OVowRzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xIDAeBgNVBAMTF1JhcGlk
+U1NMIFNIQTI1NiBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAxJVjKNBOMEWvi5c0FEX4XFhK+jOObpxgq/OG/zR0siu+oYzVoqNgekC54fwi
+yme6YKrHmvkGf+73uoUFsAP/cq4VQUqYZNcXS1TvBcaYB5MnPk/cD8Z7i+fzBl6N
+6LSuKbQeHi0WkNPqqueMO22vNln/xQr6x0y9NotkxEr1zjP5B75/RZCoCBSw0KVP
+34KA2hvuwxOwmPUP+X52tea5XWi5XFCQiaQ2sXAW6rEQtWp23+G7/HjycpnPyaLU
+c1R3v8A5d+WuEsV4WhlF1EEZ03z1b5lr14u8LQmdSxBhwNpSw68iQ8brN35jdDAN
+anGO3l1bisjF15sp6K62JWGB6wIDAQABo4IBSTCCAUUwLgYIKwYBBQUHAQEEIjAg
+MB4GCCsGAQUFBzABhhJodHRwOi8vZy5zeW1jZC5jb20wEgYDVR0TAQH/BAgwBgEB
+/wIBADBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYwMzAxBggrBgEFBQcCARYlaHR0
+cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA2BgNVHR8ELzAtMCug
+KaAnhiVodHRwOi8vZy5zeW1jYi5jb20vR2VvVHJ1c3RQQ0EtRzMuY3JsMA4GA1Ud
+DwEB/wQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQS0kt
+MS02OTcwHQYDVR0OBBYEFEz0v+g7vsIk8xtHO7VuSI4Wq68SMB8GA1UdIwQYMBaA
+FMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQB6U7Xetu9S
+o1+K9YnxQsxeRoiupQiHUd4PDwLrDIJ443N9cb1D6cqKP+AlkpszM3RJXgDZcxQc
+C0Z2HIoNTYxsfkv3YNiBeKB40CViqxDKIugcGd1Sg2QF5Ydmrud6pDs+2HB6dqJn
+OdTJ+uW3HkHiCTmIHBhVCsRBr7Lz8w9CFGF0gePah1qaTYvTyY+JZhMpEeT/4t+O
+lgxaoaprm/38AztVDaaiJUgXH0Ko2mx+aW6g32fSbfQOahJ59XzIpTIcxDGy5ruo
+a2qiimBpwFd9svIxDJhlMuwIWs7GmOkhlz8seSkD9faUK1Mx85NoV+HXTzrRYaFg
+zrmrmK41VGOL
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert32[] = {
+  0x30, 0x82, 0x04, 0xb5, 0x30, 0x82, 0x03, 0x9d, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x48, 0xe9, 0x94, 0x40, 0xd4, 0x36, 0x49, 0x1c, 0xb8,
+  0xb8, 0x82, 0x3d, 0x09, 0x43, 0x94, 0xc7, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+  0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+  0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+  0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+  0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x34, 0x30, 0x36, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x36, 0x30, 0x39, 0x32, 0x33,
+  0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x47, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x20, 0x30, 0x1e,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x17, 0x52, 0x61, 0x70, 0x69, 0x64,
+  0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x43,
+  0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0xc4, 0x95, 0x63, 0x28, 0xd0, 0x4e, 0x30, 0x45, 0xaf,
+  0x8b, 0x97, 0x34, 0x14, 0x45, 0xf8, 0x5c, 0x58, 0x4a, 0xfa, 0x33, 0x8e,
+  0x6e, 0x9c, 0x60, 0xab, 0xf3, 0x86, 0xff, 0x34, 0x74, 0xb2, 0x2b, 0xbe,
+  0xa1, 0x8c, 0xd5, 0xa2, 0xa3, 0x60, 0x7a, 0x40, 0xb9, 0xe1, 0xfc, 0x22,
+  0xca, 0x67, 0xba, 0x60, 0xaa, 0xc7, 0x9a, 0xf9, 0x06, 0x7f, 0xee, 0xf7,
+  0xba, 0x85, 0x05, 0xb0, 0x03, 0xff, 0x72, 0xae, 0x15, 0x41, 0x4a, 0x98,
+  0x64, 0xd7, 0x17, 0x4b, 0x54, 0xef, 0x05, 0xc6, 0x98, 0x07, 0x93, 0x27,
+  0x3e, 0x4f, 0xdc, 0x0f, 0xc6, 0x7b, 0x8b, 0xe7, 0xf3, 0x06, 0x5e, 0x8d,
+  0xe8, 0xb4, 0xae, 0x29, 0xb4, 0x1e, 0x1e, 0x2d, 0x16, 0x90, 0xd3, 0xea,
+  0xaa, 0xe7, 0x8c, 0x3b, 0x6d, 0xaf, 0x36, 0x59, 0xff, 0xc5, 0x0a, 0xfa,
+  0xc7, 0x4c, 0xbd, 0x36, 0x8b, 0x64, 0xc4, 0x4a, 0xf5, 0xce, 0x33, 0xf9,
+  0x07, 0xbe, 0x7f, 0x45, 0x90, 0xa8, 0x08, 0x14, 0xb0, 0xd0, 0xa5, 0x4f,
+  0xdf, 0x82, 0x80, 0xda, 0x1b, 0xee, 0xc3, 0x13, 0xb0, 0x98, 0xf5, 0x0f,
+  0xf9, 0x7e, 0x76, 0xb5, 0xe6, 0xb9, 0x5d, 0x68, 0xb9, 0x5c, 0x50, 0x90,
+  0x89, 0xa4, 0x36, 0xb1, 0x70, 0x16, 0xea, 0xb1, 0x10, 0xb5, 0x6a, 0x76,
+  0xdf, 0xe1, 0xbb, 0xfc, 0x78, 0xf2, 0x72, 0x99, 0xcf, 0xc9, 0xa2, 0xd4,
+  0x73, 0x54, 0x77, 0xbf, 0xc0, 0x39, 0x77, 0xe5, 0xae, 0x12, 0xc5, 0x78,
+  0x5a, 0x19, 0x45, 0xd4, 0x41, 0x19, 0xd3, 0x7c, 0xf5, 0x6f, 0x99, 0x6b,
+  0xd7, 0x8b, 0xbc, 0x2d, 0x09, 0x9d, 0x4b, 0x10, 0x61, 0xc0, 0xda, 0x52,
+  0xc3, 0xaf, 0x22, 0x43, 0xc6, 0xeb, 0x37, 0x7e, 0x63, 0x74, 0x30, 0x0d,
+  0x6a, 0x71, 0x8e, 0xde, 0x5d, 0x5b, 0x8a, 0xc8, 0xc5, 0xd7, 0x9b, 0x29,
+  0xe8, 0xae, 0xb6, 0x25, 0x61, 0x81, 0xeb, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x01, 0x49, 0x30, 0x82, 0x01, 0x45, 0x30, 0x2e, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x22, 0x30, 0x20,
+  0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, 0x2e, 0x73,
+  0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86,
+  0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73,
+  0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x36,
+  0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2f, 0x30, 0x2d, 0x30, 0x2b, 0xa0,
+  0x29, 0xa0, 0x27, 0x86, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x67, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x50, 0x43, 0x41, 0x2d,
+  0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x29,
+  0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30,
+  0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11,
+  0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d,
+  0x31, 0x2d, 0x36, 0x39, 0x37, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
+  0x04, 0x16, 0x04, 0x14, 0x4c, 0xf4, 0xbf, 0xe8, 0x3b, 0xbe, 0xc2, 0x24,
+  0xf3, 0x1b, 0x47, 0x3b, 0xb5, 0x6e, 0x48, 0x8e, 0x16, 0xab, 0xaf, 0x12,
+  0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
+  0x14, 0xc4, 0x79, 0xca, 0x8e, 0xa1, 0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b,
+  0xdb, 0x31, 0x5b, 0x94, 0x3e, 0x3f, 0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0x7a, 0x53, 0xb5, 0xde, 0xb6, 0xef, 0x52,
+  0xa3, 0x5f, 0x8a, 0xf5, 0x89, 0xf1, 0x42, 0xcc, 0x5e, 0x46, 0x88, 0xae,
+  0xa5, 0x08, 0x87, 0x51, 0xde, 0x0f, 0x0f, 0x02, 0xeb, 0x0c, 0x82, 0x78,
+  0xe3, 0x73, 0x7d, 0x71, 0xbd, 0x43, 0xe9, 0xca, 0x8a, 0x3f, 0xe0, 0x25,
+  0x92, 0x9b, 0x33, 0x33, 0x74, 0x49, 0x5e, 0x00, 0xd9, 0x73, 0x14, 0x1c,
+  0x0b, 0x46, 0x76, 0x1c, 0x8a, 0x0d, 0x4d, 0x8c, 0x6c, 0x7e, 0x4b, 0xf7,
+  0x60, 0xd8, 0x81, 0x78, 0xa0, 0x78, 0xd0, 0x25, 0x62, 0xab, 0x10, 0xca,
+  0x22, 0xe8, 0x1c, 0x19, 0xdd, 0x52, 0x83, 0x64, 0x05, 0xe5, 0x87, 0x66,
+  0xae, 0xe7, 0x7a, 0xa4, 0x3b, 0x3e, 0xd8, 0x70, 0x7a, 0x76, 0xa2, 0x67,
+  0x39, 0xd4, 0xc9, 0xfa, 0xe5, 0xb7, 0x1e, 0x41, 0xe2, 0x09, 0x39, 0x88,
+  0x1c, 0x18, 0x55, 0x0a, 0xc4, 0x41, 0xaf, 0xb2, 0xf3, 0xf3, 0x0f, 0x42,
+  0x14, 0x61, 0x74, 0x81, 0xe3, 0xda, 0x87, 0x5a, 0x9a, 0x4d, 0x8b, 0xd3,
+  0xc9, 0x8f, 0x89, 0x66, 0x13, 0x29, 0x11, 0xe4, 0xff, 0xe2, 0xdf, 0x8e,
+  0x96, 0x0c, 0x5a, 0xa1, 0xaa, 0x6b, 0x9b, 0xfd, 0xfc, 0x03, 0x3b, 0x55,
+  0x0d, 0xa6, 0xa2, 0x25, 0x48, 0x17, 0x1f, 0x42, 0xa8, 0xda, 0x6c, 0x7e,
+  0x69, 0x6e, 0xa0, 0xdf, 0x67, 0xd2, 0x6d, 0xf4, 0x0e, 0x6a, 0x12, 0x79,
+  0xf5, 0x7c, 0xc8, 0xa5, 0x32, 0x1c, 0xc4, 0x31, 0xb2, 0xe6, 0xbb, 0xa8,
+  0x6b, 0x6a, 0xa2, 0x8a, 0x60, 0x69, 0xc0, 0x57, 0x7d, 0xb2, 0xf2, 0x31,
+  0x0c, 0x98, 0x65, 0x32, 0xec, 0x08, 0x5a, 0xce, 0xc6, 0x98, 0xe9, 0x21,
+  0x97, 0x3f, 0x2c, 0x79, 0x29, 0x03, 0xf5, 0xf6, 0x94, 0x2b, 0x53, 0x31,
+  0xf3, 0x93, 0x68, 0x57, 0xe1, 0xd7, 0x4f, 0x3a, 0xd1, 0x61, 0xa1, 0x60,
+  0xce, 0xb9, 0xab, 0x98, 0xae, 0x35, 0x54, 0x63, 0x8b,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            0c:79:a9:44:b0:8c:11:95:20:92:61:5f:e2:6b:1d:83
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
+        Validity
+            Not Before: Oct 22 12:00:00 2013 GMT
+            Not After : Oct 22 12:00:00 2028 GMT
+        Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 Extended Validation Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d7:53:a4:04:51:f8:99:a6:16:48:4b:67:27:aa:
+                    93:49:d0:39:ed:0c:b0:b0:00:87:f1:67:28:86:85:
+                    8c:8e:63:da:bc:b1:40:38:e2:d3:f5:ec:a5:05:18:
+                    b8:3d:3e:c5:99:17:32:ec:18:8c:fa:f1:0c:a6:64:
+                    21:85:cb:07:10:34:b0:52:88:2b:1f:68:9b:d2:b1:
+                    8f:12:b0:b3:d2:e7:88:1f:1f:ef:38:77:54:53:5f:
+                    80:79:3f:2e:1a:aa:a8:1e:4b:2b:0d:ab:b7:63:b9:
+                    35:b7:7d:14:bc:59:4b:df:51:4a:d2:a1:e2:0c:e2:
+                    90:82:87:6a:ae:ea:d7:64:d6:98:55:e8:fd:af:1a:
+                    50:6c:54:bc:11:f2:fd:4a:f2:9d:bb:7f:0e:f4:d5:
+                    be:8e:16:89:12:55:d8:c0:71:34:ee:f6:dc:2d:ec:
+                    c4:87:25:86:8d:d8:21:e4:b0:4d:0c:89:dc:39:26:
+                    17:dd:f6:d7:94:85:d8:04:21:70:9d:6f:6f:ff:5c:
+                    ba:19:e1:45:cb:56:57:28:7e:1c:0d:41:57:aa:b7:
+                    b8:27:bb:b1:e4:fa:2a:ef:21:23:75:1a:ad:2d:9b:
+                    86:35:8c:9c:77:b5:73:ad:d8:94:2d:e4:f3:0c:9d:
+                    ee:c1:4e:62:7e:17:c0:71:9e:2c:de:f1:f9:10:28:
+                    19:33
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.digicert.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl4.digicert.com/DigiCertHighAssuranceEVRootCA.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.digicert.com/CPS
+
+            X509v3 Subject Key Identifier: 
+                3D:D3:50:A5:D6:A0:AD:EE:F3:4A:60:0A:65:D3:21:D4:F8:F8:D6:0F
+            X509v3 Authority Key Identifier: 
+                keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
+
+    Signature Algorithm: sha256WithRSAEncryption
+         9d:b6:d0:90:86:e1:86:02:ed:c5:a0:f0:34:1c:74:c1:8d:76:
+         cc:86:0a:a8:f0:4a:8a:42:d6:3f:c8:a9:4d:ad:7c:08:ad:e6:
+         b6:50:b8:a2:1a:4d:88:07:b1:29:21:dc:e7:da:c6:3c:21:e0:
+         e3:11:49:70:ac:7a:1d:01:a4:ca:11:3a:57:ab:7d:57:2a:40:
+         74:fd:d3:1d:85:18:50:df:57:47:75:a1:7d:55:20:2e:47:37:
+         50:72:8c:7f:82:1b:d2:62:8f:2d:03:5a:da:c3:c8:a1:ce:2c:
+         52:a2:00:63:eb:73:ba:71:c8:49:27:23:97:64:85:9e:38:0e:
+         ad:63:68:3c:ba:52:81:58:79:a3:2c:0c:df:de:6d:eb:31:f2:
+         ba:a0:7c:6c:f1:2c:d4:e1:bd:77:84:37:03:ce:32:b5:c8:9a:
+         81:1a:4a:92:4e:3b:46:9a:85:fe:83:a2:f9:9e:8c:a3:cc:0d:
+         5e:b3:3d:cf:04:78:8f:14:14:7b:32:9c:c7:00:a6:5c:c4:b5:
+         a1:55:8d:5a:56:68:a4:22:70:aa:3c:81:71:d9:9d:a8:45:3b:
+         f4:e5:f6:a2:51:dd:c7:7b:62:e8:6f:0c:74:eb:b8:da:f8:bf:
+         87:0d:79:50:91:90:9b:18:3b:91:59:27:f1:35:28:13:ab:26:
+         7e:d5:f7:7a
+-----BEGIN CERTIFICATE-----
+MIIEtjCCA56gAwIBAgIQDHmpRLCMEZUgkmFf4msdgzANBgkqhkiG9w0BAQsFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowdTEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTE0MDIGA1UEAxMrRGlnaUNlcnQgU0hBMiBFeHRlbmRlZCBW
+YWxpZGF0aW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBANdTpARR+JmmFkhLZyeqk0nQOe0MsLAAh/FnKIaFjI5j2ryxQDji0/XspQUY
+uD0+xZkXMuwYjPrxDKZkIYXLBxA0sFKIKx9om9KxjxKws9LniB8f7zh3VFNfgHk/
+LhqqqB5LKw2rt2O5Nbd9FLxZS99RStKh4gzikIKHaq7q12TWmFXo/a8aUGxUvBHy
+/Urynbt/DvTVvo4WiRJV2MBxNO723C3sxIclho3YIeSwTQyJ3DkmF93215SF2AQh
+cJ1vb/9cuhnhRctWVyh+HA1BV6q3uCe7seT6Ku8hI3UarS2bhjWMnHe1c63YlC3k
+8wyd7sFOYn4XwHGeLN7x+RAoGTMCAwEAAaOCAUkwggFFMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
+BQcDAjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
+Z2ljZXJ0LmNvbTBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsNC5kaWdpY2Vy
+dC5jb20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3JsMD0GA1UdIAQ2
+MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j
+b20vQ1BTMB0GA1UdDgQWBBQ901Cl1qCt7vNKYApl0yHU+PjWDzAfBgNVHSMEGDAW
+gBSxPsNpA/i/RwHUmCYaCALvY2QrwzANBgkqhkiG9w0BAQsFAAOCAQEAnbbQkIbh
+hgLtxaDwNBx0wY12zIYKqPBKikLWP8ipTa18CK3mtlC4ohpNiAexKSHc59rGPCHg
+4xFJcKx6HQGkyhE6V6t9VypAdP3THYUYUN9XR3WhfVUgLkc3UHKMf4Ib0mKPLQNa
+2sPIoc4sUqIAY+tzunHISScjl2SFnjgOrWNoPLpSgVh5oywM395t6zHyuqB8bPEs
+1OG9d4Q3A84ytciagRpKkk47RpqF/oOi+Z6Mo8wNXrM9zwR4jxQUezKcxwCmXMS1
+oVWNWlZopCJwqjyBcdmdqEU79OX2olHdx3ti6G8MdOu42vi/hw15UJGQmxg7kVkn
+8TUoE6smftX3eg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert33[] = {
+  0x30, 0x82, 0x04, 0xb6, 0x30, 0x82, 0x03, 0x9e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x0c, 0x79, 0xa9, 0x44, 0xb0, 0x8c, 0x11, 0x95, 0x20,
+  0x92, 0x61, 0x5f, 0xe2, 0x6b, 0x1d, 0x83, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x6c,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63,
+  0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77,
+  0x77, 0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x22, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48,
+  0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63,
+  0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41,
+  0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x32, 0x32, 0x31, 0x32,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x38, 0x31, 0x30, 0x32,
+  0x32, 0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x75, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c, 0x44, 0x69,
+  0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x31, 0x19,
+  0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x10, 0x77, 0x77, 0x77,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f,
+  0x6d, 0x31, 0x34, 0x30, 0x32, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b,
+  0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x53, 0x48, 0x41,
+  0x32, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56,
+  0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65,
+  0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
+  0x82, 0x01, 0x01, 0x00, 0xd7, 0x53, 0xa4, 0x04, 0x51, 0xf8, 0x99, 0xa6,
+  0x16, 0x48, 0x4b, 0x67, 0x27, 0xaa, 0x93, 0x49, 0xd0, 0x39, 0xed, 0x0c,
+  0xb0, 0xb0, 0x00, 0x87, 0xf1, 0x67, 0x28, 0x86, 0x85, 0x8c, 0x8e, 0x63,
+  0xda, 0xbc, 0xb1, 0x40, 0x38, 0xe2, 0xd3, 0xf5, 0xec, 0xa5, 0x05, 0x18,
+  0xb8, 0x3d, 0x3e, 0xc5, 0x99, 0x17, 0x32, 0xec, 0x18, 0x8c, 0xfa, 0xf1,
+  0x0c, 0xa6, 0x64, 0x21, 0x85, 0xcb, 0x07, 0x10, 0x34, 0xb0, 0x52, 0x88,
+  0x2b, 0x1f, 0x68, 0x9b, 0xd2, 0xb1, 0x8f, 0x12, 0xb0, 0xb3, 0xd2, 0xe7,
+  0x88, 0x1f, 0x1f, 0xef, 0x38, 0x77, 0x54, 0x53, 0x5f, 0x80, 0x79, 0x3f,
+  0x2e, 0x1a, 0xaa, 0xa8, 0x1e, 0x4b, 0x2b, 0x0d, 0xab, 0xb7, 0x63, 0xb9,
+  0x35, 0xb7, 0x7d, 0x14, 0xbc, 0x59, 0x4b, 0xdf, 0x51, 0x4a, 0xd2, 0xa1,
+  0xe2, 0x0c, 0xe2, 0x90, 0x82, 0x87, 0x6a, 0xae, 0xea, 0xd7, 0x64, 0xd6,
+  0x98, 0x55, 0xe8, 0xfd, 0xaf, 0x1a, 0x50, 0x6c, 0x54, 0xbc, 0x11, 0xf2,
+  0xfd, 0x4a, 0xf2, 0x9d, 0xbb, 0x7f, 0x0e, 0xf4, 0xd5, 0xbe, 0x8e, 0x16,
+  0x89, 0x12, 0x55, 0xd8, 0xc0, 0x71, 0x34, 0xee, 0xf6, 0xdc, 0x2d, 0xec,
+  0xc4, 0x87, 0x25, 0x86, 0x8d, 0xd8, 0x21, 0xe4, 0xb0, 0x4d, 0x0c, 0x89,
+  0xdc, 0x39, 0x26, 0x17, 0xdd, 0xf6, 0xd7, 0x94, 0x85, 0xd8, 0x04, 0x21,
+  0x70, 0x9d, 0x6f, 0x6f, 0xff, 0x5c, 0xba, 0x19, 0xe1, 0x45, 0xcb, 0x56,
+  0x57, 0x28, 0x7e, 0x1c, 0x0d, 0x41, 0x57, 0xaa, 0xb7, 0xb8, 0x27, 0xbb,
+  0xb1, 0xe4, 0xfa, 0x2a, 0xef, 0x21, 0x23, 0x75, 0x1a, 0xad, 0x2d, 0x9b,
+  0x86, 0x35, 0x8c, 0x9c, 0x77, 0xb5, 0x73, 0xad, 0xd8, 0x94, 0x2d, 0xe4,
+  0xf3, 0x0c, 0x9d, 0xee, 0xc1, 0x4e, 0x62, 0x7e, 0x17, 0xc0, 0x71, 0x9e,
+  0x2c, 0xde, 0xf1, 0xf9, 0x10, 0x28, 0x19, 0x33, 0x02, 0x03, 0x01, 0x00,
+  0x01, 0xa3, 0x82, 0x01, 0x49, 0x30, 0x82, 0x01, 0x45, 0x30, 0x12, 0x06,
+  0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01,
+  0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+  0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06,
+  0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x02, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x01, 0x01, 0x04, 0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x64, 0x69,
+  0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x4b,
+  0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x44, 0x30, 0x42, 0x30, 0x40, 0xa0,
+  0x3e, 0xa0, 0x3c, 0x86, 0x3a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x63, 0x72, 0x6c, 0x34, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65,
+  0x72, 0x74, 0x48, 0x69, 0x67, 0x68, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61,
+  0x6e, 0x63, 0x65, 0x45, 0x56, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36,
+  0x30, 0x34, 0x30, 0x32, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a,
+  0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+  0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x3d, 0xd3, 0x50, 0xa5, 0xd6, 0xa0, 0xad,
+  0xee, 0xf3, 0x4a, 0x60, 0x0a, 0x65, 0xd3, 0x21, 0xd4, 0xf8, 0xf8, 0xd6,
+  0x0f, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xb1, 0x3e, 0xc3, 0x69, 0x03, 0xf8, 0xbf, 0x47, 0x01, 0xd4,
+  0x98, 0x26, 0x1a, 0x08, 0x02, 0xef, 0x63, 0x64, 0x2b, 0xc3, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x9d, 0xb6, 0xd0, 0x90, 0x86, 0xe1,
+  0x86, 0x02, 0xed, 0xc5, 0xa0, 0xf0, 0x34, 0x1c, 0x74, 0xc1, 0x8d, 0x76,
+  0xcc, 0x86, 0x0a, 0xa8, 0xf0, 0x4a, 0x8a, 0x42, 0xd6, 0x3f, 0xc8, 0xa9,
+  0x4d, 0xad, 0x7c, 0x08, 0xad, 0xe6, 0xb6, 0x50, 0xb8, 0xa2, 0x1a, 0x4d,
+  0x88, 0x07, 0xb1, 0x29, 0x21, 0xdc, 0xe7, 0xda, 0xc6, 0x3c, 0x21, 0xe0,
+  0xe3, 0x11, 0x49, 0x70, 0xac, 0x7a, 0x1d, 0x01, 0xa4, 0xca, 0x11, 0x3a,
+  0x57, 0xab, 0x7d, 0x57, 0x2a, 0x40, 0x74, 0xfd, 0xd3, 0x1d, 0x85, 0x18,
+  0x50, 0xdf, 0x57, 0x47, 0x75, 0xa1, 0x7d, 0x55, 0x20, 0x2e, 0x47, 0x37,
+  0x50, 0x72, 0x8c, 0x7f, 0x82, 0x1b, 0xd2, 0x62, 0x8f, 0x2d, 0x03, 0x5a,
+  0xda, 0xc3, 0xc8, 0xa1, 0xce, 0x2c, 0x52, 0xa2, 0x00, 0x63, 0xeb, 0x73,
+  0xba, 0x71, 0xc8, 0x49, 0x27, 0x23, 0x97, 0x64, 0x85, 0x9e, 0x38, 0x0e,
+  0xad, 0x63, 0x68, 0x3c, 0xba, 0x52, 0x81, 0x58, 0x79, 0xa3, 0x2c, 0x0c,
+  0xdf, 0xde, 0x6d, 0xeb, 0x31, 0xf2, 0xba, 0xa0, 0x7c, 0x6c, 0xf1, 0x2c,
+  0xd4, 0xe1, 0xbd, 0x77, 0x84, 0x37, 0x03, 0xce, 0x32, 0xb5, 0xc8, 0x9a,
+  0x81, 0x1a, 0x4a, 0x92, 0x4e, 0x3b, 0x46, 0x9a, 0x85, 0xfe, 0x83, 0xa2,
+  0xf9, 0x9e, 0x8c, 0xa3, 0xcc, 0x0d, 0x5e, 0xb3, 0x3d, 0xcf, 0x04, 0x78,
+  0x8f, 0x14, 0x14, 0x7b, 0x32, 0x9c, 0xc7, 0x00, 0xa6, 0x5c, 0xc4, 0xb5,
+  0xa1, 0x55, 0x8d, 0x5a, 0x56, 0x68, 0xa4, 0x22, 0x70, 0xaa, 0x3c, 0x81,
+  0x71, 0xd9, 0x9d, 0xa8, 0x45, 0x3b, 0xf4, 0xe5, 0xf6, 0xa2, 0x51, 0xdd,
+  0xc7, 0x7b, 0x62, 0xe8, 0x6f, 0x0c, 0x74, 0xeb, 0xb8, 0xda, 0xf8, 0xbf,
+  0x87, 0x0d, 0x79, 0x50, 0x91, 0x90, 0x9b, 0x18, 0x3b, 0x91, 0x59, 0x27,
+  0xf1, 0x35, 0x28, 0x13, 0xab, 0x26, 0x7e, 0xd5, 0xf7, 0x7a,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            36:34:9e:18:c9:9c:26:69:b6:56:2e:6c:e5:ad:71:32
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2008 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA - G3
+        Validity
+            Not Before: May 23 00:00:00 2013 GMT
+            Not After : May 22 23:59:59 2023 GMT
+        Subject: C=US, O=thawte, Inc., CN=thawte SHA256 SSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:a3:63:2b:d4:ba:5d:38:ae:b0:cf:b9:4c:38:df:
+                    20:7d:f1:2b:47:71:1d:8b:68:f3:56:f9:9c:da:aa:
+                    e5:84:26:de:a5:71:30:bc:f3:31:23:9d:e8:3b:80:
+                    c8:66:57:75:b6:57:0e:db:93:f5:26:8e:70:ba:64:
+                    52:66:8a:2a:88:5c:44:18:4d:a8:a2:7c:bd:56:61:
+                    32:90:12:f9:35:87:48:60:b0:6e:90:67:44:01:8d:
+                    e7:c9:0d:63:68:72:72:ab:63:3c:86:b8:1f:7d:ad:
+                    88:25:a7:6a:88:29:fb:59:c6:78:71:5f:2c:ba:89:
+                    e6:d3:80:fd:57:ec:b9:51:5f:43:33:2e:7e:25:3b:
+                    a4:04:d1:60:8c:b3:44:33:93:0c:ad:2a:b6:44:a2:
+                    19:3b:af:c4:90:6f:7b:05:87:86:9b:2c:6a:9d:2b:
+                    6c:77:c9:00:9f:c9:cf:ac:ed:3e:1b:f7:c3:f3:d9:
+                    f8:6c:d4:a0:57:c4:fb:28:32:aa:33:f0:e6:ba:98:
+                    df:e5:c2:4e:9c:74:bf:8a:48:c2:f2:1b:f0:77:40:
+                    41:07:04:b2:3a:d5:4c:c4:29:a9:11:40:3f:02:46:
+                    f0:91:d5:d2:81:83:86:13:b3:31:ed:46:ab:a8:87:
+                    76:a9:99:7d:bc:cd:31:50:f4:a5:b5:dc:a5:32:b3:
+                    8b:8b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.thawte.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.thawte.com/ThawtePCA-G3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-415
+            X509v3 Subject Key Identifier: 
+                2B:9A:35:AE:01:18:38:30:E1:70:7A:05:E0:11:76:A3:CE:BD:90:14
+            X509v3 Authority Key Identifier: 
+                keyid:AD:6C:AA:94:60:9C:ED:E4:FF:FA:3E:0A:74:2B:63:03:F7:B6:59:BF
+
+    Signature Algorithm: sha256WithRSAEncryption
+         74:a6:56:e8:af:93:96:19:fb:26:f9:0d:b0:44:a5:cd:e9:7a:
+         48:03:74:01:6c:13:71:b7:e0:82:90:99:62:23:e3:d6:99:af:
+         f0:c7:1e:9e:a8:18:21:db:b4:94:3f:34:56:1b:99:55:2f:8e:
+         f0:45:33:32:b7:72:c1:13:5b:34:d3:f5:60:e5:2e:18:d1:5c:
+         c5:6a:c1:aa:87:50:0c:1c:9d:64:2b:ff:1b:dc:d5:2e:61:0b:
+         e7:b9:b6:91:53:86:d9:03:2a:d1:3d:7b:4a:da:2b:07:be:29:
+         f2:60:42:a9:91:1a:0e:2e:3c:d1:7d:a5:13:14:02:fa:ee:8b:
+         8d:b6:c8:b8:3e:56:81:57:21:24:3f:65:c3:b4:c9:ce:5c:8d:
+         46:ac:53:f3:f9:55:74:c8:2b:fd:d2:78:70:f5:f8:11:e5:f4:
+         a7:ad:20:f5:9d:f1:ec:70:f6:13:ac:e6:8c:8d:db:3f:c6:f2:
+         79:0e:ab:52:f2:cc:1b:79:27:cf:16:b3:d6:f3:c6:36:80:43:
+         ec:c5:94:f0:dd:90:8d:f8:c6:52:46:56:eb:74:47:be:a6:f3:
+         19:ae:71:4c:c0:e1:e7:d4:cf:ed:d4:06:28:2a:11:3c:ba:d9:
+         41:6e:00:e7:81:37:93:e4:da:62:c6:1d:67:6f:63:b4:14:86:
+         d9:a6:62:f0
+-----BEGIN CERTIFICATE-----
+MIIEwjCCA6qgAwIBAgIQNjSeGMmcJmm2Vi5s5a1xMjANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0xMzA1MjMwMDAwMDBa
+Fw0yMzA1MjIyMzU5NTlaMEMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUs
+IEluYy4xHTAbBgNVBAMTFHRoYXd0ZSBTSEEyNTYgU1NMIENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo2Mr1LpdOK6wz7lMON8gffErR3Edi2jzVvmc
+2qrlhCbepXEwvPMxI53oO4DIZld1tlcO25P1Jo5wumRSZooqiFxEGE2oony9VmEy
+kBL5NYdIYLBukGdEAY3nyQ1jaHJyq2M8hrgffa2IJadqiCn7WcZ4cV8suonm04D9
+V+y5UV9DMy5+JTukBNFgjLNEM5MMrSq2RKIZO6/EkG97BYeGmyxqnStsd8kAn8nP
+rO0+G/fD89n4bNSgV8T7KDKqM/Dmupjf5cJOnHS/ikjC8hvwd0BBBwSyOtVMxCmp
+EUA/AkbwkdXSgYOGE7Mx7UarqId2qZl9vM0xUPSltdylMrOLiwIDAQABo4IBRDCC
+AUAwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3
+dGUuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwQQYDVR0gBDowODA2BgpghkgBhvhF
+AQc2MCgwJgYIKwYBBQUHAgEWGmh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3BzMDcG
+A1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQQ0Et
+RzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAqBgNVHREEIzAhpB8wHTEbMBkGA1UEAxMS
+VmVyaVNpZ25NUEtJLTItNDE1MB0GA1UdDgQWBBQrmjWuARg4MOFwegXgEXajzr2Q
+FDAfBgNVHSMEGDAWgBStbKqUYJzt5P/6Pgp0K2MD97ZZvzANBgkqhkiG9w0BAQsF
+AAOCAQEAdKZW6K+Tlhn7JvkNsESlzel6SAN0AWwTcbfggpCZYiPj1pmv8McenqgY
+Idu0lD80VhuZVS+O8EUzMrdywRNbNNP1YOUuGNFcxWrBqodQDBydZCv/G9zVLmEL
+57m2kVOG2QMq0T17StorB74p8mBCqZEaDi480X2lExQC+u6LjbbIuD5WgVchJD9l
+w7TJzlyNRqxT8/lVdMgr/dJ4cPX4EeX0p60g9Z3x7HD2E6zmjI3bP8byeQ6rUvLM
+G3knzxaz1vPGNoBD7MWU8N2QjfjGUkZW63RHvqbzGa5xTMDh59TP7dQGKCoRPLrZ
+QW4A54E3k+TaYsYdZ29jtBSG2aZi8A==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert34[] = {
+  0x30, 0x82, 0x04, 0xc2, 0x30, 0x82, 0x03, 0xaa, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x36, 0x34, 0x9e, 0x18, 0xc9, 0x9c, 0x26, 0x69, 0xb6,
+  0x56, 0x2e, 0x6c, 0xe5, 0xad, 0x71, 0x32, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x38, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x24, 0x30, 0x22, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x1b, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+  0x33, 0x30, 0x35, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a,
+  0x17, 0x0d, 0x32, 0x33, 0x30, 0x35, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39,
+  0x35, 0x39, 0x5a, 0x30, 0x43, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03,
+  0x55, 0x04, 0x0a, 0x13, 0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x14, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x53,
+  0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa3, 0x63, 0x2b,
+  0xd4, 0xba, 0x5d, 0x38, 0xae, 0xb0, 0xcf, 0xb9, 0x4c, 0x38, 0xdf, 0x20,
+  0x7d, 0xf1, 0x2b, 0x47, 0x71, 0x1d, 0x8b, 0x68, 0xf3, 0x56, 0xf9, 0x9c,
+  0xda, 0xaa, 0xe5, 0x84, 0x26, 0xde, 0xa5, 0x71, 0x30, 0xbc, 0xf3, 0x31,
+  0x23, 0x9d, 0xe8, 0x3b, 0x80, 0xc8, 0x66, 0x57, 0x75, 0xb6, 0x57, 0x0e,
+  0xdb, 0x93, 0xf5, 0x26, 0x8e, 0x70, 0xba, 0x64, 0x52, 0x66, 0x8a, 0x2a,
+  0x88, 0x5c, 0x44, 0x18, 0x4d, 0xa8, 0xa2, 0x7c, 0xbd, 0x56, 0x61, 0x32,
+  0x90, 0x12, 0xf9, 0x35, 0x87, 0x48, 0x60, 0xb0, 0x6e, 0x90, 0x67, 0x44,
+  0x01, 0x8d, 0xe7, 0xc9, 0x0d, 0x63, 0x68, 0x72, 0x72, 0xab, 0x63, 0x3c,
+  0x86, 0xb8, 0x1f, 0x7d, 0xad, 0x88, 0x25, 0xa7, 0x6a, 0x88, 0x29, 0xfb,
+  0x59, 0xc6, 0x78, 0x71, 0x5f, 0x2c, 0xba, 0x89, 0xe6, 0xd3, 0x80, 0xfd,
+  0x57, 0xec, 0xb9, 0x51, 0x5f, 0x43, 0x33, 0x2e, 0x7e, 0x25, 0x3b, 0xa4,
+  0x04, 0xd1, 0x60, 0x8c, 0xb3, 0x44, 0x33, 0x93, 0x0c, 0xad, 0x2a, 0xb6,
+  0x44, 0xa2, 0x19, 0x3b, 0xaf, 0xc4, 0x90, 0x6f, 0x7b, 0x05, 0x87, 0x86,
+  0x9b, 0x2c, 0x6a, 0x9d, 0x2b, 0x6c, 0x77, 0xc9, 0x00, 0x9f, 0xc9, 0xcf,
+  0xac, 0xed, 0x3e, 0x1b, 0xf7, 0xc3, 0xf3, 0xd9, 0xf8, 0x6c, 0xd4, 0xa0,
+  0x57, 0xc4, 0xfb, 0x28, 0x32, 0xaa, 0x33, 0xf0, 0xe6, 0xba, 0x98, 0xdf,
+  0xe5, 0xc2, 0x4e, 0x9c, 0x74, 0xbf, 0x8a, 0x48, 0xc2, 0xf2, 0x1b, 0xf0,
+  0x77, 0x40, 0x41, 0x07, 0x04, 0xb2, 0x3a, 0xd5, 0x4c, 0xc4, 0x29, 0xa9,
+  0x11, 0x40, 0x3f, 0x02, 0x46, 0xf0, 0x91, 0xd5, 0xd2, 0x81, 0x83, 0x86,
+  0x13, 0xb3, 0x31, 0xed, 0x46, 0xab, 0xa8, 0x87, 0x76, 0xa9, 0x99, 0x7d,
+  0xbc, 0xcd, 0x31, 0x50, 0xf4, 0xa5, 0xb5, 0xdc, 0xa5, 0x32, 0xb3, 0x8b,
+  0x8b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x44, 0x30, 0x82,
+  0x01, 0x40, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x01, 0x01, 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x74, 0x68, 0x61, 0x77,
+  0x74, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30,
+  0x38, 0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45,
+  0x01, 0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74,
+  0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x37, 0x06,
+  0x03, 0x55, 0x1d, 0x1f, 0x04, 0x30, 0x30, 0x2e, 0x30, 0x2c, 0xa0, 0x2a,
+  0xa0, 0x28, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+  0x72, 0x6c, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2d,
+  0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2a,
+  0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21, 0xa4, 0x1f, 0x30,
+  0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x12,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x50, 0x4b, 0x49,
+  0x2d, 0x32, 0x2d, 0x34, 0x31, 0x35, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d,
+  0x0e, 0x04, 0x16, 0x04, 0x14, 0x2b, 0x9a, 0x35, 0xae, 0x01, 0x18, 0x38,
+  0x30, 0xe1, 0x70, 0x7a, 0x05, 0xe0, 0x11, 0x76, 0xa3, 0xce, 0xbd, 0x90,
+  0x14, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+  0x80, 0x14, 0xad, 0x6c, 0xaa, 0x94, 0x60, 0x9c, 0xed, 0xe4, 0xff, 0xfa,
+  0x3e, 0x0a, 0x74, 0x2b, 0x63, 0x03, 0xf7, 0xb6, 0x59, 0xbf, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x74, 0xa6, 0x56, 0xe8, 0xaf, 0x93,
+  0x96, 0x19, 0xfb, 0x26, 0xf9, 0x0d, 0xb0, 0x44, 0xa5, 0xcd, 0xe9, 0x7a,
+  0x48, 0x03, 0x74, 0x01, 0x6c, 0x13, 0x71, 0xb7, 0xe0, 0x82, 0x90, 0x99,
+  0x62, 0x23, 0xe3, 0xd6, 0x99, 0xaf, 0xf0, 0xc7, 0x1e, 0x9e, 0xa8, 0x18,
+  0x21, 0xdb, 0xb4, 0x94, 0x3f, 0x34, 0x56, 0x1b, 0x99, 0x55, 0x2f, 0x8e,
+  0xf0, 0x45, 0x33, 0x32, 0xb7, 0x72, 0xc1, 0x13, 0x5b, 0x34, 0xd3, 0xf5,
+  0x60, 0xe5, 0x2e, 0x18, 0xd1, 0x5c, 0xc5, 0x6a, 0xc1, 0xaa, 0x87, 0x50,
+  0x0c, 0x1c, 0x9d, 0x64, 0x2b, 0xff, 0x1b, 0xdc, 0xd5, 0x2e, 0x61, 0x0b,
+  0xe7, 0xb9, 0xb6, 0x91, 0x53, 0x86, 0xd9, 0x03, 0x2a, 0xd1, 0x3d, 0x7b,
+  0x4a, 0xda, 0x2b, 0x07, 0xbe, 0x29, 0xf2, 0x60, 0x42, 0xa9, 0x91, 0x1a,
+  0x0e, 0x2e, 0x3c, 0xd1, 0x7d, 0xa5, 0x13, 0x14, 0x02, 0xfa, 0xee, 0x8b,
+  0x8d, 0xb6, 0xc8, 0xb8, 0x3e, 0x56, 0x81, 0x57, 0x21, 0x24, 0x3f, 0x65,
+  0xc3, 0xb4, 0xc9, 0xce, 0x5c, 0x8d, 0x46, 0xac, 0x53, 0xf3, 0xf9, 0x55,
+  0x74, 0xc8, 0x2b, 0xfd, 0xd2, 0x78, 0x70, 0xf5, 0xf8, 0x11, 0xe5, 0xf4,
+  0xa7, 0xad, 0x20, 0xf5, 0x9d, 0xf1, 0xec, 0x70, 0xf6, 0x13, 0xac, 0xe6,
+  0x8c, 0x8d, 0xdb, 0x3f, 0xc6, 0xf2, 0x79, 0x0e, 0xab, 0x52, 0xf2, 0xcc,
+  0x1b, 0x79, 0x27, 0xcf, 0x16, 0xb3, 0xd6, 0xf3, 0xc6, 0x36, 0x80, 0x43,
+  0xec, 0xc5, 0x94, 0xf0, 0xdd, 0x90, 0x8d, 0xf8, 0xc6, 0x52, 0x46, 0x56,
+  0xeb, 0x74, 0x47, 0xbe, 0xa6, 0xf3, 0x19, 0xae, 0x71, 0x4c, 0xc0, 0xe1,
+  0xe7, 0xd4, 0xcf, 0xed, 0xd4, 0x06, 0x28, 0x2a, 0x11, 0x3c, 0xba, 0xd9,
+  0x41, 0x6e, 0x00, 0xe7, 0x81, 0x37, 0x93, 0xe4, 0xda, 0x62, 0xc6, 0x1d,
+  0x67, 0x6f, 0x63, 0xb4, 0x14, 0x86, 0xd9, 0xa6, 0x62, 0xf0,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            41:82:12:7d:12:d9:c6:b3:21:39:43:12:56:64:00:b8
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=GeoTrust Inc., OU=(c) 2008 GeoTrust Inc. - For authorized use only, CN=GeoTrust Primary Certification Authority - G3
+        Validity
+            Not Before: May 23 00:00:00 2013 GMT
+            Not After : May 22 23:59:59 2023 GMT
+        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust SHA256 SSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c6:a9:0b:5d:17:a5:7d:c6:cf:2a:ef:c6:66:d1:
+                    42:1e:5f:83:78:68:91:af:e6:a7:8b:f0:1d:44:01:
+                    0a:19:ca:9c:d4:8b:1d:e1:a1:90:a3:c1:5b:b4:d7:
+                    5b:6a:8b:fc:0e:49:1e:c2:62:29:fe:80:15:39:8b:
+                    81:2a:27:b5:fb:12:a8:05:22:0b:c5:2c:f5:d9:98:
+                    dd:16:2f:3b:66:e7:62:a2:43:32:ac:8f:b5:85:c8:
+                    52:06:2c:5c:c0:77:fa:67:f7:83:e8:5e:05:8d:c8:
+                    ab:a1:16:32:8a:d2:40:ec:86:3a:1c:23:a9:8d:b5:
+                    00:de:72:bd:85:55:fe:06:01:60:5d:ad:b3:e0:65:
+                    73:a5:92:14:9e:94:56:6f:93:ee:af:a9:3a:30:25:
+                    4a:8e:09:84:ef:b7:d2:d5:d7:9b:49:cd:e9:c0:5e:
+                    67:71:22:ac:50:90:43:20:5d:a1:a3:15:83:fd:fc:
+                    a7:39:bc:6b:65:48:12:60:ff:dd:23:b3:3a:aa:f4:
+                    9f:9c:37:53:41:a2:47:93:81:33:09:e5:22:c6:c8:
+                    1c:49:a1:6e:8d:cc:83:b3:9a:cd:ea:43:f2:19:d3:
+                    24:cb:a8:29:ae:52:cc:f4:08:27:b0:84:ea:ce:27:
+                    b5:e1:34:13:73:92:5c:87:86:2a:c6:b0:68:36:ad:
+                    cb:09
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://pca-g3-ocsp.geotrust.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.geotrust.com/resources/cps
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.geotrust.com/GeoTrustPCA-G3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-416
+            X509v3 Subject Key Identifier: 
+                14:67:8E:ED:83:4F:D6:1E:9D:40:04:0C:04:46:A1:70:34:B2:0F:72
+            X509v3 Authority Key Identifier: 
+                keyid:C4:79:CA:8E:A1:4E:03:1D:1C:DC:6B:DB:31:5B:94:3E:3F:30:7F:2D
+
+    Signature Algorithm: sha256WithRSAEncryption
+         10:10:ea:f2:10:d6:08:46:e2:c1:8f:3e:36:59:c8:2b:0f:fe:
+         4d:ec:e3:f8:b6:56:31:78:25:d4:76:f2:08:dd:ef:3f:cd:8b:
+         1c:7e:aa:7f:fc:0b:a8:23:64:51:b3:87:d6:09:fa:22:fa:c7:
+         0a:51:e8:ce:b8:f6:03:70:e0:1b:5a:b9:b1:b2:93:11:10:f9:
+         97:05:07:29:6c:6d:57:25:54:e8:f9:66:9b:0e:fb:db:9f:ee:
+         96:6f:65:cb:1f:d8:55:ce:31:fa:cf:02:f4:d0:7f:50:66:ff:
+         2f:79:9b:a5:c2:df:d6:cf:c8:15:83:96:84:98:b2:46:d4:5f:
+         13:a8:3e:a7:34:9c:05:38:da:cf:d6:69:95:a9:26:87:76:01:
+         d7:b2:51:0f:81:69:46:26:1c:99:b6:83:58:e3:3b:58:8f:dc:
+         b4:71:c0:b9:bf:42:9c:1c:03:9e:e4:46:a8:ea:b9:c1:cd:f6:
+         5b:a9:3c:96:fb:79:a4:33:73:a7:9e:78:b9:70:dc:72:74:c4:
+         32:c8:00:1b:c9:ef:48:d3:fb:3a:9b:fa:fe:7a:9a:40:69:1c:
+         c8:da:28:37:0b:d3:a3:b9:7e:96:cc:2b:28:c3:56:6c:6f:e9:
+         db:52:b1:fa:9a:fb:e7:af:b5:97:a6:22:c3:c5:a8:93:b1:00:
+         c9:07:b2:7d
+-----BEGIN CERTIFICATE-----
+MIIExzCCA6+gAwIBAgIQQYISfRLZxrMhOUMSVmQAuDANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTEzMDUyMzAwMDAwMFoXDTIzMDUyMjIzNTk1OVowRjELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHzAdBgNVBAMTFkdlb1Ry
+dXN0IFNIQTI1NiBTU0wgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDGqQtdF6V9xs8q78Zm0UIeX4N4aJGv5qeL8B1EAQoZypzUix3hoZCjwVu011tq
+i/wOSR7CYin+gBU5i4EqJ7X7EqgFIgvFLPXZmN0WLztm52KiQzKsj7WFyFIGLFzA
+d/pn94PoXgWNyKuhFjKK0kDshjocI6mNtQDecr2FVf4GAWBdrbPgZXOlkhSelFZv
+k+6vqTowJUqOCYTvt9LV15tJzenAXmdxIqxQkEMgXaGjFYP9/Kc5vGtlSBJg/90j
+szqq9J+cN1NBokeTgTMJ5SLGyBxJoW6NzIOzms3qQ/IZ0yTLqCmuUsz0CCewhOrO
+J7XhNBNzklyHhirGsGg2rcsJAgMBAAGjggFcMIIBWDA7BggrBgEFBQcBAQQvMC0w
+KwYIKwYBBQUHMAGGH2h0dHA6Ly9wY2EtZzMtb2NzcC5nZW90cnVzdC5jb20wEgYD
+VR0TAQH/BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGCmCGSAGG+EUBBzYwMzAxBggr
+BgEFBQcCARYlaHR0cDovL3d3dy5nZW90cnVzdC5jb20vcmVzb3VyY2VzL2NwczA7
+BgNVHR8ENDAyMDCgLqAshipodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9HZW9UcnVz
+dFBDQS1HMy5jcmwwDgYDVR0PAQH/BAQDAgEGMCoGA1UdEQQjMCGkHzAdMRswGQYD
+VQQDExJWZXJpU2lnbk1QS0ktMi00MTYwHQYDVR0OBBYEFBRnju2DT9YenUAEDARG
+oXA0sg9yMB8GA1UdIwQYMBaAFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3
+DQEBCwUAA4IBAQAQEOryENYIRuLBjz42WcgrD/5N7OP4tlYxeCXUdvII3e8/zYsc
+fqp//AuoI2RRs4fWCfoi+scKUejOuPYDcOAbWrmxspMREPmXBQcpbG1XJVTo+Wab
+Dvvbn+6Wb2XLH9hVzjH6zwL00H9QZv8veZulwt/Wz8gVg5aEmLJG1F8TqD6nNJwF
+ONrP1mmVqSaHdgHXslEPgWlGJhyZtoNY4ztYj9y0ccC5v0KcHAOe5Eao6rnBzfZb
+qTyW+3mkM3Onnni5cNxydMQyyAAbye9I0/s6m/r+eppAaRzI2ig3C9OjuX6WzCso
+w1Zsb+nbUrH6mvvnr7WXpiLDxaiTsQDJB7J9
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert35[] = {
+  0x30, 0x82, 0x04, 0xc7, 0x30, 0x82, 0x03, 0xaf, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x41, 0x82, 0x12, 0x7d, 0x12, 0xd9, 0xc6, 0xb3, 0x21,
+  0x39, 0x43, 0x12, 0x56, 0x64, 0x00, 0xb8, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0x98, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x47, 0x65,
+  0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20,
+  0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c,
+  0x79, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2d,
+  0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x69,
+  0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x33, 0x30, 0x35, 0x32, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x35, 0x32, 0x32, 0x32, 0x33,
+  0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x46, 0x31, 0x0b, 0x30, 0x09, 0x06,
+  0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14,
+  0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x47, 0x65, 0x6f, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x16, 0x47, 0x65, 0x6f, 0x54, 0x72,
+  0x75, 0x73, 0x74, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x20, 0x53,
+  0x53, 0x4c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01,
+  0x01, 0x00, 0xc6, 0xa9, 0x0b, 0x5d, 0x17, 0xa5, 0x7d, 0xc6, 0xcf, 0x2a,
+  0xef, 0xc6, 0x66, 0xd1, 0x42, 0x1e, 0x5f, 0x83, 0x78, 0x68, 0x91, 0xaf,
+  0xe6, 0xa7, 0x8b, 0xf0, 0x1d, 0x44, 0x01, 0x0a, 0x19, 0xca, 0x9c, 0xd4,
+  0x8b, 0x1d, 0xe1, 0xa1, 0x90, 0xa3, 0xc1, 0x5b, 0xb4, 0xd7, 0x5b, 0x6a,
+  0x8b, 0xfc, 0x0e, 0x49, 0x1e, 0xc2, 0x62, 0x29, 0xfe, 0x80, 0x15, 0x39,
+  0x8b, 0x81, 0x2a, 0x27, 0xb5, 0xfb, 0x12, 0xa8, 0x05, 0x22, 0x0b, 0xc5,
+  0x2c, 0xf5, 0xd9, 0x98, 0xdd, 0x16, 0x2f, 0x3b, 0x66, 0xe7, 0x62, 0xa2,
+  0x43, 0x32, 0xac, 0x8f, 0xb5, 0x85, 0xc8, 0x52, 0x06, 0x2c, 0x5c, 0xc0,
+  0x77, 0xfa, 0x67, 0xf7, 0x83, 0xe8, 0x5e, 0x05, 0x8d, 0xc8, 0xab, 0xa1,
+  0x16, 0x32, 0x8a, 0xd2, 0x40, 0xec, 0x86, 0x3a, 0x1c, 0x23, 0xa9, 0x8d,
+  0xb5, 0x00, 0xde, 0x72, 0xbd, 0x85, 0x55, 0xfe, 0x06, 0x01, 0x60, 0x5d,
+  0xad, 0xb3, 0xe0, 0x65, 0x73, 0xa5, 0x92, 0x14, 0x9e, 0x94, 0x56, 0x6f,
+  0x93, 0xee, 0xaf, 0xa9, 0x3a, 0x30, 0x25, 0x4a, 0x8e, 0x09, 0x84, 0xef,
+  0xb7, 0xd2, 0xd5, 0xd7, 0x9b, 0x49, 0xcd, 0xe9, 0xc0, 0x5e, 0x67, 0x71,
+  0x22, 0xac, 0x50, 0x90, 0x43, 0x20, 0x5d, 0xa1, 0xa3, 0x15, 0x83, 0xfd,
+  0xfc, 0xa7, 0x39, 0xbc, 0x6b, 0x65, 0x48, 0x12, 0x60, 0xff, 0xdd, 0x23,
+  0xb3, 0x3a, 0xaa, 0xf4, 0x9f, 0x9c, 0x37, 0x53, 0x41, 0xa2, 0x47, 0x93,
+  0x81, 0x33, 0x09, 0xe5, 0x22, 0xc6, 0xc8, 0x1c, 0x49, 0xa1, 0x6e, 0x8d,
+  0xcc, 0x83, 0xb3, 0x9a, 0xcd, 0xea, 0x43, 0xf2, 0x19, 0xd3, 0x24, 0xcb,
+  0xa8, 0x29, 0xae, 0x52, 0xcc, 0xf4, 0x08, 0x27, 0xb0, 0x84, 0xea, 0xce,
+  0x27, 0xb5, 0xe1, 0x34, 0x13, 0x73, 0x92, 0x5c, 0x87, 0x86, 0x2a, 0xc6,
+  0xb0, 0x68, 0x36, 0xad, 0xcb, 0x09, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
+  0x82, 0x01, 0x5c, 0x30, 0x82, 0x01, 0x58, 0x30, 0x3b, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2f, 0x30, 0x2d, 0x30,
+  0x2b, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+  0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x70, 0x63, 0x61, 0x2d,
+  0x67, 0x33, 0x2d, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x65, 0x6f, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x12, 0x06, 0x03,
+  0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01,
+  0xff, 0x02, 0x01, 0x00, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86,
+  0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x33, 0x30, 0x31, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x65, 0x6f, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x73,
+  0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x3b,
+  0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0xa0,
+  0x2e, 0xa0, 0x2c, 0x86, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x63, 0x72, 0x6c, 0x2e, 0x67, 0x65, 0x6f, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x6f, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x50, 0x43, 0x41, 0x2d, 0x47, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23,
+  0x30, 0x21, 0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+  0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x34, 0x31, 0x36, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x14, 0x67,
+  0x8e, 0xed, 0x83, 0x4f, 0xd6, 0x1e, 0x9d, 0x40, 0x04, 0x0c, 0x04, 0x46,
+  0xa1, 0x70, 0x34, 0xb2, 0x0f, 0x72, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc4, 0x79, 0xca, 0x8e, 0xa1,
+  0x4e, 0x03, 0x1d, 0x1c, 0xdc, 0x6b, 0xdb, 0x31, 0x5b, 0x94, 0x3e, 0x3f,
+  0x30, 0x7f, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x10,
+  0x10, 0xea, 0xf2, 0x10, 0xd6, 0x08, 0x46, 0xe2, 0xc1, 0x8f, 0x3e, 0x36,
+  0x59, 0xc8, 0x2b, 0x0f, 0xfe, 0x4d, 0xec, 0xe3, 0xf8, 0xb6, 0x56, 0x31,
+  0x78, 0x25, 0xd4, 0x76, 0xf2, 0x08, 0xdd, 0xef, 0x3f, 0xcd, 0x8b, 0x1c,
+  0x7e, 0xaa, 0x7f, 0xfc, 0x0b, 0xa8, 0x23, 0x64, 0x51, 0xb3, 0x87, 0xd6,
+  0x09, 0xfa, 0x22, 0xfa, 0xc7, 0x0a, 0x51, 0xe8, 0xce, 0xb8, 0xf6, 0x03,
+  0x70, 0xe0, 0x1b, 0x5a, 0xb9, 0xb1, 0xb2, 0x93, 0x11, 0x10, 0xf9, 0x97,
+  0x05, 0x07, 0x29, 0x6c, 0x6d, 0x57, 0x25, 0x54, 0xe8, 0xf9, 0x66, 0x9b,
+  0x0e, 0xfb, 0xdb, 0x9f, 0xee, 0x96, 0x6f, 0x65, 0xcb, 0x1f, 0xd8, 0x55,
+  0xce, 0x31, 0xfa, 0xcf, 0x02, 0xf4, 0xd0, 0x7f, 0x50, 0x66, 0xff, 0x2f,
+  0x79, 0x9b, 0xa5, 0xc2, 0xdf, 0xd6, 0xcf, 0xc8, 0x15, 0x83, 0x96, 0x84,
+  0x98, 0xb2, 0x46, 0xd4, 0x5f, 0x13, 0xa8, 0x3e, 0xa7, 0x34, 0x9c, 0x05,
+  0x38, 0xda, 0xcf, 0xd6, 0x69, 0x95, 0xa9, 0x26, 0x87, 0x76, 0x01, 0xd7,
+  0xb2, 0x51, 0x0f, 0x81, 0x69, 0x46, 0x26, 0x1c, 0x99, 0xb6, 0x83, 0x58,
+  0xe3, 0x3b, 0x58, 0x8f, 0xdc, 0xb4, 0x71, 0xc0, 0xb9, 0xbf, 0x42, 0x9c,
+  0x1c, 0x03, 0x9e, 0xe4, 0x46, 0xa8, 0xea, 0xb9, 0xc1, 0xcd, 0xf6, 0x5b,
+  0xa9, 0x3c, 0x96, 0xfb, 0x79, 0xa4, 0x33, 0x73, 0xa7, 0x9e, 0x78, 0xb9,
+  0x70, 0xdc, 0x72, 0x74, 0xc4, 0x32, 0xc8, 0x00, 0x1b, 0xc9, 0xef, 0x48,
+  0xd3, 0xfb, 0x3a, 0x9b, 0xfa, 0xfe, 0x7a, 0x9a, 0x40, 0x69, 0x1c, 0xc8,
+  0xda, 0x28, 0x37, 0x0b, 0xd3, 0xa3, 0xb9, 0x7e, 0x96, 0xcc, 0x2b, 0x28,
+  0xc3, 0x56, 0x6c, 0x6f, 0xe9, 0xdb, 0x52, 0xb1, 0xfa, 0x9a, 0xfb, 0xe7,
+  0xaf, 0xb5, 0x97, 0xa6, 0x22, 0xc3, 0xc5, 0xa8, 0x93, 0xb1, 0x00, 0xc9,
+  0x07, 0xb2, 0x7d,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7 (0x7)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., CN=Go Daddy Root Certificate Authority - G2
+        Validity
+            Not Before: May  3 07:00:00 2011 GMT
+            Not After : May  3 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b9:e0:cb:10:d4:af:76:bd:d4:93:62:eb:30:64:
+                    b8:81:08:6c:c3:04:d9:62:17:8e:2f:ff:3e:65:cf:
+                    8f:ce:62:e6:3c:52:1c:da:16:45:4b:55:ab:78:6b:
+                    63:83:62:90:ce:0f:69:6c:99:c8:1a:14:8b:4c:cc:
+                    45:33:ea:88:dc:9e:a3:af:2b:fe:80:61:9d:79:57:
+                    c4:cf:2e:f4:3f:30:3c:5d:47:fc:9a:16:bc:c3:37:
+                    96:41:51:8e:11:4b:54:f8:28:be:d0:8c:be:f0:30:
+                    38:1e:f3:b0:26:f8:66:47:63:6d:de:71:26:47:8f:
+                    38:47:53:d1:46:1d:b4:e3:dc:00:ea:45:ac:bd:bc:
+                    71:d9:aa:6f:00:db:db:cd:30:3a:79:4f:5f:4c:47:
+                    f8:1d:ef:5b:c2:c4:9d:60:3b:b1:b2:43:91:d8:a4:
+                    33:4e:ea:b3:d6:27:4f:ad:25:8a:a5:c6:f4:d5:d0:
+                    a6:ae:74:05:64:57:88:b5:44:55:d4:2d:2a:3a:3e:
+                    f8:b8:bd:e9:32:0a:02:94:64:c4:16:3a:50:f1:4a:
+                    ae:e7:79:33:af:0c:20:07:7f:e8:df:04:39:c2:69:
+                    02:6c:63:52:fa:77:c1:1b:c8:74:87:c8:b9:93:18:
+                    50:54:35:4b:69:4e:bc:3b:d3:49:2e:1f:dc:c1:d2:
+                    52:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                40:C2:BD:27:8E:CC:34:83:30:A2:33:D7:FB:6C:B3:F0:B4:2C:80:CE
+            X509v3 Authority Key Identifier: 
+                keyid:3A:9A:85:07:10:67:28:B6:EF:F6:BD:05:41:6E:20:C1:94:DA:0F:DE
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.godaddy.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.godaddy.com/gdroot-g2.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.godaddy.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         08:7e:6c:93:10:c8:38:b8:96:a9:90:4b:ff:a1:5f:4f:04:ef:
+         6c:3e:9c:88:06:c9:50:8f:a6:73:f7:57:31:1b:be:bc:e4:2f:
+         db:f8:ba:d3:5b:e0:b4:e7:e6:79:62:0e:0c:a2:d7:6a:63:73:
+         31:b5:f5:a8:48:a4:3b:08:2d:a2:5d:90:d7:b4:7c:25:4f:11:
+         56:30:c4:b6:44:9d:7b:2c:9d:e5:5e:e6:ef:0c:61:aa:bf:e4:
+         2a:1b:ee:84:9e:b8:83:7d:c1:43:ce:44:a7:13:70:0d:91:1f:
+         f4:c8:13:ad:83:60:d9:d8:72:a8:73:24:1e:b5:ac:22:0e:ca:
+         17:89:62:58:44:1b:ab:89:25:01:00:0f:cd:c4:1b:62:db:51:
+         b4:d3:0f:51:2a:9b:f4:bc:73:fc:76:ce:36:a4:cd:d9:d8:2c:
+         ea:ae:9b:f5:2a:b2:90:d1:4d:75:18:8a:3f:8a:41:90:23:7d:
+         5b:4b:fe:a4:03:58:9b:46:b2:c3:60:60:83:f8:7d:50:41:ce:
+         c2:a1:90:c3:bb:ef:02:2f:d2:15:54:ee:44:15:d9:0a:ae:a7:
+         8a:33:ed:b1:2d:76:36:26:dc:04:eb:9f:f7:61:1f:15:dc:87:
+         6f:ee:46:96:28:ad:a1:26:7d:0a:09:a7:2e:04:a3:8d:bc:f8:
+         bc:04:30:01
+-----BEGIN CERTIFICATE-----
+MIIE0DCCA7igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3
+MDAwMFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjEtMCsGA1UE
+CxMkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkvMTMwMQYDVQQD
+EypHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC54MsQ1K92vdSTYuswZLiBCGzD
+BNliF44v/z5lz4/OYuY8UhzaFkVLVat4a2ODYpDOD2lsmcgaFItMzEUz6ojcnqOv
+K/6AYZ15V8TPLvQ/MDxdR/yaFrzDN5ZBUY4RS1T4KL7QjL7wMDge87Am+GZHY23e
+cSZHjzhHU9FGHbTj3ADqRay9vHHZqm8A29vNMDp5T19MR/gd71vCxJ1gO7GyQ5HY
+pDNO6rPWJ0+tJYqlxvTV0KaudAVkV4i1RFXULSo6Pvi4vekyCgKUZMQWOlDxSq7n
+eTOvDCAHf+jfBDnCaQJsY1L6d8EbyHSHyLmTGFBUNUtpTrw700kuH9zB0lL7AgMB
+AAGjggEaMIIBFjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
+HQ4EFgQUQMK9J47MNIMwojPX+2yz8LQsgM4wHwYDVR0jBBgwFoAUOpqFBxBnKLbv
+9r0FQW4gwZTaD94wNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC5nb2RhZGR5LmNvbS8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5n
+b2RhZGR5LmNvbS9nZHJvb3QtZzIuY3JsMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEG
+CCsGAQUFBwIBFiVodHRwczovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQAIfmyTEMg4uJapkEv/oV9PBO9sPpyIBslQj6Zz
+91cxG7685C/b+LrTW+C05+Z5Yg4MotdqY3MxtfWoSKQ7CC2iXZDXtHwlTxFWMMS2
+RJ17LJ3lXubvDGGqv+QqG+6EnriDfcFDzkSnE3ANkR/0yBOtg2DZ2HKocyQetawi
+DsoXiWJYRBuriSUBAA/NxBti21G00w9RKpv0vHP8ds42pM3Z2Czqrpv1KrKQ0U11
+GIo/ikGQI31bS/6kA1ibRrLDYGCD+H1QQc7CoZDDu+8CL9IVVO5EFdkKrqeKM+2x
+LXY2JtwE65/3YR8V3Idv7kaWKK2hJn0KCacuBKONvPi8BDAB
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert36[] = {
+  0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x03, 0xb8, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x83, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+  0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+  0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+  0x6c, 0x65, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x11, 0x47, 0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x28, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64,
+  0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xb4, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+  0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+  0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x47,
+  0x6f, 0x44, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2c, 0x20,
+  0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65,
+  0x72, 0x74, 0x73, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+  0x72, 0x79, 0x2f, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x2a, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x53,
+  0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xb9, 0xe0, 0xcb, 0x10, 0xd4, 0xaf, 0x76,
+  0xbd, 0xd4, 0x93, 0x62, 0xeb, 0x30, 0x64, 0xb8, 0x81, 0x08, 0x6c, 0xc3,
+  0x04, 0xd9, 0x62, 0x17, 0x8e, 0x2f, 0xff, 0x3e, 0x65, 0xcf, 0x8f, 0xce,
+  0x62, 0xe6, 0x3c, 0x52, 0x1c, 0xda, 0x16, 0x45, 0x4b, 0x55, 0xab, 0x78,
+  0x6b, 0x63, 0x83, 0x62, 0x90, 0xce, 0x0f, 0x69, 0x6c, 0x99, 0xc8, 0x1a,
+  0x14, 0x8b, 0x4c, 0xcc, 0x45, 0x33, 0xea, 0x88, 0xdc, 0x9e, 0xa3, 0xaf,
+  0x2b, 0xfe, 0x80, 0x61, 0x9d, 0x79, 0x57, 0xc4, 0xcf, 0x2e, 0xf4, 0x3f,
+  0x30, 0x3c, 0x5d, 0x47, 0xfc, 0x9a, 0x16, 0xbc, 0xc3, 0x37, 0x96, 0x41,
+  0x51, 0x8e, 0x11, 0x4b, 0x54, 0xf8, 0x28, 0xbe, 0xd0, 0x8c, 0xbe, 0xf0,
+  0x30, 0x38, 0x1e, 0xf3, 0xb0, 0x26, 0xf8, 0x66, 0x47, 0x63, 0x6d, 0xde,
+  0x71, 0x26, 0x47, 0x8f, 0x38, 0x47, 0x53, 0xd1, 0x46, 0x1d, 0xb4, 0xe3,
+  0xdc, 0x00, 0xea, 0x45, 0xac, 0xbd, 0xbc, 0x71, 0xd9, 0xaa, 0x6f, 0x00,
+  0xdb, 0xdb, 0xcd, 0x30, 0x3a, 0x79, 0x4f, 0x5f, 0x4c, 0x47, 0xf8, 0x1d,
+  0xef, 0x5b, 0xc2, 0xc4, 0x9d, 0x60, 0x3b, 0xb1, 0xb2, 0x43, 0x91, 0xd8,
+  0xa4, 0x33, 0x4e, 0xea, 0xb3, 0xd6, 0x27, 0x4f, 0xad, 0x25, 0x8a, 0xa5,
+  0xc6, 0xf4, 0xd5, 0xd0, 0xa6, 0xae, 0x74, 0x05, 0x64, 0x57, 0x88, 0xb5,
+  0x44, 0x55, 0xd4, 0x2d, 0x2a, 0x3a, 0x3e, 0xf8, 0xb8, 0xbd, 0xe9, 0x32,
+  0x0a, 0x02, 0x94, 0x64, 0xc4, 0x16, 0x3a, 0x50, 0xf1, 0x4a, 0xae, 0xe7,
+  0x79, 0x33, 0xaf, 0x0c, 0x20, 0x07, 0x7f, 0xe8, 0xdf, 0x04, 0x39, 0xc2,
+  0x69, 0x02, 0x6c, 0x63, 0x52, 0xfa, 0x77, 0xc1, 0x1b, 0xc8, 0x74, 0x87,
+  0xc8, 0xb9, 0x93, 0x18, 0x50, 0x54, 0x35, 0x4b, 0x69, 0x4e, 0xbc, 0x3b,
+  0xd3, 0x49, 0x2e, 0x1f, 0xdc, 0xc1, 0xd2, 0x52, 0xfb, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x1a, 0x30, 0x82, 0x01, 0x16, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x40, 0xc2, 0xbd, 0x27, 0x8e, 0xcc,
+  0x34, 0x83, 0x30, 0xa2, 0x33, 0xd7, 0xfb, 0x6c, 0xb3, 0xf0, 0xb4, 0x2c,
+  0x80, 0xce, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0x3a, 0x9a, 0x85, 0x07, 0x10, 0x67, 0x28, 0xb6, 0xef,
+  0xf6, 0xbd, 0x05, 0x41, 0x6e, 0x20, 0xc1, 0x94, 0xda, 0x0f, 0xde, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x35, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0xa0, 0x28, 0xa0, 0x26, 0x86, 0x24,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x67,
+  0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67,
+  0x64, 0x72, 0x6f, 0x6f, 0x74, 0x2d, 0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f, 0x30, 0x3d, 0x30,
+  0x3b, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x33, 0x30, 0x31, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x25, 0x68,
+  0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73,
+  0x2e, 0x67, 0x6f, 0x64, 0x61, 0x64, 0x64, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x08, 0x7e, 0x6c, 0x93,
+  0x10, 0xc8, 0x38, 0xb8, 0x96, 0xa9, 0x90, 0x4b, 0xff, 0xa1, 0x5f, 0x4f,
+  0x04, 0xef, 0x6c, 0x3e, 0x9c, 0x88, 0x06, 0xc9, 0x50, 0x8f, 0xa6, 0x73,
+  0xf7, 0x57, 0x31, 0x1b, 0xbe, 0xbc, 0xe4, 0x2f, 0xdb, 0xf8, 0xba, 0xd3,
+  0x5b, 0xe0, 0xb4, 0xe7, 0xe6, 0x79, 0x62, 0x0e, 0x0c, 0xa2, 0xd7, 0x6a,
+  0x63, 0x73, 0x31, 0xb5, 0xf5, 0xa8, 0x48, 0xa4, 0x3b, 0x08, 0x2d, 0xa2,
+  0x5d, 0x90, 0xd7, 0xb4, 0x7c, 0x25, 0x4f, 0x11, 0x56, 0x30, 0xc4, 0xb6,
+  0x44, 0x9d, 0x7b, 0x2c, 0x9d, 0xe5, 0x5e, 0xe6, 0xef, 0x0c, 0x61, 0xaa,
+  0xbf, 0xe4, 0x2a, 0x1b, 0xee, 0x84, 0x9e, 0xb8, 0x83, 0x7d, 0xc1, 0x43,
+  0xce, 0x44, 0xa7, 0x13, 0x70, 0x0d, 0x91, 0x1f, 0xf4, 0xc8, 0x13, 0xad,
+  0x83, 0x60, 0xd9, 0xd8, 0x72, 0xa8, 0x73, 0x24, 0x1e, 0xb5, 0xac, 0x22,
+  0x0e, 0xca, 0x17, 0x89, 0x62, 0x58, 0x44, 0x1b, 0xab, 0x89, 0x25, 0x01,
+  0x00, 0x0f, 0xcd, 0xc4, 0x1b, 0x62, 0xdb, 0x51, 0xb4, 0xd3, 0x0f, 0x51,
+  0x2a, 0x9b, 0xf4, 0xbc, 0x73, 0xfc, 0x76, 0xce, 0x36, 0xa4, 0xcd, 0xd9,
+  0xd8, 0x2c, 0xea, 0xae, 0x9b, 0xf5, 0x2a, 0xb2, 0x90, 0xd1, 0x4d, 0x75,
+  0x18, 0x8a, 0x3f, 0x8a, 0x41, 0x90, 0x23, 0x7d, 0x5b, 0x4b, 0xfe, 0xa4,
+  0x03, 0x58, 0x9b, 0x46, 0xb2, 0xc3, 0x60, 0x60, 0x83, 0xf8, 0x7d, 0x50,
+  0x41, 0xce, 0xc2, 0xa1, 0x90, 0xc3, 0xbb, 0xef, 0x02, 0x2f, 0xd2, 0x15,
+  0x54, 0xee, 0x44, 0x15, 0xd9, 0x0a, 0xae, 0xa7, 0x8a, 0x33, 0xed, 0xb1,
+  0x2d, 0x76, 0x36, 0x26, 0xdc, 0x04, 0xeb, 0x9f, 0xf7, 0x61, 0x1f, 0x15,
+  0xdc, 0x87, 0x6f, 0xee, 0x46, 0x96, 0x28, 0xad, 0xa1, 0x26, 0x7d, 0x0a,
+  0x09, 0xa7, 0x2e, 0x04, 0xa3, 0x8d, 0xbc, 0xf8, 0xbc, 0x04, 0x30, 0x01,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            25:0c:e8:e0:30:61:2e:9f:2b:89:f7:05:4d:7c:f8:fd
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
+        Validity
+            Not Before: Nov  8 00:00:00 2006 GMT
+            Not After : Nov  7 23:59:59 2021 GMT
+        Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:24:08:08:29:7a:35:9e:60:0c:aa:e7:4b:3b:
+                    4e:dc:7c:bc:3c:45:1c:bb:2b:e0:fe:29:02:f9:57:
+                    08:a3:64:85:15:27:f5:f1:ad:c8:31:89:5d:22:e8:
+                    2a:aa:a6:42:b3:8f:f8:b9:55:b7:b1:b7:4b:b3:fe:
+                    8f:7e:07:57:ec:ef:43:db:66:62:15:61:cf:60:0d:
+                    a4:d8:de:f8:e0:c3:62:08:3d:54:13:eb:49:ca:59:
+                    54:85:26:e5:2b:8f:1b:9f:eb:f5:a1:91:c2:33:49:
+                    d8:43:63:6a:52:4b:d2:8f:e8:70:51:4d:d1:89:69:
+                    7b:c7:70:f6:b3:dc:12:74:db:7b:5d:4b:56:d3:96:
+                    bf:15:77:a1:b0:f4:a2:25:f2:af:1c:92:67:18:e5:
+                    f4:06:04:ef:90:b9:e4:00:e4:dd:3a:b5:19:ff:02:
+                    ba:f4:3c:ee:e0:8b:eb:37:8b:ec:f4:d7:ac:f2:f6:
+                    f0:3d:af:dd:75:91:33:19:1d:1c:40:cb:74:24:19:
+                    21:93:d9:14:fe:ac:2a:52:c7:8f:d5:04:49:e4:8d:
+                    63:47:88:3c:69:83:cb:fe:47:bd:2b:7e:4f:c5:95:
+                    ae:0e:9d:d4:d1:43:c0:67:73:e3:14:08:7e:e5:3f:
+                    9f:73:b8:33:0a:cf:5d:3f:34:87:96:8a:ee:53:e8:
+                    25:15
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.verisign.com/pca3.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://www.verisign.com/cps
+
+            X509v3 Subject Key Identifier: 
+                7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+            1.3.6.1.5.5.7.1.12: 
+                0_.].[0Y0W0U..image/gif0!0.0...+..............k...j.H.,{..0%.#http://logo.verisign.com/vslogo.gif
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.verisign.com
+
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication, Code Signing, Netscape Server Gated Crypto, 2.16.840.1.113733.1.8.1
+    Signature Algorithm: sha1WithRSAEncryption
+         13:02:dd:f8:e8:86:00:f2:5a:f8:f8:20:0c:59:88:62:07:ce:
+         ce:f7:4e:f9:bb:59:a1:98:e5:e1:38:dd:4e:bc:66:18:d3:ad:
+         eb:18:f2:0d:c9:6d:3e:4a:94:20:c3:3c:ba:bd:65:54:c6:af:
+         44:b3:10:ad:2c:6b:3e:ab:d7:07:b6:b8:81:63:c5:f9:5e:2e:
+         e5:2a:67:ce:cd:33:0c:2a:d7:89:56:03:23:1f:b3:be:e8:3a:
+         08:59:b4:ec:45:35:f7:8a:5b:ff:66:cf:50:af:c6:6d:57:8d:
+         19:78:b7:b9:a2:d1:57:ea:1f:9a:4b:af:ba:c9:8e:12:7e:c6:
+         bd:ff
+-----BEGIN CERTIFICATE-----
+MIIE0DCCBDmgAwIBAgIQJQzo4DBhLp8rifcFTXz4/TANBgkqhkiG9w0BAQUFADBf
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
+LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv
+ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb
+ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR
+TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH
+iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB
+AAGjggGbMIIBlzAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0
+dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjA9
+BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVy
+aXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8v
+b2NzcC52ZXJpc2lnbi5jb20wPgYDVR0lBDcwNQYIKwYBBQUHAwEGCCsGAQUFBwMC
+BggrBgEFBQcDAwYJYIZIAYb4QgQBBgpghkgBhvhFAQgBMA0GCSqGSIb3DQEBBQUA
+A4GBABMC3fjohgDyWvj4IAxZiGIHzs73Tvm7WaGY5eE43U68ZhjTresY8g3JbT5K
+lCDDPLq9ZVTGr0SzEK0saz6r1we2uIFjxfleLuUqZ87NMwwq14lWAyMfs77oOghZ
+tOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert37[] = {
+  0x30, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x04, 0x39, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x25, 0x0c, 0xe8, 0xe0, 0x30, 0x61, 0x2e, 0x9f, 0x2b,
+  0x89, 0xf7, 0x05, 0x4d, 0x7c, 0xf8, 0xfd, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x5f,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e,
+  0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62,
+  0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30,
+  0x1e, 0x17, 0x0d, 0x30, 0x36, 0x31, 0x31, 0x30, 0x38, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x31, 0x31, 0x30, 0x37,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xca, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+  0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3a, 0x30,
+  0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28, 0x63, 0x29, 0x20,
+  0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+  0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f,
+  0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64,
+  0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x45, 0x30,
+  0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33,
+  0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50, 0x72, 0x69, 0x6d,
+  0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xaf, 0x24, 0x08, 0x08, 0x29, 0x7a, 0x35,
+  0x9e, 0x60, 0x0c, 0xaa, 0xe7, 0x4b, 0x3b, 0x4e, 0xdc, 0x7c, 0xbc, 0x3c,
+  0x45, 0x1c, 0xbb, 0x2b, 0xe0, 0xfe, 0x29, 0x02, 0xf9, 0x57, 0x08, 0xa3,
+  0x64, 0x85, 0x15, 0x27, 0xf5, 0xf1, 0xad, 0xc8, 0x31, 0x89, 0x5d, 0x22,
+  0xe8, 0x2a, 0xaa, 0xa6, 0x42, 0xb3, 0x8f, 0xf8, 0xb9, 0x55, 0xb7, 0xb1,
+  0xb7, 0x4b, 0xb3, 0xfe, 0x8f, 0x7e, 0x07, 0x57, 0xec, 0xef, 0x43, 0xdb,
+  0x66, 0x62, 0x15, 0x61, 0xcf, 0x60, 0x0d, 0xa4, 0xd8, 0xde, 0xf8, 0xe0,
+  0xc3, 0x62, 0x08, 0x3d, 0x54, 0x13, 0xeb, 0x49, 0xca, 0x59, 0x54, 0x85,
+  0x26, 0xe5, 0x2b, 0x8f, 0x1b, 0x9f, 0xeb, 0xf5, 0xa1, 0x91, 0xc2, 0x33,
+  0x49, 0xd8, 0x43, 0x63, 0x6a, 0x52, 0x4b, 0xd2, 0x8f, 0xe8, 0x70, 0x51,
+  0x4d, 0xd1, 0x89, 0x69, 0x7b, 0xc7, 0x70, 0xf6, 0xb3, 0xdc, 0x12, 0x74,
+  0xdb, 0x7b, 0x5d, 0x4b, 0x56, 0xd3, 0x96, 0xbf, 0x15, 0x77, 0xa1, 0xb0,
+  0xf4, 0xa2, 0x25, 0xf2, 0xaf, 0x1c, 0x92, 0x67, 0x18, 0xe5, 0xf4, 0x06,
+  0x04, 0xef, 0x90, 0xb9, 0xe4, 0x00, 0xe4, 0xdd, 0x3a, 0xb5, 0x19, 0xff,
+  0x02, 0xba, 0xf4, 0x3c, 0xee, 0xe0, 0x8b, 0xeb, 0x37, 0x8b, 0xec, 0xf4,
+  0xd7, 0xac, 0xf2, 0xf6, 0xf0, 0x3d, 0xaf, 0xdd, 0x75, 0x91, 0x33, 0x19,
+  0x1d, 0x1c, 0x40, 0xcb, 0x74, 0x24, 0x19, 0x21, 0x93, 0xd9, 0x14, 0xfe,
+  0xac, 0x2a, 0x52, 0xc7, 0x8f, 0xd5, 0x04, 0x49, 0xe4, 0x8d, 0x63, 0x47,
+  0x88, 0x3c, 0x69, 0x83, 0xcb, 0xfe, 0x47, 0xbd, 0x2b, 0x7e, 0x4f, 0xc5,
+  0x95, 0xae, 0x0e, 0x9d, 0xd4, 0xd1, 0x43, 0xc0, 0x67, 0x73, 0xe3, 0x14,
+  0x08, 0x7e, 0xe5, 0x3f, 0x9f, 0x73, 0xb8, 0x33, 0x0a, 0xcf, 0x5d, 0x3f,
+  0x34, 0x87, 0x96, 0x8a, 0xee, 0x53, 0xe8, 0x25, 0x15, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x9b, 0x30, 0x82, 0x01, 0x97, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03,
+  0x01, 0x01, 0xff, 0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a,
+  0x30, 0x28, 0x30, 0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63,
+  0x61, 0x33, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x3d,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x2a, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1c, 0x68, 0x74, 0x74,
+  0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65, 0x72,
+  0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70,
+  0x73, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x6d, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f,
+  0xa1, 0x5d, 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30,
+  0x1f, 0x30, 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14,
+  0x8f, 0xe5, 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80,
+  0x6a, 0xd4, 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e,
+  0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x76, 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30,
+  0x34, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04,
+  0x28, 0x30, 0x26, 0x30, 0x24, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x6f, 0x63, 0x73, 0x70, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67,
+  0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x1d, 0x25,
+  0x04, 0x37, 0x30, 0x35, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06, 0x09,
+  0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x04, 0x01, 0x06, 0x0a, 0x60,
+  0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x08, 0x01, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00,
+  0x03, 0x81, 0x81, 0x00, 0x13, 0x02, 0xdd, 0xf8, 0xe8, 0x86, 0x00, 0xf2,
+  0x5a, 0xf8, 0xf8, 0x20, 0x0c, 0x59, 0x88, 0x62, 0x07, 0xce, 0xce, 0xf7,
+  0x4e, 0xf9, 0xbb, 0x59, 0xa1, 0x98, 0xe5, 0xe1, 0x38, 0xdd, 0x4e, 0xbc,
+  0x66, 0x18, 0xd3, 0xad, 0xeb, 0x18, 0xf2, 0x0d, 0xc9, 0x6d, 0x3e, 0x4a,
+  0x94, 0x20, 0xc3, 0x3c, 0xba, 0xbd, 0x65, 0x54, 0xc6, 0xaf, 0x44, 0xb3,
+  0x10, 0xad, 0x2c, 0x6b, 0x3e, 0xab, 0xd7, 0x07, 0xb6, 0xb8, 0x81, 0x63,
+  0xc5, 0xf9, 0x5e, 0x2e, 0xe5, 0x2a, 0x67, 0xce, 0xcd, 0x33, 0x0c, 0x2a,
+  0xd7, 0x89, 0x56, 0x03, 0x23, 0x1f, 0xb3, 0xbe, 0xe8, 0x3a, 0x08, 0x59,
+  0xb4, 0xec, 0x45, 0x35, 0xf7, 0x8a, 0x5b, 0xff, 0x66, 0xcf, 0x50, 0xaf,
+  0xc6, 0x6d, 0x57, 0x8d, 0x19, 0x78, 0xb7, 0xb9, 0xa2, 0xd1, 0x57, 0xea,
+  0x1f, 0x9a, 0x4b, 0xaf, 0xba, 0xc9, 0x8e, 0x12, 0x7e, 0xc6, 0xbd, 0xff,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            2c:69:e1:2f:6a:67:0b:d9:9d:d2:0f:91:9e:f0:9e:51
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=thawte, Inc., OU=Certification Services Division, OU=(c) 2006 thawte, Inc. - For authorized use only, CN=thawte Primary Root CA
+        Validity
+            Not Before: Jun 10 00:00:00 2014 GMT
+            Not After : Jun  9 23:59:59 2024 GMT
+        Subject: C=US, O=thawte, Inc., OU=Domain Validated SSL, CN=thawte DV SSL CA - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ea:94:07:85:c8:41:2c:f6:83:12:6c:92:5f:ab:
+                    1f:00:d4:96:6f:74:cd:2e:11:e9:6c:0f:39:01:b9:
+                    48:90:40:39:4d:c4:a2:c8:79:6a:a5:9a:bd:91:44:
+                    65:77:54:ad:ff:25:5f:ee:42:fb:b3:02:0f:ea:5d:
+                    7a:dd:1a:54:9e:d7:73:42:9b:cc:79:5f:c5:4d:f4:
+                    b7:0b:18:39:20:7a:dd:50:01:5d:34:45:5f:4c:11:
+                    0e:f5:87:26:26:b4:b0:f3:7e:71:a0:31:71:50:89:
+                    68:5a:63:8a:14:62:e5:8c:3a:16:55:0d:3e:eb:aa:
+                    80:1d:71:7a:e3:87:07:ab:bd:a2:74:cd:da:08:01:
+                    9d:1b:cc:27:88:8c:47:d4:69:25:42:d6:bb:50:6d:
+                    85:50:d0:48:82:0d:08:9f:e9:23:e3:42:c6:3c:98:
+                    b8:bb:6e:c5:70:13:df:19:1d:01:fd:d2:b5:4e:e6:
+                    62:f4:07:fa:6b:7d:11:77:c4:62:4f:40:4e:a5:78:
+                    97:ab:2c:4d:0c:a7:7c:c3:c4:50:32:9f:d0:70:9b:
+                    0f:ff:ff:75:59:34:85:ad:49:d5:35:ee:4f:5b:d4:
+                    d4:36:95:a0:7e:e8:c5:a1:1c:bd:13:4e:7d:ee:63:
+                    6a:96:19:99:c8:a7:2a:00:e6:51:8d:46:eb:30:58:
+                    e8:2d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: https://www.thawte.com/cps
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://t.symcd.com
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://t.symcb.com/ThawtePCA.crl
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-698
+            X509v3 Subject Key Identifier: 
+                9F:B8:C1:A9:6C:F2:F5:C0:22:2A:94:ED:5C:99:AC:D4:EC:D7:C6:07
+            X509v3 Authority Key Identifier: 
+                keyid:7B:5B:45:CF:AF:CE:CB:7A:FD:31:92:1A:6A:B6:F3:46:EB:57:48:50
+
+    Signature Algorithm: sha256WithRSAEncryption
+         53:54:f2:47:a8:02:d7:ef:aa:35:78:be:4a:08:0d:90:18:4b:
+         6d:9e:2a:53:2b:e9:54:17:77:74:29:7e:d0:37:07:05:b8:e4:
+         fa:b8:b4:63:98:44:dc:c6:4f:81:06:8c:3a:be:c7:30:57:c6:
+         70:fc:d6:93:19:9f:c3:55:d7:3e:1f:72:8a:9d:30:5a:35:97:
+         32:cb:63:e4:c6:72:df:fb:68:ca:69:2f:db:cd:50:38:3e:2b:
+         bb:ab:3b:82:c7:fd:4b:9b:bd:7c:41:98:ef:01:53:d8:35:8f:
+         25:c9:03:06:e6:9c:57:c1:51:0f:9e:f6:7d:93:4d:f8:76:c8:
+         3a:6b:f4:c4:8f:33:32:7f:9d:21:84:34:d9:a7:f9:92:fa:41:
+         91:61:84:05:9d:a3:79:46:ce:67:e7:81:f2:5e:ac:4c:bc:a8:
+         ab:6a:6d:15:e2:9c:4e:5a:d9:63:80:bc:f7:42:eb:9a:44:c6:
+         8c:6b:06:36:b4:8b:32:89:de:c2:f1:a8:26:aa:a9:ac:ff:ea:
+         71:a6:e7:8c:41:fa:17:35:bb:b3:87:31:a9:93:c2:c8:58:e1:
+         0a:4e:95:83:9c:b9:ed:3b:a5:ef:08:e0:74:f9:c3:1b:e6:07:
+         a3:ee:07:d7:42:22:79:21:a0:a1:d4:1d:26:d3:d0:d6:a6:5d:
+         2b:41:c0:79
+-----BEGIN CERTIFICATE-----
+MIIE0jCCA7qgAwIBAgIQLGnhL2pnC9md0g+RnvCeUTANBgkqhkiG9w0BAQsFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMTQwNjEwMDAwMDAwWhcNMjQw
+NjA5MjM1OTU5WjBjMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMu
+MR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEeMBwGA1UEAxMVdGhhd3Rl
+IERWIFNTTCBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+6pQHhchBLPaDEmySX6sfANSWb3TNLhHpbA85AblIkEA5TcSiyHlqpZq9kURld1St
+/yVf7kL7swIP6l163RpUntdzQpvMeV/FTfS3Cxg5IHrdUAFdNEVfTBEO9YcmJrSw
+835xoDFxUIloWmOKFGLljDoWVQ0+66qAHXF644cHq72idM3aCAGdG8wniIxH1Gkl
+Qta7UG2FUNBIgg0In+kj40LGPJi4u27FcBPfGR0B/dK1TuZi9Af6a30Rd8RiT0BO
+pXiXqyxNDKd8w8RQMp/QcJsP//91WTSFrUnVNe5PW9TUNpWgfujFoRy9E0597mNq
+lhmZyKcqAOZRjUbrMFjoLQIDAQABo4IBOTCCATUwEgYDVR0TAQH/BAgwBgEB/wIB
+ADBBBgNVHSAEOjA4MDYGCmCGSAGG+EUBBzYwKDAmBggrBgEFBQcCARYaaHR0cHM6
+Ly93d3cudGhhd3RlLmNvbS9jcHMwDgYDVR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEB
+BCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL3Quc3ltY2QuY29tMDEGA1UdHwQqMCgw
+JqAkoCKGIGh0dHA6Ly90LnN5bWNiLmNvbS9UaGF3dGVQQ0EuY3JsMCkGA1UdEQQi
+MCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTY5ODAdBgNVHQ4EFgQUn7jB
+qWzy9cAiKpTtXJms1OzXxgcwHwYDVR0jBBgwFoAUe1tFz6/Oy3r9MZIaarbzRutX
+SFAwDQYJKoZIhvcNAQELBQADggEBAFNU8keoAtfvqjV4vkoIDZAYS22eKlMr6VQX
+d3QpftA3BwW45Pq4tGOYRNzGT4EGjDq+xzBXxnD81pMZn8NV1z4fcoqdMFo1lzLL
+Y+TGct/7aMppL9vNUDg+K7urO4LH/UubvXxBmO8BU9g1jyXJAwbmnFfBUQ+e9n2T
+Tfh2yDpr9MSPMzJ/nSGENNmn+ZL6QZFhhAWdo3lGzmfngfJerEy8qKtqbRXinE5a
+2WOAvPdC65pExoxrBja0izKJ3sLxqCaqqaz/6nGm54xB+hc1u7OHMamTwshY4QpO
+lYOcue07pe8I4HT5wxvmB6PuB9dCInkhoKHUHSbT0NamXStBwHk=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert38[] = {
+  0x30, 0x82, 0x04, 0xd2, 0x30, 0x82, 0x03, 0xba, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x2c, 0x69, 0xe1, 0x2f, 0x6a, 0x67, 0x0b, 0xd9, 0x9d,
+  0xd2, 0x0f, 0x91, 0x9e, 0xf0, 0x9e, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xa9, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0c, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x44,
+  0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x38, 0x30, 0x36, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x2f, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30,
+  0x30, 0x36, 0x20, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75,
+  0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65,
+  0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x16, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20,
+  0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x31, 0x30,
+  0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30,
+  0x36, 0x30, 0x39, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x63,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55,
+  0x53, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0c,
+  0x74, 0x68, 0x61, 0x77, 0x74, 0x65, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x31, 0x1d, 0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x14, 0x44,
+  0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+  0x74, 0x65, 0x64, 0x20, 0x53, 0x53, 0x4c, 0x31, 0x1e, 0x30, 0x1c, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x20, 0x44, 0x56, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x2d,
+  0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xea, 0x94, 0x07, 0x85, 0xc8, 0x41, 0x2c, 0xf6, 0x83, 0x12, 0x6c, 0x92,
+  0x5f, 0xab, 0x1f, 0x00, 0xd4, 0x96, 0x6f, 0x74, 0xcd, 0x2e, 0x11, 0xe9,
+  0x6c, 0x0f, 0x39, 0x01, 0xb9, 0x48, 0x90, 0x40, 0x39, 0x4d, 0xc4, 0xa2,
+  0xc8, 0x79, 0x6a, 0xa5, 0x9a, 0xbd, 0x91, 0x44, 0x65, 0x77, 0x54, 0xad,
+  0xff, 0x25, 0x5f, 0xee, 0x42, 0xfb, 0xb3, 0x02, 0x0f, 0xea, 0x5d, 0x7a,
+  0xdd, 0x1a, 0x54, 0x9e, 0xd7, 0x73, 0x42, 0x9b, 0xcc, 0x79, 0x5f, 0xc5,
+  0x4d, 0xf4, 0xb7, 0x0b, 0x18, 0x39, 0x20, 0x7a, 0xdd, 0x50, 0x01, 0x5d,
+  0x34, 0x45, 0x5f, 0x4c, 0x11, 0x0e, 0xf5, 0x87, 0x26, 0x26, 0xb4, 0xb0,
+  0xf3, 0x7e, 0x71, 0xa0, 0x31, 0x71, 0x50, 0x89, 0x68, 0x5a, 0x63, 0x8a,
+  0x14, 0x62, 0xe5, 0x8c, 0x3a, 0x16, 0x55, 0x0d, 0x3e, 0xeb, 0xaa, 0x80,
+  0x1d, 0x71, 0x7a, 0xe3, 0x87, 0x07, 0xab, 0xbd, 0xa2, 0x74, 0xcd, 0xda,
+  0x08, 0x01, 0x9d, 0x1b, 0xcc, 0x27, 0x88, 0x8c, 0x47, 0xd4, 0x69, 0x25,
+  0x42, 0xd6, 0xbb, 0x50, 0x6d, 0x85, 0x50, 0xd0, 0x48, 0x82, 0x0d, 0x08,
+  0x9f, 0xe9, 0x23, 0xe3, 0x42, 0xc6, 0x3c, 0x98, 0xb8, 0xbb, 0x6e, 0xc5,
+  0x70, 0x13, 0xdf, 0x19, 0x1d, 0x01, 0xfd, 0xd2, 0xb5, 0x4e, 0xe6, 0x62,
+  0xf4, 0x07, 0xfa, 0x6b, 0x7d, 0x11, 0x77, 0xc4, 0x62, 0x4f, 0x40, 0x4e,
+  0xa5, 0x78, 0x97, 0xab, 0x2c, 0x4d, 0x0c, 0xa7, 0x7c, 0xc3, 0xc4, 0x50,
+  0x32, 0x9f, 0xd0, 0x70, 0x9b, 0x0f, 0xff, 0xff, 0x75, 0x59, 0x34, 0x85,
+  0xad, 0x49, 0xd5, 0x35, 0xee, 0x4f, 0x5b, 0xd4, 0xd4, 0x36, 0x95, 0xa0,
+  0x7e, 0xe8, 0xc5, 0xa1, 0x1c, 0xbd, 0x13, 0x4e, 0x7d, 0xee, 0x63, 0x6a,
+  0x96, 0x19, 0x99, 0xc8, 0xa7, 0x2a, 0x00, 0xe6, 0x51, 0x8d, 0x46, 0xeb,
+  0x30, 0x58, 0xe8, 0x2d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+  0x39, 0x30, 0x82, 0x01, 0x35, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x41, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3a, 0x30, 0x38,
+  0x30, 0x36, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01,
+  0x07, 0x36, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x68, 0x61, 0x77, 0x74, 0x65,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x0e, 0x06, 0x03,
+  0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+  0x30, 0x2e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
+  0x04, 0x22, 0x30, 0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x01, 0x86, 0x12, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x31, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2a, 0x30, 0x28, 0x30,
+  0x26, 0xa0, 0x24, 0xa0, 0x22, 0x86, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x74, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x54, 0x68, 0x61, 0x77, 0x74, 0x65, 0x50, 0x43, 0x41, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x29, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x22,
+  0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65,
+  0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d, 0x36, 0x39, 0x38, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x9f, 0xb8, 0xc1,
+  0xa9, 0x6c, 0xf2, 0xf5, 0xc0, 0x22, 0x2a, 0x94, 0xed, 0x5c, 0x99, 0xac,
+  0xd4, 0xec, 0xd7, 0xc6, 0x07, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7b, 0x5b, 0x45, 0xcf, 0xaf, 0xce,
+  0xcb, 0x7a, 0xfd, 0x31, 0x92, 0x1a, 0x6a, 0xb6, 0xf3, 0x46, 0xeb, 0x57,
+  0x48, 0x50, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x53, 0x54,
+  0xf2, 0x47, 0xa8, 0x02, 0xd7, 0xef, 0xaa, 0x35, 0x78, 0xbe, 0x4a, 0x08,
+  0x0d, 0x90, 0x18, 0x4b, 0x6d, 0x9e, 0x2a, 0x53, 0x2b, 0xe9, 0x54, 0x17,
+  0x77, 0x74, 0x29, 0x7e, 0xd0, 0x37, 0x07, 0x05, 0xb8, 0xe4, 0xfa, 0xb8,
+  0xb4, 0x63, 0x98, 0x44, 0xdc, 0xc6, 0x4f, 0x81, 0x06, 0x8c, 0x3a, 0xbe,
+  0xc7, 0x30, 0x57, 0xc6, 0x70, 0xfc, 0xd6, 0x93, 0x19, 0x9f, 0xc3, 0x55,
+  0xd7, 0x3e, 0x1f, 0x72, 0x8a, 0x9d, 0x30, 0x5a, 0x35, 0x97, 0x32, 0xcb,
+  0x63, 0xe4, 0xc6, 0x72, 0xdf, 0xfb, 0x68, 0xca, 0x69, 0x2f, 0xdb, 0xcd,
+  0x50, 0x38, 0x3e, 0x2b, 0xbb, 0xab, 0x3b, 0x82, 0xc7, 0xfd, 0x4b, 0x9b,
+  0xbd, 0x7c, 0x41, 0x98, 0xef, 0x01, 0x53, 0xd8, 0x35, 0x8f, 0x25, 0xc9,
+  0x03, 0x06, 0xe6, 0x9c, 0x57, 0xc1, 0x51, 0x0f, 0x9e, 0xf6, 0x7d, 0x93,
+  0x4d, 0xf8, 0x76, 0xc8, 0x3a, 0x6b, 0xf4, 0xc4, 0x8f, 0x33, 0x32, 0x7f,
+  0x9d, 0x21, 0x84, 0x34, 0xd9, 0xa7, 0xf9, 0x92, 0xfa, 0x41, 0x91, 0x61,
+  0x84, 0x05, 0x9d, 0xa3, 0x79, 0x46, 0xce, 0x67, 0xe7, 0x81, 0xf2, 0x5e,
+  0xac, 0x4c, 0xbc, 0xa8, 0xab, 0x6a, 0x6d, 0x15, 0xe2, 0x9c, 0x4e, 0x5a,
+  0xd9, 0x63, 0x80, 0xbc, 0xf7, 0x42, 0xeb, 0x9a, 0x44, 0xc6, 0x8c, 0x6b,
+  0x06, 0x36, 0xb4, 0x8b, 0x32, 0x89, 0xde, 0xc2, 0xf1, 0xa8, 0x26, 0xaa,
+  0xa9, 0xac, 0xff, 0xea, 0x71, 0xa6, 0xe7, 0x8c, 0x41, 0xfa, 0x17, 0x35,
+  0xbb, 0xb3, 0x87, 0x31, 0xa9, 0x93, 0xc2, 0xc8, 0x58, 0xe1, 0x0a, 0x4e,
+  0x95, 0x83, 0x9c, 0xb9, 0xed, 0x3b, 0xa5, 0xef, 0x08, 0xe0, 0x74, 0xf9,
+  0xc3, 0x1b, 0xe6, 0x07, 0xa3, 0xee, 0x07, 0xd7, 0x42, 0x22, 0x79, 0x21,
+  0xa0, 0xa1, 0xd4, 0x1d, 0x26, 0xd3, 0xd0, 0xd6, 0xa6, 0x5d, 0x2b, 0x41,
+  0xc0, 0x79,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1372799044 (0x51d34044)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Entrust, Inc., OU=www.entrust.net/CPS is incorporated by reference, OU=(c) 2006 Entrust, Inc., CN=Entrust Root Certification Authority
+        Validity
+            Not Before: Sep 22 17:14:57 2014 GMT
+            Not After : Sep 23 01:31:53 2024 GMT
+        Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:ba:84:b6:72:db:9e:0c:6b:e2:99:e9:30:01:a7:
+                    76:ea:32:b8:95:41:1a:c9:da:61:4e:58:72:cf:fe:
+                    f6:82:79:bf:73:61:06:0a:a5:27:d8:b3:5f:d3:45:
+                    4e:1c:72:d6:4e:32:f2:72:8a:0f:f7:83:19:d0:6a:
+                    80:80:00:45:1e:b0:c7:e7:9a:bf:12:57:27:1c:a3:
+                    68:2f:0a:87:bd:6a:6b:0e:5e:65:f3:1c:77:d5:d4:
+                    85:8d:70:21:b4:b3:32:e7:8b:a2:d5:86:39:02:b1:
+                    b8:d2:47:ce:e4:c9:49:c4:3b:a7:de:fb:54:7d:57:
+                    be:f0:e8:6e:c2:79:b2:3a:0b:55:e2:50:98:16:32:
+                    13:5c:2f:78:56:c1:c2:94:b3:f2:5a:e4:27:9a:9f:
+                    24:d7:c6:ec:d0:9b:25:82:e3:cc:c2:c4:45:c5:8c:
+                    97:7a:06:6b:2a:11:9f:a9:0a:6e:48:3b:6f:db:d4:
+                    11:19:42:f7:8f:07:bf:f5:53:5f:9c:3e:f4:17:2c:
+                    e6:69:ac:4e:32:4c:62:77:ea:b7:e8:e5:bb:34:bc:
+                    19:8b:ae:9c:51:e7:b7:7e:b5:53:b1:33:22:e5:6d:
+                    cf:70:3c:1a:fa:e2:9b:67:b6:83:f4:8d:a5:af:62:
+                    4c:4d:e0:58:ac:64:34:12:03:f8:b6:8d:94:63:24:
+                    a4:71
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:1
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.entrust.net
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.entrust.net/rootca1.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.entrust.net/CPS
+
+            X509v3 Subject Key Identifier: 
+                6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+            X509v3 Authority Key Identifier: 
+                keyid:68:90:E4:67:A4:A6:53:80:C7:86:66:A4:F1:F7:4B:43:FB:84:BD:6D
+
+    Signature Algorithm: sha256WithRSAEncryption
+         69:33:83:fc:28:7a:6f:7d:ef:9d:55:eb:c5:3e:7a:9d:75:b3:
+         cc:c3:38:36:d9:34:a2:28:68:18:ea:1e:69:d3:bd:e7:d0:77:
+         da:b8:00:83:4e:4a:cf:6f:d1:f1:c1:22:3f:74:e4:f7:98:49:
+         9e:9b:b6:9e:e1:db:98:77:2d:56:34:b1:a8:3c:d9:fd:c0:cd:
+         c7:bf:05:03:d4:02:c5:f1:e5:c6:da:08:a5:13:c7:62:23:11:
+         d1:61:30:1d:60:84:45:ef:79:a8:c6:26:93:a4:b7:cd:34:b8:
+         69:c5:13:f6:91:b3:c9:45:73:76:b6:92:f6:76:0a:5b:e1:03:
+         47:b7:e9:29:4c:91:32:23:37:4a:9c:35:d8:78:fd:1d:1f:e4:
+         83:89:24:80:ad:b7:f9:cf:e4:5d:a5:d4:71:c4:85:5b:70:1f:
+         db:3f:1c:01:eb:1a:45:26:31:14:cc:65:bf:67:de:ca:cc:33:
+         65:e5:41:91:d7:37:be:41:1a:96:9d:e6:8a:97:9d:a7:ce:ac:
+         4e:9a:3d:bd:01:a0:6a:d9:4f:22:00:8b:44:d5:69:62:7b:2e:
+         eb:cc:ba:e7:92:7d:69:67:3d:fc:b8:7c:de:41:87:d0:69:ea:
+         ba:0a:18:7a:1a:95:43:b3:79:71:28:76:6d:a1:fb:57:4a:ec:
+         4d:c8:0e:10
+-----BEGIN CERTIFICATE-----
+MIIE/zCCA+egAwIBAgIEUdNARDANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
+Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
+KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE0MDkyMjE3MTQ1N1oXDTI0MDkyMzAx
+MzE1M1owgb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgw
+JgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQL
+EzAoYykgMjAwOSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9u
+bHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuoS2ctueDGvi
+mekwAad26jK4lUEaydphTlhyz/72gnm/c2EGCqUn2LNf00VOHHLWTjLycooP94MZ
+0GqAgABFHrDH55q/ElcnHKNoLwqHvWprDl5l8xx31dSFjXAhtLMy54ui1YY5ArG4
+0kfO5MlJxDun3vtUfVe+8OhuwnmyOgtV4lCYFjITXC94VsHClLPyWuQnmp8k18bs
+0JslguPMwsRFxYyXegZrKhGfqQpuSDtv29QRGUL3jwe/9VNfnD70FyzmaaxOMkxi
+d+q36OW7NLwZi66cUee3frVTsTMi5W3PcDwa+uKbZ7aD9I2lr2JMTeBYrGQ0EgP4
+to2UYySkcQIDAQABo4IBDzCCAQswDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
+MAYBAf8CAQEwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz
+cC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVudHJ1
+c3QubmV0L3Jvb3RjYTEuY3JsMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUF
+BwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NQUzAdBgNVHQ4EFgQUanImetAe
+733nO2lR1GyNn5ASZqswHwYDVR0jBBgwFoAUaJDkZ6SmU4DHhmak8fdLQ/uEvW0w
+DQYJKoZIhvcNAQELBQADggEBAGkzg/woem99751V68U+ep11s8zDODbZNKIoaBjq
+HmnTvefQd9q4AINOSs9v0fHBIj905PeYSZ6btp7h25h3LVY0sag82f3Azce/BQPU
+AsXx5cbaCKUTx2IjEdFhMB1ghEXveajGJpOkt800uGnFE/aRs8lFc3a2kvZ2Clvh
+A0e36SlMkTIjN0qcNdh4/R0f5IOJJICtt/nP5F2l1HHEhVtwH9s/HAHrGkUmMRTM
+Zb9n3srMM2XlQZHXN75BGpad5oqXnafOrE6aPb0BoGrZTyIAi0TVaWJ7LuvMuueS
+fWlnPfy4fN5Bh9Bp6roKGHoalUOzeXEodm2h+1dK7E3IDhA=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert39[] = {
+  0x30, 0x82, 0x04, 0xff, 0x30, 0x82, 0x03, 0xe7, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x51, 0xd3, 0x40, 0x44, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xb0, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x30, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x20, 0x69, 0x73, 0x20,
+  0x69, 0x6e, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64,
+  0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+  0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16,
+  0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x45, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x2d,
+  0x30, 0x2b, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x24, 0x45, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x34, 0x30, 0x39, 0x32, 0x32, 0x31, 0x37, 0x31, 0x34, 0x35,
+  0x37, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x39, 0x32, 0x33, 0x30, 0x31,
+  0x33, 0x31, 0x35, 0x33, 0x5a, 0x30, 0x81, 0xbe, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30,
+  0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28, 0x30,
+  0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65, 0x20,
+  0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74, 0x65,
+  0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20, 0x45,
+  0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+  0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e,
+  0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f,
+  0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74,
+  0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
+  0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82,
+  0x01, 0x01, 0x00, 0xba, 0x84, 0xb6, 0x72, 0xdb, 0x9e, 0x0c, 0x6b, 0xe2,
+  0x99, 0xe9, 0x30, 0x01, 0xa7, 0x76, 0xea, 0x32, 0xb8, 0x95, 0x41, 0x1a,
+  0xc9, 0xda, 0x61, 0x4e, 0x58, 0x72, 0xcf, 0xfe, 0xf6, 0x82, 0x79, 0xbf,
+  0x73, 0x61, 0x06, 0x0a, 0xa5, 0x27, 0xd8, 0xb3, 0x5f, 0xd3, 0x45, 0x4e,
+  0x1c, 0x72, 0xd6, 0x4e, 0x32, 0xf2, 0x72, 0x8a, 0x0f, 0xf7, 0x83, 0x19,
+  0xd0, 0x6a, 0x80, 0x80, 0x00, 0x45, 0x1e, 0xb0, 0xc7, 0xe7, 0x9a, 0xbf,
+  0x12, 0x57, 0x27, 0x1c, 0xa3, 0x68, 0x2f, 0x0a, 0x87, 0xbd, 0x6a, 0x6b,
+  0x0e, 0x5e, 0x65, 0xf3, 0x1c, 0x77, 0xd5, 0xd4, 0x85, 0x8d, 0x70, 0x21,
+  0xb4, 0xb3, 0x32, 0xe7, 0x8b, 0xa2, 0xd5, 0x86, 0x39, 0x02, 0xb1, 0xb8,
+  0xd2, 0x47, 0xce, 0xe4, 0xc9, 0x49, 0xc4, 0x3b, 0xa7, 0xde, 0xfb, 0x54,
+  0x7d, 0x57, 0xbe, 0xf0, 0xe8, 0x6e, 0xc2, 0x79, 0xb2, 0x3a, 0x0b, 0x55,
+  0xe2, 0x50, 0x98, 0x16, 0x32, 0x13, 0x5c, 0x2f, 0x78, 0x56, 0xc1, 0xc2,
+  0x94, 0xb3, 0xf2, 0x5a, 0xe4, 0x27, 0x9a, 0x9f, 0x24, 0xd7, 0xc6, 0xec,
+  0xd0, 0x9b, 0x25, 0x82, 0xe3, 0xcc, 0xc2, 0xc4, 0x45, 0xc5, 0x8c, 0x97,
+  0x7a, 0x06, 0x6b, 0x2a, 0x11, 0x9f, 0xa9, 0x0a, 0x6e, 0x48, 0x3b, 0x6f,
+  0xdb, 0xd4, 0x11, 0x19, 0x42, 0xf7, 0x8f, 0x07, 0xbf, 0xf5, 0x53, 0x5f,
+  0x9c, 0x3e, 0xf4, 0x17, 0x2c, 0xe6, 0x69, 0xac, 0x4e, 0x32, 0x4c, 0x62,
+  0x77, 0xea, 0xb7, 0xe8, 0xe5, 0xbb, 0x34, 0xbc, 0x19, 0x8b, 0xae, 0x9c,
+  0x51, 0xe7, 0xb7, 0x7e, 0xb5, 0x53, 0xb1, 0x33, 0x22, 0xe5, 0x6d, 0xcf,
+  0x70, 0x3c, 0x1a, 0xfa, 0xe2, 0x9b, 0x67, 0xb6, 0x83, 0xf4, 0x8d, 0xa5,
+  0xaf, 0x62, 0x4c, 0x4d, 0xe0, 0x58, 0xac, 0x64, 0x34, 0x12, 0x03, 0xf8,
+  0xb6, 0x8d, 0x94, 0x63, 0x24, 0xa4, 0x71, 0x02, 0x03, 0x01, 0x00, 0x01,
+  0xa3, 0x82, 0x01, 0x0f, 0x30, 0x82, 0x01, 0x0b, 0x30, 0x0e, 0x06, 0x03,
+  0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06,
+  0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+  0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x01, 0x30, 0x33, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25,
+  0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+  0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+  0x74, 0x30, 0x33, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2c, 0x30, 0x2a,
+  0x30, 0x28, 0xa0, 0x26, 0xa0, 0x24, 0x86, 0x22, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x6f, 0x6f, 0x74, 0x63,
+  0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04, 0x55, 0x1d, 0x20,
+  0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6e, 0x65, 0x74, 0x2f, 0x43, 0x50, 0x53, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0, 0x1e,
+  0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90, 0x12,
+  0x66, 0xab, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0x68, 0x90, 0xe4, 0x67, 0xa4, 0xa6, 0x53, 0x80, 0xc7,
+  0x86, 0x66, 0xa4, 0xf1, 0xf7, 0x4b, 0x43, 0xfb, 0x84, 0xbd, 0x6d, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+  0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x33, 0x83, 0xfc, 0x28,
+  0x7a, 0x6f, 0x7d, 0xef, 0x9d, 0x55, 0xeb, 0xc5, 0x3e, 0x7a, 0x9d, 0x75,
+  0xb3, 0xcc, 0xc3, 0x38, 0x36, 0xd9, 0x34, 0xa2, 0x28, 0x68, 0x18, 0xea,
+  0x1e, 0x69, 0xd3, 0xbd, 0xe7, 0xd0, 0x77, 0xda, 0xb8, 0x00, 0x83, 0x4e,
+  0x4a, 0xcf, 0x6f, 0xd1, 0xf1, 0xc1, 0x22, 0x3f, 0x74, 0xe4, 0xf7, 0x98,
+  0x49, 0x9e, 0x9b, 0xb6, 0x9e, 0xe1, 0xdb, 0x98, 0x77, 0x2d, 0x56, 0x34,
+  0xb1, 0xa8, 0x3c, 0xd9, 0xfd, 0xc0, 0xcd, 0xc7, 0xbf, 0x05, 0x03, 0xd4,
+  0x02, 0xc5, 0xf1, 0xe5, 0xc6, 0xda, 0x08, 0xa5, 0x13, 0xc7, 0x62, 0x23,
+  0x11, 0xd1, 0x61, 0x30, 0x1d, 0x60, 0x84, 0x45, 0xef, 0x79, 0xa8, 0xc6,
+  0x26, 0x93, 0xa4, 0xb7, 0xcd, 0x34, 0xb8, 0x69, 0xc5, 0x13, 0xf6, 0x91,
+  0xb3, 0xc9, 0x45, 0x73, 0x76, 0xb6, 0x92, 0xf6, 0x76, 0x0a, 0x5b, 0xe1,
+  0x03, 0x47, 0xb7, 0xe9, 0x29, 0x4c, 0x91, 0x32, 0x23, 0x37, 0x4a, 0x9c,
+  0x35, 0xd8, 0x78, 0xfd, 0x1d, 0x1f, 0xe4, 0x83, 0x89, 0x24, 0x80, 0xad,
+  0xb7, 0xf9, 0xcf, 0xe4, 0x5d, 0xa5, 0xd4, 0x71, 0xc4, 0x85, 0x5b, 0x70,
+  0x1f, 0xdb, 0x3f, 0x1c, 0x01, 0xeb, 0x1a, 0x45, 0x26, 0x31, 0x14, 0xcc,
+  0x65, 0xbf, 0x67, 0xde, 0xca, 0xcc, 0x33, 0x65, 0xe5, 0x41, 0x91, 0xd7,
+  0x37, 0xbe, 0x41, 0x1a, 0x96, 0x9d, 0xe6, 0x8a, 0x97, 0x9d, 0xa7, 0xce,
+  0xac, 0x4e, 0x9a, 0x3d, 0xbd, 0x01, 0xa0, 0x6a, 0xd9, 0x4f, 0x22, 0x00,
+  0x8b, 0x44, 0xd5, 0x69, 0x62, 0x7b, 0x2e, 0xeb, 0xcc, 0xba, 0xe7, 0x92,
+  0x7d, 0x69, 0x67, 0x3d, 0xfc, 0xb8, 0x7c, 0xde, 0x41, 0x87, 0xd0, 0x69,
+  0xea, 0xba, 0x0a, 0x18, 0x7a, 0x1a, 0x95, 0x43, 0xb3, 0x79, 0x71, 0x28,
+  0x76, 0x6d, 0xa1, 0xfb, 0x57, 0x4a, 0xec, 0x4d, 0xc8, 0x0e, 0x10,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7 (0x7)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
+        Validity
+            Not Before: May  3 07:00:00 2011 GMT
+            Not After : May  3 07:00:00 2031 GMT
+        Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., OU=http://certs.starfieldtech.com/repository/, CN=Starfield Secure Certificate Authority - G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:e5:90:66:4b:ec:f9:46:71:a9:20:83:be:e9:6c:
+                    bf:4a:c9:48:69:81:75:4e:6d:24:f6:cb:17:13:f8:
+                    b0:71:59:84:7a:6b:2b:85:a4:34:b5:16:e5:cb:cc:
+                    e9:41:70:2c:a4:2e:d6:fa:32:7d:e1:a8:de:94:10:
+                    ac:31:c1:c0:d8:6a:ff:59:27:ab:76:d6:fc:0b:74:
+                    6b:b8:a7:ae:3f:c4:54:f4:b4:31:44:dd:93:56:8c:
+                    a4:4c:5e:9b:89:cb:24:83:9b:e2:57:7d:b7:d8:12:
+                    1f:c9:85:6d:f4:d1:80:f1:50:9b:87:ae:d4:0b:10:
+                    05:fb:27:ba:28:6d:17:e9:0e:d6:4d:b9:39:55:06:
+                    ff:0a:24:05:7e:2f:c6:1d:72:6c:d4:8b:29:8c:57:
+                    7d:da:d9:eb:66:1a:d3:4f:a7:df:7f:52:c4:30:c5:
+                    a5:c9:0e:02:c5:53:bf:77:38:68:06:24:c3:66:c8:
+                    37:7e:30:1e:45:71:23:35:ff:90:d8:2a:9d:8d:e7:
+                    b0:92:4d:3c:7f:2a:0a:93:dc:cd:16:46:65:f7:60:
+                    84:8b:76:4b:91:27:73:14:92:e0:ea:ee:8f:16:ea:
+                    8d:0e:3e:76:17:bf:7d:89:80:80:44:43:e7:2d:e0:
+                    43:09:75:da:36:e8:ad:db:89:3a:f5:5d:12:8e:23:
+                    04:83
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                25:45:81:68:50:26:38:3D:3B:2D:2C:BE:CD:6A:D9:B6:3D:B3:66:63
+            X509v3 Authority Key Identifier: 
+                keyid:7C:0C:32:1F:A7:D9:30:7F:C4:7D:68:A3:62:A8:A1:CE:AB:07:5B:27
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.starfieldtech.com/
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.starfieldtech.com/sfroot-g2.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: https://certs.starfieldtech.com/repository/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         56:65:ca:fe:f3:3f:0a:a8:93:8b:18:c7:de:43:69:13:34:20:
+         be:4e:5f:78:a8:6b:9c:db:6a:4d:41:db:c1:13:ec:dc:31:00:
+         22:5e:f7:00:9e:0c:e0:34:65:34:f9:b1:3a:4e:48:c8:12:81:
+         88:5c:5b:3e:08:53:7a:f7:1a:64:df:b8:50:61:cc:53:51:40:
+         29:4b:c2:f4:ae:3a:5f:e4:ca:ad:26:cc:4e:61:43:e5:fd:57:
+         a6:37:70:ce:43:2b:b0:94:c3:92:e9:e1:5f:aa:10:49:b7:69:
+         e4:e0:d0:1f:64:a4:2b:cd:1f:6f:a0:f8:84:24:18:ce:79:3d:
+         a9:91:bf:54:18:13:89:99:54:11:0d:55:c5:26:0b:79:4f:5a:
+         1c:6e:f9:63:db:14:80:a4:07:ab:fa:b2:a5:b9:88:dd:91:fe:
+         65:3b:a4:a3:79:be:89:4d:e1:d0:b0:f4:c8:17:0c:0a:96:14:
+         7c:09:b7:6c:e1:c2:d8:55:d4:18:a0:aa:41:69:70:24:a3:b9:
+         ef:e9:5a:dc:3e:eb:94:4a:f0:b7:de:5f:0e:76:fa:fb:fb:69:
+         03:45:40:50:ee:72:0c:a4:12:86:81:cd:13:d1:4e:c4:3c:ca:
+         4e:0d:d2:26:f1:00:b7:b4:a6:a2:e1:6e:7a:81:fd:30:ac:7a:
+         1f:c7:59:7b
+-----BEGIN CERTIFICATE-----
+MIIFADCCA+igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
+ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAw
+MFoXDTMxMDUwMzA3MDAwMFowgcYxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
+aG5vbG9naWVzLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydHMuc3RhcmZpZWxk
+dGVjaC5jb20vcmVwb3NpdG9yeS8xNDAyBgNVBAMTK1N0YXJmaWVsZCBTZWN1cmUg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDlkGZL7PlGcakgg77pbL9KyUhpgXVObST2yxcT+LBxWYR6ayuF
+pDS1FuXLzOlBcCykLtb6Mn3hqN6UEKwxwcDYav9ZJ6t21vwLdGu4p64/xFT0tDFE
+3ZNWjKRMXpuJyySDm+JXfbfYEh/JhW300YDxUJuHrtQLEAX7J7oobRfpDtZNuTlV
+Bv8KJAV+L8YdcmzUiymMV33a2etmGtNPp99/UsQwxaXJDgLFU793OGgGJMNmyDd+
+MB5FcSM1/5DYKp2N57CSTTx/KgqT3M0WRmX3YISLdkuRJ3MUkuDq7o8W6o0OPnYX
+v32JgIBEQ+ct4EMJddo26K3biTr1XRKOIwSDAgMBAAGjggEsMIIBKDAPBgNVHRMB
+Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJUWBaFAmOD07LSy+
+zWrZtj2zZmMwHwYDVR0jBBgwFoAUfAwyH6fZMH/EfWijYqihzqsHWycwOgYIKwYB
+BQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0ZWNo
+LmNvbS8wOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zdGFyZmllbGR0ZWNo
+LmNvbS9zZnJvb3QtZzIuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUF
+BwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkv
+MA0GCSqGSIb3DQEBCwUAA4IBAQBWZcr+8z8KqJOLGMfeQ2kTNCC+Tl94qGuc22pN
+QdvBE+zcMQAiXvcAngzgNGU0+bE6TkjIEoGIXFs+CFN69xpk37hQYcxTUUApS8L0
+rjpf5MqtJsxOYUPl/VemN3DOQyuwlMOS6eFfqhBJt2nk4NAfZKQrzR9voPiEJBjO
+eT2pkb9UGBOJmVQRDVXFJgt5T1ocbvlj2xSApAer+rKluYjdkf5lO6Sjeb6JTeHQ
+sPTIFwwKlhR8Cbds4cLYVdQYoKpBaXAko7nv6VrcPuuUSvC33l8Odvr7+2kDRUBQ
+7nIMpBKGgc0T0U7EPMpODdIm8QC3tKai4W56gf0wrHofx1l7
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert40[] = {
+  0x30, 0x82, 0x05, 0x00, 0x30, 0x82, 0x03, 0xe8, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x01, 0x07, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0x8f, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72,
+  0x69, 0x7a, 0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+  0x04, 0x07, 0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61,
+  0x6c, 0x65, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x1c, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54,
+  0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x29, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c,
+  0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17,
+  0x0d, 0x31, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37, 0x30, 0x30, 0x30,
+  0x30, 0x5a, 0x17, 0x0d, 0x33, 0x31, 0x30, 0x35, 0x30, 0x33, 0x30, 0x37,
+  0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x81, 0xc6, 0x31, 0x0b, 0x30, 0x09,
+  0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x10, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x07, 0x41, 0x72, 0x69, 0x7a,
+  0x6f, 0x6e, 0x61, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x0a, 0x53, 0x63, 0x6f, 0x74, 0x74, 0x73, 0x64, 0x61, 0x6c, 0x65,
+  0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x1c, 0x53,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x54, 0x65, 0x63,
+  0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x65, 0x73, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x65, 0x72,
+  0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64,
+  0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70,
+  0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x31, 0x34, 0x30, 0x32,
+  0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2b, 0x53, 0x74, 0x61, 0x72, 0x66,
+  0x69, 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20,
+  0x47, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe5,
+  0x90, 0x66, 0x4b, 0xec, 0xf9, 0x46, 0x71, 0xa9, 0x20, 0x83, 0xbe, 0xe9,
+  0x6c, 0xbf, 0x4a, 0xc9, 0x48, 0x69, 0x81, 0x75, 0x4e, 0x6d, 0x24, 0xf6,
+  0xcb, 0x17, 0x13, 0xf8, 0xb0, 0x71, 0x59, 0x84, 0x7a, 0x6b, 0x2b, 0x85,
+  0xa4, 0x34, 0xb5, 0x16, 0xe5, 0xcb, 0xcc, 0xe9, 0x41, 0x70, 0x2c, 0xa4,
+  0x2e, 0xd6, 0xfa, 0x32, 0x7d, 0xe1, 0xa8, 0xde, 0x94, 0x10, 0xac, 0x31,
+  0xc1, 0xc0, 0xd8, 0x6a, 0xff, 0x59, 0x27, 0xab, 0x76, 0xd6, 0xfc, 0x0b,
+  0x74, 0x6b, 0xb8, 0xa7, 0xae, 0x3f, 0xc4, 0x54, 0xf4, 0xb4, 0x31, 0x44,
+  0xdd, 0x93, 0x56, 0x8c, 0xa4, 0x4c, 0x5e, 0x9b, 0x89, 0xcb, 0x24, 0x83,
+  0x9b, 0xe2, 0x57, 0x7d, 0xb7, 0xd8, 0x12, 0x1f, 0xc9, 0x85, 0x6d, 0xf4,
+  0xd1, 0x80, 0xf1, 0x50, 0x9b, 0x87, 0xae, 0xd4, 0x0b, 0x10, 0x05, 0xfb,
+  0x27, 0xba, 0x28, 0x6d, 0x17, 0xe9, 0x0e, 0xd6, 0x4d, 0xb9, 0x39, 0x55,
+  0x06, 0xff, 0x0a, 0x24, 0x05, 0x7e, 0x2f, 0xc6, 0x1d, 0x72, 0x6c, 0xd4,
+  0x8b, 0x29, 0x8c, 0x57, 0x7d, 0xda, 0xd9, 0xeb, 0x66, 0x1a, 0xd3, 0x4f,
+  0xa7, 0xdf, 0x7f, 0x52, 0xc4, 0x30, 0xc5, 0xa5, 0xc9, 0x0e, 0x02, 0xc5,
+  0x53, 0xbf, 0x77, 0x38, 0x68, 0x06, 0x24, 0xc3, 0x66, 0xc8, 0x37, 0x7e,
+  0x30, 0x1e, 0x45, 0x71, 0x23, 0x35, 0xff, 0x90, 0xd8, 0x2a, 0x9d, 0x8d,
+  0xe7, 0xb0, 0x92, 0x4d, 0x3c, 0x7f, 0x2a, 0x0a, 0x93, 0xdc, 0xcd, 0x16,
+  0x46, 0x65, 0xf7, 0x60, 0x84, 0x8b, 0x76, 0x4b, 0x91, 0x27, 0x73, 0x14,
+  0x92, 0xe0, 0xea, 0xee, 0x8f, 0x16, 0xea, 0x8d, 0x0e, 0x3e, 0x76, 0x17,
+  0xbf, 0x7d, 0x89, 0x80, 0x80, 0x44, 0x43, 0xe7, 0x2d, 0xe0, 0x43, 0x09,
+  0x75, 0xda, 0x36, 0xe8, 0xad, 0xdb, 0x89, 0x3a, 0xf5, 0x5d, 0x12, 0x8e,
+  0x23, 0x04, 0x83, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x2c,
+  0x30, 0x82, 0x01, 0x28, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0x25, 0x45, 0x81, 0x68, 0x50, 0x26, 0x38, 0x3d, 0x3b, 0x2d, 0x2c, 0xbe,
+  0xcd, 0x6a, 0xd9, 0xb6, 0x3d, 0xb3, 0x66, 0x63, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7c, 0x0c, 0x32,
+  0x1f, 0xa7, 0xd9, 0x30, 0x7f, 0xc4, 0x7d, 0x68, 0xa3, 0x62, 0xa8, 0xa1,
+  0xce, 0xab, 0x07, 0x5b, 0x27, 0x30, 0x3a, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x2e, 0x30, 0x2c, 0x30, 0x2a, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1e, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x30, 0x3b, 0x06, 0x03, 0x55, 0x1d, 0x1f,
+  0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0xa0, 0x2e, 0xa0, 0x2c, 0x86, 0x2a,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x72, 0x6f, 0x6f, 0x74, 0x2d,
+  0x67, 0x32, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d,
+  0x20, 0x04, 0x45, 0x30, 0x43, 0x30, 0x41, 0x06, 0x04, 0x55, 0x1d, 0x20,
+  0x00, 0x30, 0x39, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x2b, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,
+  0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x66,
+  0x69, 0x65, 0x6c, 0x64, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x56, 0x65, 0xca, 0xfe,
+  0xf3, 0x3f, 0x0a, 0xa8, 0x93, 0x8b, 0x18, 0xc7, 0xde, 0x43, 0x69, 0x13,
+  0x34, 0x20, 0xbe, 0x4e, 0x5f, 0x78, 0xa8, 0x6b, 0x9c, 0xdb, 0x6a, 0x4d,
+  0x41, 0xdb, 0xc1, 0x13, 0xec, 0xdc, 0x31, 0x00, 0x22, 0x5e, 0xf7, 0x00,
+  0x9e, 0x0c, 0xe0, 0x34, 0x65, 0x34, 0xf9, 0xb1, 0x3a, 0x4e, 0x48, 0xc8,
+  0x12, 0x81, 0x88, 0x5c, 0x5b, 0x3e, 0x08, 0x53, 0x7a, 0xf7, 0x1a, 0x64,
+  0xdf, 0xb8, 0x50, 0x61, 0xcc, 0x53, 0x51, 0x40, 0x29, 0x4b, 0xc2, 0xf4,
+  0xae, 0x3a, 0x5f, 0xe4, 0xca, 0xad, 0x26, 0xcc, 0x4e, 0x61, 0x43, 0xe5,
+  0xfd, 0x57, 0xa6, 0x37, 0x70, 0xce, 0x43, 0x2b, 0xb0, 0x94, 0xc3, 0x92,
+  0xe9, 0xe1, 0x5f, 0xaa, 0x10, 0x49, 0xb7, 0x69, 0xe4, 0xe0, 0xd0, 0x1f,
+  0x64, 0xa4, 0x2b, 0xcd, 0x1f, 0x6f, 0xa0, 0xf8, 0x84, 0x24, 0x18, 0xce,
+  0x79, 0x3d, 0xa9, 0x91, 0xbf, 0x54, 0x18, 0x13, 0x89, 0x99, 0x54, 0x11,
+  0x0d, 0x55, 0xc5, 0x26, 0x0b, 0x79, 0x4f, 0x5a, 0x1c, 0x6e, 0xf9, 0x63,
+  0xdb, 0x14, 0x80, 0xa4, 0x07, 0xab, 0xfa, 0xb2, 0xa5, 0xb9, 0x88, 0xdd,
+  0x91, 0xfe, 0x65, 0x3b, 0xa4, 0xa3, 0x79, 0xbe, 0x89, 0x4d, 0xe1, 0xd0,
+  0xb0, 0xf4, 0xc8, 0x17, 0x0c, 0x0a, 0x96, 0x14, 0x7c, 0x09, 0xb7, 0x6c,
+  0xe1, 0xc2, 0xd8, 0x55, 0xd4, 0x18, 0xa0, 0xaa, 0x41, 0x69, 0x70, 0x24,
+  0xa3, 0xb9, 0xef, 0xe9, 0x5a, 0xdc, 0x3e, 0xeb, 0x94, 0x4a, 0xf0, 0xb7,
+  0xde, 0x5f, 0x0e, 0x76, 0xfa, 0xfb, 0xfb, 0x69, 0x03, 0x45, 0x40, 0x50,
+  0xee, 0x72, 0x0c, 0xa4, 0x12, 0x86, 0x81, 0xcd, 0x13, 0xd1, 0x4e, 0xc4,
+  0x3c, 0xca, 0x4e, 0x0d, 0xd2, 0x26, 0xf1, 0x00, 0xb7, 0xb4, 0xa6, 0xa2,
+  0xe1, 0x6e, 0x7a, 0x81, 0xfd, 0x30, 0xac, 0x7a, 0x1f, 0xc7, 0x59, 0x7b,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 1372807406 (0x51d360ee)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+        Validity
+            Not Before: Oct 22 17:05:14 2014 GMT
+            Not After : Oct 23 07:33:22 2024 GMT
+        Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
+                    ee:5c:a5:61:da:41:67:53:09:aa:00:9a:8e:57:7f:
+                    29:6b:db:c7:e1:21:24:aa:3a:d0:8d:47:23:d2:ed:
+                    72:16:f0:91:21:d2:5d:b7:b8:4b:a8:83:8f:b7:91:
+                    32:68:cf:ce:25:93:2c:b2:7d:97:c8:fe:c1:b4:17:
+                    ba:09:9e:03:90:93:7b:7c:49:83:22:68:8a:9b:de:
+                    47:c3:31:98:7a:2e:7d:40:0b:d2:ef:3e:d3:b2:8c:
+                    aa:8f:48:a9:ff:00:e8:29:58:06:f7:b6:93:5a:94:
+                    73:26:26:ad:58:0e:e5:42:b8:d5:ea:73:79:64:68:
+                    53:25:b8:84:cf:94:7a:ae:06:45:0c:a3:6b:4d:d0:
+                    c6:be:ea:18:a4:36:f0:92:b2:ba:1c:88:8f:3a:52:
+                    7f:f7:5e:6d:83:1c:9d:f0:1f:e5:c3:d6:dd:a5:78:
+                    92:3d:b0:6d:2c:ea:c9:cf:94:41:19:71:44:68:ba:
+                    47:3c:04:e9:5d:ba:3e:f0:35:f7:15:b6:9e:f2:2e:
+                    15:1e:3f:47:c8:c8:38:a7:73:45:5d:4d:b0:3b:b1:
+                    8e:17:29:37:ea:dd:05:01:22:bb:94:36:2a:8d:5b:
+                    35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
+                    d9:1b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: 
+                CA:TRUE, pathlen:0
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.entrust.net
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.entrust.net/g2ca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.entrust.net/rpa
+
+            X509v3 Subject Key Identifier: 
+                82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
+            X509v3 Authority Key Identifier: 
+                keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+
+    Signature Algorithm: sha256WithRSAEncryption
+         3f:1c:1a:5b:ff:40:22:1d:8f:35:0c:2d:aa:99:27:ab:c0:11:
+         32:70:d7:36:28:69:a5:8d:b1:27:99:42:be:c4:93:eb:48:57:
+         43:71:23:c4:e5:4e:ad:ae:43:6f:92:76:c5:19:ef:ca:bc:6f:
+         42:4c:16:9a:86:a9:04:38:c7:65:f0:f5:0c:e0:4a:df:a2:fa:
+         ce:1a:11:a8:9c:69:2f:1b:df:ea:e2:32:f3:ce:4c:bc:46:0c:
+         c0:89:80:d1:87:6b:a2:cf:6b:d4:7f:fd:f5:60:52:67:57:a0:
+         6d:d1:64:41:14:6d:34:62:ed:06:6c:24:f2:06:bc:28:02:af:
+         03:2d:c2:33:05:fb:cb:aa:16:e8:65:10:43:f5:69:5c:e3:81:
+         58:99:cd:6b:d3:b8:c7:7b:19:55:c9:40:ce:79:55:b8:73:89:
+         e9:5c:40:66:43:12:7f:07:b8:65:56:d5:8d:c3:a7:f5:b1:b6:
+         65:9e:c0:83:36:7f:16:45:3c:74:4b:93:8a:3c:f1:2b:f5:35:
+         70:73:7b:e7:82:04:b1:18:98:0e:d4:9c:6f:1a:fc:fc:a7:33:
+         a5:bb:bb:18:f3:6b:7a:5d:32:87:f7:6d:25:e4:e2:76:86:21:
+         1e:11:46:cd:76:0e:6f:4f:a4:21:71:0a:84:a7:2d:36:a9:48:
+         22:51:7e:82
+-----BEGIN CERTIFICATE-----
+MIIFAzCCA+ugAwIBAgIEUdNg7jANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
+cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
+IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
+dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMTQxMDIyMTcw
+NTE0WhcNMjQxMDIzMDczMzIyWjCBujELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
+dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
+dGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
+aG9yaXplZCB1c2Ugb25seTEuMCwGA1UEAxMlRW50cnVzdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eSAtIEwxSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANo/ltBNuS9E59s5XptQ7lylYdpBZ1MJqgCajld/KWvbx+EhJKo60I1HI9Ltchbw
+kSHSXbe4S6iDj7eRMmjPziWTLLJ9l8j+wbQXugmeA5CTe3xJgyJoipveR8MxmHou
+fUAL0u8+07KMqo9Iqf8A6ClYBve2k1qUcyYmrVgO5UK41epzeWRoUyW4hM+Ueq4G
+RQyja03Qxr7qGKQ28JKyuhyIjzpSf/debYMcnfAf5cPW3aV4kj2wbSzqyc+UQRlx
+RGi6RzwE6V26PvA19xW2nvIuFR4/R8jIOKdzRV1NsDuxjhcpN+rdBQEiu5Q2Ko1b
+Nf5TGS8IRsEqsxpiHU4r2RsCAwEAAaOCAQkwggEFMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0
+cDovL29jc3AuZW50cnVzdC5uZXQwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL2Ny
+bC5lbnRydXN0Lm5ldC9nMmNhLmNybDA7BgNVHSAENDAyMDAGBFUdIAAwKDAmBggr
+BgEFBQcCARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwHQYDVR0OBBYEFIKi
+cHTdvFM/z3vU981/p2DGCky/MB8GA1UdIwQYMBaAFGpyJnrQHu995ztpUdRsjZ+Q
+EmarMA0GCSqGSIb3DQEBCwUAA4IBAQA/HBpb/0AiHY81DC2qmSerwBEycNc2KGml
+jbEnmUK+xJPrSFdDcSPE5U6trkNvknbFGe/KvG9CTBaahqkEOMdl8PUM4ErfovrO
+GhGonGkvG9/q4jLzzky8RgzAiYDRh2uiz2vUf/31YFJnV6Bt0WRBFG00Yu0GbCTy
+BrwoAq8DLcIzBfvLqhboZRBD9Wlc44FYmc1r07jHexlVyUDOeVW4c4npXEBmQxJ/
+B7hlVtWNw6f1sbZlnsCDNn8WRTx0S5OKPPEr9TVwc3vnggSxGJgO1JxvGvz8pzOl
+u7sY82t6XTKH920l5OJ2hiEeEUbNdg5vT6QhcQqEpy02qUgiUX6C
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert41[] = {
+  0x30, 0x82, 0x05, 0x03, 0x30, 0x82, 0x03, 0xeb, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x51, 0xd3, 0x60, 0xee, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xbe, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13,
+  0x1f, 0x53, 0x65, 0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67,
+  0x61, 0x6c, 0x2d, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37,
+  0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32,
+  0x30, 0x30, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c,
+  0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20,
+  0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75,
+  0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06,
+  0x03, 0x55, 0x04, 0x03, 0x13, 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x30, 0x32, 0x32, 0x31, 0x37, 0x30,
+  0x35, 0x31, 0x34, 0x5a, 0x17, 0x0d, 0x32, 0x34, 0x31, 0x30, 0x32, 0x33,
+  0x30, 0x37, 0x33, 0x33, 0x32, 0x32, 0x5a, 0x30, 0x81, 0xba, 0x31, 0x0b,
+  0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+  0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31,
+  0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65,
+  0x65, 0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d,
+  0x74, 0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x32,
+  0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e,
+  0x63, 0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20,
+  0x6f, 0x6e, 0x6c, 0x79, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x25, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43,
+  0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d,
+  0x20, 0x4c, 0x31, 0x4b, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
+  0x00, 0xda, 0x3f, 0x96, 0xd0, 0x4d, 0xb9, 0x2f, 0x44, 0xe7, 0xdb, 0x39,
+  0x5e, 0x9b, 0x50, 0xee, 0x5c, 0xa5, 0x61, 0xda, 0x41, 0x67, 0x53, 0x09,
+  0xaa, 0x00, 0x9a, 0x8e, 0x57, 0x7f, 0x29, 0x6b, 0xdb, 0xc7, 0xe1, 0x21,
+  0x24, 0xaa, 0x3a, 0xd0, 0x8d, 0x47, 0x23, 0xd2, 0xed, 0x72, 0x16, 0xf0,
+  0x91, 0x21, 0xd2, 0x5d, 0xb7, 0xb8, 0x4b, 0xa8, 0x83, 0x8f, 0xb7, 0x91,
+  0x32, 0x68, 0xcf, 0xce, 0x25, 0x93, 0x2c, 0xb2, 0x7d, 0x97, 0xc8, 0xfe,
+  0xc1, 0xb4, 0x17, 0xba, 0x09, 0x9e, 0x03, 0x90, 0x93, 0x7b, 0x7c, 0x49,
+  0x83, 0x22, 0x68, 0x8a, 0x9b, 0xde, 0x47, 0xc3, 0x31, 0x98, 0x7a, 0x2e,
+  0x7d, 0x40, 0x0b, 0xd2, 0xef, 0x3e, 0xd3, 0xb2, 0x8c, 0xaa, 0x8f, 0x48,
+  0xa9, 0xff, 0x00, 0xe8, 0x29, 0x58, 0x06, 0xf7, 0xb6, 0x93, 0x5a, 0x94,
+  0x73, 0x26, 0x26, 0xad, 0x58, 0x0e, 0xe5, 0x42, 0xb8, 0xd5, 0xea, 0x73,
+  0x79, 0x64, 0x68, 0x53, 0x25, 0xb8, 0x84, 0xcf, 0x94, 0x7a, 0xae, 0x06,
+  0x45, 0x0c, 0xa3, 0x6b, 0x4d, 0xd0, 0xc6, 0xbe, 0xea, 0x18, 0xa4, 0x36,
+  0xf0, 0x92, 0xb2, 0xba, 0x1c, 0x88, 0x8f, 0x3a, 0x52, 0x7f, 0xf7, 0x5e,
+  0x6d, 0x83, 0x1c, 0x9d, 0xf0, 0x1f, 0xe5, 0xc3, 0xd6, 0xdd, 0xa5, 0x78,
+  0x92, 0x3d, 0xb0, 0x6d, 0x2c, 0xea, 0xc9, 0xcf, 0x94, 0x41, 0x19, 0x71,
+  0x44, 0x68, 0xba, 0x47, 0x3c, 0x04, 0xe9, 0x5d, 0xba, 0x3e, 0xf0, 0x35,
+  0xf7, 0x15, 0xb6, 0x9e, 0xf2, 0x2e, 0x15, 0x1e, 0x3f, 0x47, 0xc8, 0xc8,
+  0x38, 0xa7, 0x73, 0x45, 0x5d, 0x4d, 0xb0, 0x3b, 0xb1, 0x8e, 0x17, 0x29,
+  0x37, 0xea, 0xdd, 0x05, 0x01, 0x22, 0xbb, 0x94, 0x36, 0x2a, 0x8d, 0x5b,
+  0x35, 0xfe, 0x53, 0x19, 0x2f, 0x08, 0x46, 0xc1, 0x2a, 0xb3, 0x1a, 0x62,
+  0x1d, 0x4e, 0x2b, 0xd9, 0x1b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x09, 0x30, 0x82, 0x01, 0x05, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d,
+  0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0f,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff,
+  0x02, 0x01, 0x00, 0x30, 0x33, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x17, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x65, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x30, 0x30, 0x06, 0x03,
+  0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0,
+  0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72,
+  0x6c, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+  0x74, 0x2f, 0x67, 0x32, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b,
+  0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06,
+  0x04, 0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x82, 0xa2,
+  0x70, 0x74, 0xdd, 0xbc, 0x53, 0x3f, 0xcf, 0x7b, 0xd4, 0xf7, 0xcd, 0x7f,
+  0xa7, 0x60, 0xc6, 0x0a, 0x4c, 0xbf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0,
+  0x1e, 0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90,
+  0x12, 0x66, 0xab, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x3f,
+  0x1c, 0x1a, 0x5b, 0xff, 0x40, 0x22, 0x1d, 0x8f, 0x35, 0x0c, 0x2d, 0xaa,
+  0x99, 0x27, 0xab, 0xc0, 0x11, 0x32, 0x70, 0xd7, 0x36, 0x28, 0x69, 0xa5,
+  0x8d, 0xb1, 0x27, 0x99, 0x42, 0xbe, 0xc4, 0x93, 0xeb, 0x48, 0x57, 0x43,
+  0x71, 0x23, 0xc4, 0xe5, 0x4e, 0xad, 0xae, 0x43, 0x6f, 0x92, 0x76, 0xc5,
+  0x19, 0xef, 0xca, 0xbc, 0x6f, 0x42, 0x4c, 0x16, 0x9a, 0x86, 0xa9, 0x04,
+  0x38, 0xc7, 0x65, 0xf0, 0xf5, 0x0c, 0xe0, 0x4a, 0xdf, 0xa2, 0xfa, 0xce,
+  0x1a, 0x11, 0xa8, 0x9c, 0x69, 0x2f, 0x1b, 0xdf, 0xea, 0xe2, 0x32, 0xf3,
+  0xce, 0x4c, 0xbc, 0x46, 0x0c, 0xc0, 0x89, 0x80, 0xd1, 0x87, 0x6b, 0xa2,
+  0xcf, 0x6b, 0xd4, 0x7f, 0xfd, 0xf5, 0x60, 0x52, 0x67, 0x57, 0xa0, 0x6d,
+  0xd1, 0x64, 0x41, 0x14, 0x6d, 0x34, 0x62, 0xed, 0x06, 0x6c, 0x24, 0xf2,
+  0x06, 0xbc, 0x28, 0x02, 0xaf, 0x03, 0x2d, 0xc2, 0x33, 0x05, 0xfb, 0xcb,
+  0xaa, 0x16, 0xe8, 0x65, 0x10, 0x43, 0xf5, 0x69, 0x5c, 0xe3, 0x81, 0x58,
+  0x99, 0xcd, 0x6b, 0xd3, 0xb8, 0xc7, 0x7b, 0x19, 0x55, 0xc9, 0x40, 0xce,
+  0x79, 0x55, 0xb8, 0x73, 0x89, 0xe9, 0x5c, 0x40, 0x66, 0x43, 0x12, 0x7f,
+  0x07, 0xb8, 0x65, 0x56, 0xd5, 0x8d, 0xc3, 0xa7, 0xf5, 0xb1, 0xb6, 0x65,
+  0x9e, 0xc0, 0x83, 0x36, 0x7f, 0x16, 0x45, 0x3c, 0x74, 0x4b, 0x93, 0x8a,
+  0x3c, 0xf1, 0x2b, 0xf5, 0x35, 0x70, 0x73, 0x7b, 0xe7, 0x82, 0x04, 0xb1,
+  0x18, 0x98, 0x0e, 0xd4, 0x9c, 0x6f, 0x1a, 0xfc, 0xfc, 0xa7, 0x33, 0xa5,
+  0xbb, 0xbb, 0x18, 0xf3, 0x6b, 0x7a, 0x5d, 0x32, 0x87, 0xf7, 0x6d, 0x25,
+  0xe4, 0xe2, 0x76, 0x86, 0x21, 0x1e, 0x11, 0x46, 0xcd, 0x76, 0x0e, 0x6f,
+  0x4f, 0xa4, 0x21, 0x71, 0x0a, 0x84, 0xa7, 0x2d, 0x36, 0xa9, 0x48, 0x22,
+  0x51, 0x7e, 0x82,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            0e:e9:4c:c3:00:00:00:00:51:d3:77:85
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2009 Entrust, Inc. - for authorized use only, CN=Entrust Root Certification Authority - G2
+        Validity
+            Not Before: Oct  5 19:13:56 2015 GMT
+            Not After : Dec  5 19:43:56 2030 GMT
+        Subject: C=US, O=Entrust, Inc., OU=See www.entrust.net/legal-terms, OU=(c) 2012 Entrust, Inc. - for authorized use only, CN=Entrust Certification Authority - L1K
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:da:3f:96:d0:4d:b9:2f:44:e7:db:39:5e:9b:50:
+                    ee:5c:a5:61:da:41:67:53:09:aa:00:9a:8e:57:7f:
+                    29:6b:db:c7:e1:21:24:aa:3a:d0:8d:47:23:d2:ed:
+                    72:16:f0:91:21:d2:5d:b7:b8:4b:a8:83:8f:b7:91:
+                    32:68:cf:ce:25:93:2c:b2:7d:97:c8:fe:c1:b4:17:
+                    ba:09:9e:03:90:93:7b:7c:49:83:22:68:8a:9b:de:
+                    47:c3:31:98:7a:2e:7d:40:0b:d2:ef:3e:d3:b2:8c:
+                    aa:8f:48:a9:ff:00:e8:29:58:06:f7:b6:93:5a:94:
+                    73:26:26:ad:58:0e:e5:42:b8:d5:ea:73:79:64:68:
+                    53:25:b8:84:cf:94:7a:ae:06:45:0c:a3:6b:4d:d0:
+                    c6:be:ea:18:a4:36:f0:92:b2:ba:1c:88:8f:3a:52:
+                    7f:f7:5e:6d:83:1c:9d:f0:1f:e5:c3:d6:dd:a5:78:
+                    92:3d:b0:6d:2c:ea:c9:cf:94:41:19:71:44:68:ba:
+                    47:3c:04:e9:5d:ba:3e:f0:35:f7:15:b6:9e:f2:2e:
+                    15:1e:3f:47:c8:c8:38:a7:73:45:5d:4d:b0:3b:b1:
+                    8e:17:29:37:ea:dd:05:01:22:bb:94:36:2a:8d:5b:
+                    35:fe:53:19:2f:08:46:c1:2a:b3:1a:62:1d:4e:2b:
+                    d9:1b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.entrust.net
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.entrust.net/g2ca.crl
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.entrust.net/rpa
+
+            X509v3 Subject Key Identifier: 
+                82:A2:70:74:DD:BC:53:3F:CF:7B:D4:F7:CD:7F:A7:60:C6:0A:4C:BF
+            X509v3 Authority Key Identifier: 
+                keyid:6A:72:26:7A:D0:1E:EF:7D:E7:3B:69:51:D4:6C:8D:9F:90:12:66:AB
+
+    Signature Algorithm: sha256WithRSAEncryption
+         39:d5:8e:98:83:61:c8:2c:63:d3:70:1d:19:30:cb:f6:09:ac:
+         cc:69:d5:c9:dc:37:41:f2:32:0f:ef:74:c3:58:f6:78:27:09:
+         34:08:95:92:2f:d7:df:b8:a3:fd:0e:81:e9:a4:9c:d3:3f:4d:
+         68:2b:15:31:0a:15:cc:52:04:93:e8:93:50:c3:d9:b1:e2:e1:
+         68:b7:3a:09:74:f1:34:58:0a:3f:77:98:40:b8:e6:68:ff:5d:
+         e4:c8:46:c5:ec:81:d7:c9:82:18:5c:83:ce:71:d8:bc:bf:ac:
+         99:02:93:db:94:98:84:d2:9c:a6:b5:fe:5c:bb:f0:4a:af:21:
+         ac:c2:3f:49:24:67:d6:2e:8e:cf:ac:cc:64:15:18:72:e5:6c:
+         77:d3:52:a8:b9:dd:8d:ac:00:4a:35:19:d4:6f:73:a3:75:ef:
+         6b:64:c3:e0:8d:83:12:a1:8a:e7:0e:86:4d:d8:b4:20:1b:be:
+         6a:a5:8c:4b:68:66:e3:2b:c7:58:0b:fb:56:10:d4:91:fb:1d:
+         d3:31:58:10:8c:44:e3:75:7b:10:9d:b5:38:b1:f6:aa:ca:81:
+         64:6c:e8:f2:e2:81:55:97:51:7f:e1:c2:27:50:a2:c9:3c:5b:
+         00:43:f6:5b:b9:d5:a5:fc:ff:07:50:40:67:07:b0:55:f0:b7:
+         7e:6e:2d:cc
+-----BEGIN CERTIFICATE-----
+MIIFDjCCA/agAwIBAgIMDulMwwAAAABR03eFMA0GCSqGSIb3DQEBCwUAMIG+MQsw
+CQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2Vl
+IHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMDkg
+RW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBvbmx5MTIwMAYDVQQD
+EylFbnRydXN0IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjAeFw0x
+NTEwMDUxOTEzNTZaFw0zMDEyMDUxOTQzNTZaMIG6MQswCQYDVQQGEwJVUzEWMBQG
+A1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5l
+dC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTIgRW50cnVzdCwgSW5jLiAt
+IGZvciBhdXRob3JpemVkIHVzZSBvbmx5MS4wLAYDVQQDEyVFbnRydXN0IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5IC0gTDFLMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEA2j+W0E25L0Tn2zlem1DuXKVh2kFnUwmqAJqOV38pa9vH4SEkqjrQ
+jUcj0u1yFvCRIdJdt7hLqIOPt5EyaM/OJZMssn2XyP7BtBe6CZ4DkJN7fEmDImiK
+m95HwzGYei59QAvS7z7Tsoyqj0ip/wDoKVgG97aTWpRzJiatWA7lQrjV6nN5ZGhT
+JbiEz5R6rgZFDKNrTdDGvuoYpDbwkrK6HIiPOlJ/915tgxyd8B/lw9bdpXiSPbBt
+LOrJz5RBGXFEaLpHPATpXbo+8DX3Fbae8i4VHj9HyMg4p3NFXU2wO7GOFyk36t0F
+ASK7lDYqjVs1/lMZLwhGwSqzGmIdTivZGwIDAQABo4IBDDCCAQgwDgYDVR0PAQH/
+BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwMwYIKwYBBQUHAQEEJzAlMCMGCCsG
+AQUFBzABhhdodHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAwBgNVHR8EKTAnMCWgI6Ah
+hh9odHRwOi8vY3JsLmVudHJ1c3QubmV0L2cyY2EuY3JsMDsGA1UdIAQ0MDIwMAYE
+VR0gADAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAd
+BgNVHQ4EFgQUgqJwdN28Uz/Pe9T3zX+nYMYKTL8wHwYDVR0jBBgwFoAUanImetAe
+733nO2lR1GyNn5ASZqswDQYJKoZIhvcNAQELBQADggEBADnVjpiDYcgsY9NwHRkw
+y/YJrMxp1cncN0HyMg/vdMNY9ngnCTQIlZIv19+4o/0OgemknNM/TWgrFTEKFcxS
+BJPok1DD2bHi4Wi3Ogl08TRYCj93mEC45mj/XeTIRsXsgdfJghhcg85x2Ly/rJkC
+k9uUmITSnKa1/ly78EqvIazCP0kkZ9Yujs+szGQVGHLlbHfTUqi53Y2sAEo1GdRv
+c6N172tkw+CNgxKhiucOhk3YtCAbvmqljEtoZuMrx1gL+1YQ1JH7HdMxWBCMRON1
+exCdtTix9qrKgWRs6PLigVWXUX/hwidQosk8WwBD9lu51aX8/wdQQGcHsFXwt35u
+Lcw=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert42[] = {
+  0x30, 0x82, 0x05, 0x0e, 0x30, 0x82, 0x03, 0xf6, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x0c, 0x0e, 0xe9, 0x4c, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x51,
+  0xd3, 0x77, 0x85, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81, 0xbe, 0x31, 0x0b, 0x30,
+  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16,
+  0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28,
+  0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65,
+  0x20, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74,
+  0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74,
+  0x65, 0x72, 0x6d, 0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x30, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x20,
+  0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63,
+  0x2e, 0x20, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68,
+  0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f,
+  0x6e, 0x6c, 0x79, 0x31, 0x32, 0x30, 0x30, 0x06, 0x03, 0x55, 0x04, 0x03,
+  0x13, 0x29, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f,
+  0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x30, 0x1e, 0x17, 0x0d, 0x31,
+  0x35, 0x31, 0x30, 0x30, 0x35, 0x31, 0x39, 0x31, 0x33, 0x35, 0x36, 0x5a,
+  0x17, 0x0d, 0x33, 0x30, 0x31, 0x32, 0x30, 0x35, 0x31, 0x39, 0x34, 0x33,
+  0x35, 0x36, 0x5a, 0x30, 0x81, 0xba, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+  0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06,
+  0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x28, 0x30, 0x26, 0x06,
+  0x03, 0x55, 0x04, 0x0b, 0x13, 0x1f, 0x53, 0x65, 0x65, 0x20, 0x77, 0x77,
+  0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65,
+  0x74, 0x2f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x2d, 0x74, 0x65, 0x72, 0x6d,
+  0x73, 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x30,
+  0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x32, 0x20, 0x45, 0x6e, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x45,
+  0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x4c, 0x31, 0x4b,
+  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
+  0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x3f, 0x96,
+  0xd0, 0x4d, 0xb9, 0x2f, 0x44, 0xe7, 0xdb, 0x39, 0x5e, 0x9b, 0x50, 0xee,
+  0x5c, 0xa5, 0x61, 0xda, 0x41, 0x67, 0x53, 0x09, 0xaa, 0x00, 0x9a, 0x8e,
+  0x57, 0x7f, 0x29, 0x6b, 0xdb, 0xc7, 0xe1, 0x21, 0x24, 0xaa, 0x3a, 0xd0,
+  0x8d, 0x47, 0x23, 0xd2, 0xed, 0x72, 0x16, 0xf0, 0x91, 0x21, 0xd2, 0x5d,
+  0xb7, 0xb8, 0x4b, 0xa8, 0x83, 0x8f, 0xb7, 0x91, 0x32, 0x68, 0xcf, 0xce,
+  0x25, 0x93, 0x2c, 0xb2, 0x7d, 0x97, 0xc8, 0xfe, 0xc1, 0xb4, 0x17, 0xba,
+  0x09, 0x9e, 0x03, 0x90, 0x93, 0x7b, 0x7c, 0x49, 0x83, 0x22, 0x68, 0x8a,
+  0x9b, 0xde, 0x47, 0xc3, 0x31, 0x98, 0x7a, 0x2e, 0x7d, 0x40, 0x0b, 0xd2,
+  0xef, 0x3e, 0xd3, 0xb2, 0x8c, 0xaa, 0x8f, 0x48, 0xa9, 0xff, 0x00, 0xe8,
+  0x29, 0x58, 0x06, 0xf7, 0xb6, 0x93, 0x5a, 0x94, 0x73, 0x26, 0x26, 0xad,
+  0x58, 0x0e, 0xe5, 0x42, 0xb8, 0xd5, 0xea, 0x73, 0x79, 0x64, 0x68, 0x53,
+  0x25, 0xb8, 0x84, 0xcf, 0x94, 0x7a, 0xae, 0x06, 0x45, 0x0c, 0xa3, 0x6b,
+  0x4d, 0xd0, 0xc6, 0xbe, 0xea, 0x18, 0xa4, 0x36, 0xf0, 0x92, 0xb2, 0xba,
+  0x1c, 0x88, 0x8f, 0x3a, 0x52, 0x7f, 0xf7, 0x5e, 0x6d, 0x83, 0x1c, 0x9d,
+  0xf0, 0x1f, 0xe5, 0xc3, 0xd6, 0xdd, 0xa5, 0x78, 0x92, 0x3d, 0xb0, 0x6d,
+  0x2c, 0xea, 0xc9, 0xcf, 0x94, 0x41, 0x19, 0x71, 0x44, 0x68, 0xba, 0x47,
+  0x3c, 0x04, 0xe9, 0x5d, 0xba, 0x3e, 0xf0, 0x35, 0xf7, 0x15, 0xb6, 0x9e,
+  0xf2, 0x2e, 0x15, 0x1e, 0x3f, 0x47, 0xc8, 0xc8, 0x38, 0xa7, 0x73, 0x45,
+  0x5d, 0x4d, 0xb0, 0x3b, 0xb1, 0x8e, 0x17, 0x29, 0x37, 0xea, 0xdd, 0x05,
+  0x01, 0x22, 0xbb, 0x94, 0x36, 0x2a, 0x8d, 0x5b, 0x35, 0xfe, 0x53, 0x19,
+  0x2f, 0x08, 0x46, 0xc1, 0x2a, 0xb3, 0x1a, 0x62, 0x1d, 0x4e, 0x2b, 0xd9,
+  0x1b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x0c, 0x30, 0x82,
+  0x01, 0x08, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+  0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x33, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x01, 0x01, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x17, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x65, 0x6e, 0x74, 0x72,
+  0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x30, 0x30, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21,
+  0x86, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+  0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74,
+  0x2f, 0x67, 0x32, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x3b, 0x06,
+  0x03, 0x55, 0x1d, 0x20, 0x04, 0x34, 0x30, 0x32, 0x30, 0x30, 0x06, 0x04,
+  0x55, 0x1d, 0x20, 0x00, 0x30, 0x28, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x1d,
+  0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x82, 0xa2, 0x70,
+  0x74, 0xdd, 0xbc, 0x53, 0x3f, 0xcf, 0x7b, 0xd4, 0xf7, 0xcd, 0x7f, 0xa7,
+  0x60, 0xc6, 0x0a, 0x4c, 0xbf, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
+  0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x6a, 0x72, 0x26, 0x7a, 0xd0, 0x1e,
+  0xef, 0x7d, 0xe7, 0x3b, 0x69, 0x51, 0xd4, 0x6c, 0x8d, 0x9f, 0x90, 0x12,
+  0x66, 0xab, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x39, 0xd5,
+  0x8e, 0x98, 0x83, 0x61, 0xc8, 0x2c, 0x63, 0xd3, 0x70, 0x1d, 0x19, 0x30,
+  0xcb, 0xf6, 0x09, 0xac, 0xcc, 0x69, 0xd5, 0xc9, 0xdc, 0x37, 0x41, 0xf2,
+  0x32, 0x0f, 0xef, 0x74, 0xc3, 0x58, 0xf6, 0x78, 0x27, 0x09, 0x34, 0x08,
+  0x95, 0x92, 0x2f, 0xd7, 0xdf, 0xb8, 0xa3, 0xfd, 0x0e, 0x81, 0xe9, 0xa4,
+  0x9c, 0xd3, 0x3f, 0x4d, 0x68, 0x2b, 0x15, 0x31, 0x0a, 0x15, 0xcc, 0x52,
+  0x04, 0x93, 0xe8, 0x93, 0x50, 0xc3, 0xd9, 0xb1, 0xe2, 0xe1, 0x68, 0xb7,
+  0x3a, 0x09, 0x74, 0xf1, 0x34, 0x58, 0x0a, 0x3f, 0x77, 0x98, 0x40, 0xb8,
+  0xe6, 0x68, 0xff, 0x5d, 0xe4, 0xc8, 0x46, 0xc5, 0xec, 0x81, 0xd7, 0xc9,
+  0x82, 0x18, 0x5c, 0x83, 0xce, 0x71, 0xd8, 0xbc, 0xbf, 0xac, 0x99, 0x02,
+  0x93, 0xdb, 0x94, 0x98, 0x84, 0xd2, 0x9c, 0xa6, 0xb5, 0xfe, 0x5c, 0xbb,
+  0xf0, 0x4a, 0xaf, 0x21, 0xac, 0xc2, 0x3f, 0x49, 0x24, 0x67, 0xd6, 0x2e,
+  0x8e, 0xcf, 0xac, 0xcc, 0x64, 0x15, 0x18, 0x72, 0xe5, 0x6c, 0x77, 0xd3,
+  0x52, 0xa8, 0xb9, 0xdd, 0x8d, 0xac, 0x00, 0x4a, 0x35, 0x19, 0xd4, 0x6f,
+  0x73, 0xa3, 0x75, 0xef, 0x6b, 0x64, 0xc3, 0xe0, 0x8d, 0x83, 0x12, 0xa1,
+  0x8a, 0xe7, 0x0e, 0x86, 0x4d, 0xd8, 0xb4, 0x20, 0x1b, 0xbe, 0x6a, 0xa5,
+  0x8c, 0x4b, 0x68, 0x66, 0xe3, 0x2b, 0xc7, 0x58, 0x0b, 0xfb, 0x56, 0x10,
+  0xd4, 0x91, 0xfb, 0x1d, 0xd3, 0x31, 0x58, 0x10, 0x8c, 0x44, 0xe3, 0x75,
+  0x7b, 0x10, 0x9d, 0xb5, 0x38, 0xb1, 0xf6, 0xaa, 0xca, 0x81, 0x64, 0x6c,
+  0xe8, 0xf2, 0xe2, 0x81, 0x55, 0x97, 0x51, 0x7f, 0xe1, 0xc2, 0x27, 0x50,
+  0xa2, 0xc9, 0x3c, 0x5b, 0x00, 0x43, 0xf6, 0x5b, 0xb9, 0xd5, 0xa5, 0xfc,
+  0xff, 0x07, 0x50, 0x40, 0x67, 0x07, 0xb0, 0x55, 0xf0, 0xb7, 0x7e, 0x6e,
+  0x2d, 0xcc,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120038507 (0x727a46b)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Validity
+            Not Before: Apr  2 14:36:10 2014 GMT
+            Not After : Apr  2 14:35:52 2021 GMT
+        Subject: C=NL, L=Amsterdam, O=Verizon Enterprise Solutions, OU=Cybertrust, CN=Verizon Akamai SureServer CA G14-SHA2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:dd:6e:9e:02:69:02:b5:a3:99:2e:08:64:32:6a:
+                    59:f3:c6:9e:a6:20:07:d2:48:d1:a8:93:c7:ea:47:
+                    8f:83:39:40:d7:20:5d:8d:9a:ba:ab:d8:70:ec:9d:
+                    88:d1:bd:62:f6:db:ec:9d:5e:35:01:76:03:23:e5:
+                    6f:d2:af:46:35:59:5a:5c:d1:a8:23:c1:eb:e9:20:
+                    d4:49:d6:3f:00:d8:a8:22:de:43:79:81:ac:e9:a4:
+                    92:f5:77:70:05:1e:5c:b6:a0:f7:90:a4:cd:ab:28:
+                    2c:90:c2:e7:0f:c3:af:1c:47:59:d5:84:2e:df:26:
+                    07:45:23:5a:c6:e8:90:c8:85:4b:8c:16:1e:60:f9:
+                    01:13:f1:14:1f:e6:e8:14:ed:c5:d2:6f:63:28:6e:
+                    72:8c:49:ae:08:72:c7:93:95:b4:0b:0c:ae:8f:9a:
+                    67:84:f5:57:1b:db:81:d7:17:9d:41:11:43:19:bd:
+                    6d:4a:85:ed:8f:70:25:ab:66:ab:f6:fa:6d:1c:3c:
+                    ab:ed:17:bd:56:84:e1:db:75:33:b2:28:4b:99:8e:
+                    f9:4b:82:33:50:9f:92:53:ed:fa:ad:0f:95:9c:a3:
+                    f2:cb:60:f0:77:1d:c9:01:8b:5f:2d:86:be:bf:36:
+                    b8:24:96:13:7c:c1:86:5a:6c:c1:48:2a:7f:3e:93:
+                    60:c5
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:2
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6334.1.50
+                  CPS: https://secure.omniroot.com/repository
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+                CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.crt
+                CA Issuers - URI:https://cacert.omniroot.com/baltimoreroot.der
+
+            X509v3 Key Usage: critical
+                Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
+            X509v3 Authority Key Identifier: 
+                keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+            X509v3 Subject Key Identifier: 
+                F8:BD:FA:AF:73:77:C6:C7:1B:F9:4B:4D:11:A7:D1:33:AF:AF:72:11
+    Signature Algorithm: sha256WithRSAEncryption
+         80:d9:7a:ed:72:05:37:8f:61:aa:73:7c:9a:6a:fc:fe:01:e2:
+         19:81:70:07:25:32:b0:f0:6f:3b:c7:6a:28:3d:e4:51:87:e6:
+         7e:82:ec:ae:48:a7:b1:77:38:c2:d6:56:af:8f:f2:01:fc:65:
+         65:10:09:f7:74:29:b5:0e:92:ee:90:98:d1:88:a2:65:b7:cd:
+         9c:0e:a7:86:98:28:bc:ae:15:83:b6:1a:d7:1d:ec:19:da:7a:
+         8e:40:f9:99:15:d5:7d:a5:ba:ab:fd:26:98:6e:9c:41:3b:b6:
+         81:18:ec:70:48:d7:6e:7f:a6:e1:77:25:d6:dd:62:e8:52:f3:
+         8c:16:39:67:e2:22:0d:77:2e:fb:11:6c:e4:dd:38:b4:27:5f:
+         03:a8:3d:44:e2:f2:84:4b:84:fd:56:a6:9e:4d:7b:a2:16:4f:
+         07:f5:34:24:72:a5:a2:fa:16:66:2a:a4:4a:0e:c8:0d:27:44:
+         9c:77:d4:12:10:87:d2:00:2c:7a:bb:8e:88:22:91:15:be:a2:
+         59:ca:34:e0:1c:61:94:86:20:33:cd:e7:4c:5d:3b:92:3e:cb:
+         d6:2d:ea:54:fa:fb:af:54:f5:a8:c5:0b:ca:8b:87:00:e6:9f:
+         e6:95:bf:b7:c4:a3:59:f5:16:6c:5f:3e:69:55:80:39:f6:75:
+         50:14:3e:32
+-----BEGIN CERTIFICATE-----
+MIIFHzCCBAegAwIBAgIEByekazANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDQwMjE0MzYxMFoX
+DTIxMDQwMjE0MzU1MlowgY0xCzAJBgNVBAYTAk5MMRIwEAYDVQQHEwlBbXN0ZXJk
+YW0xJTAjBgNVBAoTHFZlcml6b24gRW50ZXJwcmlzZSBTb2x1dGlvbnMxEzARBgNV
+BAsTCkN5YmVydHJ1c3QxLjAsBgNVBAMTJVZlcml6b24gQWthbWFpIFN1cmVTZXJ2
+ZXIgQ0EgRzE0LVNIQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDd
+bp4CaQK1o5kuCGQyalnzxp6mIAfSSNGok8fqR4+DOUDXIF2Nmrqr2HDsnYjRvWL2
+2+ydXjUBdgMj5W/Sr0Y1WVpc0agjwevpINRJ1j8A2Kgi3kN5gazppJL1d3AFHly2
+oPeQpM2rKCyQwucPw68cR1nVhC7fJgdFI1rG6JDIhUuMFh5g+QET8RQf5ugU7cXS
+b2MobnKMSa4IcseTlbQLDK6PmmeE9Vcb24HXF51BEUMZvW1Khe2PcCWrZqv2+m0c
+PKvtF71WhOHbdTOyKEuZjvlLgjNQn5JT7fqtD5Wco/LLYPB3HckBi18thr6/Nrgk
+lhN8wYZabMFIKn8+k2DFAgMBAAGjggG3MIIBszASBgNVHRMBAf8ECDAGAQH/AgEC
+MEwGA1UdIARFMEMwQQYJKwYBBAGxPgEyMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
+c2VjdXJlLm9tbmlyb290LmNvbS9yZXBvc2l0b3J5MIG6BggrBgEFBQcBAQSBrTCB
+qjAyBggrBgEFBQcwAYYmaHR0cDovL29jc3Aub21uaXJvb3QuY29tL2JhbHRpbW9y
+ZXJvb3QwOQYIKwYBBQUHMAKGLWh0dHBzOi8vY2FjZXJ0Lm9tbmlyb290LmNvbS9i
+YWx0aW1vcmVyb290LmNydDA5BggrBgEFBQcwAoYtaHR0cHM6Ly9jYWNlcnQub21u
+aXJvb3QuY29tL2JhbHRpbW9yZXJvb3QuZGVyMA4GA1UdDwEB/wQEAwIBxjAfBgNV
+HSMEGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DBCBgNVHR8EOzA5MDegNaAzhjFo
+dHRwOi8vY2RwMS5wdWJsaWMtdHJ1c3QuY29tL0NSTC9PbW5pcm9vdDIwMjUuY3Js
+MB0GA1UdDgQWBBT4vfqvc3fGxxv5S00Rp9Ezr69yETANBgkqhkiG9w0BAQsFAAOC
+AQEAgNl67XIFN49hqnN8mmr8/gHiGYFwByUysPBvO8dqKD3kUYfmfoLsrkinsXc4
+wtZWr4/yAfxlZRAJ93QptQ6S7pCY0YiiZbfNnA6nhpgovK4Vg7Ya1x3sGdp6jkD5
+mRXVfaW6q/0mmG6cQTu2gRjscEjXbn+m4Xcl1t1i6FLzjBY5Z+IiDXcu+xFs5N04
+tCdfA6g9ROLyhEuE/Vamnk17ohZPB/U0JHKlovoWZiqkSg7IDSdEnHfUEhCH0gAs
+eruOiCKRFb6iWco04BxhlIYgM83nTF07kj7L1i3qVPr7r1T1qMULyouHAOaf5pW/
+t8SjWfUWbF8+aVWAOfZ1UBQ+Mg==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert43[] = {
+  0x30, 0x82, 0x05, 0x1f, 0x30, 0x82, 0x04, 0x07, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0xa4, 0x6b, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+  0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+  0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+  0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x36, 0x31, 0x30, 0x5a, 0x17,
+  0x0d, 0x32, 0x31, 0x30, 0x34, 0x30, 0x32, 0x31, 0x34, 0x33, 0x35, 0x35,
+  0x32, 0x5a, 0x30, 0x81, 0x8d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,
+  0x55, 0x04, 0x07, 0x13, 0x09, 0x41, 0x6d, 0x73, 0x74, 0x65, 0x72, 0x64,
+  0x61, 0x6d, 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x1c, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x45, 0x6e, 0x74,
+  0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x20, 0x53, 0x6f, 0x6c, 0x75,
+  0x74, 0x69, 0x6f, 0x6e, 0x73, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75,
+  0x73, 0x74, 0x31, 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x25, 0x56, 0x65, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x20, 0x41, 0x6b, 0x61,
+  0x6d, 0x61, 0x69, 0x20, 0x53, 0x75, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76,
+  0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x47, 0x31, 0x34, 0x2d, 0x53, 0x48,
+  0x41, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
+  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01,
+  0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xdd,
+  0x6e, 0x9e, 0x02, 0x69, 0x02, 0xb5, 0xa3, 0x99, 0x2e, 0x08, 0x64, 0x32,
+  0x6a, 0x59, 0xf3, 0xc6, 0x9e, 0xa6, 0x20, 0x07, 0xd2, 0x48, 0xd1, 0xa8,
+  0x93, 0xc7, 0xea, 0x47, 0x8f, 0x83, 0x39, 0x40, 0xd7, 0x20, 0x5d, 0x8d,
+  0x9a, 0xba, 0xab, 0xd8, 0x70, 0xec, 0x9d, 0x88, 0xd1, 0xbd, 0x62, 0xf6,
+  0xdb, 0xec, 0x9d, 0x5e, 0x35, 0x01, 0x76, 0x03, 0x23, 0xe5, 0x6f, 0xd2,
+  0xaf, 0x46, 0x35, 0x59, 0x5a, 0x5c, 0xd1, 0xa8, 0x23, 0xc1, 0xeb, 0xe9,
+  0x20, 0xd4, 0x49, 0xd6, 0x3f, 0x00, 0xd8, 0xa8, 0x22, 0xde, 0x43, 0x79,
+  0x81, 0xac, 0xe9, 0xa4, 0x92, 0xf5, 0x77, 0x70, 0x05, 0x1e, 0x5c, 0xb6,
+  0xa0, 0xf7, 0x90, 0xa4, 0xcd, 0xab, 0x28, 0x2c, 0x90, 0xc2, 0xe7, 0x0f,
+  0xc3, 0xaf, 0x1c, 0x47, 0x59, 0xd5, 0x84, 0x2e, 0xdf, 0x26, 0x07, 0x45,
+  0x23, 0x5a, 0xc6, 0xe8, 0x90, 0xc8, 0x85, 0x4b, 0x8c, 0x16, 0x1e, 0x60,
+  0xf9, 0x01, 0x13, 0xf1, 0x14, 0x1f, 0xe6, 0xe8, 0x14, 0xed, 0xc5, 0xd2,
+  0x6f, 0x63, 0x28, 0x6e, 0x72, 0x8c, 0x49, 0xae, 0x08, 0x72, 0xc7, 0x93,
+  0x95, 0xb4, 0x0b, 0x0c, 0xae, 0x8f, 0x9a, 0x67, 0x84, 0xf5, 0x57, 0x1b,
+  0xdb, 0x81, 0xd7, 0x17, 0x9d, 0x41, 0x11, 0x43, 0x19, 0xbd, 0x6d, 0x4a,
+  0x85, 0xed, 0x8f, 0x70, 0x25, 0xab, 0x66, 0xab, 0xf6, 0xfa, 0x6d, 0x1c,
+  0x3c, 0xab, 0xed, 0x17, 0xbd, 0x56, 0x84, 0xe1, 0xdb, 0x75, 0x33, 0xb2,
+  0x28, 0x4b, 0x99, 0x8e, 0xf9, 0x4b, 0x82, 0x33, 0x50, 0x9f, 0x92, 0x53,
+  0xed, 0xfa, 0xad, 0x0f, 0x95, 0x9c, 0xa3, 0xf2, 0xcb, 0x60, 0xf0, 0x77,
+  0x1d, 0xc9, 0x01, 0x8b, 0x5f, 0x2d, 0x86, 0xbe, 0xbf, 0x36, 0xb8, 0x24,
+  0x96, 0x13, 0x7c, 0xc1, 0x86, 0x5a, 0x6c, 0xc1, 0x48, 0x2a, 0x7f, 0x3e,
+  0x93, 0x60, 0xc5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xb7,
+  0x30, 0x82, 0x01, 0xb3, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02,
+  0x30, 0x4c, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x45, 0x30, 0x43, 0x30,
+  0x41, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e, 0x01, 0x32,
+  0x30, 0x34, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x02, 0x01, 0x16, 0x26, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
+  0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72,
+  0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x70, 0x6f,
+  0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x30, 0x81, 0xba, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x81, 0xad, 0x30, 0x81,
+  0xaa, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+  0x01, 0x86, 0x26, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63,
+  0x73, 0x70, 0x2e, 0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72,
+  0x65, 0x72, 0x6f, 0x6f, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73,
+  0x3a, 0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d,
+  0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+  0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+  0x2e, 0x63, 0x72, 0x74, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x30, 0x02, 0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a,
+  0x2f, 0x2f, 0x63, 0x61, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x6f, 0x6d, 0x6e,
+  0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61,
+  0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74, 0x2e,
+  0x64, 0x65, 0x72, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0xc6, 0x30, 0x1f, 0x06, 0x03, 0x55,
+  0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30,
+  0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a,
+  0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+  0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70,
+  0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69,
+  0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c,
+  0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf8,
+  0xbd, 0xfa, 0xaf, 0x73, 0x77, 0xc6, 0xc7, 0x1b, 0xf9, 0x4b, 0x4d, 0x11,
+  0xa7, 0xd1, 0x33, 0xaf, 0xaf, 0x72, 0x11, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x01, 0x00, 0x80, 0xd9, 0x7a, 0xed, 0x72, 0x05, 0x37, 0x8f, 0x61,
+  0xaa, 0x73, 0x7c, 0x9a, 0x6a, 0xfc, 0xfe, 0x01, 0xe2, 0x19, 0x81, 0x70,
+  0x07, 0x25, 0x32, 0xb0, 0xf0, 0x6f, 0x3b, 0xc7, 0x6a, 0x28, 0x3d, 0xe4,
+  0x51, 0x87, 0xe6, 0x7e, 0x82, 0xec, 0xae, 0x48, 0xa7, 0xb1, 0x77, 0x38,
+  0xc2, 0xd6, 0x56, 0xaf, 0x8f, 0xf2, 0x01, 0xfc, 0x65, 0x65, 0x10, 0x09,
+  0xf7, 0x74, 0x29, 0xb5, 0x0e, 0x92, 0xee, 0x90, 0x98, 0xd1, 0x88, 0xa2,
+  0x65, 0xb7, 0xcd, 0x9c, 0x0e, 0xa7, 0x86, 0x98, 0x28, 0xbc, 0xae, 0x15,
+  0x83, 0xb6, 0x1a, 0xd7, 0x1d, 0xec, 0x19, 0xda, 0x7a, 0x8e, 0x40, 0xf9,
+  0x99, 0x15, 0xd5, 0x7d, 0xa5, 0xba, 0xab, 0xfd, 0x26, 0x98, 0x6e, 0x9c,
+  0x41, 0x3b, 0xb6, 0x81, 0x18, 0xec, 0x70, 0x48, 0xd7, 0x6e, 0x7f, 0xa6,
+  0xe1, 0x77, 0x25, 0xd6, 0xdd, 0x62, 0xe8, 0x52, 0xf3, 0x8c, 0x16, 0x39,
+  0x67, 0xe2, 0x22, 0x0d, 0x77, 0x2e, 0xfb, 0x11, 0x6c, 0xe4, 0xdd, 0x38,
+  0xb4, 0x27, 0x5f, 0x03, 0xa8, 0x3d, 0x44, 0xe2, 0xf2, 0x84, 0x4b, 0x84,
+  0xfd, 0x56, 0xa6, 0x9e, 0x4d, 0x7b, 0xa2, 0x16, 0x4f, 0x07, 0xf5, 0x34,
+  0x24, 0x72, 0xa5, 0xa2, 0xfa, 0x16, 0x66, 0x2a, 0xa4, 0x4a, 0x0e, 0xc8,
+  0x0d, 0x27, 0x44, 0x9c, 0x77, 0xd4, 0x12, 0x10, 0x87, 0xd2, 0x00, 0x2c,
+  0x7a, 0xbb, 0x8e, 0x88, 0x22, 0x91, 0x15, 0xbe, 0xa2, 0x59, 0xca, 0x34,
+  0xe0, 0x1c, 0x61, 0x94, 0x86, 0x20, 0x33, 0xcd, 0xe7, 0x4c, 0x5d, 0x3b,
+  0x92, 0x3e, 0xcb, 0xd6, 0x2d, 0xea, 0x54, 0xfa, 0xfb, 0xaf, 0x54, 0xf5,
+  0xa8, 0xc5, 0x0b, 0xca, 0x8b, 0x87, 0x00, 0xe6, 0x9f, 0xe6, 0x95, 0xbf,
+  0xb7, 0xc4, 0xa3, 0x59, 0xf5, 0x16, 0x6c, 0x5f, 0x3e, 0x69, 0x55, 0x80,
+  0x39, 0xf6, 0x75, 0x50, 0x14, 0x3e, 0x32,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            7e:e1:4a:6f:6f:ef:f2:d3:7f:3f:ad:65:4d:3a:da:b4
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 EV SSL CA - G3
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d8:a1:65:74:23:e8:2b:64:e2:32:d7:33:37:3d:
+                    8e:f5:34:16:48:dd:4f:7f:87:1c:f8:44:23:13:8e:
+                    fb:11:d8:44:5a:18:71:8e:60:16:26:92:9b:fd:17:
+                    0b:e1:71:70:42:fe:bf:fa:1c:c0:aa:a3:a7:b5:71:
+                    e8:ff:18:83:f6:df:10:0a:13:62:c8:3d:9c:a7:de:
+                    2e:3f:0c:d9:1d:e7:2e:fb:2a:ce:c8:9a:7f:87:bf:
+                    d8:4c:04:15:32:c9:d1:cc:95:71:a0:4e:28:4f:84:
+                    d9:35:fb:e3:86:6f:94:53:e6:72:8a:63:67:2e:be:
+                    69:f6:f7:6e:8e:9c:60:04:eb:29:fa:c4:47:42:d2:
+                    78:98:e3:ec:0b:a5:92:dc:b7:9a:bd:80:64:2b:38:
+                    7c:38:09:5b:66:f6:2d:95:7a:86:b2:34:2e:85:9e:
+                    90:0e:5f:b7:5d:a4:51:72:46:70:13:bf:67:f2:b6:
+                    a7:4d:14:1e:6c:b9:53:ee:23:1a:4e:8d:48:55:43:
+                    41:b1:89:75:6a:40:28:c5:7d:dd:d2:6e:d2:02:19:
+                    2f:7b:24:94:4b:eb:f1:1a:a9:9b:e3:23:9a:ea:fa:
+                    33:ab:0a:2c:b7:f4:60:08:dd:9f:1c:cd:dd:2d:01:
+                    66:80:af:b3:2f:29:1d:23:b8:8a:e1:a1:70:07:0c:
+                    34:0f
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            Authority Information Access: 
+                OCSP - URI:http://s2.symcb.com
+
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.symauth.com/cps
+                  User Notice:
+                    Explicit Text: http://www.symauth.com/rpa
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://s1.symcb.com/pca3-g5.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-533
+            X509v3 Subject Key Identifier: 
+                01:59:AB:E7:DD:3A:0B:59:A6:64:63:D6:CF:20:07:57:D5:91:E7:6A
+            X509v3 Authority Key Identifier: 
+                keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+    Signature Algorithm: sha256WithRSAEncryption
+         42:01:55:7b:d0:16:1a:5d:58:e8:bb:9b:a8:4d:d7:f3:d7:eb:
+         13:94:86:d6:7f:21:0b:47:bc:57:9b:92:5d:4f:05:9f:38:a4:
+         10:7c:cf:83:be:06:43:46:8d:08:bc:6a:d7:10:a6:fa:ab:af:
+         2f:61:a8:63:f2:65:df:7f:4c:88:12:88:4f:b3:69:d9:ff:27:
+         c0:0a:97:91:8f:56:fb:89:c4:a8:bb:92:2d:1b:73:b0:c6:ab:
+         36:f4:96:6c:20:08:ef:0a:1e:66:24:45:4f:67:00:40:c8:07:
+         54:74:33:3b:a6:ad:bb:23:9f:66:ed:a2:44:70:34:fb:0e:ea:
+         01:fd:cf:78:74:df:a7:ad:55:b7:5f:4d:f6:d6:3f:e0:86:ce:
+         24:c7:42:a9:13:14:44:35:4b:b6:df:c9:60:ac:0c:7f:d9:93:
+         21:4b:ee:9c:e4:49:02:98:d3:60:7b:5c:bc:d5:30:2f:07:ce:
+         44:42:c4:0b:99:fe:e6:9f:fc:b0:78:86:51:6d:d1:2c:9d:c6:
+         96:fb:85:82:bb:04:2f:f7:62:80:ef:62:da:7f:f6:0e:ac:90:
+         b8:56:bd:79:3f:f2:80:6e:a3:d9:b9:0f:5d:3a:07:1d:91:93:
+         86:4b:29:4c:e1:dc:b5:e1:e0:33:9d:b3:cb:36:91:4b:fe:a1:
+         b4:ee:f0:f9
+-----BEGIN CERTIFICATE-----
+MIIFKzCCBBOgAwIBAgIQfuFKb2/v8tN/P61lTTratDANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB3MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIENs
+YXNzIDMgRVYgU1NMIENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDYoWV0I+grZOIy1zM3PY71NBZI3U9/hxz4RCMTjvsR2ERaGHGOYBYmkpv9
+FwvhcXBC/r/6HMCqo6e1cej/GIP23xAKE2LIPZyn3i4/DNkd5y77Ks7Imn+Hv9hM
+BBUyydHMlXGgTihPhNk1++OGb5RT5nKKY2cuvmn2926OnGAE6yn6xEdC0niY4+wL
+pZLct5q9gGQrOHw4CVtm9i2VeoayNC6FnpAOX7ddpFFyRnATv2fytqdNFB5suVPu
+IxpOjUhVQ0GxiXVqQCjFfd3SbtICGS97JJRL6/EaqZvjI5rq+jOrCiy39GAI3Z8c
+zd0tAWaAr7MvKR0juIrhoXAHDDQPAgMBAAGjggFdMIIBWTAvBggrBgEFBQcBAQQj
+MCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wEgYDVR0TAQH/BAgw
+BgEB/wIBADBlBgNVHSAEXjBcMFoGBFUdIAAwUjAmBggrBgEFBQcCARYaaHR0cDov
+L3d3dy5zeW1hdXRoLmNvbS9jcHMwKAYIKwYBBQUHAgIwHBoaaHR0cDovL3d3dy5z
+eW1hdXRoLmNvbS9ycGEwMAYDVR0fBCkwJzAloCOgIYYfaHR0cDovL3MxLnN5bWNi
+LmNvbS9wY2EzLWc1LmNybDAOBgNVHQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwx
+GjAYBgNVBAMTEVN5bWFudGVjUEtJLTEtNTMzMB0GA1UdDgQWBBQBWavn3ToLWaZk
+Y9bPIAdX1ZHnajAfBgNVHSMEGDAWgBR/02Wnwt3su/AwCfNDOfoCrzMxMzANBgkq
+hkiG9w0BAQsFAAOCAQEAQgFVe9AWGl1Y6LubqE3X89frE5SG1n8hC0e8V5uSXU8F
+nzikEHzPg74GQ0aNCLxq1xCm+quvL2GoY/Jl339MiBKIT7Np2f8nwAqXkY9W+4nE
+qLuSLRtzsMarNvSWbCAI7woeZiRFT2cAQMgHVHQzO6atuyOfZu2iRHA0+w7qAf3P
+eHTfp61Vt19N9tY/4IbOJMdCqRMURDVLtt/JYKwMf9mTIUvunORJApjTYHtcvNUw
+LwfORELEC5n+5p/8sHiGUW3RLJ3GlvuFgrsEL/digO9i2n/2DqyQuFa9eT/ygG6j
+2bkPXToHHZGThkspTOHcteHgM52zyzaRS/6htO7w+Q==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert44[] = {
+  0x30, 0x82, 0x05, 0x2b, 0x30, 0x82, 0x04, 0x13, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x7e, 0xe1, 0x4a, 0x6f, 0x6f, 0xef, 0xf2, 0xd3, 0x7f,
+  0x3f, 0xad, 0x65, 0x4d, 0x3a, 0xda, 0xb4, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+  0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x77, 0x31, 0x0b, 0x30,
+  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+  0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+  0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+  0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+  0x72, 0x6b, 0x31, 0x28, 0x30, 0x26, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x1f, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+  0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x45, 0x56, 0x20, 0x53, 0x53, 0x4c,
+  0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x30, 0x82, 0x01, 0x22,
+  0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+  0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a,
+  0x02, 0x82, 0x01, 0x01, 0x00, 0xd8, 0xa1, 0x65, 0x74, 0x23, 0xe8, 0x2b,
+  0x64, 0xe2, 0x32, 0xd7, 0x33, 0x37, 0x3d, 0x8e, 0xf5, 0x34, 0x16, 0x48,
+  0xdd, 0x4f, 0x7f, 0x87, 0x1c, 0xf8, 0x44, 0x23, 0x13, 0x8e, 0xfb, 0x11,
+  0xd8, 0x44, 0x5a, 0x18, 0x71, 0x8e, 0x60, 0x16, 0x26, 0x92, 0x9b, 0xfd,
+  0x17, 0x0b, 0xe1, 0x71, 0x70, 0x42, 0xfe, 0xbf, 0xfa, 0x1c, 0xc0, 0xaa,
+  0xa3, 0xa7, 0xb5, 0x71, 0xe8, 0xff, 0x18, 0x83, 0xf6, 0xdf, 0x10, 0x0a,
+  0x13, 0x62, 0xc8, 0x3d, 0x9c, 0xa7, 0xde, 0x2e, 0x3f, 0x0c, 0xd9, 0x1d,
+  0xe7, 0x2e, 0xfb, 0x2a, 0xce, 0xc8, 0x9a, 0x7f, 0x87, 0xbf, 0xd8, 0x4c,
+  0x04, 0x15, 0x32, 0xc9, 0xd1, 0xcc, 0x95, 0x71, 0xa0, 0x4e, 0x28, 0x4f,
+  0x84, 0xd9, 0x35, 0xfb, 0xe3, 0x86, 0x6f, 0x94, 0x53, 0xe6, 0x72, 0x8a,
+  0x63, 0x67, 0x2e, 0xbe, 0x69, 0xf6, 0xf7, 0x6e, 0x8e, 0x9c, 0x60, 0x04,
+  0xeb, 0x29, 0xfa, 0xc4, 0x47, 0x42, 0xd2, 0x78, 0x98, 0xe3, 0xec, 0x0b,
+  0xa5, 0x92, 0xdc, 0xb7, 0x9a, 0xbd, 0x80, 0x64, 0x2b, 0x38, 0x7c, 0x38,
+  0x09, 0x5b, 0x66, 0xf6, 0x2d, 0x95, 0x7a, 0x86, 0xb2, 0x34, 0x2e, 0x85,
+  0x9e, 0x90, 0x0e, 0x5f, 0xb7, 0x5d, 0xa4, 0x51, 0x72, 0x46, 0x70, 0x13,
+  0xbf, 0x67, 0xf2, 0xb6, 0xa7, 0x4d, 0x14, 0x1e, 0x6c, 0xb9, 0x53, 0xee,
+  0x23, 0x1a, 0x4e, 0x8d, 0x48, 0x55, 0x43, 0x41, 0xb1, 0x89, 0x75, 0x6a,
+  0x40, 0x28, 0xc5, 0x7d, 0xdd, 0xd2, 0x6e, 0xd2, 0x02, 0x19, 0x2f, 0x7b,
+  0x24, 0x94, 0x4b, 0xeb, 0xf1, 0x1a, 0xa9, 0x9b, 0xe3, 0x23, 0x9a, 0xea,
+  0xfa, 0x33, 0xab, 0x0a, 0x2c, 0xb7, 0xf4, 0x60, 0x08, 0xdd, 0x9f, 0x1c,
+  0xcd, 0xdd, 0x2d, 0x01, 0x66, 0x80, 0xaf, 0xb3, 0x2f, 0x29, 0x1d, 0x23,
+  0xb8, 0x8a, 0xe1, 0xa1, 0x70, 0x07, 0x0c, 0x34, 0x0f, 0x02, 0x03, 0x01,
+  0x00, 0x01, 0xa3, 0x82, 0x01, 0x5d, 0x30, 0x82, 0x01, 0x59, 0x30, 0x2f,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23,
+  0x30, 0x21, 0x30, 0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x01, 0x86, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73,
+  0x32, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
+  0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+  0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x65, 0x06, 0x03, 0x55,
+  0x1d, 0x20, 0x04, 0x5e, 0x30, 0x5c, 0x30, 0x5a, 0x06, 0x04, 0x55, 0x1d,
+  0x20, 0x00, 0x30, 0x52, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73,
+  0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72,
+  0x70, 0x61, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30,
+  0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35,
+  0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
+  0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x29, 0x06, 0x03,
+  0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c, 0x31,
+  0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53, 0x79,
+  0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31, 0x2d,
+  0x35, 0x33, 0x33, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
+  0x04, 0x14, 0x01, 0x59, 0xab, 0xe7, 0xdd, 0x3a, 0x0b, 0x59, 0xa6, 0x64,
+  0x63, 0xd6, 0xcf, 0x20, 0x07, 0x57, 0xd5, 0x91, 0xe7, 0x6a, 0x30, 0x1f,
+  0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7f,
+  0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3, 0x43,
+  0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x01, 0x00, 0x42, 0x01, 0x55, 0x7b, 0xd0, 0x16, 0x1a, 0x5d, 0x58,
+  0xe8, 0xbb, 0x9b, 0xa8, 0x4d, 0xd7, 0xf3, 0xd7, 0xeb, 0x13, 0x94, 0x86,
+  0xd6, 0x7f, 0x21, 0x0b, 0x47, 0xbc, 0x57, 0x9b, 0x92, 0x5d, 0x4f, 0x05,
+  0x9f, 0x38, 0xa4, 0x10, 0x7c, 0xcf, 0x83, 0xbe, 0x06, 0x43, 0x46, 0x8d,
+  0x08, 0xbc, 0x6a, 0xd7, 0x10, 0xa6, 0xfa, 0xab, 0xaf, 0x2f, 0x61, 0xa8,
+  0x63, 0xf2, 0x65, 0xdf, 0x7f, 0x4c, 0x88, 0x12, 0x88, 0x4f, 0xb3, 0x69,
+  0xd9, 0xff, 0x27, 0xc0, 0x0a, 0x97, 0x91, 0x8f, 0x56, 0xfb, 0x89, 0xc4,
+  0xa8, 0xbb, 0x92, 0x2d, 0x1b, 0x73, 0xb0, 0xc6, 0xab, 0x36, 0xf4, 0x96,
+  0x6c, 0x20, 0x08, 0xef, 0x0a, 0x1e, 0x66, 0x24, 0x45, 0x4f, 0x67, 0x00,
+  0x40, 0xc8, 0x07, 0x54, 0x74, 0x33, 0x3b, 0xa6, 0xad, 0xbb, 0x23, 0x9f,
+  0x66, 0xed, 0xa2, 0x44, 0x70, 0x34, 0xfb, 0x0e, 0xea, 0x01, 0xfd, 0xcf,
+  0x78, 0x74, 0xdf, 0xa7, 0xad, 0x55, 0xb7, 0x5f, 0x4d, 0xf6, 0xd6, 0x3f,
+  0xe0, 0x86, 0xce, 0x24, 0xc7, 0x42, 0xa9, 0x13, 0x14, 0x44, 0x35, 0x4b,
+  0xb6, 0xdf, 0xc9, 0x60, 0xac, 0x0c, 0x7f, 0xd9, 0x93, 0x21, 0x4b, 0xee,
+  0x9c, 0xe4, 0x49, 0x02, 0x98, 0xd3, 0x60, 0x7b, 0x5c, 0xbc, 0xd5, 0x30,
+  0x2f, 0x07, 0xce, 0x44, 0x42, 0xc4, 0x0b, 0x99, 0xfe, 0xe6, 0x9f, 0xfc,
+  0xb0, 0x78, 0x86, 0x51, 0x6d, 0xd1, 0x2c, 0x9d, 0xc6, 0x96, 0xfb, 0x85,
+  0x82, 0xbb, 0x04, 0x2f, 0xf7, 0x62, 0x80, 0xef, 0x62, 0xda, 0x7f, 0xf6,
+  0x0e, 0xac, 0x90, 0xb8, 0x56, 0xbd, 0x79, 0x3f, 0xf2, 0x80, 0x6e, 0xa3,
+  0xd9, 0xb9, 0x0f, 0x5d, 0x3a, 0x07, 0x1d, 0x91, 0x93, 0x86, 0x4b, 0x29,
+  0x4c, 0xe1, 0xdc, 0xb5, 0xe1, 0xe0, 0x33, 0x9d, 0xb3, 0xcb, 0x36, 0x91,
+  0x4b, 0xfe, 0xa1, 0xb4, 0xee, 0xf0, 0xf9,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            51:3f:b9:74:38:70:b7:34:40:41:8d:30:93:06:99:ff
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
+        Validity
+            Not Before: Oct 31 00:00:00 2013 GMT
+            Not After : Oct 30 23:59:59 2023 GMT
+        Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 Secure Server CA - G4
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:b2:d8:05:ca:1c:74:2d:b5:17:56:39:c5:4a:52:
+                    09:96:e8:4b:d8:0c:f1:68:9f:9a:42:28:62:c3:a5:
+                    30:53:7e:55:11:82:5b:03:7a:0d:2f:e1:79:04:c9:
+                    b4:96:77:19:81:01:94:59:f9:bc:f7:7a:99:27:82:
+                    2d:b7:83:dd:5a:27:7f:b2:03:7a:9c:53:25:e9:48:
+                    1f:46:4f:c8:9d:29:f8:be:79:56:f6:f7:fd:d9:3a:
+                    68:da:8b:4b:82:33:41:12:c3:c8:3c:cc:d6:96:7a:
+                    84:21:1a:22:04:03:27:17:8b:1c:68:61:93:0f:0e:
+                    51:80:33:1d:b4:b5:ce:eb:7e:d0:62:ac:ee:b3:7b:
+                    01:74:ef:69:35:eb:ca:d5:3d:a9:ee:97:98:ca:8d:
+                    aa:44:0e:25:99:4a:15:96:a4:ce:6d:02:54:1f:2a:
+                    6a:26:e2:06:3a:63:48:ac:b4:4c:d1:75:93:50:ff:
+                    13:2f:d6:da:e1:c6:18:f5:9f:c9:25:5d:f3:00:3a:
+                    de:26:4d:b4:29:09:cd:0f:3d:23:6f:16:4a:81:16:
+                    fb:f2:83:10:c3:b8:d6:d8:55:32:3d:f1:bd:0f:bd:
+                    8c:52:95:4a:16:97:7a:52:21:63:75:2f:16:f9:c4:
+                    66:be:f5:b5:09:d8:ff:27:00:cd:44:7c:6f:4b:3f:
+                    b0:f7
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://s1.symcb.com/pca3-g5.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://s2.symcb.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.symauth.com/cps
+                  User Notice:
+                    Explicit Text: http://www.symauth.com/rpa
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=SymantecPKI-1-534
+            X509v3 Subject Key Identifier: 
+                5F:60:CF:61:90:55:DF:84:43:14:8A:60:2A:B2:F5:7A:F4:43:18:EF
+            X509v3 Authority Key Identifier: 
+                keyid:7F:D3:65:A7:C2:DD:EC:BB:F0:30:09:F3:43:39:FA:02:AF:33:31:33
+
+    Signature Algorithm: sha256WithRSAEncryption
+         5e:94:56:49:dd:8e:2d:65:f5:c1:36:51:b6:03:e3:da:9e:73:
+         19:f2:1f:59:ab:58:7e:6c:26:05:2c:fa:81:d7:5c:23:17:22:
+         2c:37:93:f7:86:ec:85:e6:b0:a3:fd:1f:e2:32:a8:45:6f:e1:
+         d9:fb:b9:af:d2:70:a0:32:42:65:bf:84:fe:16:2a:8f:3f:c5:
+         a6:d6:a3:93:7d:43:e9:74:21:91:35:28:f4:63:e9:2e:ed:f7:
+         f5:5c:7f:4b:9a:b5:20:e9:0a:bd:e0:45:10:0c:14:94:9a:5d:
+         a5:e3:4b:91:e8:24:9b:46:40:65:f4:22:72:cd:99:f8:88:11:
+         f5:f3:7f:e6:33:82:e6:a8:c5:7e:fe:d0:08:e2:25:58:08:71:
+         68:e6:cd:a2:e6:14:de:4e:52:24:2d:fd:e5:79:13:53:e7:5e:
+         2f:2d:4d:1b:6d:40:15:52:2b:f7:87:89:78:12:81:6e:d9:4d:
+         aa:2d:78:d4:c2:2c:3d:08:5f:87:91:9e:1f:0e:b0:de:30:52:
+         64:86:89:aa:9d:66:9c:0e:76:0c:80:f2:74:d8:2a:f8:b8:3a:
+         ce:d7:d6:0f:11:be:6b:ab:14:f5:bd:41:a0:22:63:89:f1:ba:
+         0f:6f:29:63:66:2d:3f:ac:8c:72:c5:fb:c7:e4:d4:0f:f2:3b:
+         4f:8c:29:c7
+-----BEGIN CERTIFICATE-----
+MIIFODCCBCCgAwIBAgIQUT+5dDhwtzRAQY0wkwaZ/zANBgkqhkiG9w0BAQsFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMTMxMDMxMDAwMDAwWhcNMjMxMDMwMjM1OTU5WjB+MQsw
+CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV
+BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxLzAtBgNVBAMTJlN5bWFudGVjIENs
+YXNzIDMgU2VjdXJlIFNlcnZlciBDQSAtIEc0MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAstgFyhx0LbUXVjnFSlIJluhL2AzxaJ+aQihiw6UwU35VEYJb
+A3oNL+F5BMm0lncZgQGUWfm893qZJ4Itt4PdWid/sgN6nFMl6UgfRk/InSn4vnlW
+9vf92Tpo2otLgjNBEsPIPMzWlnqEIRoiBAMnF4scaGGTDw5RgDMdtLXO637QYqzu
+s3sBdO9pNevK1T2p7peYyo2qRA4lmUoVlqTObQJUHypqJuIGOmNIrLRM0XWTUP8T
+L9ba4cYY9Z/JJV3zADreJk20KQnNDz0jbxZKgRb78oMQw7jW2FUyPfG9D72MUpVK
+Fpd6UiFjdS8W+cRmvvW1Cdj/JwDNRHxvSz+w9wIDAQABo4IBYzCCAV8wEgYDVR0T
+AQH/BAgwBgEB/wIBADAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vczEuc3ltY2Iu
+Y29tL3BjYTMtZzUuY3JsMA4GA1UdDwEB/wQEAwIBBjAvBggrBgEFBQcBAQQjMCEw
+HwYIKwYBBQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wawYDVR0gBGQwYjBgBgpg
+hkgBhvhFAQc2MFIwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20v
+Y3BzMCgGCCsGAQUFBwICMBwaGmh0dHA6Ly93d3cuc3ltYXV0aC5jb20vcnBhMCkG
+A1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1hbnRlY1BLSS0xLTUzNDAdBgNVHQ4E
+FgQUX2DPYZBV34RDFIpgKrL1evRDGO8wHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnz
+Qzn6Aq8zMTMwDQYJKoZIhvcNAQELBQADggEBAF6UVkndji1l9cE2UbYD49qecxny
+H1mrWH5sJgUs+oHXXCMXIiw3k/eG7IXmsKP9H+IyqEVv4dn7ua/ScKAyQmW/hP4W
+Ko8/xabWo5N9Q+l0IZE1KPRj6S7t9/Vcf0uatSDpCr3gRRAMFJSaXaXjS5HoJJtG
+QGX0InLNmfiIEfXzf+YzguaoxX7+0AjiJVgIcWjmzaLmFN5OUiQt/eV5E1PnXi8t
+TRttQBVSK/eHiXgSgW7ZTaoteNTCLD0IX4eRnh8OsN4wUmSGiaqdZpwOdgyA8nTY
+Kvi4Os7X1g8RvmurFPW9QaAiY4nxug9vKWNmLT+sjHLF+8fk1A/yO0+MKcc=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert45[] = {
+  0x30, 0x82, 0x05, 0x38, 0x30, 0x82, 0x04, 0x20, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x51, 0x3f, 0xb9, 0x74, 0x38, 0x70, 0xb7, 0x34, 0x40,
+  0x41, 0x8d, 0x30, 0x93, 0x06, 0x99, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+  0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+  0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+  0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+  0x1e, 0x17, 0x0d, 0x31, 0x33, 0x31, 0x30, 0x33, 0x31, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x31, 0x30, 0x33, 0x30,
+  0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x7e, 0x31, 0x0b, 0x30,
+  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+  0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+  0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+  0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+  0x72, 0x6b, 0x31, 0x2f, 0x30, 0x2d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x26, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+  0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65,
+  0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d,
+  0x20, 0x47, 0x34, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xb2, 0xd8, 0x05, 0xca, 0x1c, 0x74, 0x2d, 0xb5, 0x17, 0x56, 0x39, 0xc5,
+  0x4a, 0x52, 0x09, 0x96, 0xe8, 0x4b, 0xd8, 0x0c, 0xf1, 0x68, 0x9f, 0x9a,
+  0x42, 0x28, 0x62, 0xc3, 0xa5, 0x30, 0x53, 0x7e, 0x55, 0x11, 0x82, 0x5b,
+  0x03, 0x7a, 0x0d, 0x2f, 0xe1, 0x79, 0x04, 0xc9, 0xb4, 0x96, 0x77, 0x19,
+  0x81, 0x01, 0x94, 0x59, 0xf9, 0xbc, 0xf7, 0x7a, 0x99, 0x27, 0x82, 0x2d,
+  0xb7, 0x83, 0xdd, 0x5a, 0x27, 0x7f, 0xb2, 0x03, 0x7a, 0x9c, 0x53, 0x25,
+  0xe9, 0x48, 0x1f, 0x46, 0x4f, 0xc8, 0x9d, 0x29, 0xf8, 0xbe, 0x79, 0x56,
+  0xf6, 0xf7, 0xfd, 0xd9, 0x3a, 0x68, 0xda, 0x8b, 0x4b, 0x82, 0x33, 0x41,
+  0x12, 0xc3, 0xc8, 0x3c, 0xcc, 0xd6, 0x96, 0x7a, 0x84, 0x21, 0x1a, 0x22,
+  0x04, 0x03, 0x27, 0x17, 0x8b, 0x1c, 0x68, 0x61, 0x93, 0x0f, 0x0e, 0x51,
+  0x80, 0x33, 0x1d, 0xb4, 0xb5, 0xce, 0xeb, 0x7e, 0xd0, 0x62, 0xac, 0xee,
+  0xb3, 0x7b, 0x01, 0x74, 0xef, 0x69, 0x35, 0xeb, 0xca, 0xd5, 0x3d, 0xa9,
+  0xee, 0x97, 0x98, 0xca, 0x8d, 0xaa, 0x44, 0x0e, 0x25, 0x99, 0x4a, 0x15,
+  0x96, 0xa4, 0xce, 0x6d, 0x02, 0x54, 0x1f, 0x2a, 0x6a, 0x26, 0xe2, 0x06,
+  0x3a, 0x63, 0x48, 0xac, 0xb4, 0x4c, 0xd1, 0x75, 0x93, 0x50, 0xff, 0x13,
+  0x2f, 0xd6, 0xda, 0xe1, 0xc6, 0x18, 0xf5, 0x9f, 0xc9, 0x25, 0x5d, 0xf3,
+  0x00, 0x3a, 0xde, 0x26, 0x4d, 0xb4, 0x29, 0x09, 0xcd, 0x0f, 0x3d, 0x23,
+  0x6f, 0x16, 0x4a, 0x81, 0x16, 0xfb, 0xf2, 0x83, 0x10, 0xc3, 0xb8, 0xd6,
+  0xd8, 0x55, 0x32, 0x3d, 0xf1, 0xbd, 0x0f, 0xbd, 0x8c, 0x52, 0x95, 0x4a,
+  0x16, 0x97, 0x7a, 0x52, 0x21, 0x63, 0x75, 0x2f, 0x16, 0xf9, 0xc4, 0x66,
+  0xbe, 0xf5, 0xb5, 0x09, 0xd8, 0xff, 0x27, 0x00, 0xcd, 0x44, 0x7c, 0x6f,
+  0x4b, 0x3f, 0xb0, 0xf7, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+  0x63, 0x30, 0x82, 0x01, 0x5f, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13,
+  0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01,
+  0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x29, 0x30, 0x27,
+  0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86, 0x1f, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x73, 0x31, 0x2e, 0x73, 0x79, 0x6d, 0x63, 0x62, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
+  0x63, 0x72, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x2f, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x23, 0x30, 0x21, 0x30,
+  0x1f, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86,
+  0x13, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x32, 0x2e, 0x73,
+  0x79, 0x6d, 0x63, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x6b, 0x06, 0x03,
+  0x55, 0x1d, 0x20, 0x04, 0x64, 0x30, 0x62, 0x30, 0x60, 0x06, 0x0a, 0x60,
+  0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x36, 0x30, 0x52, 0x30,
+  0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16,
+  0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+  0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74,
+  0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70, 0x61, 0x30, 0x29, 0x06,
+  0x03, 0x55, 0x1d, 0x11, 0x04, 0x22, 0x30, 0x20, 0xa4, 0x1e, 0x30, 0x1c,
+  0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x11, 0x53,
+  0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x50, 0x4b, 0x49, 0x2d, 0x31,
+  0x2d, 0x35, 0x33, 0x34, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04,
+  0x16, 0x04, 0x14, 0x5f, 0x60, 0xcf, 0x61, 0x90, 0x55, 0xdf, 0x84, 0x43,
+  0x14, 0x8a, 0x60, 0x2a, 0xb2, 0xf5, 0x7a, 0xf4, 0x43, 0x18, 0xef, 0x30,
+  0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14,
+  0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30, 0x09, 0xf3,
+  0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+  0x82, 0x01, 0x01, 0x00, 0x5e, 0x94, 0x56, 0x49, 0xdd, 0x8e, 0x2d, 0x65,
+  0xf5, 0xc1, 0x36, 0x51, 0xb6, 0x03, 0xe3, 0xda, 0x9e, 0x73, 0x19, 0xf2,
+  0x1f, 0x59, 0xab, 0x58, 0x7e, 0x6c, 0x26, 0x05, 0x2c, 0xfa, 0x81, 0xd7,
+  0x5c, 0x23, 0x17, 0x22, 0x2c, 0x37, 0x93, 0xf7, 0x86, 0xec, 0x85, 0xe6,
+  0xb0, 0xa3, 0xfd, 0x1f, 0xe2, 0x32, 0xa8, 0x45, 0x6f, 0xe1, 0xd9, 0xfb,
+  0xb9, 0xaf, 0xd2, 0x70, 0xa0, 0x32, 0x42, 0x65, 0xbf, 0x84, 0xfe, 0x16,
+  0x2a, 0x8f, 0x3f, 0xc5, 0xa6, 0xd6, 0xa3, 0x93, 0x7d, 0x43, 0xe9, 0x74,
+  0x21, 0x91, 0x35, 0x28, 0xf4, 0x63, 0xe9, 0x2e, 0xed, 0xf7, 0xf5, 0x5c,
+  0x7f, 0x4b, 0x9a, 0xb5, 0x20, 0xe9, 0x0a, 0xbd, 0xe0, 0x45, 0x10, 0x0c,
+  0x14, 0x94, 0x9a, 0x5d, 0xa5, 0xe3, 0x4b, 0x91, 0xe8, 0x24, 0x9b, 0x46,
+  0x40, 0x65, 0xf4, 0x22, 0x72, 0xcd, 0x99, 0xf8, 0x88, 0x11, 0xf5, 0xf3,
+  0x7f, 0xe6, 0x33, 0x82, 0xe6, 0xa8, 0xc5, 0x7e, 0xfe, 0xd0, 0x08, 0xe2,
+  0x25, 0x58, 0x08, 0x71, 0x68, 0xe6, 0xcd, 0xa2, 0xe6, 0x14, 0xde, 0x4e,
+  0x52, 0x24, 0x2d, 0xfd, 0xe5, 0x79, 0x13, 0x53, 0xe7, 0x5e, 0x2f, 0x2d,
+  0x4d, 0x1b, 0x6d, 0x40, 0x15, 0x52, 0x2b, 0xf7, 0x87, 0x89, 0x78, 0x12,
+  0x81, 0x6e, 0xd9, 0x4d, 0xaa, 0x2d, 0x78, 0xd4, 0xc2, 0x2c, 0x3d, 0x08,
+  0x5f, 0x87, 0x91, 0x9e, 0x1f, 0x0e, 0xb0, 0xde, 0x30, 0x52, 0x64, 0x86,
+  0x89, 0xaa, 0x9d, 0x66, 0x9c, 0x0e, 0x76, 0x0c, 0x80, 0xf2, 0x74, 0xd8,
+  0x2a, 0xf8, 0xb8, 0x3a, 0xce, 0xd7, 0xd6, 0x0f, 0x11, 0xbe, 0x6b, 0xab,
+  0x14, 0xf5, 0xbd, 0x41, 0xa0, 0x22, 0x63, 0x89, 0xf1, 0xba, 0x0f, 0x6f,
+  0x29, 0x63, 0x66, 0x2d, 0x3f, 0xac, 0x8c, 0x72, 0xc5, 0xfb, 0xc7, 0xe4,
+  0xd4, 0x0f, 0xf2, 0x3b, 0x4f, 0x8c, 0x29, 0xc7,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            69:87:94:19:d9:e3:62:70:74:9d:bb:e5:9d:c6:68:5e
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2008 VeriSign, Inc. - For authorized use only, CN=VeriSign Universal Root Certification Authority
+        Validity
+            Not Before: Apr  9 00:00:00 2013 GMT
+            Not After : Apr  8 23:59:59 2023 GMT
+        Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 Secure Server SHA256 SSL CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:be:38:16:51:8b:80:db:ea:0e:4d:ec:e8:3f:5c:
+                    c4:7c:a2:5d:ed:3b:af:a5:d6:9e:10:35:2c:e3:c5:
+                    e5:a8:de:8c:86:17:26:e6:de:0b:51:4a:2c:d0:fb:
+                    d1:14:5a:72:f7:c9:dd:b8:83:1c:c6:46:8c:31:25:
+                    91:0e:59:17:a3:d0:13:8c:92:c1:af:81:54:4e:bc:
+                    62:02:9e:aa:a7:1a:57:d8:ca:a6:99:7a:70:56:4f:
+                    98:07:2e:4b:96:d0:4c:39:53:b9:61:2f:3b:76:7c:
+                    8e:05:9e:99:44:d1:03:54:77:29:2b:56:2a:aa:61:
+                    e4:84:2f:12:15:3c:bd:d7:8a:e8:09:1e:56:f1:b5:
+                    14:ac:8a:84:ce:ae:78:a2:60:0a:53:7e:13:4c:1a:
+                    40:70:0e:52:59:ff:5a:68:2e:4c:46:13:3b:39:09:
+                    82:78:02:35:49:20:08:82:b3:b1:6c:89:0f:6e:1e:
+                    35:25:b0:2c:24:83:e3:c5:50:2c:ba:46:90:45:87:
+                    0d:72:ff:5d:11:38:c5:91:76:c5:2c:fb:05:2a:82:
+                    95:a1:59:63:e3:d0:26:58:cd:67:56:3a:ba:df:7c:
+                    d2:d2:3b:d8:de:1a:7a:77:e4:0c:8c:0b:eb:2b:c2:
+                    22:b0:bd:55:ba:d9:b9:55:d1:22:7a:c6:02:4e:3f:
+                    c3:35
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.ws.symantec.com/universal-root.crl
+
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.ws.symantec.com
+
+            X509v3 Certificate Policies: 
+                Policy: 2.16.840.1.113733.1.7.54
+                  CPS: http://www.symauth.com/cps
+                  User Notice:
+                    Explicit Text: http://www.symauth.com/rpa
+
+            X509v3 Subject Alternative Name: 
+                DirName:/CN=VeriSignMPKI-2-373
+            X509v3 Subject Key Identifier: 
+                DB:62:20:FB:7D:02:89:7C:D2:3B:6F:C7:E4:32:6C:05:52:1D:AD:B1
+            X509v3 Authority Key Identifier: 
+                keyid:B6:77:FA:69:48:47:9F:53:12:D5:C2:EA:07:32:76:07:D1:97:07:19
+
+    Signature Algorithm: sha256WithRSAEncryption
+         19:cc:95:e2:2f:7b:49:d0:48:90:53:f4:07:b1:20:44:35:70:
+         14:d5:44:37:31:ef:ef:70:d1:2d:4c:e9:2d:b0:53:91:01:4c:
+         54:e7:7d:9b:da:3a:ff:b7:cb:14:ad:30:0f:69:1a:2a:f0:bc:
+         cd:35:eb:48:dc:b9:87:fd:cf:b1:5a:f6:05:da:3c:64:e6:2b:
+         e6:dc:73:5e:9a:d8:0c:9b:d2:97:b3:e8:fa:87:95:53:e1:99:
+         ad:88:e8:fa:bc:09:4d:a2:c4:6a:1b:28:3b:2d:c3:21:15:ee:
+         14:fa:9d:98:10:eb:9f:3e:e6:24:24:5f:7a:1c:05:bb:9a:31:
+         23:58:79:4c:ec:6d:18:19:4d:51:1f:08:61:bd:91:05:0c:5a:
+         9c:26:fc:0b:a5:20:25:bf:6a:1b:2b:f7:02:09:72:69:83:32:
+         14:c3:60:5b:7e:fd:9a:32:fa:b4:95:0e:1a:f9:3b:09:a4:54:
+         47:9a:0c:ce:32:af:d1:21:cc:7f:d2:06:ef:60:0e:62:6f:6f:
+         81:1a:17:9d:c8:cb:28:cc:e2:5f:6e:2c:7a:b4:cb:47:7c:74:
+         68:7b:48:71:02:9c:23:09:f3:5a:ae:5f:42:2e:5f:2b:59:2d:
+         52:88:e5:8d:0b:b3:a8:61:f9:4b:9b:55:d6:da:b1:92:3b:bf:
+         c3:9b:f9:2c
+-----BEGIN CERTIFICATE-----
+MIIFSTCCBDGgAwIBAgIQaYeUGdnjYnB0nbvlncZoXjANBgkqhkiG9w0BAQsFADCB
+vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
+ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0xMzA0MDkwMDAwMDBaFw0yMzA0MDgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEd
+MBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVj
+IFRydXN0IE5ldHdvcmsxNTAzBgNVBAMTLFN5bWFudGVjIENsYXNzIDMgU2VjdXJl
+IFNlcnZlciBTSEEyNTYgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAvjgWUYuA2+oOTezoP1zEfKJd7TuvpdaeEDUs48XlqN6Mhhcm5t4LUUos
+0PvRFFpy98nduIMcxkaMMSWRDlkXo9ATjJLBr4FUTrxiAp6qpxpX2MqmmXpwVk+Y
+By5LltBMOVO5YS87dnyOBZ6ZRNEDVHcpK1YqqmHkhC8SFTy914roCR5W8bUUrIqE
+zq54omAKU34TTBpAcA5SWf9aaC5MRhM7OQmCeAI1SSAIgrOxbIkPbh41JbAsJIPj
+xVAsukaQRYcNcv9dETjFkXbFLPsFKoKVoVlj49AmWM1nVjq633zS0jvY3hp6d+QM
+jAvrK8IisL1Vutm5VdEiesYCTj/DNQIDAQABo4IBejCCAXYwEgYDVR0TAQH/BAgw
+BgEB/wIBADA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vY3JsLndzLnN5bWFudGVj
+LmNvbS91bml2ZXJzYWwtcm9vdC5jcmwwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUF
+BwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3Aud3Muc3ltYW50ZWMuY29t
+MGsGA1UdIARkMGIwYAYKYIZIAYb4RQEHNjBSMCYGCCsGAQUFBwIBFhpodHRwOi8v
+d3d3LnN5bWF1dGguY29tL2NwczAoBggrBgEFBQcCAjAcGhpodHRwOi8vd3d3LnN5
+bWF1dGguY29tL3JwYTAqBgNVHREEIzAhpB8wHTEbMBkGA1UEAxMSVmVyaVNpZ25N
+UEtJLTItMzczMB0GA1UdDgQWBBTbYiD7fQKJfNI7b8fkMmwFUh2tsTAfBgNVHSME
+GDAWgBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEAGcyV
+4i97SdBIkFP0B7EgRDVwFNVENzHv73DRLUzpLbBTkQFMVOd9m9o6/7fLFK0wD2ka
+KvC8zTXrSNy5h/3PsVr2Bdo8ZOYr5txzXprYDJvSl7Po+oeVU+GZrYjo+rwJTaLE
+ahsoOy3DIRXuFPqdmBDrnz7mJCRfehwFu5oxI1h5TOxtGBlNUR8IYb2RBQxanCb8
+C6UgJb9qGyv3AglyaYMyFMNgW379mjL6tJUOGvk7CaRUR5oMzjKv0SHMf9IG72AO
+Ym9vgRoXncjLKMziX24serTLR3x0aHtIcQKcIwnzWq5fQi5fK1ktUojljQuzqGH5
+S5tV1tqxkju/w5v5LA==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert46[] = {
+  0x30, 0x82, 0x05, 0x49, 0x30, 0x82, 0x04, 0x31, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x69, 0x87, 0x94, 0x19, 0xd9, 0xe3, 0x62, 0x70, 0x74,
+  0x9d, 0xbb, 0xe5, 0x9d, 0xc6, 0x68, 0x5e, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x81,
+  0xbd, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+  0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+  0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+  0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+  0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+  0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+  0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+  0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x38, 0x20, 0x56, 0x65, 0x72, 0x69,
+  0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+  0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+  0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+  0x31, 0x38, 0x30, 0x36, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2f, 0x56,
+  0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x55, 0x6e, 0x69, 0x76,
+  0x65, 0x72, 0x73, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43,
+  0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e,
+  0x17, 0x0d, 0x31, 0x33, 0x30, 0x34, 0x30, 0x39, 0x30, 0x30, 0x30, 0x30,
+  0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x34, 0x30, 0x38, 0x32,
+  0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0x84, 0x31, 0x0b, 0x30,
+  0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x1d,
+  0x30, 0x1b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x14, 0x53, 0x79, 0x6d,
+  0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x16, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+  0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+  0x72, 0x6b, 0x31, 0x35, 0x30, 0x33, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
+  0x2c, 0x53, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x20, 0x43, 0x6c,
+  0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65,
+  0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x53, 0x48, 0x41, 0x32,
+  0x35, 0x36, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbe, 0x38, 0x16, 0x51, 0x8b, 0x80,
+  0xdb, 0xea, 0x0e, 0x4d, 0xec, 0xe8, 0x3f, 0x5c, 0xc4, 0x7c, 0xa2, 0x5d,
+  0xed, 0x3b, 0xaf, 0xa5, 0xd6, 0x9e, 0x10, 0x35, 0x2c, 0xe3, 0xc5, 0xe5,
+  0xa8, 0xde, 0x8c, 0x86, 0x17, 0x26, 0xe6, 0xde, 0x0b, 0x51, 0x4a, 0x2c,
+  0xd0, 0xfb, 0xd1, 0x14, 0x5a, 0x72, 0xf7, 0xc9, 0xdd, 0xb8, 0x83, 0x1c,
+  0xc6, 0x46, 0x8c, 0x31, 0x25, 0x91, 0x0e, 0x59, 0x17, 0xa3, 0xd0, 0x13,
+  0x8c, 0x92, 0xc1, 0xaf, 0x81, 0x54, 0x4e, 0xbc, 0x62, 0x02, 0x9e, 0xaa,
+  0xa7, 0x1a, 0x57, 0xd8, 0xca, 0xa6, 0x99, 0x7a, 0x70, 0x56, 0x4f, 0x98,
+  0x07, 0x2e, 0x4b, 0x96, 0xd0, 0x4c, 0x39, 0x53, 0xb9, 0x61, 0x2f, 0x3b,
+  0x76, 0x7c, 0x8e, 0x05, 0x9e, 0x99, 0x44, 0xd1, 0x03, 0x54, 0x77, 0x29,
+  0x2b, 0x56, 0x2a, 0xaa, 0x61, 0xe4, 0x84, 0x2f, 0x12, 0x15, 0x3c, 0xbd,
+  0xd7, 0x8a, 0xe8, 0x09, 0x1e, 0x56, 0xf1, 0xb5, 0x14, 0xac, 0x8a, 0x84,
+  0xce, 0xae, 0x78, 0xa2, 0x60, 0x0a, 0x53, 0x7e, 0x13, 0x4c, 0x1a, 0x40,
+  0x70, 0x0e, 0x52, 0x59, 0xff, 0x5a, 0x68, 0x2e, 0x4c, 0x46, 0x13, 0x3b,
+  0x39, 0x09, 0x82, 0x78, 0x02, 0x35, 0x49, 0x20, 0x08, 0x82, 0xb3, 0xb1,
+  0x6c, 0x89, 0x0f, 0x6e, 0x1e, 0x35, 0x25, 0xb0, 0x2c, 0x24, 0x83, 0xe3,
+  0xc5, 0x50, 0x2c, 0xba, 0x46, 0x90, 0x45, 0x87, 0x0d, 0x72, 0xff, 0x5d,
+  0x11, 0x38, 0xc5, 0x91, 0x76, 0xc5, 0x2c, 0xfb, 0x05, 0x2a, 0x82, 0x95,
+  0xa1, 0x59, 0x63, 0xe3, 0xd0, 0x26, 0x58, 0xcd, 0x67, 0x56, 0x3a, 0xba,
+  0xdf, 0x7c, 0xd2, 0xd2, 0x3b, 0xd8, 0xde, 0x1a, 0x7a, 0x77, 0xe4, 0x0c,
+  0x8c, 0x0b, 0xeb, 0x2b, 0xc2, 0x22, 0xb0, 0xbd, 0x55, 0xba, 0xd9, 0xb9,
+  0x55, 0xd1, 0x22, 0x7a, 0xc6, 0x02, 0x4e, 0x3f, 0xc3, 0x35, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x7a, 0x30, 0x82, 0x01, 0x76, 0x30,
+  0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30,
+  0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x3e, 0x06, 0x03, 0x55,
+  0x1d, 0x1f, 0x04, 0x37, 0x30, 0x35, 0x30, 0x33, 0xa0, 0x31, 0xa0, 0x2f,
+  0x86, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c,
+  0x2e, 0x77, 0x73, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63,
+  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73,
+  0x61, 0x6c, 0x2d, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x72, 0x6c, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x37, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x01, 0x01, 0x04, 0x2b, 0x30, 0x29, 0x30, 0x27, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68, 0x74, 0x74,
+  0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x77, 0x73, 0x2e,
+  0x73, 0x79, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x63, 0x2e, 0x63, 0x6f, 0x6d,
+  0x30, 0x6b, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x64, 0x30, 0x62, 0x30,
+  0x60, 0x06, 0x0a, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07,
+  0x36, 0x30, 0x52, 0x30, 0x26, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05,
+  0x07, 0x02, 0x01, 0x16, 0x1a, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
+  0x77, 0x77, 0x77, 0x2e, 0x73, 0x79, 0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x28, 0x06, 0x08, 0x2b,
+  0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1c, 0x1a, 0x1a, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x79,
+  0x6d, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x70,
+  0x61, 0x30, 0x2a, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x23, 0x30, 0x21,
+  0xa4, 0x1f, 0x30, 0x1d, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x12, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x4d,
+  0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x33, 0x37, 0x33, 0x30, 0x1d, 0x06,
+  0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xdb, 0x62, 0x20, 0xfb,
+  0x7d, 0x02, 0x89, 0x7c, 0xd2, 0x3b, 0x6f, 0xc7, 0xe4, 0x32, 0x6c, 0x05,
+  0x52, 0x1d, 0xad, 0xb1, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
+  0x18, 0x30, 0x16, 0x80, 0x14, 0xb6, 0x77, 0xfa, 0x69, 0x48, 0x47, 0x9f,
+  0x53, 0x12, 0xd5, 0xc2, 0xea, 0x07, 0x32, 0x76, 0x07, 0xd1, 0x97, 0x07,
+  0x19, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x19, 0xcc, 0x95,
+  0xe2, 0x2f, 0x7b, 0x49, 0xd0, 0x48, 0x90, 0x53, 0xf4, 0x07, 0xb1, 0x20,
+  0x44, 0x35, 0x70, 0x14, 0xd5, 0x44, 0x37, 0x31, 0xef, 0xef, 0x70, 0xd1,
+  0x2d, 0x4c, 0xe9, 0x2d, 0xb0, 0x53, 0x91, 0x01, 0x4c, 0x54, 0xe7, 0x7d,
+  0x9b, 0xda, 0x3a, 0xff, 0xb7, 0xcb, 0x14, 0xad, 0x30, 0x0f, 0x69, 0x1a,
+  0x2a, 0xf0, 0xbc, 0xcd, 0x35, 0xeb, 0x48, 0xdc, 0xb9, 0x87, 0xfd, 0xcf,
+  0xb1, 0x5a, 0xf6, 0x05, 0xda, 0x3c, 0x64, 0xe6, 0x2b, 0xe6, 0xdc, 0x73,
+  0x5e, 0x9a, 0xd8, 0x0c, 0x9b, 0xd2, 0x97, 0xb3, 0xe8, 0xfa, 0x87, 0x95,
+  0x53, 0xe1, 0x99, 0xad, 0x88, 0xe8, 0xfa, 0xbc, 0x09, 0x4d, 0xa2, 0xc4,
+  0x6a, 0x1b, 0x28, 0x3b, 0x2d, 0xc3, 0x21, 0x15, 0xee, 0x14, 0xfa, 0x9d,
+  0x98, 0x10, 0xeb, 0x9f, 0x3e, 0xe6, 0x24, 0x24, 0x5f, 0x7a, 0x1c, 0x05,
+  0xbb, 0x9a, 0x31, 0x23, 0x58, 0x79, 0x4c, 0xec, 0x6d, 0x18, 0x19, 0x4d,
+  0x51, 0x1f, 0x08, 0x61, 0xbd, 0x91, 0x05, 0x0c, 0x5a, 0x9c, 0x26, 0xfc,
+  0x0b, 0xa5, 0x20, 0x25, 0xbf, 0x6a, 0x1b, 0x2b, 0xf7, 0x02, 0x09, 0x72,
+  0x69, 0x83, 0x32, 0x14, 0xc3, 0x60, 0x5b, 0x7e, 0xfd, 0x9a, 0x32, 0xfa,
+  0xb4, 0x95, 0x0e, 0x1a, 0xf9, 0x3b, 0x09, 0xa4, 0x54, 0x47, 0x9a, 0x0c,
+  0xce, 0x32, 0xaf, 0xd1, 0x21, 0xcc, 0x7f, 0xd2, 0x06, 0xef, 0x60, 0x0e,
+  0x62, 0x6f, 0x6f, 0x81, 0x1a, 0x17, 0x9d, 0xc8, 0xcb, 0x28, 0xcc, 0xe2,
+  0x5f, 0x6e, 0x2c, 0x7a, 0xb4, 0xcb, 0x47, 0x7c, 0x74, 0x68, 0x7b, 0x48,
+  0x71, 0x02, 0x9c, 0x23, 0x09, 0xf3, 0x5a, 0xae, 0x5f, 0x42, 0x2e, 0x5f,
+  0x2b, 0x59, 0x2d, 0x52, 0x88, 0xe5, 0x8d, 0x0b, 0xb3, 0xa8, 0x61, 0xf9,
+  0x4b, 0x9b, 0x55, 0xd6, 0xda, 0xb1, 0x92, 0x3b, 0xbf, 0xc3, 0x9b, 0xf9,
+  0x2c,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120036009 (0x7279aa9)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Validity
+            Not Before: Dec 19 20:07:32 2013 GMT
+            Not After : Dec 19 20:06:55 2017 GMT
+        Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (4096 bit)
+                Modulus:
+                    00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+                    37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+                    6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+                    6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+                    d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+                    e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+                    f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+                    3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+                    e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+                    57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+                    af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+                    33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+                    78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+                    60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+                    35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+                    9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+                    ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+                    ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+                    96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+                    e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+                    64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+                    57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+                    80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+                    ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+                    25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+                    90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+                    16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+                    36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+                    d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+                    c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+                    09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+                    a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+                    3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+                    a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+                    4a:a8:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6334.1.0
+                  CPS: http://cybertrust.omniroot.com/repository.cfm
+
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication
+            X509v3 Authority Key Identifier: 
+                keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+            X509v3 Subject Key Identifier: 
+                51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+    Signature Algorithm: sha256WithRSAEncryption
+         76:85:c5:23:31:1f:b4:73:ea:a0:bc:a5:ed:df:45:43:6a:7f:
+         69:20:1b:80:b2:fb:1c:dd:aa:7f:88:d3:31:41:36:f7:fb:fb:
+         6b:ad:98:8c:78:1f:9d:11:67:3a:cd:4b:ec:a8:bc:9d:15:19:
+         c4:3b:0b:a7:93:ce:e8:fc:9d:5b:e8:1f:cb:56:ae:76:43:2b:
+         c7:13:51:77:41:a8:66:4c:5f:a7:d1:d7:aa:75:c5:1b:29:4c:
+         c9:f4:6d:a1:5e:a1:85:93:16:c2:cb:3b:ab:14:7d:44:fd:da:
+         25:29:86:2a:fe:63:20:ca:d2:0b:c2:34:15:bb:af:5b:7f:8a:
+         e0:aa:ed:45:a6:ea:79:db:d8:35:66:54:43:de:37:33:d1:e4:
+         e0:cd:57:ca:71:b0:7d:e9:16:77:64:e8:59:97:b9:d5:2e:d1:
+         b4:91:da:77:71:f3:4a:0f:48:d2:34:99:60:95:37:ac:1f:01:
+         cd:10:9d:e8:2a:a5:20:c7:50:9b:b3:6c:49:78:2b:58:92:64:
+         89:b8:95:36:a8:34:aa:f0:41:d2:95:5a:24:54:97:4d:6e:05:
+         c4:95:ad:c4:7a:a3:39:fb:79:06:8a:9b:a6:4f:d9:22:fa:44:
+         4e:36:f3:c9:0f:a6:39:e7:80:b2:5e:bf:bd:39:d1:46:e5:55:
+         47:db:bc:6e
+-----BEGIN CERTIFICATE-----
+MIIFhjCCBG6gAwIBAgIEByeaqTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTEzMTIxOTIwMDczMloX
+DTE3MTIxOTIwMDY1NVowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCASAwggEcMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwUwYDVR0gBEwwSjBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH
+AwIwHwYDVR0jBBgwFoAU5Z1ZMIJHWMys+ghUNoZ7OrUETfAwQgYDVR0fBDswOTA3
+oDWgM4YxaHR0cDovL2NkcDEucHVibGljLXRydXN0LmNvbS9DUkwvT21uaXJvb3Qy
+MDI1LmNybDAdBgNVHQ4EFgQUUa8kJpz0aCJXgCYrO0ZiFXsezKUwDQYJKoZIhvcN
+AQELBQADggEBAHaFxSMxH7Rz6qC8pe3fRUNqf2kgG4Cy+xzdqn+I0zFBNvf7+2ut
+mIx4H50RZzrNS+yovJ0VGcQ7C6eTzuj8nVvoH8tWrnZDK8cTUXdBqGZMX6fR16p1
+xRspTMn0baFeoYWTFsLLO6sUfUT92iUphir+YyDK0gvCNBW7r1t/iuCq7UWm6nnb
+2DVmVEPeNzPR5ODNV8pxsH3pFndk6FmXudUu0bSR2ndx80oPSNI0mWCVN6wfAc0Q
+negqpSDHUJuzbEl4K1iSZIm4lTaoNKrwQdKVWiRUl01uBcSVrcR6ozn7eQaKm6ZP
+2SL6RE4288kPpjnngLJev7050UblVUfbvG4=
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert47[] = {
+  0x30, 0x82, 0x05, 0x86, 0x30, 0x82, 0x04, 0x6e, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0x9a, 0xa9, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+  0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+  0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33,
+  0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x37, 0x33, 0x32, 0x5a, 0x17,
+  0x0d, 0x31, 0x37, 0x31, 0x32, 0x31, 0x39, 0x32, 0x30, 0x30, 0x36, 0x35,
+  0x35, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+  0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+  0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+  0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+  0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+  0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+  0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+  0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+  0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+  0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+  0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+  0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+  0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+  0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+  0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+  0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+  0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+  0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+  0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+  0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+  0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+  0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+  0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+  0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+  0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+  0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+  0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+  0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+  0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+  0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+  0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+  0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+  0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+  0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+  0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+  0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+  0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+  0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+  0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+  0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+  0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+  0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+  0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+  0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+  0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+  0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+  0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+  0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+  0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+  0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+  0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x20, 0x30, 0x82, 0x01, 0x1c, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x53, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x4c, 0x30,
+  0x4a, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+  0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+  0x63, 0x66, 0x6d, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
+  0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x03, 0x02, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+  0x16, 0x80, 0x14, 0xe5, 0x9d, 0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac,
+  0xfa, 0x08, 0x54, 0x36, 0x86, 0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30,
+  0x42, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37,
+  0xa0, 0x35, 0xa0, 0x33, 0x86, 0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x63, 0x64, 0x70, 0x31, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
+  0x2d, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43,
+  0x52, 0x4c, 0x2f, 0x4f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32,
+  0x30, 0x32, 0x35, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55,
+  0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4,
+  0x68, 0x22, 0x57, 0x80, 0x26, 0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e,
+  0xcc, 0xa5, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+  0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x76, 0x85,
+  0xc5, 0x23, 0x31, 0x1f, 0xb4, 0x73, 0xea, 0xa0, 0xbc, 0xa5, 0xed, 0xdf,
+  0x45, 0x43, 0x6a, 0x7f, 0x69, 0x20, 0x1b, 0x80, 0xb2, 0xfb, 0x1c, 0xdd,
+  0xaa, 0x7f, 0x88, 0xd3, 0x31, 0x41, 0x36, 0xf7, 0xfb, 0xfb, 0x6b, 0xad,
+  0x98, 0x8c, 0x78, 0x1f, 0x9d, 0x11, 0x67, 0x3a, 0xcd, 0x4b, 0xec, 0xa8,
+  0xbc, 0x9d, 0x15, 0x19, 0xc4, 0x3b, 0x0b, 0xa7, 0x93, 0xce, 0xe8, 0xfc,
+  0x9d, 0x5b, 0xe8, 0x1f, 0xcb, 0x56, 0xae, 0x76, 0x43, 0x2b, 0xc7, 0x13,
+  0x51, 0x77, 0x41, 0xa8, 0x66, 0x4c, 0x5f, 0xa7, 0xd1, 0xd7, 0xaa, 0x75,
+  0xc5, 0x1b, 0x29, 0x4c, 0xc9, 0xf4, 0x6d, 0xa1, 0x5e, 0xa1, 0x85, 0x93,
+  0x16, 0xc2, 0xcb, 0x3b, 0xab, 0x14, 0x7d, 0x44, 0xfd, 0xda, 0x25, 0x29,
+  0x86, 0x2a, 0xfe, 0x63, 0x20, 0xca, 0xd2, 0x0b, 0xc2, 0x34, 0x15, 0xbb,
+  0xaf, 0x5b, 0x7f, 0x8a, 0xe0, 0xaa, 0xed, 0x45, 0xa6, 0xea, 0x79, 0xdb,
+  0xd8, 0x35, 0x66, 0x54, 0x43, 0xde, 0x37, 0x33, 0xd1, 0xe4, 0xe0, 0xcd,
+  0x57, 0xca, 0x71, 0xb0, 0x7d, 0xe9, 0x16, 0x77, 0x64, 0xe8, 0x59, 0x97,
+  0xb9, 0xd5, 0x2e, 0xd1, 0xb4, 0x91, 0xda, 0x77, 0x71, 0xf3, 0x4a, 0x0f,
+  0x48, 0xd2, 0x34, 0x99, 0x60, 0x95, 0x37, 0xac, 0x1f, 0x01, 0xcd, 0x10,
+  0x9d, 0xe8, 0x2a, 0xa5, 0x20, 0xc7, 0x50, 0x9b, 0xb3, 0x6c, 0x49, 0x78,
+  0x2b, 0x58, 0x92, 0x64, 0x89, 0xb8, 0x95, 0x36, 0xa8, 0x34, 0xaa, 0xf0,
+  0x41, 0xd2, 0x95, 0x5a, 0x24, 0x54, 0x97, 0x4d, 0x6e, 0x05, 0xc4, 0x95,
+  0xad, 0xc4, 0x7a, 0xa3, 0x39, 0xfb, 0x79, 0x06, 0x8a, 0x9b, 0xa6, 0x4f,
+  0xd9, 0x22, 0xfa, 0x44, 0x4e, 0x36, 0xf3, 0xc9, 0x0f, 0xa6, 0x39, 0xe7,
+  0x80, 0xb2, 0x5e, 0xbf, 0xbd, 0x39, 0xd1, 0x46, 0xe5, 0x55, 0x47, 0xdb,
+  0xbc, 0x6e,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            75:96:c2:3e:fa:89:59:45:6e:79:f7:17:ba:cf:64:f3
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+        Validity
+            Not Before: Nov  8 00:58:58 2014 GMT
+            Not After : Nov  8 00:58:58 2029 GMT
+        Subject: C=CN, O=WoSign CA Limited, CN=WoSign Class 3 OV Server CA G2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:d6:74:87:af:99:c0:57:96:99:c2:89:74:3c:92:
+                    55:99:bf:1f:07:00:35:05:26:96:16:5b:03:c1:42:
+                    37:33:be:3f:0d:4f:ff:bb:94:26:91:d7:14:16:78:
+                    1b:f7:13:a2:4b:4c:e5:5c:a7:10:40:35:59:30:d1:
+                    77:99:e3:9d:29:c2:be:31:95:bd:92:61:5b:b0:23:
+                    fb:67:58:d5:52:e4:7b:2f:f0:73:1c:73:94:55:ba:
+                    c8:68:59:02:10:10:e4:f7:11:f0:c3:b6:d7:ae:56:
+                    80:00:9e:65:64:a6:83:91:41:e6:ed:a7:7a:65:a5:
+                    1f:30:2e:13:3c:bf:df:63:97:f3:96:f0:52:32:b4:
+                    f4:7b:98:57:ed:36:4f:f7:21:4a:28:9d:dd:1c:92:
+                    b3:4d:8d:9c:58:8b:17:21:d8:dc:a1:b7:ae:73:78:
+                    8a:c4:b6:e9:7f:28:8e:9a:d5:2e:9e:39:e9:da:59:
+                    74:e3:c8:97:10:32:94:19:59:d4:0f:89:57:44:e6:
+                    e5:2b:17:30:62:52:98:7f:ab:0d:a5:01:ea:04:41:
+                    ca:fa:13:0e:3b:87:06:ba:bd:47:31:d7:63:03:01:
+                    f4:be:a1:37:11:9f:1e:01:95:4e:0f:3f:54:1e:92:
+                    a6:9f:30:8c:fe:98:e8:56:96:66:04:e1:35:fe:59:
+                    ac:57
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Client Authentication, TLS Web Server Authentication
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crls1.wosign.com/ca1.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp1.wosign.com/ca1
+                CA Issuers - URI:http://aia1.wosign.com/ca1g2-server3.cer
+
+            X509v3 Subject Key Identifier: 
+                F9:8B:EC:04:38:6A:3F:AA:06:C6:94:AD:73:95:2A:B0:C8:E6:B8:FB
+            X509v3 Authority Key Identifier: 
+                keyid:E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.36305.6.3.2.1
+                  CPS: http://www.wosign.com/policy/
+
+    Signature Algorithm: sha256WithRSAEncryption
+         5e:67:ba:78:32:05:b6:b7:af:e7:de:6a:7a:82:64:0e:a0:0b:
+         f2:9e:9a:ba:c6:2b:6f:56:3a:b4:62:57:ab:7c:ad:60:50:96:
+         34:9c:a3:88:cf:d9:8f:50:af:f6:f0:00:36:1b:1f:1f:87:55:
+         3c:60:9a:f0:b0:0d:9a:80:2d:8a:3b:be:05:b3:d7:a0:80:b6:
+         b8:19:eb:51:db:ec:64:54:f1:1a:89:4a:48:a1:4d:3f:31:7d:
+         c4:79:94:4b:f1:de:ab:83:af:5f:86:be:96:1c:b3:3e:1c:e7:
+         bc:96:b2:e8:5a:ac:b5:58:cb:3c:56:6f:0a:a7:a5:d0:36:89:
+         82:26:8c:b9:1f:b6:eb:8f:7e:78:fc:5b:8b:79:1c:d6:df:47:
+         a7:56:f4:98:4e:c7:a9:d5:0e:75:56:06:7f:b4:37:46:08:c6:
+         e9:4f:8b:5b:43:1c:e0:45:3e:95:20:71:c0:1c:98:16:ef:f2:
+         78:df:ac:4d:bb:bf:56:0e:cf:85:af:cf:bf:04:ed:72:6b:fd:
+         1f:57:0e:58:91:44:11:58:3b:62:3b:09:78:b3:a4:75:6a:ec:
+         b3:c2:2b:32:cc:b3:8d:c3:a3:6e:dc:8a:d5:e8:4a:c4:0b:7b:
+         db:30:5d:95:33:c3:d1:a3:69:64:5b:a8:aa:96:48:73:73:e3:
+         c9:b9:24:df:17:75:aa:af:07:3a:cf:be:9b:8a:80:a7:bf:7c:
+         e2:e9:2a:e6:fd:b0:2c:e7:e6:e6:7e:b3:35:15:65:00:f4:e1:
+         39:73:0e:28:4b:f0:0c:98:9e:3a:eb:ce:7b:7a:9e:40:c1:50:
+         65:96:9a:e7:4b:77:cd:dd:cb:7d:97:b4:ea:09:b2:e9:49:28:
+         c3:30:e0:87:15:f0:26:ea:d8:03:fd:ec:da:08:83:65:dc:77:
+         c5:6e:3d:34:f7:87:c3:1c:1d:26:33:ec:33:ac:c6:99:53:ab:
+         60:f4:b0:d9:ee:64:5a:33:07:70:13:74:88:07:f5:86:f9:18:
+         d3:b2:47:c8:ae:03:4a:53:de:1c:65:d6:0a:2e:3a:51:93:ee:
+         b7:e3:6f:0a:fb:e9:fe:4e:e8:bb:1d:c2:97:ab:0a:b9:ed:36:
+         32:1b:4d:a1:cc:03:a6:9d:b3:d9:1c:d5:67:e2:8f:74:3c:92:
+         2a:74:b1:56:50:df:53:15:d7:21:d6:eb:f3:fb:63:e3:20:2c:
+         0a:74:37:0b:c1:a1:35:6a:84:70:f4:45:f8:b2:b6:81:49:aa:
+         fd:54:45:90:4d:e7:04:07:5f:78:14:dd:3a:bb:2b:f9:72:50:
+         ec:68:ea:3c:a8:d1:80:bb:be:35:43:97:c3:32:b2:f5:aa:ad:
+         c9:7f:83:9f:7d:69:1e:15
+-----BEGIN CERTIFICATE-----
+MIIFozCCA4ugAwIBAgIQdZbCPvqJWUVuefcXus9k8zANBgkqhkiG9w0BAQsFADBV
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
+BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0xNDExMDgw
+MDU4NThaFw0yOTExMDgwMDU4NThaMFIxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
+b1NpZ24gQ0EgTGltaXRlZDEnMCUGA1UEAxMeV29TaWduIENsYXNzIDMgT1YgU2Vy
+dmVyIENBIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1nSHr5nA
+V5aZwol0PJJVmb8fBwA1BSaWFlsDwUI3M74/DU//u5QmkdcUFngb9xOiS0zlXKcQ
+QDVZMNF3meOdKcK+MZW9kmFbsCP7Z1jVUuR7L/BzHHOUVbrIaFkCEBDk9xHww7bX
+rlaAAJ5lZKaDkUHm7ad6ZaUfMC4TPL/fY5fzlvBSMrT0e5hX7TZP9yFKKJ3dHJKz
+TY2cWIsXIdjcobeuc3iKxLbpfyiOmtUunjnp2ll048iXEDKUGVnUD4lXROblKxcw
+YlKYf6sNpQHqBEHK+hMOO4cGur1HMddjAwH0vqE3EZ8eAZVODz9UHpKmnzCM/pjo
+VpZmBOE1/lmsVwIDAQABo4IBcDCCAWwwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQW
+MBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1Ud
+HwQpMCcwJaAjoCGGH2h0dHA6Ly9jcmxzMS53b3NpZ24uY29tL2NhMS5jcmwwbQYI
+KwYBBQUHAQEEYTBfMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcDEud29zaWduLmNv
+bS9jYTEwNAYIKwYBBQUHMAKGKGh0dHA6Ly9haWExLndvc2lnbi5jb20vY2ExZzIt
+c2VydmVyMy5jZXIwHQYDVR0OBBYEFPmL7AQ4aj+qBsaUrXOVKrDI5rj7MB8GA1Ud
+IwQYMBaAFOFmzw7R8bNLtwYgFP6HEtX2/vs+MEYGA1UdIAQ/MD0wOwYMKwYBBAGC
+m1EGAwIBMCswKQYIKwYBBQUHAgEWHWh0dHA6Ly93d3cud29zaWduLmNvbS9wb2xp
+Y3kvMA0GCSqGSIb3DQEBCwUAA4ICAQBeZ7p4MgW2t6/n3mp6gmQOoAvynpq6xitv
+Vjq0YlerfK1gUJY0nKOIz9mPUK/28AA2Gx8fh1U8YJrwsA2agC2KO74Fs9eggLa4
+GetR2+xkVPEaiUpIoU0/MX3EeZRL8d6rg69fhr6WHLM+HOe8lrLoWqy1WMs8Vm8K
+p6XQNomCJoy5H7brj354/FuLeRzW30enVvSYTsep1Q51VgZ/tDdGCMbpT4tbQxzg
+RT6VIHHAHJgW7/J436xNu79WDs+Fr8+/BO1ya/0fVw5YkUQRWDtiOwl4s6R1auyz
+wisyzLONw6Nu3IrV6ErEC3vbMF2VM8PRo2lkW6iqlkhzc+PJuSTfF3Wqrwc6z76b
+ioCnv3zi6Srm/bAs5+bmfrM1FWUA9OE5cw4oS/AMmJ466857ep5AwVBllprnS3fN
+3ct9l7TqCbLpSSjDMOCHFfAm6tgD/ezaCINl3HfFbj0094fDHB0mM+wzrMaZU6tg
+9LDZ7mRaMwdwE3SIB/WG+RjTskfIrgNKU94cZdYKLjpRk+63428K++n+Tui7HcKX
+qwq57TYyG02hzAOmnbPZHNVn4o90PJIqdLFWUN9TFdch1uvz+2PjICwKdDcLwaE1
+aoRw9EX4sraBSar9VEWQTecEB194FN06uyv5clDsaOo8qNGAu741Q5fDMrL1qq3J
+f4OffWkeFQ==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert48[] = {
+  0x30, 0x82, 0x05, 0xa3, 0x30, 0x82, 0x03, 0x8b, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x75, 0x96, 0xc2, 0x3e, 0xfa, 0x89, 0x59, 0x45, 0x6e,
+  0x79, 0xf7, 0x17, 0xba, 0xcf, 0x64, 0xf3, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x55,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43,
+  0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11,
+  0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69,
+  0x6d, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2a, 0x30, 0x28, 0x06, 0x03, 0x55,
+  0x04, 0x03, 0x13, 0x21, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x69, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x57, 0x6f, 0x53, 0x69, 0x67,
+  0x6e, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x31, 0x30, 0x38, 0x30,
+  0x30, 0x35, 0x38, 0x35, 0x38, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x31, 0x31,
+  0x30, 0x38, 0x30, 0x30, 0x35, 0x38, 0x35, 0x38, 0x5a, 0x30, 0x52, 0x31,
+  0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e,
+  0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57,
+  0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d,
+  0x69, 0x74, 0x65, 0x64, 0x31, 0x27, 0x30, 0x25, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x1e, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c,
+  0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x4f, 0x56, 0x20, 0x53, 0x65, 0x72,
+  0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x47, 0x32, 0x30, 0x82, 0x01,
+  0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+  0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01,
+  0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xd6, 0x74, 0x87, 0xaf, 0x99, 0xc0,
+  0x57, 0x96, 0x99, 0xc2, 0x89, 0x74, 0x3c, 0x92, 0x55, 0x99, 0xbf, 0x1f,
+  0x07, 0x00, 0x35, 0x05, 0x26, 0x96, 0x16, 0x5b, 0x03, 0xc1, 0x42, 0x37,
+  0x33, 0xbe, 0x3f, 0x0d, 0x4f, 0xff, 0xbb, 0x94, 0x26, 0x91, 0xd7, 0x14,
+  0x16, 0x78, 0x1b, 0xf7, 0x13, 0xa2, 0x4b, 0x4c, 0xe5, 0x5c, 0xa7, 0x10,
+  0x40, 0x35, 0x59, 0x30, 0xd1, 0x77, 0x99, 0xe3, 0x9d, 0x29, 0xc2, 0xbe,
+  0x31, 0x95, 0xbd, 0x92, 0x61, 0x5b, 0xb0, 0x23, 0xfb, 0x67, 0x58, 0xd5,
+  0x52, 0xe4, 0x7b, 0x2f, 0xf0, 0x73, 0x1c, 0x73, 0x94, 0x55, 0xba, 0xc8,
+  0x68, 0x59, 0x02, 0x10, 0x10, 0xe4, 0xf7, 0x11, 0xf0, 0xc3, 0xb6, 0xd7,
+  0xae, 0x56, 0x80, 0x00, 0x9e, 0x65, 0x64, 0xa6, 0x83, 0x91, 0x41, 0xe6,
+  0xed, 0xa7, 0x7a, 0x65, 0xa5, 0x1f, 0x30, 0x2e, 0x13, 0x3c, 0xbf, 0xdf,
+  0x63, 0x97, 0xf3, 0x96, 0xf0, 0x52, 0x32, 0xb4, 0xf4, 0x7b, 0x98, 0x57,
+  0xed, 0x36, 0x4f, 0xf7, 0x21, 0x4a, 0x28, 0x9d, 0xdd, 0x1c, 0x92, 0xb3,
+  0x4d, 0x8d, 0x9c, 0x58, 0x8b, 0x17, 0x21, 0xd8, 0xdc, 0xa1, 0xb7, 0xae,
+  0x73, 0x78, 0x8a, 0xc4, 0xb6, 0xe9, 0x7f, 0x28, 0x8e, 0x9a, 0xd5, 0x2e,
+  0x9e, 0x39, 0xe9, 0xda, 0x59, 0x74, 0xe3, 0xc8, 0x97, 0x10, 0x32, 0x94,
+  0x19, 0x59, 0xd4, 0x0f, 0x89, 0x57, 0x44, 0xe6, 0xe5, 0x2b, 0x17, 0x30,
+  0x62, 0x52, 0x98, 0x7f, 0xab, 0x0d, 0xa5, 0x01, 0xea, 0x04, 0x41, 0xca,
+  0xfa, 0x13, 0x0e, 0x3b, 0x87, 0x06, 0xba, 0xbd, 0x47, 0x31, 0xd7, 0x63,
+  0x03, 0x01, 0xf4, 0xbe, 0xa1, 0x37, 0x11, 0x9f, 0x1e, 0x01, 0x95, 0x4e,
+  0x0f, 0x3f, 0x54, 0x1e, 0x92, 0xa6, 0x9f, 0x30, 0x8c, 0xfe, 0x98, 0xe8,
+  0x56, 0x96, 0x66, 0x04, 0xe1, 0x35, 0xfe, 0x59, 0xac, 0x57, 0x02, 0x03,
+  0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x70, 0x30, 0x82, 0x01, 0x6c, 0x30,
+  0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
+  0x02, 0x01, 0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16,
+  0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x12,
+  0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06,
+  0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x30, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0xa0, 0x23, 0xa0, 0x21, 0x86,
+  0x1f, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x73,
+  0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x63, 0x61, 0x31, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x6d, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x61, 0x30, 0x5f,
+  0x30, 0x27, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01,
+  0x86, 0x1b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73,
+  0x70, 0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f,
+  0x6d, 0x2f, 0x63, 0x61, 0x31, 0x30, 0x34, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x61, 0x69, 0x61, 0x31, 0x2e, 0x77, 0x6f, 0x73, 0x69, 0x67,
+  0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x61, 0x31, 0x67, 0x32, 0x2d,
+  0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x33, 0x2e, 0x63, 0x65, 0x72, 0x30,
+  0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xf9, 0x8b,
+  0xec, 0x04, 0x38, 0x6a, 0x3f, 0xaa, 0x06, 0xc6, 0x94, 0xad, 0x73, 0x95,
+  0x2a, 0xb0, 0xc8, 0xe6, 0xb8, 0xfb, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+  0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe1, 0x66, 0xcf, 0x0e, 0xd1,
+  0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14, 0xfe, 0x87, 0x12, 0xd5, 0xf6,
+  0xfe, 0xfb, 0x3e, 0x30, 0x46, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x3f,
+  0x30, 0x3d, 0x30, 0x3b, 0x06, 0x0c, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82,
+  0x9b, 0x51, 0x06, 0x03, 0x02, 0x01, 0x30, 0x2b, 0x30, 0x29, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1d, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x6f, 0x73,
+  0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x69,
+  0x63, 0x79, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
+  0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x5e,
+  0x67, 0xba, 0x78, 0x32, 0x05, 0xb6, 0xb7, 0xaf, 0xe7, 0xde, 0x6a, 0x7a,
+  0x82, 0x64, 0x0e, 0xa0, 0x0b, 0xf2, 0x9e, 0x9a, 0xba, 0xc6, 0x2b, 0x6f,
+  0x56, 0x3a, 0xb4, 0x62, 0x57, 0xab, 0x7c, 0xad, 0x60, 0x50, 0x96, 0x34,
+  0x9c, 0xa3, 0x88, 0xcf, 0xd9, 0x8f, 0x50, 0xaf, 0xf6, 0xf0, 0x00, 0x36,
+  0x1b, 0x1f, 0x1f, 0x87, 0x55, 0x3c, 0x60, 0x9a, 0xf0, 0xb0, 0x0d, 0x9a,
+  0x80, 0x2d, 0x8a, 0x3b, 0xbe, 0x05, 0xb3, 0xd7, 0xa0, 0x80, 0xb6, 0xb8,
+  0x19, 0xeb, 0x51, 0xdb, 0xec, 0x64, 0x54, 0xf1, 0x1a, 0x89, 0x4a, 0x48,
+  0xa1, 0x4d, 0x3f, 0x31, 0x7d, 0xc4, 0x79, 0x94, 0x4b, 0xf1, 0xde, 0xab,
+  0x83, 0xaf, 0x5f, 0x86, 0xbe, 0x96, 0x1c, 0xb3, 0x3e, 0x1c, 0xe7, 0xbc,
+  0x96, 0xb2, 0xe8, 0x5a, 0xac, 0xb5, 0x58, 0xcb, 0x3c, 0x56, 0x6f, 0x0a,
+  0xa7, 0xa5, 0xd0, 0x36, 0x89, 0x82, 0x26, 0x8c, 0xb9, 0x1f, 0xb6, 0xeb,
+  0x8f, 0x7e, 0x78, 0xfc, 0x5b, 0x8b, 0x79, 0x1c, 0xd6, 0xdf, 0x47, 0xa7,
+  0x56, 0xf4, 0x98, 0x4e, 0xc7, 0xa9, 0xd5, 0x0e, 0x75, 0x56, 0x06, 0x7f,
+  0xb4, 0x37, 0x46, 0x08, 0xc6, 0xe9, 0x4f, 0x8b, 0x5b, 0x43, 0x1c, 0xe0,
+  0x45, 0x3e, 0x95, 0x20, 0x71, 0xc0, 0x1c, 0x98, 0x16, 0xef, 0xf2, 0x78,
+  0xdf, 0xac, 0x4d, 0xbb, 0xbf, 0x56, 0x0e, 0xcf, 0x85, 0xaf, 0xcf, 0xbf,
+  0x04, 0xed, 0x72, 0x6b, 0xfd, 0x1f, 0x57, 0x0e, 0x58, 0x91, 0x44, 0x11,
+  0x58, 0x3b, 0x62, 0x3b, 0x09, 0x78, 0xb3, 0xa4, 0x75, 0x6a, 0xec, 0xb3,
+  0xc2, 0x2b, 0x32, 0xcc, 0xb3, 0x8d, 0xc3, 0xa3, 0x6e, 0xdc, 0x8a, 0xd5,
+  0xe8, 0x4a, 0xc4, 0x0b, 0x7b, 0xdb, 0x30, 0x5d, 0x95, 0x33, 0xc3, 0xd1,
+  0xa3, 0x69, 0x64, 0x5b, 0xa8, 0xaa, 0x96, 0x48, 0x73, 0x73, 0xe3, 0xc9,
+  0xb9, 0x24, 0xdf, 0x17, 0x75, 0xaa, 0xaf, 0x07, 0x3a, 0xcf, 0xbe, 0x9b,
+  0x8a, 0x80, 0xa7, 0xbf, 0x7c, 0xe2, 0xe9, 0x2a, 0xe6, 0xfd, 0xb0, 0x2c,
+  0xe7, 0xe6, 0xe6, 0x7e, 0xb3, 0x35, 0x15, 0x65, 0x00, 0xf4, 0xe1, 0x39,
+  0x73, 0x0e, 0x28, 0x4b, 0xf0, 0x0c, 0x98, 0x9e, 0x3a, 0xeb, 0xce, 0x7b,
+  0x7a, 0x9e, 0x40, 0xc1, 0x50, 0x65, 0x96, 0x9a, 0xe7, 0x4b, 0x77, 0xcd,
+  0xdd, 0xcb, 0x7d, 0x97, 0xb4, 0xea, 0x09, 0xb2, 0xe9, 0x49, 0x28, 0xc3,
+  0x30, 0xe0, 0x87, 0x15, 0xf0, 0x26, 0xea, 0xd8, 0x03, 0xfd, 0xec, 0xda,
+  0x08, 0x83, 0x65, 0xdc, 0x77, 0xc5, 0x6e, 0x3d, 0x34, 0xf7, 0x87, 0xc3,
+  0x1c, 0x1d, 0x26, 0x33, 0xec, 0x33, 0xac, 0xc6, 0x99, 0x53, 0xab, 0x60,
+  0xf4, 0xb0, 0xd9, 0xee, 0x64, 0x5a, 0x33, 0x07, 0x70, 0x13, 0x74, 0x88,
+  0x07, 0xf5, 0x86, 0xf9, 0x18, 0xd3, 0xb2, 0x47, 0xc8, 0xae, 0x03, 0x4a,
+  0x53, 0xde, 0x1c, 0x65, 0xd6, 0x0a, 0x2e, 0x3a, 0x51, 0x93, 0xee, 0xb7,
+  0xe3, 0x6f, 0x0a, 0xfb, 0xe9, 0xfe, 0x4e, 0xe8, 0xbb, 0x1d, 0xc2, 0x97,
+  0xab, 0x0a, 0xb9, 0xed, 0x36, 0x32, 0x1b, 0x4d, 0xa1, 0xcc, 0x03, 0xa6,
+  0x9d, 0xb3, 0xd9, 0x1c, 0xd5, 0x67, 0xe2, 0x8f, 0x74, 0x3c, 0x92, 0x2a,
+  0x74, 0xb1, 0x56, 0x50, 0xdf, 0x53, 0x15, 0xd7, 0x21, 0xd6, 0xeb, 0xf3,
+  0xfb, 0x63, 0xe3, 0x20, 0x2c, 0x0a, 0x74, 0x37, 0x0b, 0xc1, 0xa1, 0x35,
+  0x6a, 0x84, 0x70, 0xf4, 0x45, 0xf8, 0xb2, 0xb6, 0x81, 0x49, 0xaa, 0xfd,
+  0x54, 0x45, 0x90, 0x4d, 0xe7, 0x04, 0x07, 0x5f, 0x78, 0x14, 0xdd, 0x3a,
+  0xbb, 0x2b, 0xf9, 0x72, 0x50, 0xec, 0x68, 0xea, 0x3c, 0xa8, 0xd1, 0x80,
+  0xbb, 0xbe, 0x35, 0x43, 0x97, 0xc3, 0x32, 0xb2, 0xf5, 0xaa, 0xad, 0xc9,
+  0x7f, 0x83, 0x9f, 0x7d, 0x69, 0x1e, 0x15,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 120040007 (0x727aa47)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
+        Validity
+            Not Before: May  7 17:04:09 2014 GMT
+            Not After : May  7 17:03:30 2018 GMT
+        Subject: C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT SSL SHA2
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (4096 bit)
+                Modulus:
+                    00:d1:e8:37:a7:76:8a:70:4b:19:f0:20:37:09:24:
+                    37:7f:ea:fb:78:e6:05:ba:6a:ad:4e:27:0d:fc:72:
+                    6a:d9:6c:21:c4:64:11:95:73:10:0a:5c:25:7b:88:
+                    6c:94:04:fd:c7:db:ae:7b:dc:4a:08:b3:3e:16:f1:
+                    d0:ad:db:30:6d:d7:1a:1e:52:b5:3d:f0:47:19:03:
+                    e2:7d:a6:bd:57:13:3f:54:ea:3a:a3:b1:77:fc:42:
+                    f0:63:49:6a:91:80:2e:30:49:c0:8a:eb:2b:af:fe:
+                    3a:eb:07:5d:06:f7:e9:fd:84:0e:91:bd:09:20:29:
+                    e8:6e:5d:09:ce:15:d3:e7:ef:db:50:eb:44:ef:18:
+                    57:ab:04:1d:bc:31:f9:f7:7b:2a:13:cf:d1:3d:51:
+                    af:1b:c5:b5:7b:e7:b0:fc:53:bb:9a:e7:63:de:41:
+                    33:b6:47:24:69:5d:b8:46:a7:ff:ad:ab:df:4f:7a:
+                    78:25:27:21:26:34:ca:02:6e:37:51:f0:ed:58:1a:
+                    60:94:f6:c4:93:d8:dd:30:24:25:d7:1c:eb:19:94:
+                    35:5d:93:b2:ae:aa:29:83:73:c4:74:59:05:52:67:
+                    9d:da:67:51:39:05:3a:36:ea:f2:1e:76:2b:14:ae:
+                    ec:3d:f9:14:99:8b:07:6e:bc:e7:0c:56:de:ac:be:
+                    ae:db:75:32:90:9e:63:bd:74:bf:e0:0a:ca:f8:34:
+                    96:67:84:cd:d1:42:38:78:c7:99:b6:0c:ce:b6:0f:
+                    e9:1b:cb:f4:59:be:11:0e:cb:2c:32:c8:fa:83:29:
+                    64:79:3c:8b:4b:f0:32:74:6c:f3:93:b8:96:6b:5d:
+                    57:5a:68:c1:cc:0c:79:8a:19:de:f5:49:02:5e:08:
+                    80:01:89:0c:32:cd:d2:d6:96:d5:4b:a0:f3:ec:bf:
+                    ab:f4:7d:b3:a1:b9:7c:da:4e:d7:e5:b7:ac:b9:f2:
+                    25:5f:01:cb:8c:96:a8:28:ae:c1:33:5a:f6:3f:08:
+                    90:dc:eb:ff:39:d8:26:c8:12:9d:1c:9a:aa:a9:c0:
+                    16:8e:86:ed:67:52:96:00:7f:0d:92:3d:3d:d9:70:
+                    36:e5:ea:42:6f:1f:ae:95:e5:5b:5d:f8:d0:3a:c7:
+                    d4:de:77:86:d0:fc:9e:4e:e2:e2:b8:a9:68:37:09:
+                    c4:39:e3:85:b8:89:f3:1f:6e:b7:6d:1f:4a:2f:18:
+                    09:6f:de:4a:01:8f:14:c9:b7:a6:ee:a7:63:9f:33:
+                    a4:54:7c:42:83:68:b8:a5:df:bf:ec:b9:1a:5d:13:
+                    3b:d9:ad:68:fd:20:0a:55:91:21:64:f9:d7:13:01:
+                    a0:08:5d:59:89:1b:44:af:a4:ac:c7:05:10:fa:41:
+                    4a:a8:fb
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 Certificate Policies: 
+                Policy: 1.3.6.1.4.1.6334.1.0
+                  CPS: http://cybertrust.omniroot.com/repository.cfm
+                Policy: 1.3.6.1.4.1.311.42.1
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.omniroot.com/baltimoreroot
+
+            X509v3 Key Usage: critical
+                Digital Signature, Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Server Authentication, TLS Web Client Authentication, OCSP Signing
+            X509v3 Authority Key Identifier: 
+                keyid:E5:9D:59:30:82:47:58:CC:AC:FA:08:54:36:86:7B:3A:B5:04:4D:F0
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://cdp1.public-trust.com/CRL/Omniroot2025.crl
+
+            X509v3 Subject Key Identifier: 
+                51:AF:24:26:9C:F4:68:22:57:80:26:2B:3B:46:62:15:7B:1E:CC:A5
+    Signature Algorithm: sha256WithRSAEncryption
+         69:62:f6:84:91:00:c4:6f:82:7b:24:e1:42:a2:a5:8b:82:5c:
+         a7:c5:44:cb:e7:52:76:63:d3:76:9e:78:e2:69:35:b1:38:ba:
+         b0:96:c6:1f:ac:7b:c6:b2:65:77:8b:7d:8d:ae:64:b9:a5:8c:
+         17:ca:58:65:c3:ad:82:f5:c5:a2:f5:01:13:93:c6:7e:44:e5:
+         c4:61:fa:03:b6:56:c1:72:e1:c8:28:c5:69:21:8f:ac:6e:fd:
+         7f:43:83:36:b8:c0:d6:a0:28:fe:1a:45:be:fd:93:8c:8d:a4:
+         64:79:1f:14:db:a1:9f:21:dc:c0:4e:7b:17:22:17:b1:b6:3c:
+         d3:9b:e2:0a:a3:7e:99:b0:c1:ac:d8:f4:86:df:3c:da:7d:14:
+         9c:40:c1:7c:d2:18:6f:f1:4f:26:45:09:95:94:5c:da:d0:98:
+         f8:f4:4c:82:96:10:de:ac:30:cb:2b:ae:f9:92:ea:bf:79:03:
+         fc:1e:3f:ac:09:a4:3f:65:fd:91:4f:96:24:a7:ce:b4:4e:6a:
+         96:29:17:ae:c0:a8:df:17:22:f4:17:e3:dc:1c:39:06:56:10:
+         ea:ea:b5:74:17:3c:4e:dd:7e:91:0a:a8:0b:78:07:a7:31:44:
+         08:31:ab:18:84:0f:12:9c:e7:de:84:2c:e9:6d:93:45:bf:a8:
+         c1:3f:34:dc
+-----BEGIN CERTIFICATE-----
+MIIF4TCCBMmgAwIBAgIEByeqRzANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTE0MDUwNzE3MDQwOVoX
+DTE4MDUwNzE3MDMzMFowgYsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
+dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
+YXRpb24xFTATBgNVBAsTDE1pY3Jvc29mdCBJVDEeMBwGA1UEAxMVTWljcm9zb2Z0
+IElUIFNTTCBTSEEyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0eg3
+p3aKcEsZ8CA3CSQ3f+r7eOYFumqtTicN/HJq2WwhxGQRlXMQClwle4hslAT9x9uu
+e9xKCLM+FvHQrdswbdcaHlK1PfBHGQPifaa9VxM/VOo6o7F3/ELwY0lqkYAuMEnA
+iusrr/466wddBvfp/YQOkb0JICnobl0JzhXT5+/bUOtE7xhXqwQdvDH593sqE8/R
+PVGvG8W1e+ew/FO7mudj3kEztkckaV24Rqf/ravfT3p4JSchJjTKAm43UfDtWBpg
+lPbEk9jdMCQl1xzrGZQ1XZOyrqopg3PEdFkFUmed2mdROQU6NuryHnYrFK7sPfkU
+mYsHbrznDFberL6u23UykJ5jvXS/4ArK+DSWZ4TN0UI4eMeZtgzOtg/pG8v0Wb4R
+DsssMsj6gylkeTyLS/AydGzzk7iWa11XWmjBzAx5ihne9UkCXgiAAYkMMs3S1pbV
+S6Dz7L+r9H2zobl82k7X5besufIlXwHLjJaoKK7BM1r2PwiQ3Ov/OdgmyBKdHJqq
+qcAWjobtZ1KWAH8Nkj092XA25epCbx+uleVbXfjQOsfU3neG0PyeTuLiuKloNwnE
+OeOFuInzH263bR9KLxgJb95KAY8Uybem7qdjnzOkVHxCg2i4pd+/7LkaXRM72a1o
+/SAKVZEhZPnXEwGgCF1ZiRtEr6SsxwUQ+kFKqPsCAwEAAaOCAXswggF3MBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwYAYDVR0gBFkwVzBIBgkrBgEEAbE+AQAwOzA5BggrBgEF
+BQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21uaXJvb3QuY29tL3JlcG9zaXRvcnku
+Y2ZtMAsGCSsGAQQBgjcqATBCBggrBgEFBQcBAQQ2MDQwMgYIKwYBBQUHMAGGJmh0
+dHA6Ly9vY3NwLm9tbmlyb290LmNvbS9iYWx0aW1vcmVyb290MA4GA1UdDwEB/wQE
+AwIBhjAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMJMB8G
+A1UdIwQYMBaAFOWdWTCCR1jMrPoIVDaGezq1BE3wMEIGA1UdHwQ7MDkwN6A1oDOG
+MWh0dHA6Ly9jZHAxLnB1YmxpYy10cnVzdC5jb20vQ1JML09tbmlyb290MjAyNS5j
+cmwwHQYDVR0OBBYEFFGvJCac9GgiV4AmKztGYhV7HsylMA0GCSqGSIb3DQEBCwUA
+A4IBAQBpYvaEkQDEb4J7JOFCoqWLglynxUTL51J2Y9N2nnjiaTWxOLqwlsYfrHvG
+smV3i32NrmS5pYwXylhlw62C9cWi9QETk8Z+ROXEYfoDtlbBcuHIKMVpIY+sbv1/
+Q4M2uMDWoCj+GkW+/ZOMjaRkeR8U26GfIdzATnsXIhextjzTm+IKo36ZsMGs2PSG
+3zzafRScQMF80hhv8U8mRQmVlFza0Jj49EyClhDerDDLK675kuq/eQP8Hj+sCaQ/
+Zf2RT5Ykp860TmqWKReuwKjfFyL0F+PcHDkGVhDq6rV0FzxO3X6RCqgLeAenMUQI
+MasYhA8SnOfehCzpbZNFv6jBPzTc
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert49[] = {
+  0x30, 0x82, 0x05, 0xe1, 0x30, 0x82, 0x04, 0xc9, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x04, 0x07, 0x27, 0xaa, 0x47, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5a,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x45, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
+  0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x31, 0x13, 0x30,
+  0x11, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0a, 0x43, 0x79, 0x62, 0x65,
+  0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03,
+  0x55, 0x04, 0x03, 0x13, 0x19, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f,
+  0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73,
+  0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34,
+  0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x34, 0x30, 0x39, 0x5a, 0x17,
+  0x0d, 0x31, 0x38, 0x30, 0x35, 0x30, 0x37, 0x31, 0x37, 0x30, 0x33, 0x33,
+  0x30, 0x5a, 0x30, 0x81, 0x8b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+  0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+  0x55, 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67,
+  0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07,
+  0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30,
+  0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72,
+  0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55,
+  0x04, 0x0b, 0x13, 0x0c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66,
+  0x74, 0x20, 0x49, 0x54, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04,
+  0x03, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
+  0x20, 0x49, 0x54, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x53, 0x48, 0x41, 0x32,
+  0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+  0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00,
+  0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 0x00, 0xd1, 0xe8, 0x37,
+  0xa7, 0x76, 0x8a, 0x70, 0x4b, 0x19, 0xf0, 0x20, 0x37, 0x09, 0x24, 0x37,
+  0x7f, 0xea, 0xfb, 0x78, 0xe6, 0x05, 0xba, 0x6a, 0xad, 0x4e, 0x27, 0x0d,
+  0xfc, 0x72, 0x6a, 0xd9, 0x6c, 0x21, 0xc4, 0x64, 0x11, 0x95, 0x73, 0x10,
+  0x0a, 0x5c, 0x25, 0x7b, 0x88, 0x6c, 0x94, 0x04, 0xfd, 0xc7, 0xdb, 0xae,
+  0x7b, 0xdc, 0x4a, 0x08, 0xb3, 0x3e, 0x16, 0xf1, 0xd0, 0xad, 0xdb, 0x30,
+  0x6d, 0xd7, 0x1a, 0x1e, 0x52, 0xb5, 0x3d, 0xf0, 0x47, 0x19, 0x03, 0xe2,
+  0x7d, 0xa6, 0xbd, 0x57, 0x13, 0x3f, 0x54, 0xea, 0x3a, 0xa3, 0xb1, 0x77,
+  0xfc, 0x42, 0xf0, 0x63, 0x49, 0x6a, 0x91, 0x80, 0x2e, 0x30, 0x49, 0xc0,
+  0x8a, 0xeb, 0x2b, 0xaf, 0xfe, 0x3a, 0xeb, 0x07, 0x5d, 0x06, 0xf7, 0xe9,
+  0xfd, 0x84, 0x0e, 0x91, 0xbd, 0x09, 0x20, 0x29, 0xe8, 0x6e, 0x5d, 0x09,
+  0xce, 0x15, 0xd3, 0xe7, 0xef, 0xdb, 0x50, 0xeb, 0x44, 0xef, 0x18, 0x57,
+  0xab, 0x04, 0x1d, 0xbc, 0x31, 0xf9, 0xf7, 0x7b, 0x2a, 0x13, 0xcf, 0xd1,
+  0x3d, 0x51, 0xaf, 0x1b, 0xc5, 0xb5, 0x7b, 0xe7, 0xb0, 0xfc, 0x53, 0xbb,
+  0x9a, 0xe7, 0x63, 0xde, 0x41, 0x33, 0xb6, 0x47, 0x24, 0x69, 0x5d, 0xb8,
+  0x46, 0xa7, 0xff, 0xad, 0xab, 0xdf, 0x4f, 0x7a, 0x78, 0x25, 0x27, 0x21,
+  0x26, 0x34, 0xca, 0x02, 0x6e, 0x37, 0x51, 0xf0, 0xed, 0x58, 0x1a, 0x60,
+  0x94, 0xf6, 0xc4, 0x93, 0xd8, 0xdd, 0x30, 0x24, 0x25, 0xd7, 0x1c, 0xeb,
+  0x19, 0x94, 0x35, 0x5d, 0x93, 0xb2, 0xae, 0xaa, 0x29, 0x83, 0x73, 0xc4,
+  0x74, 0x59, 0x05, 0x52, 0x67, 0x9d, 0xda, 0x67, 0x51, 0x39, 0x05, 0x3a,
+  0x36, 0xea, 0xf2, 0x1e, 0x76, 0x2b, 0x14, 0xae, 0xec, 0x3d, 0xf9, 0x14,
+  0x99, 0x8b, 0x07, 0x6e, 0xbc, 0xe7, 0x0c, 0x56, 0xde, 0xac, 0xbe, 0xae,
+  0xdb, 0x75, 0x32, 0x90, 0x9e, 0x63, 0xbd, 0x74, 0xbf, 0xe0, 0x0a, 0xca,
+  0xf8, 0x34, 0x96, 0x67, 0x84, 0xcd, 0xd1, 0x42, 0x38, 0x78, 0xc7, 0x99,
+  0xb6, 0x0c, 0xce, 0xb6, 0x0f, 0xe9, 0x1b, 0xcb, 0xf4, 0x59, 0xbe, 0x11,
+  0x0e, 0xcb, 0x2c, 0x32, 0xc8, 0xfa, 0x83, 0x29, 0x64, 0x79, 0x3c, 0x8b,
+  0x4b, 0xf0, 0x32, 0x74, 0x6c, 0xf3, 0x93, 0xb8, 0x96, 0x6b, 0x5d, 0x57,
+  0x5a, 0x68, 0xc1, 0xcc, 0x0c, 0x79, 0x8a, 0x19, 0xde, 0xf5, 0x49, 0x02,
+  0x5e, 0x08, 0x80, 0x01, 0x89, 0x0c, 0x32, 0xcd, 0xd2, 0xd6, 0x96, 0xd5,
+  0x4b, 0xa0, 0xf3, 0xec, 0xbf, 0xab, 0xf4, 0x7d, 0xb3, 0xa1, 0xb9, 0x7c,
+  0xda, 0x4e, 0xd7, 0xe5, 0xb7, 0xac, 0xb9, 0xf2, 0x25, 0x5f, 0x01, 0xcb,
+  0x8c, 0x96, 0xa8, 0x28, 0xae, 0xc1, 0x33, 0x5a, 0xf6, 0x3f, 0x08, 0x90,
+  0xdc, 0xeb, 0xff, 0x39, 0xd8, 0x26, 0xc8, 0x12, 0x9d, 0x1c, 0x9a, 0xaa,
+  0xa9, 0xc0, 0x16, 0x8e, 0x86, 0xed, 0x67, 0x52, 0x96, 0x00, 0x7f, 0x0d,
+  0x92, 0x3d, 0x3d, 0xd9, 0x70, 0x36, 0xe5, 0xea, 0x42, 0x6f, 0x1f, 0xae,
+  0x95, 0xe5, 0x5b, 0x5d, 0xf8, 0xd0, 0x3a, 0xc7, 0xd4, 0xde, 0x77, 0x86,
+  0xd0, 0xfc, 0x9e, 0x4e, 0xe2, 0xe2, 0xb8, 0xa9, 0x68, 0x37, 0x09, 0xc4,
+  0x39, 0xe3, 0x85, 0xb8, 0x89, 0xf3, 0x1f, 0x6e, 0xb7, 0x6d, 0x1f, 0x4a,
+  0x2f, 0x18, 0x09, 0x6f, 0xde, 0x4a, 0x01, 0x8f, 0x14, 0xc9, 0xb7, 0xa6,
+  0xee, 0xa7, 0x63, 0x9f, 0x33, 0xa4, 0x54, 0x7c, 0x42, 0x83, 0x68, 0xb8,
+  0xa5, 0xdf, 0xbf, 0xec, 0xb9, 0x1a, 0x5d, 0x13, 0x3b, 0xd9, 0xad, 0x68,
+  0xfd, 0x20, 0x0a, 0x55, 0x91, 0x21, 0x64, 0xf9, 0xd7, 0x13, 0x01, 0xa0,
+  0x08, 0x5d, 0x59, 0x89, 0x1b, 0x44, 0xaf, 0xa4, 0xac, 0xc7, 0x05, 0x10,
+  0xfa, 0x41, 0x4a, 0xa8, 0xfb, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82,
+  0x01, 0x7b, 0x30, 0x82, 0x01, 0x77, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d,
+  0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02,
+  0x01, 0x00, 0x30, 0x60, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x59, 0x30,
+  0x57, 0x30, 0x48, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xb1, 0x3e,
+  0x01, 0x00, 0x30, 0x3b, 0x30, 0x39, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x02, 0x01, 0x16, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
+  0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e,
+  0x6f, 0x6d, 0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
+  0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e,
+  0x63, 0x66, 0x6d, 0x30, 0x0b, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01,
+  0x82, 0x37, 0x2a, 0x01, 0x30, 0x42, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x01, 0x01, 0x04, 0x36, 0x30, 0x34, 0x30, 0x32, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x26, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x6f, 0x6d,
+  0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62,
+  0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x72, 0x6f, 0x6f, 0x74,
+  0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04,
+  0x03, 0x02, 0x01, 0x86, 0x30, 0x27, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+  0x20, 0x30, 0x1e, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+  0x01, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x1f, 0x06,
+  0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xe5, 0x9d,
+  0x59, 0x30, 0x82, 0x47, 0x58, 0xcc, 0xac, 0xfa, 0x08, 0x54, 0x36, 0x86,
+  0x7b, 0x3a, 0xb5, 0x04, 0x4d, 0xf0, 0x30, 0x42, 0x06, 0x03, 0x55, 0x1d,
+  0x1f, 0x04, 0x3b, 0x30, 0x39, 0x30, 0x37, 0xa0, 0x35, 0xa0, 0x33, 0x86,
+  0x31, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x70, 0x31,
+  0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x52, 0x4c, 0x2f, 0x4f, 0x6d,
+  0x6e, 0x69, 0x72, 0x6f, 0x6f, 0x74, 0x32, 0x30, 0x32, 0x35, 0x2e, 0x63,
+  0x72, 0x6c, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04,
+  0x14, 0x51, 0xaf, 0x24, 0x26, 0x9c, 0xf4, 0x68, 0x22, 0x57, 0x80, 0x26,
+  0x2b, 0x3b, 0x46, 0x62, 0x15, 0x7b, 0x1e, 0xcc, 0xa5, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x01, 0x01, 0x00, 0x69, 0x62, 0xf6, 0x84, 0x91, 0x00, 0xc4,
+  0x6f, 0x82, 0x7b, 0x24, 0xe1, 0x42, 0xa2, 0xa5, 0x8b, 0x82, 0x5c, 0xa7,
+  0xc5, 0x44, 0xcb, 0xe7, 0x52, 0x76, 0x63, 0xd3, 0x76, 0x9e, 0x78, 0xe2,
+  0x69, 0x35, 0xb1, 0x38, 0xba, 0xb0, 0x96, 0xc6, 0x1f, 0xac, 0x7b, 0xc6,
+  0xb2, 0x65, 0x77, 0x8b, 0x7d, 0x8d, 0xae, 0x64, 0xb9, 0xa5, 0x8c, 0x17,
+  0xca, 0x58, 0x65, 0xc3, 0xad, 0x82, 0xf5, 0xc5, 0xa2, 0xf5, 0x01, 0x13,
+  0x93, 0xc6, 0x7e, 0x44, 0xe5, 0xc4, 0x61, 0xfa, 0x03, 0xb6, 0x56, 0xc1,
+  0x72, 0xe1, 0xc8, 0x28, 0xc5, 0x69, 0x21, 0x8f, 0xac, 0x6e, 0xfd, 0x7f,
+  0x43, 0x83, 0x36, 0xb8, 0xc0, 0xd6, 0xa0, 0x28, 0xfe, 0x1a, 0x45, 0xbe,
+  0xfd, 0x93, 0x8c, 0x8d, 0xa4, 0x64, 0x79, 0x1f, 0x14, 0xdb, 0xa1, 0x9f,
+  0x21, 0xdc, 0xc0, 0x4e, 0x7b, 0x17, 0x22, 0x17, 0xb1, 0xb6, 0x3c, 0xd3,
+  0x9b, 0xe2, 0x0a, 0xa3, 0x7e, 0x99, 0xb0, 0xc1, 0xac, 0xd8, 0xf4, 0x86,
+  0xdf, 0x3c, 0xda, 0x7d, 0x14, 0x9c, 0x40, 0xc1, 0x7c, 0xd2, 0x18, 0x6f,
+  0xf1, 0x4f, 0x26, 0x45, 0x09, 0x95, 0x94, 0x5c, 0xda, 0xd0, 0x98, 0xf8,
+  0xf4, 0x4c, 0x82, 0x96, 0x10, 0xde, 0xac, 0x30, 0xcb, 0x2b, 0xae, 0xf9,
+  0x92, 0xea, 0xbf, 0x79, 0x03, 0xfc, 0x1e, 0x3f, 0xac, 0x09, 0xa4, 0x3f,
+  0x65, 0xfd, 0x91, 0x4f, 0x96, 0x24, 0xa7, 0xce, 0xb4, 0x4e, 0x6a, 0x96,
+  0x29, 0x17, 0xae, 0xc0, 0xa8, 0xdf, 0x17, 0x22, 0xf4, 0x17, 0xe3, 0xdc,
+  0x1c, 0x39, 0x06, 0x56, 0x10, 0xea, 0xea, 0xb5, 0x74, 0x17, 0x3c, 0x4e,
+  0xdd, 0x7e, 0x91, 0x0a, 0xa8, 0x0b, 0x78, 0x07, 0xa7, 0x31, 0x44, 0x08,
+  0x31, 0xab, 0x18, 0x84, 0x0f, 0x12, 0x9c, 0xe7, 0xde, 0x84, 0x2c, 0xe9,
+  0x6d, 0x93, 0x45, 0xbf, 0xa8, 0xc1, 0x3f, 0x34, 0xdc,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number:
+            13:8b:fe:f3:32:94:f9:d8:16:f9:45:c2:71:95:29:98
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+        Validity
+            Not Before: Dec 16 01:00:05 2015 GMT
+            Not After : Dec 16 01:00:05 2030 GMT
+        Subject: C=IL, O=StartCom Ltd., OU=StartCom Certification Authority, CN=StartCom Class 3 OV Server CA
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:af:67:1c:6f:e5:45:e0:d7:46:4b:75:2c:b6:80:
+                    f2:9a:17:4d:2d:ff:de:ae:d2:d4:00:8a:3a:b8:31:
+                    fe:8e:37:9e:fa:aa:d5:a3:5b:16:12:c1:19:3e:34:
+                    85:96:c3:be:d3:b3:43:f4:8d:6f:16:bd:30:ba:07:
+                    fc:d8:9a:c1:79:89:80:6d:a0:8c:be:dd:37:f7:eb:
+                    05:d3:53:7f:57:58:76:55:b6:a8:a8:86:44:b8:bb:
+                    d0:13:da:fd:8f:e1:f2:cd:a0:15:38:55:56:ce:26:
+                    cf:7c:93:75:29:7a:0a:ab:fb:ba:09:38:20:11:57:
+                    07:5d:7f:49:9f:2a:4a:67:1e:9e:58:e9:c7:7f:f9:
+                    c3:ed:fe:5f:4d:af:b8:4f:9d:df:69:2d:69:1b:3a:
+                    58:81:69:63:30:ea:87:8d:0f:52:9d:5a:da:39:44:
+                    ba:9f:89:9f:36:b6:c2:19:5c:d9:26:78:d9:ae:5e:
+                    fc:95:90:bf:e8:11:c0:47:0f:77:89:dd:6a:28:4f:
+                    0a:bc:32:64:57:43:3d:08:65:93:e5:45:ae:dd:28:
+                    0c:27:2c:8e:a6:2b:09:03:5d:a1:78:d2:8c:ab:b6:
+                    6b:b9:46:c9:19:00:39:b9:bf:c6:13:2b:73:72:1f:
+                    f2:3e:37:b8:e8:b9:14:65:88:4d:e2:f1:1b:d8:a5:
+                    1d:3b
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Extended Key Usage: 
+                TLS Web Client Authentication, TLS Web Server Authentication
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:0
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.startssl.com/sfsca.crl
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.startssl.com
+                CA Issuers - URI:http://aia.startssl.com/certs/ca.crt
+
+            X509v3 Subject Key Identifier: 
+                B1:3F:1C:92:7B:92:B0:5A:25:B3:38:FB:9C:07:A4:26:50:32:E3:51
+            X509v3 Authority Key Identifier: 
+                keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+            X509v3 Certificate Policies: 
+                Policy: X509v3 Any Policy
+                  CPS: http://www.startssl.com/policy
+
+    Signature Algorithm: sha256WithRSAEncryption
+         85:f2:e8:14:d3:1b:c1:a1:16:1d:a4:f4:4d:ba:51:8b:5c:52:
+         b1:54:54:12:16:17:9c:96:78:6f:d3:bf:df:43:36:f5:12:89:
+         61:72:44:df:1c:9b:09:4f:60:26:68:c1:e6:66:50:70:b3:6a:
+         f1:a8:6a:0c:1e:2e:93:f1:ee:07:3e:09:dd:30:45:b2:56:8e:
+         dc:2c:5c:ab:49:fa:b9:04:03:40:15:7a:b5:30:e0:1d:91:8f:
+         a6:d6:6f:1f:99:a0:84:95:39:bd:ac:77:7f:72:4b:dd:2d:ae:
+         ff:a8:58:1d:46:27:d4:83:c7:69:64:9f:19:bb:10:f8:04:42:
+         87:59:5d:02:b1:d6:e5:c8:da:43:30:a3:e8:37:a5:d2:48:0b:
+         a2:83:4e:9d:4f:83:58:9d:d7:47:22:b1:89:f0:89:3b:3d:28:
+         43:2c:9b:17:7c:03:ee:9d:26:25:e0:04:b8:1d:04:57:42:47:
+         da:58:69:f0:d3:29:ab:12:02:99:2b:2a:d8:9d:a0:1f:54:5e:
+         23:9a:0c:d2:99:58:c4:a1:e5:49:c2:25:a7:64:20:52:2e:e7:
+         89:f5:19:c0:8b:d0:63:b1:78:1e:be:01:47:be:76:81:46:f1:
+         99:1f:94:9a:be:fa:82:15:b5:84:84:79:75:93:ba:9f:b5:e4:
+         9b:c2:cb:69:5c:bd:1f:55:0a:a7:26:30:05:51:be:65:ee:57:
+         a9:6a:df:bd:f9:36:2f:ad:1e:46:41:2b:b1:88:d0:88:25:85:
+         40:17:79:bf:3d:8d:e2:f4:2d:ea:30:31:df:a1:40:cb:35:ff:
+         82:9f:f5:99:3c:4a:fd:9d:a1:d1:55:cc:20:a8:1c:d8:20:05:
+         ab:b3:14:65:95:53:d8:e8:8e:57:c5:77:6b:2d:4d:88:e9:5d:
+         62:d5:a2:f8:70:e1:70:eb:45:23:0e:f0:00:46:c2:48:31:e8:
+         e7:36:80:36:2d:22:f2:01:27:53:eb:ce:a7:69:49:82:bf:e7:
+         0f:9c:f3:20:2e:f5:fa:5d:ce:ea:58:3a:8f:d8:aa:7d:30:b7:
+         74:96:7c:3d:6e:b4:ec:4a:3b:59:b6:a9:50:0d:0f:05:06:70:
+         26:b9:95:91:d1:5e:24:8c:8f:ca:74:57:97:90:8b:5a:b7:fe:
+         8d:ad:d8:e8:c2:06:bc:08:56:21:02:12:53:c6:9f:86:04:58:
+         ca:2d:f8:03:0d:57:0b:1c:37:bd:f0:5a:35:f2:fe:3b:d6:a4:
+         37:15:e9:f8:08:92:96:3d:74:c8:b5:5c:6e:65:08:e7:df:69:
+         73:9c:ec:e3:30:5a:a6:df:5c:be:da:7f:00:ee:a5:da:2b:5c:
+         1e:2a:6a:c0:a3:ae:1e:f1
+-----BEGIN CERTIFICATE-----
+MIIF5TCCA82gAwIBAgIQE4v+8zKU+dgW+UXCcZUpmDANBgkqhkiG9w0BAQsFADB9
+MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
+U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
+cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTUxMjE2MDEwMDA1WhcN
+MzAxMjE2MDEwMDA1WjB4MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20g
+THRkLjEpMCcGA1UECxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
+JjAkBgNVBAMTHVN0YXJ0Q29tIENsYXNzIDMgT1YgU2VydmVyIENBMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr2ccb+VF4NdGS3UstoDymhdNLf/ertLU
+AIo6uDH+jjee+qrVo1sWEsEZPjSFlsO+07ND9I1vFr0wugf82JrBeYmAbaCMvt03
+9+sF01N/V1h2VbaoqIZEuLvQE9r9j+HyzaAVOFVWzibPfJN1KXoKq/u6CTggEVcH
+XX9JnypKZx6eWOnHf/nD7f5fTa+4T53faS1pGzpYgWljMOqHjQ9SnVraOUS6n4mf
+NrbCGVzZJnjZrl78lZC/6BHARw93id1qKE8KvDJkV0M9CGWT5UWu3SgMJyyOpisJ
+A12heNKMq7ZruUbJGQA5ub/GEytzch/yPje46LkUZYhN4vEb2KUdOwIDAQABo4IB
+ZDCCAWAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
+BQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6
+Ly9jcmwuc3RhcnRzc2wuY29tL3Nmc2NhLmNybDBmBggrBgEFBQcBAQRaMFgwJAYI
+KwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbTAwBggrBgEFBQcwAoYk
+aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvY2EuY3J0MB0GA1UdDgQWBBSx
+PxySe5KwWiWzOPucB6QmUDLjUTAfBgNVHSMEGDAWgBROC+8apEBbpRdphzDKNGhD
+0EGu8jA/BgNVHSAEODA2MDQGBFUdIAAwLDAqBggrBgEFBQcCARYeaHR0cDovL3d3
+dy5zdGFydHNzbC5jb20vcG9saWN5MA0GCSqGSIb3DQEBCwUAA4ICAQCF8ugU0xvB
+oRYdpPRNulGLXFKxVFQSFheclnhv07/fQzb1EolhckTfHJsJT2AmaMHmZlBws2rx
+qGoMHi6T8e4HPgndMEWyVo7cLFyrSfq5BANAFXq1MOAdkY+m1m8fmaCElTm9rHd/
+ckvdLa7/qFgdRifUg8dpZJ8ZuxD4BEKHWV0CsdblyNpDMKPoN6XSSAuig06dT4NY
+nddHIrGJ8Ik7PShDLJsXfAPunSYl4AS4HQRXQkfaWGnw0ymrEgKZKyrYnaAfVF4j
+mgzSmVjEoeVJwiWnZCBSLueJ9RnAi9BjsXgevgFHvnaBRvGZH5SavvqCFbWEhHl1
+k7qfteSbwstpXL0fVQqnJjAFUb5l7lepat+9+TYvrR5GQSuxiNCIJYVAF3m/PY3i
+9C3qMDHfoUDLNf+Cn/WZPEr9naHRVcwgqBzYIAWrsxRllVPY6I5XxXdrLU2I6V1i
+1aL4cOFw60UjDvAARsJIMejnNoA2LSLyASdT686naUmCv+cPnPMgLvX6Xc7qWDqP
+2Kp9MLd0lnw9brTsSjtZtqlQDQ8FBnAmuZWR0V4kjI/KdFeXkItat/6Nrdjowga8
+CFYhAhJTxp+GBFjKLfgDDVcLHDe98Fo18v471qQ3Fen4CJKWPXTItVxuZQjn32lz
+nOzjMFqm31y+2n8A7qXaK1weKmrAo64e8Q==
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert50[] = {
+  0x30, 0x82, 0x05, 0xe5, 0x30, 0x82, 0x03, 0xcd, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x10, 0x13, 0x8b, 0xfe, 0xf3, 0x32, 0x94, 0xf9, 0xd8, 0x16,
+  0xf9, 0x45, 0xc2, 0x71, 0x95, 0x29, 0x98, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x7d,
+  0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+  0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d,
+  0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64,
+  0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x22,
+  0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, 0x69, 0x74,
+  0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+  0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x29,
+  0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20, 0x53, 0x74, 0x61,
+  0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68,
+  0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x31,
+  0x32, 0x31, 0x36, 0x30, 0x31, 0x30, 0x30, 0x30, 0x35, 0x5a, 0x17, 0x0d,
+  0x33, 0x30, 0x31, 0x32, 0x31, 0x36, 0x30, 0x31, 0x30, 0x30, 0x30, 0x35,
+  0x5a, 0x30, 0x78, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+  0x4c, 0x74, 0x64, 0x2e, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+  0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31,
+  0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x1d, 0x53, 0x74,
+  0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73,
+  0x20, 0x33, 0x20, 0x4f, 0x56, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+  0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82,
+  0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00,
+  0xaf, 0x67, 0x1c, 0x6f, 0xe5, 0x45, 0xe0, 0xd7, 0x46, 0x4b, 0x75, 0x2c,
+  0xb6, 0x80, 0xf2, 0x9a, 0x17, 0x4d, 0x2d, 0xff, 0xde, 0xae, 0xd2, 0xd4,
+  0x00, 0x8a, 0x3a, 0xb8, 0x31, 0xfe, 0x8e, 0x37, 0x9e, 0xfa, 0xaa, 0xd5,
+  0xa3, 0x5b, 0x16, 0x12, 0xc1, 0x19, 0x3e, 0x34, 0x85, 0x96, 0xc3, 0xbe,
+  0xd3, 0xb3, 0x43, 0xf4, 0x8d, 0x6f, 0x16, 0xbd, 0x30, 0xba, 0x07, 0xfc,
+  0xd8, 0x9a, 0xc1, 0x79, 0x89, 0x80, 0x6d, 0xa0, 0x8c, 0xbe, 0xdd, 0x37,
+  0xf7, 0xeb, 0x05, 0xd3, 0x53, 0x7f, 0x57, 0x58, 0x76, 0x55, 0xb6, 0xa8,
+  0xa8, 0x86, 0x44, 0xb8, 0xbb, 0xd0, 0x13, 0xda, 0xfd, 0x8f, 0xe1, 0xf2,
+  0xcd, 0xa0, 0x15, 0x38, 0x55, 0x56, 0xce, 0x26, 0xcf, 0x7c, 0x93, 0x75,
+  0x29, 0x7a, 0x0a, 0xab, 0xfb, 0xba, 0x09, 0x38, 0x20, 0x11, 0x57, 0x07,
+  0x5d, 0x7f, 0x49, 0x9f, 0x2a, 0x4a, 0x67, 0x1e, 0x9e, 0x58, 0xe9, 0xc7,
+  0x7f, 0xf9, 0xc3, 0xed, 0xfe, 0x5f, 0x4d, 0xaf, 0xb8, 0x4f, 0x9d, 0xdf,
+  0x69, 0x2d, 0x69, 0x1b, 0x3a, 0x58, 0x81, 0x69, 0x63, 0x30, 0xea, 0x87,
+  0x8d, 0x0f, 0x52, 0x9d, 0x5a, 0xda, 0x39, 0x44, 0xba, 0x9f, 0x89, 0x9f,
+  0x36, 0xb6, 0xc2, 0x19, 0x5c, 0xd9, 0x26, 0x78, 0xd9, 0xae, 0x5e, 0xfc,
+  0x95, 0x90, 0xbf, 0xe8, 0x11, 0xc0, 0x47, 0x0f, 0x77, 0x89, 0xdd, 0x6a,
+  0x28, 0x4f, 0x0a, 0xbc, 0x32, 0x64, 0x57, 0x43, 0x3d, 0x08, 0x65, 0x93,
+  0xe5, 0x45, 0xae, 0xdd, 0x28, 0x0c, 0x27, 0x2c, 0x8e, 0xa6, 0x2b, 0x09,
+  0x03, 0x5d, 0xa1, 0x78, 0xd2, 0x8c, 0xab, 0xb6, 0x6b, 0xb9, 0x46, 0xc9,
+  0x19, 0x00, 0x39, 0xb9, 0xbf, 0xc6, 0x13, 0x2b, 0x73, 0x72, 0x1f, 0xf2,
+  0x3e, 0x37, 0xb8, 0xe8, 0xb9, 0x14, 0x65, 0x88, 0x4d, 0xe2, 0xf1, 0x1b,
+  0xd8, 0xa5, 0x1d, 0x3b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01,
+  0x64, 0x30, 0x82, 0x01, 0x60, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f,
+  0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x1d, 0x06,
+  0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06,
+  0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x03, 0x01, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
+  0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00,
+  0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2b, 0x30, 0x29, 0x30,
+  0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3a,
+  0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73,
+  0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x66, 0x73, 0x63, 0x61,
+  0x2e, 0x63, 0x72, 0x6c, 0x30, 0x66, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05,
+  0x05, 0x07, 0x01, 0x01, 0x04, 0x5a, 0x30, 0x58, 0x30, 0x24, 0x06, 0x08,
+  0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74,
+  0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73, 0x74,
+  0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x30,
+  0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x24,
+  0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61, 0x69, 0x61, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x74,
+  0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb1,
+  0x3f, 0x1c, 0x92, 0x7b, 0x92, 0xb0, 0x5a, 0x25, 0xb3, 0x38, 0xfb, 0x9c,
+  0x07, 0xa4, 0x26, 0x50, 0x32, 0xe3, 0x51, 0x30, 0x1f, 0x06, 0x03, 0x55,
+  0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef, 0x1a,
+  0xa4, 0x40, 0x5b, 0xa5, 0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68, 0x43,
+  0xd0, 0x41, 0xae, 0xf2, 0x30, 0x3f, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04,
+  0x38, 0x30, 0x36, 0x30, 0x34, 0x06, 0x04, 0x55, 0x1d, 0x20, 0x00, 0x30,
+  0x2c, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02,
+  0x01, 0x16, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+  0x77, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63,
+  0x6f, 0x6d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x30, 0x0d, 0x06,
+  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00,
+  0x03, 0x82, 0x02, 0x01, 0x00, 0x85, 0xf2, 0xe8, 0x14, 0xd3, 0x1b, 0xc1,
+  0xa1, 0x16, 0x1d, 0xa4, 0xf4, 0x4d, 0xba, 0x51, 0x8b, 0x5c, 0x52, 0xb1,
+  0x54, 0x54, 0x12, 0x16, 0x17, 0x9c, 0x96, 0x78, 0x6f, 0xd3, 0xbf, 0xdf,
+  0x43, 0x36, 0xf5, 0x12, 0x89, 0x61, 0x72, 0x44, 0xdf, 0x1c, 0x9b, 0x09,
+  0x4f, 0x60, 0x26, 0x68, 0xc1, 0xe6, 0x66, 0x50, 0x70, 0xb3, 0x6a, 0xf1,
+  0xa8, 0x6a, 0x0c, 0x1e, 0x2e, 0x93, 0xf1, 0xee, 0x07, 0x3e, 0x09, 0xdd,
+  0x30, 0x45, 0xb2, 0x56, 0x8e, 0xdc, 0x2c, 0x5c, 0xab, 0x49, 0xfa, 0xb9,
+  0x04, 0x03, 0x40, 0x15, 0x7a, 0xb5, 0x30, 0xe0, 0x1d, 0x91, 0x8f, 0xa6,
+  0xd6, 0x6f, 0x1f, 0x99, 0xa0, 0x84, 0x95, 0x39, 0xbd, 0xac, 0x77, 0x7f,
+  0x72, 0x4b, 0xdd, 0x2d, 0xae, 0xff, 0xa8, 0x58, 0x1d, 0x46, 0x27, 0xd4,
+  0x83, 0xc7, 0x69, 0x64, 0x9f, 0x19, 0xbb, 0x10, 0xf8, 0x04, 0x42, 0x87,
+  0x59, 0x5d, 0x02, 0xb1, 0xd6, 0xe5, 0xc8, 0xda, 0x43, 0x30, 0xa3, 0xe8,
+  0x37, 0xa5, 0xd2, 0x48, 0x0b, 0xa2, 0x83, 0x4e, 0x9d, 0x4f, 0x83, 0x58,
+  0x9d, 0xd7, 0x47, 0x22, 0xb1, 0x89, 0xf0, 0x89, 0x3b, 0x3d, 0x28, 0x43,
+  0x2c, 0x9b, 0x17, 0x7c, 0x03, 0xee, 0x9d, 0x26, 0x25, 0xe0, 0x04, 0xb8,
+  0x1d, 0x04, 0x57, 0x42, 0x47, 0xda, 0x58, 0x69, 0xf0, 0xd3, 0x29, 0xab,
+  0x12, 0x02, 0x99, 0x2b, 0x2a, 0xd8, 0x9d, 0xa0, 0x1f, 0x54, 0x5e, 0x23,
+  0x9a, 0x0c, 0xd2, 0x99, 0x58, 0xc4, 0xa1, 0xe5, 0x49, 0xc2, 0x25, 0xa7,
+  0x64, 0x20, 0x52, 0x2e, 0xe7, 0x89, 0xf5, 0x19, 0xc0, 0x8b, 0xd0, 0x63,
+  0xb1, 0x78, 0x1e, 0xbe, 0x01, 0x47, 0xbe, 0x76, 0x81, 0x46, 0xf1, 0x99,
+  0x1f, 0x94, 0x9a, 0xbe, 0xfa, 0x82, 0x15, 0xb5, 0x84, 0x84, 0x79, 0x75,
+  0x93, 0xba, 0x9f, 0xb5, 0xe4, 0x9b, 0xc2, 0xcb, 0x69, 0x5c, 0xbd, 0x1f,
+  0x55, 0x0a, 0xa7, 0x26, 0x30, 0x05, 0x51, 0xbe, 0x65, 0xee, 0x57, 0xa9,
+  0x6a, 0xdf, 0xbd, 0xf9, 0x36, 0x2f, 0xad, 0x1e, 0x46, 0x41, 0x2b, 0xb1,
+  0x88, 0xd0, 0x88, 0x25, 0x85, 0x40, 0x17, 0x79, 0xbf, 0x3d, 0x8d, 0xe2,
+  0xf4, 0x2d, 0xea, 0x30, 0x31, 0xdf, 0xa1, 0x40, 0xcb, 0x35, 0xff, 0x82,
+  0x9f, 0xf5, 0x99, 0x3c, 0x4a, 0xfd, 0x9d, 0xa1, 0xd1, 0x55, 0xcc, 0x20,
+  0xa8, 0x1c, 0xd8, 0x20, 0x05, 0xab, 0xb3, 0x14, 0x65, 0x95, 0x53, 0xd8,
+  0xe8, 0x8e, 0x57, 0xc5, 0x77, 0x6b, 0x2d, 0x4d, 0x88, 0xe9, 0x5d, 0x62,
+  0xd5, 0xa2, 0xf8, 0x70, 0xe1, 0x70, 0xeb, 0x45, 0x23, 0x0e, 0xf0, 0x00,
+  0x46, 0xc2, 0x48, 0x31, 0xe8, 0xe7, 0x36, 0x80, 0x36, 0x2d, 0x22, 0xf2,
+  0x01, 0x27, 0x53, 0xeb, 0xce, 0xa7, 0x69, 0x49, 0x82, 0xbf, 0xe7, 0x0f,
+  0x9c, 0xf3, 0x20, 0x2e, 0xf5, 0xfa, 0x5d, 0xce, 0xea, 0x58, 0x3a, 0x8f,
+  0xd8, 0xaa, 0x7d, 0x30, 0xb7, 0x74, 0x96, 0x7c, 0x3d, 0x6e, 0xb4, 0xec,
+  0x4a, 0x3b, 0x59, 0xb6, 0xa9, 0x50, 0x0d, 0x0f, 0x05, 0x06, 0x70, 0x26,
+  0xb9, 0x95, 0x91, 0xd1, 0x5e, 0x24, 0x8c, 0x8f, 0xca, 0x74, 0x57, 0x97,
+  0x90, 0x8b, 0x5a, 0xb7, 0xfe, 0x8d, 0xad, 0xd8, 0xe8, 0xc2, 0x06, 0xbc,
+  0x08, 0x56, 0x21, 0x02, 0x12, 0x53, 0xc6, 0x9f, 0x86, 0x04, 0x58, 0xca,
+  0x2d, 0xf8, 0x03, 0x0d, 0x57, 0x0b, 0x1c, 0x37, 0xbd, 0xf0, 0x5a, 0x35,
+  0xf2, 0xfe, 0x3b, 0xd6, 0xa4, 0x37, 0x15, 0xe9, 0xf8, 0x08, 0x92, 0x96,
+  0x3d, 0x74, 0xc8, 0xb5, 0x5c, 0x6e, 0x65, 0x08, 0xe7, 0xdf, 0x69, 0x73,
+  0x9c, 0xec, 0xe3, 0x30, 0x5a, 0xa6, 0xdf, 0x5c, 0xbe, 0xda, 0x7f, 0x00,
+  0xee, 0xa5, 0xda, 0x2b, 0x5c, 0x1e, 0x2a, 0x6a, 0xc0, 0xa3, 0xae, 0x1e,
+  0xf1,
+};
+
+#if 0
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 7250751724796726 (0x19c28530e93b36)
+    Signature Algorithm: sha256WithRSAEncryption
+        Issuer: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
+        Validity
+            Not Before: Sep 17 22:46:36 2006 GMT
+            Not After : Dec 31 23:59:59 2019 GMT
+        Subject: C=CN, O=WoSign CA Limited, CN=Certification Authority of WoSign
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (4096 bit)
+                Modulus:
+                    00:bd:ca:8d:ac:b8:91:15:56:97:7b:6b:5c:7a:c2:
+                    de:6b:d9:a1:b0:c3:10:23:fa:a7:a1:b2:cc:31:fa:
+                    3e:d9:a6:29:6f:16:3d:e0:6b:f8:b8:40:5f:db:39:
+                    a8:00:7a:8b:a0:4d:54:7d:c2:22:78:fc:8e:09:b8:
+                    a8:85:d7:cc:95:97:4b:74:d8:9e:7e:f0:00:e4:0e:
+                    89:ae:49:28:44:1a:10:99:32:0f:25:88:53:a4:0d:
+                    b3:0f:12:08:16:0b:03:71:27:1c:7f:e1:db:d2:fd:
+                    67:68:c4:05:5d:0a:0e:5d:70:d7:d8:97:a0:bc:53:
+                    41:9a:91:8d:f4:9e:36:66:7a:7e:56:c1:90:5f:e6:
+                    b1:68:20:36:a4:8c:24:2c:2c:47:0b:59:76:66:30:
+                    b5:be:de:ed:8f:f8:9d:d3:bb:01:30:e6:f2:f3:0e:
+                    e0:2c:92:80:f3:85:f9:28:8a:b4:54:2e:9a:ed:f7:
+                    76:fc:15:68:16:eb:4a:6c:eb:2e:12:8f:d4:cf:fe:
+                    0c:c7:5c:1d:0b:7e:05:32:be:5e:b0:09:2a:42:d5:
+                    c9:4e:90:b3:59:0d:bb:7a:7e:cd:d5:08:5a:b4:7f:
+                    d8:1c:69:11:f9:27:0f:7b:06:af:54:83:18:7b:e1:
+                    dd:54:7a:51:68:6e:77:fc:c6:bf:52:4a:66:46:a1:
+                    b2:67:1a:bb:a3:4f:77:a0:be:5d:ff:fc:56:0b:43:
+                    72:77:90:ca:9e:f9:f2:39:f5:0d:a9:f4:ea:d7:e7:
+                    b3:10:2f:30:42:37:21:cc:30:70:c9:86:98:0f:cc:
+                    58:4d:83:bb:7d:e5:1a:a5:37:8d:b6:ac:32:97:00:
+                    3a:63:71:24:1e:9e:37:c4:ff:74:d4:37:c0:e2:fe:
+                    88:46:60:11:dd:08:3f:50:36:ab:b8:7a:a4:95:62:
+                    6a:6e:b0:ca:6a:21:5a:69:f3:f3:fb:1d:70:39:95:
+                    f3:a7:6e:a6:81:89:a1:88:c5:3b:71:ca:a3:52:ee:
+                    83:bb:fd:a0:77:f4:e4:6f:e7:42:db:6d:4a:99:8a:
+                    34:48:bc:17:dc:e4:80:08:22:b6:f2:31:c0:3f:04:
+                    3e:eb:9f:20:79:d6:b8:06:64:64:02:31:d7:a9:cd:
+                    52:fb:84:45:69:09:00:2a:dc:55:8b:c4:06:46:4b:
+                    c0:4a:1d:09:5b:39:28:fd:a9:ab:ce:00:f9:2e:48:
+                    4b:26:e6:30:4c:a5:58:ca:b4:44:82:4f:e7:91:1e:
+                    33:c3:b0:93:ff:11:fc:81:d2:ca:1f:71:29:dd:76:
+                    4f:92:25:af:1d:81:b7:0f:2f:8c:c3:06:cc:2f:27:
+                    a3:4a:e4:0e:99:ba:7c:1e:45:1f:7f:aa:19:45:96:
+                    fd:fc:3d
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Basic Constraints: critical
+                CA:TRUE, pathlen:2
+            X509v3 Key Usage: critical
+                Certificate Sign, CRL Sign
+            X509v3 Subject Key Identifier: 
+                E1:66:CF:0E:D1:F1:B3:4B:B7:06:20:14:FE:87:12:D5:F6:FE:FB:3E
+            X509v3 Authority Key Identifier: 
+                keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
+
+            Authority Information Access: 
+                OCSP - URI:http://ocsp.startssl.com/ca
+                CA Issuers - URI:http://aia.startssl.com/certs/ca.crt
+
+            X509v3 CRL Distribution Points: 
+
+                Full Name:
+                  URI:http://crl.startssl.com/sfsca.crl
+
+    Signature Algorithm: sha256WithRSAEncryption
+         b6:6d:f8:70:fb:e2:0d:4c:98:b3:07:49:15:f5:04:c4:6c:ca:
+         ca:f5:68:a0:08:fe:12:6d:9c:04:06:c9:ad:9a:91:52:3e:78:
+         c4:5c:ee:9f:54:1d:ee:e3:f1:5e:30:c9:49:e1:39:e0:a6:9d:
+         36:6c:57:fa:e6:34:4f:55:e8:87:a8:2c:dd:05:f1:58:12:91:
+         e8:ca:ce:28:78:8f:df:07:85:01:a5:dc:45:96:05:d4:80:b2:
+         2b:05:9a:cb:9a:a5:8b:e0:3a:67:e6:73:47:be:4a:fd:27:b1:
+         88:ef:e6:ca:cf:8d:0e:26:9f:fa:5f:57:78:ad:6d:fe:ae:9b:
+         35:08:b1:c3:ba:c1:00:4a:4b:7d:14:bd:f7:f1:d3:55:18:ac:
+         d0:33:70:88:6d:c4:09:71:14:a6:2b:4f:88:81:e7:0b:00:37:
+         a9:15:7d:7e:d7:01:96:3f:2f:af:7b:62:ae:0a:4a:bf:4b:39:
+         2e:35:10:8b:fe:04:39:e4:3c:3a:0c:09:56:40:3a:b5:f4:c2:
+         68:0c:b5:f9:52:cd:ee:9d:f8:98:fc:78:e7:58:47:8f:1c:73:
+         58:69:33:ab:ff:dd:df:8e:24:01:77:98:19:3a:b0:66:79:bc:
+         e1:08:a3:0e:4f:c1:04:b3:f3:01:c8:eb:d3:59:1c:35:d2:93:
+         1e:70:65:82:7f:db:cf:fb:c8:99:12:60:c3:44:6f:3a:80:4b:
+         d7:be:21:aa:14:7a:64:cb:dd:37:43:45:5b:32:2e:45:f0:d9:
+         59:1f:6b:18:f0:7c:e9:55:36:19:61:5f:b5:7d:f1:8d:bd:88:
+         e4:75:4b:98:dd:27:b0:e4:84:44:2a:61:84:57:05:82:11:1f:
+         aa:35:58:f3:20:0e:af:59:ef:fa:55:72:72:0d:26:d0:9b:53:
+         49:ac:ce:37:2e:65:61:ff:f6:ec:1b:ea:f6:f1:a6:d3:d1:b5:
+         7b:be:35:f4:22:c1:bc:8d:01:bd:68:5e:83:0d:2f:ec:d6:da:
+         63:0c:27:d1:54:3e:e4:a8:d3:ce:4b:32:b8:91:94:ff:fb:5b:
+         49:2d:75:18:a8:ba:71:9a:3b:ae:d9:c0:a9:4f:87:91:ed:8b:
+         7b:6b:20:98:89:39:83:4f:80:c4:69:cc:17:c9:c8:4e:be:e4:
+         a9:a5:81:76:70:06:04:32:cd:83:65:f4:bc:7d:3e:13:bc:d2:
+         e8:6f:63:aa:b5:3b:da:8d:86:32:82:78:9d:d9:cc:ff:bf:57:
+         64:74:ed:28:3d:44:62:15:61:4b:f7:94:b0:0d:2a:67:1c:f0:
+         cb:9b:a5:92:bf:f8:41:5a:c1:3d:60:ed:9f:bb:b8:6d:9b:ce:
+         a9:6a:16:3f:7e:ea:06:f1
+-----BEGIN CERTIFICATE-----
+MIIGXDCCBESgAwIBAgIHGcKFMOk7NjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQG
+EwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERp
+Z2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MjI0NjM2WhcNMTkxMjMxMjM1
+OTU5WjBVMQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQx
+KjAoBgNVBAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL3Kjay4kRVWl3trXHrC3mvZobDD
+ECP6p6GyzDH6PtmmKW8WPeBr+LhAX9s5qAB6i6BNVH3CInj8jgm4qIXXzJWXS3TY
+nn7wAOQOia5JKEQaEJkyDyWIU6QNsw8SCBYLA3EnHH/h29L9Z2jEBV0KDl1w19iX
+oLxTQZqRjfSeNmZ6flbBkF/msWggNqSMJCwsRwtZdmYwtb7e7Y/4ndO7ATDm8vMO
+4CySgPOF+SiKtFQumu33dvwVaBbrSmzrLhKP1M/+DMdcHQt+BTK+XrAJKkLVyU6Q
+s1kNu3p+zdUIWrR/2BxpEfknD3sGr1SDGHvh3VR6UWhud/zGv1JKZkahsmcau6NP
+d6C+Xf/8VgtDcneQyp758jn1Dan06tfnsxAvMEI3IcwwcMmGmA/MWE2Du33lGqU3
+jbasMpcAOmNxJB6eN8T/dNQ3wOL+iEZgEd0IP1A2q7h6pJViam6wymohWmnz8/sd
+cDmV86dupoGJoYjFO3HKo1Lug7v9oHf05G/nQtttSpmKNEi8F9zkgAgitvIxwD8E
+PuufIHnWuAZkZAIx16nNUvuERWkJACrcVYvEBkZLwEodCVs5KP2pq84A+S5ISybm
+MEylWMq0RIJP55EeM8Owk/8R/IHSyh9xKd12T5Ilrx2Btw8vjMMGzC8no0rkDpm6
+fB5FH3+qGUWW/fw9AgMBAAGjggEHMIIBAzASBgNVHRMBAf8ECDAGAQH/AgECMA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU4WbPDtHxs0u3BiAU/ocS1fb++z4wHwYD
+VR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwaQYIKwYBBQUHAQEEXTBbMCcG
+CCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwMAYIKwYBBQUH
+MAKGJGh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRzL2NhLmNydDAyBgNVHR8E
+KzApMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwDQYJ
+KoZIhvcNAQELBQADggIBALZt+HD74g1MmLMHSRX1BMRsysr1aKAI/hJtnAQGya2a
+kVI+eMRc7p9UHe7j8V4wyUnhOeCmnTZsV/rmNE9V6IeoLN0F8VgSkejKzih4j98H
+hQGl3EWWBdSAsisFmsuapYvgOmfmc0e+Sv0nsYjv5srPjQ4mn/pfV3itbf6umzUI
+scO6wQBKS30Uvffx01UYrNAzcIhtxAlxFKYrT4iB5wsAN6kVfX7XAZY/L697Yq4K
+Sr9LOS41EIv+BDnkPDoMCVZAOrX0wmgMtflSze6d+Jj8eOdYR48cc1hpM6v/3d+O
+JAF3mBk6sGZ5vOEIow5PwQSz8wHI69NZHDXSkx5wZYJ/28/7yJkSYMNEbzqAS9e+
+IaoUemTL3TdDRVsyLkXw2VkfaxjwfOlVNhlhX7V98Y29iOR1S5jdJ7DkhEQqYYRX
+BYIRH6o1WPMgDq9Z7/pVcnINJtCbU0mszjcuZWH/9uwb6vbxptPRtXu+NfQiwbyN
+Ab1oXoMNL+zW2mMMJ9FUPuSo085LMriRlP/7W0ktdRiounGaO67ZwKlPh5Hti3tr
+IJiJOYNPgMRpzBfJyE6+5KmlgXZwBgQyzYNl9Lx9PhO80uhvY6q1O9qNhjKCeJ3Z
+zP+/V2R07Sg9RGIVYUv3lLANKmcc8MubpZK/+EFawT1g7Z+7uG2bzqlqFj9+6gbx
+-----END CERTIFICATE-----
+#endif
+static const unsigned char kDERCert51[] = {
+  0x30, 0x82, 0x06, 0x5c, 0x30, 0x82, 0x04, 0x44, 0xa0, 0x03, 0x02, 0x01,
+  0x02, 0x02, 0x07, 0x19, 0xc2, 0x85, 0x30, 0xe9, 0x3b, 0x36, 0x30, 0x0d,
+  0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05,
+  0x00, 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+  0x13, 0x02, 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04,
+  0x0a, 0x13, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20,
+  0x4c, 0x74, 0x64, 0x2e, 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04,
+  0x0b, 0x13, 0x22, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69,
+  0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e,
+  0x67, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x20,
+  0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x43, 0x65, 0x72,
+  0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41,
+  0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1e, 0x17, 0x0d,
+  0x30, 0x36, 0x30, 0x39, 0x31, 0x37, 0x32, 0x32, 0x34, 0x36, 0x33, 0x36,
+  0x5a, 0x17, 0x0d, 0x31, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
+  0x39, 0x35, 0x39, 0x5a, 0x30, 0x55, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03,
+  0x55, 0x04, 0x06, 0x13, 0x02, 0x43, 0x4e, 0x31, 0x1a, 0x30, 0x18, 0x06,
+  0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e,
+  0x20, 0x43, 0x41, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x31,
+  0x2a, 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x43, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20,
+  0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x66,
+  0x20, 0x57, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x30, 0x82, 0x02, 0x22, 0x30,
+  0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
+  0x05, 0x00, 0x03, 0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02,
+  0x82, 0x02, 0x01, 0x00, 0xbd, 0xca, 0x8d, 0xac, 0xb8, 0x91, 0x15, 0x56,
+  0x97, 0x7b, 0x6b, 0x5c, 0x7a, 0xc2, 0xde, 0x6b, 0xd9, 0xa1, 0xb0, 0xc3,
+  0x10, 0x23, 0xfa, 0xa7, 0xa1, 0xb2, 0xcc, 0x31, 0xfa, 0x3e, 0xd9, 0xa6,
+  0x29, 0x6f, 0x16, 0x3d, 0xe0, 0x6b, 0xf8, 0xb8, 0x40, 0x5f, 0xdb, 0x39,
+  0xa8, 0x00, 0x7a, 0x8b, 0xa0, 0x4d, 0x54, 0x7d, 0xc2, 0x22, 0x78, 0xfc,
+  0x8e, 0x09, 0xb8, 0xa8, 0x85, 0xd7, 0xcc, 0x95, 0x97, 0x4b, 0x74, 0xd8,
+  0x9e, 0x7e, 0xf0, 0x00, 0xe4, 0x0e, 0x89, 0xae, 0x49, 0x28, 0x44, 0x1a,
+  0x10, 0x99, 0x32, 0x0f, 0x25, 0x88, 0x53, 0xa4, 0x0d, 0xb3, 0x0f, 0x12,
+  0x08, 0x16, 0x0b, 0x03, 0x71, 0x27, 0x1c, 0x7f, 0xe1, 0xdb, 0xd2, 0xfd,
+  0x67, 0x68, 0xc4, 0x05, 0x5d, 0x0a, 0x0e, 0x5d, 0x70, 0xd7, 0xd8, 0x97,
+  0xa0, 0xbc, 0x53, 0x41, 0x9a, 0x91, 0x8d, 0xf4, 0x9e, 0x36, 0x66, 0x7a,
+  0x7e, 0x56, 0xc1, 0x90, 0x5f, 0xe6, 0xb1, 0x68, 0x20, 0x36, 0xa4, 0x8c,
+  0x24, 0x2c, 0x2c, 0x47, 0x0b, 0x59, 0x76, 0x66, 0x30, 0xb5, 0xbe, 0xde,
+  0xed, 0x8f, 0xf8, 0x9d, 0xd3, 0xbb, 0x01, 0x30, 0xe6, 0xf2, 0xf3, 0x0e,
+  0xe0, 0x2c, 0x92, 0x80, 0xf3, 0x85, 0xf9, 0x28, 0x8a, 0xb4, 0x54, 0x2e,
+  0x9a, 0xed, 0xf7, 0x76, 0xfc, 0x15, 0x68, 0x16, 0xeb, 0x4a, 0x6c, 0xeb,
+  0x2e, 0x12, 0x8f, 0xd4, 0xcf, 0xfe, 0x0c, 0xc7, 0x5c, 0x1d, 0x0b, 0x7e,
+  0x05, 0x32, 0xbe, 0x5e, 0xb0, 0x09, 0x2a, 0x42, 0xd5, 0xc9, 0x4e, 0x90,
+  0xb3, 0x59, 0x0d, 0xbb, 0x7a, 0x7e, 0xcd, 0xd5, 0x08, 0x5a, 0xb4, 0x7f,
+  0xd8, 0x1c, 0x69, 0x11, 0xf9, 0x27, 0x0f, 0x7b, 0x06, 0xaf, 0x54, 0x83,
+  0x18, 0x7b, 0xe1, 0xdd, 0x54, 0x7a, 0x51, 0x68, 0x6e, 0x77, 0xfc, 0xc6,
+  0xbf, 0x52, 0x4a, 0x66, 0x46, 0xa1, 0xb2, 0x67, 0x1a, 0xbb, 0xa3, 0x4f,
+  0x77, 0xa0, 0xbe, 0x5d, 0xff, 0xfc, 0x56, 0x0b, 0x43, 0x72, 0x77, 0x90,
+  0xca, 0x9e, 0xf9, 0xf2, 0x39, 0xf5, 0x0d, 0xa9, 0xf4, 0xea, 0xd7, 0xe7,
+  0xb3, 0x10, 0x2f, 0x30, 0x42, 0x37, 0x21, 0xcc, 0x30, 0x70, 0xc9, 0x86,
+  0x98, 0x0f, 0xcc, 0x58, 0x4d, 0x83, 0xbb, 0x7d, 0xe5, 0x1a, 0xa5, 0x37,
+  0x8d, 0xb6, 0xac, 0x32, 0x97, 0x00, 0x3a, 0x63, 0x71, 0x24, 0x1e, 0x9e,
+  0x37, 0xc4, 0xff, 0x74, 0xd4, 0x37, 0xc0, 0xe2, 0xfe, 0x88, 0x46, 0x60,
+  0x11, 0xdd, 0x08, 0x3f, 0x50, 0x36, 0xab, 0xb8, 0x7a, 0xa4, 0x95, 0x62,
+  0x6a, 0x6e, 0xb0, 0xca, 0x6a, 0x21, 0x5a, 0x69, 0xf3, 0xf3, 0xfb, 0x1d,
+  0x70, 0x39, 0x95, 0xf3, 0xa7, 0x6e, 0xa6, 0x81, 0x89, 0xa1, 0x88, 0xc5,
+  0x3b, 0x71, 0xca, 0xa3, 0x52, 0xee, 0x83, 0xbb, 0xfd, 0xa0, 0x77, 0xf4,
+  0xe4, 0x6f, 0xe7, 0x42, 0xdb, 0x6d, 0x4a, 0x99, 0x8a, 0x34, 0x48, 0xbc,
+  0x17, 0xdc, 0xe4, 0x80, 0x08, 0x22, 0xb6, 0xf2, 0x31, 0xc0, 0x3f, 0x04,
+  0x3e, 0xeb, 0x9f, 0x20, 0x79, 0xd6, 0xb8, 0x06, 0x64, 0x64, 0x02, 0x31,
+  0xd7, 0xa9, 0xcd, 0x52, 0xfb, 0x84, 0x45, 0x69, 0x09, 0x00, 0x2a, 0xdc,
+  0x55, 0x8b, 0xc4, 0x06, 0x46, 0x4b, 0xc0, 0x4a, 0x1d, 0x09, 0x5b, 0x39,
+  0x28, 0xfd, 0xa9, 0xab, 0xce, 0x00, 0xf9, 0x2e, 0x48, 0x4b, 0x26, 0xe6,
+  0x30, 0x4c, 0xa5, 0x58, 0xca, 0xb4, 0x44, 0x82, 0x4f, 0xe7, 0x91, 0x1e,
+  0x33, 0xc3, 0xb0, 0x93, 0xff, 0x11, 0xfc, 0x81, 0xd2, 0xca, 0x1f, 0x71,
+  0x29, 0xdd, 0x76, 0x4f, 0x92, 0x25, 0xaf, 0x1d, 0x81, 0xb7, 0x0f, 0x2f,
+  0x8c, 0xc3, 0x06, 0xcc, 0x2f, 0x27, 0xa3, 0x4a, 0xe4, 0x0e, 0x99, 0xba,
+  0x7c, 0x1e, 0x45, 0x1f, 0x7f, 0xaa, 0x19, 0x45, 0x96, 0xfd, 0xfc, 0x3d,
+  0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x07, 0x30, 0x82, 0x01,
+  0x03, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+  0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x02, 0x30, 0x0e, 0x06,
+  0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01,
+  0x06, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14,
+  0xe1, 0x66, 0xcf, 0x0e, 0xd1, 0xf1, 0xb3, 0x4b, 0xb7, 0x06, 0x20, 0x14,
+  0xfe, 0x87, 0x12, 0xd5, 0xf6, 0xfe, 0xfb, 0x3e, 0x30, 0x1f, 0x06, 0x03,
+  0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x4e, 0x0b, 0xef,
+  0x1a, 0xa4, 0x40, 0x5b, 0xa5, 0x17, 0x69, 0x87, 0x30, 0xca, 0x34, 0x68,
+  0x43, 0xd0, 0x41, 0xae, 0xf2, 0x30, 0x69, 0x06, 0x08, 0x2b, 0x06, 0x01,
+  0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x5d, 0x30, 0x5b, 0x30, 0x27, 0x06,
+  0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x1b, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2e, 0x73,
+  0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+  0x63, 0x61, 0x30, 0x30, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+  0x30, 0x02, 0x86, 0x24, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x61,
+  0x69, 0x61, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e,
+  0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x63, 0x61,
+  0x2e, 0x63, 0x72, 0x74, 0x30, 0x32, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04,
+  0x2b, 0x30, 0x29, 0x30, 0x27, 0xa0, 0x25, 0xa0, 0x23, 0x86, 0x21, 0x68,
+  0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x73, 0x74,
+  0x61, 0x72, 0x74, 0x73, 0x73, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+  0x66, 0x73, 0x63, 0x61, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x0d, 0x06, 0x09,
+  0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03,
+  0x82, 0x02, 0x01, 0x00, 0xb6, 0x6d, 0xf8, 0x70, 0xfb, 0xe2, 0x0d, 0x4c,
+  0x98, 0xb3, 0x07, 0x49, 0x15, 0xf5, 0x04, 0xc4, 0x6c, 0xca, 0xca, 0xf5,
+  0x68, 0xa0, 0x08, 0xfe, 0x12, 0x6d, 0x9c, 0x04, 0x06, 0xc9, 0xad, 0x9a,
+  0x91, 0x52, 0x3e, 0x78, 0xc4, 0x5c, 0xee, 0x9f, 0x54, 0x1d, 0xee, 0xe3,
+  0xf1, 0x5e, 0x30, 0xc9, 0x49, 0xe1, 0x39, 0xe0, 0xa6, 0x9d, 0x36, 0x6c,
+  0x57, 0xfa, 0xe6, 0x34, 0x4f, 0x55, 0xe8, 0x87, 0xa8, 0x2c, 0xdd, 0x05,
+  0xf1, 0x58, 0x12, 0x91, 0xe8, 0xca, 0xce, 0x28, 0x78, 0x8f, 0xdf, 0x07,
+  0x85, 0x01, 0xa5, 0xdc, 0x45, 0x96, 0x05, 0xd4, 0x80, 0xb2, 0x2b, 0x05,
+  0x9a, 0xcb, 0x9a, 0xa5, 0x8b, 0xe0, 0x3a, 0x67, 0xe6, 0x73, 0x47, 0xbe,
+  0x4a, 0xfd, 0x27, 0xb1, 0x88, 0xef, 0xe6, 0xca, 0xcf, 0x8d, 0x0e, 0x26,
+  0x9f, 0xfa, 0x5f, 0x57, 0x78, 0xad, 0x6d, 0xfe, 0xae, 0x9b, 0x35, 0x08,
+  0xb1, 0xc3, 0xba, 0xc1, 0x00, 0x4a, 0x4b, 0x7d, 0x14, 0xbd, 0xf7, 0xf1,
+  0xd3, 0x55, 0x18, 0xac, 0xd0, 0x33, 0x70, 0x88, 0x6d, 0xc4, 0x09, 0x71,
+  0x14, 0xa6, 0x2b, 0x4f, 0x88, 0x81, 0xe7, 0x0b, 0x00, 0x37, 0xa9, 0x15,
+  0x7d, 0x7e, 0xd7, 0x01, 0x96, 0x3f, 0x2f, 0xaf, 0x7b, 0x62, 0xae, 0x0a,
+  0x4a, 0xbf, 0x4b, 0x39, 0x2e, 0x35, 0x10, 0x8b, 0xfe, 0x04, 0x39, 0xe4,
+  0x3c, 0x3a, 0x0c, 0x09, 0x56, 0x40, 0x3a, 0xb5, 0xf4, 0xc2, 0x68, 0x0c,
+  0xb5, 0xf9, 0x52, 0xcd, 0xee, 0x9d, 0xf8, 0x98, 0xfc, 0x78, 0xe7, 0x58,
+  0x47, 0x8f, 0x1c, 0x73, 0x58, 0x69, 0x33, 0xab, 0xff, 0xdd, 0xdf, 0x8e,
+  0x24, 0x01, 0x77, 0x98, 0x19, 0x3a, 0xb0, 0x66, 0x79, 0xbc, 0xe1, 0x08,
+  0xa3, 0x0e, 0x4f, 0xc1, 0x04, 0xb3, 0xf3, 0x01, 0xc8, 0xeb, 0xd3, 0x59,
+  0x1c, 0x35, 0xd2, 0x93, 0x1e, 0x70, 0x65, 0x82, 0x7f, 0xdb, 0xcf, 0xfb,
+  0xc8, 0x99, 0x12, 0x60, 0xc3, 0x44, 0x6f, 0x3a, 0x80, 0x4b, 0xd7, 0xbe,
+  0x21, 0xaa, 0x14, 0x7a, 0x64, 0xcb, 0xdd, 0x37, 0x43, 0x45, 0x5b, 0x32,
+  0x2e, 0x45, 0xf0, 0xd9, 0x59, 0x1f, 0x6b, 0x18, 0xf0, 0x7c, 0xe9, 0x55,
+  0x36, 0x19, 0x61, 0x5f, 0xb5, 0x7d, 0xf1, 0x8d, 0xbd, 0x88, 0xe4, 0x75,
+  0x4b, 0x98, 0xdd, 0x27, 0xb0, 0xe4, 0x84, 0x44, 0x2a, 0x61, 0x84, 0x57,
+  0x05, 0x82, 0x11, 0x1f, 0xaa, 0x35, 0x58, 0xf3, 0x20, 0x0e, 0xaf, 0x59,
+  0xef, 0xfa, 0x55, 0x72, 0x72, 0x0d, 0x26, 0xd0, 0x9b, 0x53, 0x49, 0xac,
+  0xce, 0x37, 0x2e, 0x65, 0x61, 0xff, 0xf6, 0xec, 0x1b, 0xea, 0xf6, 0xf1,
+  0xa6, 0xd3, 0xd1, 0xb5, 0x7b, 0xbe, 0x35, 0xf4, 0x22, 0xc1, 0xbc, 0x8d,
+  0x01, 0xbd, 0x68, 0x5e, 0x83, 0x0d, 0x2f, 0xec, 0xd6, 0xda, 0x63, 0x0c,
+  0x27, 0xd1, 0x54, 0x3e, 0xe4, 0xa8, 0xd3, 0xce, 0x4b, 0x32, 0xb8, 0x91,
+  0x94, 0xff, 0xfb, 0x5b, 0x49, 0x2d, 0x75, 0x18, 0xa8, 0xba, 0x71, 0x9a,
+  0x3b, 0xae, 0xd9, 0xc0, 0xa9, 0x4f, 0x87, 0x91, 0xed, 0x8b, 0x7b, 0x6b,
+  0x20, 0x98, 0x89, 0x39, 0x83, 0x4f, 0x80, 0xc4, 0x69, 0xcc, 0x17, 0xc9,
+  0xc8, 0x4e, 0xbe, 0xe4, 0xa9, 0xa5, 0x81, 0x76, 0x70, 0x06, 0x04, 0x32,
+  0xcd, 0x83, 0x65, 0xf4, 0xbc, 0x7d, 0x3e, 0x13, 0xbc, 0xd2, 0xe8, 0x6f,
+  0x63, 0xaa, 0xb5, 0x3b, 0xda, 0x8d, 0x86, 0x32, 0x82, 0x78, 0x9d, 0xd9,
+  0xcc, 0xff, 0xbf, 0x57, 0x64, 0x74, 0xed, 0x28, 0x3d, 0x44, 0x62, 0x15,
+  0x61, 0x4b, 0xf7, 0x94, 0xb0, 0x0d, 0x2a, 0x67, 0x1c, 0xf0, 0xcb, 0x9b,
+  0xa5, 0x92, 0xbf, 0xf8, 0x41, 0x5a, 0xc1, 0x3d, 0x60, 0xed, 0x9f, 0xbb,
+  0xb8, 0x6d, 0x9b, 0xce, 0xa9, 0x6a, 0x16, 0x3f, 0x7e, 0xea, 0x06, 0xf1,
+};
index 2285bec..6b66800 100644 (file)
@@ -197,8 +197,36 @@ class NET_EXPORT UDPSocketPosix : public base::NonThreadSafe {
   void DetachFromThread();
 
 #if defined(TIZEN_PEPPER_EXTENSIONS)
-  int socket_fd() const { return socket_; }
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
+  // Gets the receive buffer size (in bytes) for the socket.
+  // Returns a net error code.
+  int GetReceiveBufferSize(int32_t* size);
+
+  // Gets the send buffer size (in bytes) for the socket.
+  // Returns a net error code.
+  int GetSendBufferSize(int32_t* size);
+
+  // Gets corresponding flag which indicates whether the socket allows
+  // to share the local address with other processes.
+  // Returns a net error code.
+  int GetAllowAddressReuse(bool* flag);
+
+  // Gets corresponding flag which indicates whether the socket allows or
+  // disallows sending and receiving packets to and from broadcast addresses.
+  // Returns a net error code.
+  int GetBroadcast(bool* broadcast);
+
+  // Gets the time-to-live option for UDP packets sent to the multicast
+  // group address. The default value of this option is 1.
+  // Cannot be negative or more than 255.
+  // Returns a net error code.
+  int GetMulticastTimeToLive(int* time_to_live);
+
+  // Gets the loopback flag for UDP socket. If this flag is true, the host
+  // will receive packets sent to the joined group from itself.
+  // The default value of this option is true.
+  // Returns a net error code.
+  int GetMulticastLoopbackMode(bool* loopback);
+#endif
 
  private:
   enum SocketOptions {
index b72ba25..df561f3 100644 (file)
@@ -93,7 +93,8 @@ TYPED_TEST_P(ClientCertStoreTest, AllIssuersAllowed) {
 
 // Verify that certificates are correctly filtered against CertRequestInfo with
 // |cert_authorities| containing only |authority_1_DN|.
-TYPED_TEST_P(ClientCertStoreTest, CertAuthorityFiltering) {
+// Flaky: https://crbug.com/716730
+TYPED_TEST_P(ClientCertStoreTest, DISABLED_CertAuthorityFiltering) {
   scoped_refptr<X509Certificate> cert_1(
       ImportCertFromFile(GetTestCertsDirectory(), "client_1.pem"));
   ASSERT_TRUE(cert_1.get());
@@ -129,7 +130,7 @@ TYPED_TEST_P(ClientCertStoreTest, CertAuthorityFiltering) {
 REGISTER_TYPED_TEST_CASE_P(ClientCertStoreTest,
                            EmptyQuery,
                            AllIssuersAllowed,
-                           CertAuthorityFiltering);
+                           DISABLED_CertAuthorityFiltering);
 
 }  // namespace net
 
index 8f272bf..4a3718c 100644 (file)
@@ -3,7 +3,7 @@
  * found in the LICENSE file.
  */
 
-/* From ppb_file_io.idl modified Tue Oct 22 15:09:47 2013. */
+/* From ppb_file_io.idl modified Wed Mar 15 15:15:36 2017. */
 
 #ifndef PPAPI_C_PPB_FILE_IO_H_
 #define PPAPI_C_PPB_FILE_IO_H_
@@ -179,7 +179,7 @@ struct PPB_FileIO_1_1 {
    * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
    * FileIO.
    * @param[in] offset The offset into the file.
-   * @param[in] buffer The buffer to hold the specified number of bytes read.
+   * @param[out] buffer The buffer to hold the specified number of bytes read.
    * @param[in] bytes_to_read The number of bytes to read from
    * <code>offset</code>.
    * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
@@ -205,7 +205,8 @@ struct PPB_FileIO_1_1 {
    * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
    * FileIO.
    * @param[in] offset The offset into the file.
-   * @param[in] buffer The buffer to hold the specified number of bytes read.
+   * @param[in] buffer The buffer to hold the specified number of bytes to
+   * write.
    * @param[in] bytes_to_write The number of bytes to write to
    * <code>offset</code>.
    * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
index 46d3d9a..b8532cd 100644 (file)
@@ -3,7 +3,7 @@
  * found in the LICENSE file.
  */
 
-/* From ppb_udp_socket.idl modified Tue Mar 17 11:47:56 2015. */
+/* From ppb_udp_socket.idl modified Fri Jul 28 15:50:13 2017. */
 
 #ifndef PPAPI_C_PPB_UDP_SOCKET_H_
 #define PPAPI_C_PPB_UDP_SOCKET_H_
@@ -90,7 +90,29 @@ typedef enum {
    *
    * This is only supported in version 1.2 of the API (Chrome 43) and later.
    */
-  PP_UDPSOCKET_OPTION_MULTICAST_TTL = 5
+  PP_UDPSOCKET_OPTION_MULTICAST_TTL = 5,
+  /**
+   * Set or read a boolean argument that determines whether sent multicast
+   * packets should be looped back to the local sockets. Value's type should be
+   * <code>PP_VARTYPE_BOOL</code>.
+   *
+   * Set/Get value using <code>PP_SocketOptionValue</code>.
+   * 0 - loopback inactive, 1 - loopback active
+   *
+   * Deprecated since version 1.1 of the API (Samsung Pepper 47)
+   */
+  PP_UDPSOCKET_EXT_OPTION_MULTICAST_LOOP = 100,
+  /**
+   * 'Time To Live' for multicast packets. If not otherwise specified, multicast
+   * datagrams are sent with a default value of 1, to prevent them to be
+   * forwarded beyond the local network. Value should be
+   * <code>PP_VARTYPE_INT32</code> type, from 0 to 255.
+   *
+   * Set/Get value using <code>PP_SocketOptionValue</code>. Range: 0-255
+   *
+   * Deprecated since version 1.1 of the API (Samsung Pepper 47)
+   */
+  PP_UDPSOCKET_EXT_OPTION_MULTICAST_TTL = 101
 } PP_UDPSocket_Option;
 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_UDPSocket_Option, 4);
 /**
index 929ccaf..8704eee 100644 (file)
@@ -2,7 +2,7 @@
  */
 
 /* From samsung/pp_media_player_samsung.idl,
- *   modified Tue May 16 11:55:14 2017.
+ *   modified Tue Aug  1 16:26:08 2017.
  */
 
 #ifndef PPAPI_C_SAMSUNG_PP_MEDIA_PLAYER_SAMSUNG_H_
@@ -84,7 +84,9 @@ typedef enum {
   PP_MEDIAPLAYERERROR_RESOURCE = 9,
   /** Unknown error has occurred */
   PP_MEDIAPLAYERERROR_UNKNOWN = 10,
-  PP_MEDIAPLAYERERROR_LAST = PP_MEDIAPLAYERERROR_UNKNOWN
+  /** Subtitles file format is not supported. */
+  PP_MEDIAPLAYERERROR_UNSUPPORTED_SUBTITLE_FORMAT = 11,
+  PP_MEDIAPLAYERERROR_LAST = PP_MEDIAPLAYERERROR_UNSUPPORTED_SUBTITLE_FORMAT
 } PP_MediaPlayerError;
 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_MediaPlayerError, 4);
 /**
@@ -348,6 +350,48 @@ typedef enum {
   PP_BINDTOINSTANCEMODE_LAST = PP_BINDTOINSTANCEMODE_DONT_BIND
 } PP_BindToInstanceMode;
 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_BindToInstanceMode, 4);
+
+/**
+ * An enum that controls Media Player display mode. For details, please see
+ * descriptions of particular enum values. A default value is <code>
+ * PP_MEDIAPLAYERDISPLAYMODE_STRETCH</code>.
+ */
+typedef enum {
+  /**
+   * When this mode is set a video will be stretched to match either:
+   * - entire player area (which takes up entire plugin area by default),
+   * - or an area explicitly set as display rect with <code>
+   * PPB_MediaPlayer_Samsung::SetDisplayRect(...)</code>.
+   */
+  PP_MEDIAPLAYERDISPLAYMODE_STRETCH = 0,
+  /**
+   * When this mode is set a video will be scaled to fit a player area but will
+   * also maintain it's aspect ratio. If player area aspect ratio doesn't match
+   * video's aspect ratio, then resulting video will be letterboxed (or
+   * pillarboxed).
+   */
+  PP_MEDIAPLAYERDISPLAYMODE_LETTERBOX = 1,
+  PP_MEDIAPLAYERDISPLAYMODE_LAST = PP_MEDIAPLAYERDISPLAYMODE_LETTERBOX
+} PP_MediaPlayerDisplayMode;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_MediaPlayerDisplayMode, 4);
+
+/**
+ * An enum that controls Media Player Vr360 mode. For details, please see
+ * descriptions of particular enum values. A default value is <code>
+ * PP_MEDIAPLAYERVR360MODE_OFF</code>.
+ */
+typedef enum {
+  /**
+   * When this mode is set a video will be displayed normally.
+   */
+  PP_MEDIAPLAYERVR360MODE_OFF = 0,
+  /**
+   * When this mode is set a video will be displayed in Vr mode.
+   */
+  PP_MEDIAPLAYERVR360MODE_ON = 1,
+  PP_MEDIAPLAYERVR360MODE_LAST = PP_MEDIAPLAYERVR360MODE_ON
+} PP_MediaPlayerVr360Mode;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_MediaPlayerVr360Mode, 4);
 /**
  * @}
  */
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/ppb_audio_config_samsung.h b/vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/ppb_audio_config_samsung.h
new file mode 100644 (file)
index 0000000..73542a2
--- /dev/null
@@ -0,0 +1,77 @@
+/* Copyright (c) 2017 Samsung Electronics. All rights reserved.
+ */
+
+/* From samsung/ppb_audio_config_samsung.idl,
+ *   modified Mon Oct 23 16:05:56 2017.
+ */
+
+#ifndef PPAPI_C_SAMSUNG_PPB_AUDIO_CONFIG_SAMSUNG_H_
+#define PPAPI_C_SAMSUNG_PPB_AUDIO_CONFIG_SAMSUNG_H_
+
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE_1_0 "PPB_AudioConfig_Samsung;1.0"
+#define PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE \
+    PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE_1_0
+
+/**
+ * @file
+ * This file defines the PPB_AudioConfig_Samsung interface for choosing
+ * audio modes for <code>PPB_AudioConfig</code> resource.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * PP_AudioMode is an enumeration of the different audio modes.
+ */
+typedef enum {
+  /*
+   * Platform will try to detect the most suitable mode for a plugin.
+   */
+  PP_AUDIOMODE_AUTO = 0,
+  PP_AUDIOMODE_GAME = 1,
+  PP_AUDIOMODE_MUSIC = 2,
+  PP_AUDIOMODE_LAST = PP_AUDIOMODE_MUSIC
+} PP_AudioMode;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioMode, 4);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * Extension for <code>PPB_AudioConfig</code> interface, which allows choosing
+ * audio mode.
+ */
+struct PPB_AudioConfig_Samsung_1_0 {
+  /**
+   * Sets specified audio mode. This method needs to be called before
+   * creating <code>PPB_Audio</code> resource.
+   *
+   * @param[in] resource A <code>PP_Resource</code> corresponding to a
+   * <code>PP_AudioConfig</code> resource.
+   *
+   * @param[in] audio_mode A <code>PP_AudioMode</code> which
+   * will be used for <code>PP_Audio</code> resource.
+   *
+   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+   */
+  int32_t (*SetAudioMode)(PP_Resource resource, PP_AudioMode audio_mode);
+};
+
+typedef struct PPB_AudioConfig_Samsung_1_0 PPB_AudioConfig_Samsung;
+/**
+ * @}
+ */
+
+#endif  /* PPAPI_C_SAMSUNG_PPB_AUDIO_CONFIG_SAMSUNG_H_ */
+
index 5d7d1f8..c3f718b 100644 (file)
@@ -2,7 +2,7 @@
  */
 
 /* From samsung/ppb_media_player_samsung.idl,
- *   modified Wed Apr  5 12:17:30 2017.
+ *   modified Thu Aug 17 11:51:57 2017.
  */
 
 #ifndef PPAPI_C_SAMSUNG_PPB_MEDIA_PLAYER_SAMSUNG_H_
@@ -26,7 +26,9 @@
 #define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_0 "PPB_MediaPlayer_Samsung;1.0"
 #define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_1 "PPB_MediaPlayer_Samsung;1.1"
 #define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_2 "PPB_MediaPlayer_Samsung;1.2"
-#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_2
+#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_3 "PPB_MediaPlayer_Samsung;1.3"
+#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_4 "PPB_MediaPlayer_Samsung;1.4"
+#define PPB_MEDIAPLAYER_SAMSUNG_INTERFACE PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_4
 
 /**
  * @file
@@ -62,7 +64,7 @@
  *   set proper CSS style for embed element with NaCl application
  *   (mostly transparent background).
  */
-struct PPB_MediaPlayer_Samsung_1_2 {
+struct PPB_MediaPlayer_Samsung_1_4 {
   /**
    * Creates a new media player resource with <code>PP_MEDIAPLAYERMODE_DEFAULT
    * </code> player mode and binds it to the instance.
@@ -598,6 +600,22 @@ struct PPB_MediaPlayer_Samsung_1_2 {
                             const struct PP_Rect* rect,
                             struct PP_CompletionCallback callback);
   /**
+   * Sets a display mode which will be used by player. If no display mode is
+   * set, <code>PP_MEDIAPLAYERDISPLAYMODE_STRETCH</code> is used.
+   *
+   * @param[in] player A <code>PP_Resource</code> identifying the media player.
+   * @param[in] display_mode A display mode to be used. See <code>
+   * PP_MediaPlayerDisplayMode</code> enum for possible options.
+   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+   * completion.
+   *
+   * @return PP_OK on success, otherwise an error code from
+   * <code>pp_errors.h</code>.
+   */
+  int32_t (*SetDisplayMode)(PP_Resource player,
+                            PP_MediaPlayerDisplayMode display_mode,
+                            struct PP_CompletionCallback callback);
+  /**
    * Calls DRM system specific operation.
    *
    * @param[in] player A <code>PP_Resource</code> identifying the media player.
@@ -619,9 +637,58 @@ struct PPB_MediaPlayer_Samsung_1_2 {
                                 uint32_t drm_data_size,
                                 const void* drm_data,
                                 struct PP_CompletionCallback callback);
+  /*
+    * Set Vr360 mode.
+    * This function should be called in player idle state.
+    *
+    * @param[in] player A <code>PP_Resource</code> identifying the media player.
+    * @param[in] vr360_mode <code>PP_MediaPlayerVr360Mode</code>
+    * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+    * completion.
+    *
+    * @return PP_OK on success, otherwise an error code from
+    * <code>pp_errors.h</code>. Meaning of errors:
+    * - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+    * - <code>PP_ERROR_FAILED</code> - if player was in invalid state.
+    */
+  int32_t (*SetVr360Mode)(PP_Resource player,
+                          PP_MediaPlayerVr360Mode vr360_mode,
+                          struct PP_CompletionCallback callback);
+  /*
+   * Set Vr360 rotation.
+   *
+   * @param[in] player A <code>PP_Resource</code> identifying the media player.
+   * @param[in] horizontal_angle - horizontal angle of rotation.
+   * @param[in] vertical_angle - vertical angle of rotation.
+   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+   * completion.
+   *
+   * @return PP_OK on success, otherwise an error code from
+   * <code>pp_errors.h</code>. Meaning of errors:
+   * - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+   */
+  int32_t (*SetVr360Rotation)(PP_Resource player,
+                              float horizontal_angle,
+                              float vertical_angle,
+                              struct PP_CompletionCallback callback);
+  /*
+   * Set Vr360 zoom.
+   *
+   * @param[in] player A <code>PP_Resource</code> identifying the media player.
+   * @param[in] zoom - zoom level.
+   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+   * completion.
+   *
+   * @return PP_OK on success, otherwise an error code from
+   * <code>pp_errors.h</code>. Meaning of errors:
+   * - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+   */
+  int32_t (*SetVr360ZoomLevel)(PP_Resource player,
+                               uint32_t zoom_level,
+                               struct PP_CompletionCallback callback);
 };
 
-typedef struct PPB_MediaPlayer_Samsung_1_2 PPB_MediaPlayer_Samsung;
+typedef struct PPB_MediaPlayer_Samsung_1_4 PPB_MediaPlayer_Samsung;
 
 struct PPB_MediaPlayer_Samsung_1_0 {
   PP_Resource (*Create)(PP_Instance instance);
@@ -783,6 +850,175 @@ struct PPB_MediaPlayer_Samsung_1_1 {
                                 const void* drm_data,
                                 struct PP_CompletionCallback callback);
 };
+
+struct PPB_MediaPlayer_Samsung_1_2 {
+  PP_Resource (*Create)(PP_Instance instance);
+  PP_Resource (*CreateWithOptions)(PP_Instance instance,
+                                   PP_MediaPlayerMode player_mode,
+                                   PP_BindToInstanceMode bind_mode);
+  PP_Bool (*IsMediaPlayer)(PP_Resource controller);
+  PP_Bool (*SetMediaEventsListener)(
+      PP_Resource player,
+      const struct PPP_MediaEventsListener_Samsung_1_0* listener,
+      void* user_data);
+  PP_Bool (*SetSubtitleListener)(
+      PP_Resource player,
+      const struct PPP_SubtitleListener_Samsung_1_0* listener,
+      void* user_data);
+  PP_Bool (*SetBufferingListener)(
+      PP_Resource data_source,
+      const struct PPP_BufferingListener_Samsung_1_0* listener,
+      void* user_data);
+  PP_Bool (*SetDRMListener)(PP_Resource data_source,
+                            const struct PPP_DRMListener_Samsung_1_0* listener,
+                            void* user_data);
+  int32_t (*AttachDataSource)(PP_Resource player,
+                              PP_Resource data_source,
+                              struct PP_CompletionCallback callback);
+  int32_t (*Play)(PP_Resource player, struct PP_CompletionCallback callback);
+  int32_t (*Pause)(PP_Resource player, struct PP_CompletionCallback callback);
+  int32_t (*Stop)(PP_Resource player, struct PP_CompletionCallback callback);
+  int32_t (*Seek)(PP_Resource player,
+                  PP_TimeTicks time,
+                  struct PP_CompletionCallback callback);
+  int32_t (*SetPlaybackRate)(PP_Resource player,
+                             double rate,
+                             struct PP_CompletionCallback callback);
+  int32_t (*GetDuration)(PP_Resource player,
+                         PP_TimeDelta* duration,
+                         struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentTime)(PP_Resource player,
+                            PP_TimeTicks* time,
+                            struct PP_CompletionCallback callback);
+  int32_t (*GetPlayerState)(PP_Resource player,
+                            PP_MediaPlayerState* state,
+                            struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentVideoTrackInfo)(PP_Resource player,
+                                      struct PP_VideoTrackInfo* track_info,
+                                      struct PP_CompletionCallback callback);
+  int32_t (*GetVideoTracksList)(PP_Resource player,
+                                struct PP_ArrayOutput output,
+                                struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentAudioTrackInfo)(PP_Resource player,
+                                      struct PP_AudioTrackInfo* track_info,
+                                      struct PP_CompletionCallback callback);
+  int32_t (*GetAudioTracksList)(PP_Resource player,
+                                struct PP_ArrayOutput output,
+                                struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentTextTrackInfo)(PP_Resource player,
+                                     struct PP_TextTrackInfo* track_info,
+                                     struct PP_CompletionCallback callback);
+  int32_t (*GetTextTracksList)(PP_Resource player,
+                               struct PP_ArrayOutput output,
+                               struct PP_CompletionCallback callback);
+  int32_t (*SelectTrack)(PP_Resource player,
+                         PP_ElementaryStream_Type_Samsung track_type,
+                         uint32_t track_index,
+                         struct PP_CompletionCallback callback);
+  int32_t (*AddExternalSubtitles)(PP_Resource player,
+                                  const char* file_path,
+                                  const char* encoding,
+                                  struct PP_TextTrackInfo* subtitles,
+                                  struct PP_CompletionCallback callback);
+  int32_t (*SetSubtitlesDelay)(PP_Resource player,
+                               PP_TimeDelta delay,
+                               struct PP_CompletionCallback callback);
+  int32_t (*SetDisplayRect)(PP_Resource player,
+                            const struct PP_Rect* rect,
+                            struct PP_CompletionCallback callback);
+  int32_t (*SetDRMSpecificData)(PP_Resource player,
+                                PP_MediaPlayerDRMType drm_type,
+                                PP_MediaPlayerDRMOperation drm_operation,
+                                uint32_t drm_data_size,
+                                const void* drm_data,
+                                struct PP_CompletionCallback callback);
+};
+
+struct PPB_MediaPlayer_Samsung_1_3 {
+  PP_Resource (*Create)(PP_Instance instance);
+  PP_Resource (*CreateWithOptions)(PP_Instance instance,
+                                   PP_MediaPlayerMode player_mode,
+                                   PP_BindToInstanceMode bind_mode);
+  PP_Bool (*IsMediaPlayer)(PP_Resource controller);
+  PP_Bool (*SetMediaEventsListener)(
+      PP_Resource player,
+      const struct PPP_MediaEventsListener_Samsung_1_0* listener,
+      void* user_data);
+  PP_Bool (*SetSubtitleListener)(
+      PP_Resource player,
+      const struct PPP_SubtitleListener_Samsung_1_0* listener,
+      void* user_data);
+  PP_Bool (*SetBufferingListener)(
+      PP_Resource player,
+      const struct PPP_BufferingListener_Samsung_1_0* listener,
+      void* user_data);
+  PP_Bool (*SetDRMListener)(PP_Resource player,
+                            const struct PPP_DRMListener_Samsung_1_0* listener,
+                            void* user_data);
+  int32_t (*AttachDataSource)(PP_Resource player,
+                              PP_Resource data_source,
+                              struct PP_CompletionCallback callback);
+  int32_t (*Play)(PP_Resource player, struct PP_CompletionCallback callback);
+  int32_t (*Pause)(PP_Resource player, struct PP_CompletionCallback callback);
+  int32_t (*Stop)(PP_Resource player, struct PP_CompletionCallback callback);
+  int32_t (*Seek)(PP_Resource player,
+                  PP_TimeTicks time,
+                  struct PP_CompletionCallback callback);
+  int32_t (*SetPlaybackRate)(PP_Resource player,
+                             double rate,
+                             struct PP_CompletionCallback callback);
+  int32_t (*GetDuration)(PP_Resource player,
+                         PP_TimeDelta* duration,
+                         struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentTime)(PP_Resource player,
+                            PP_TimeTicks* time,
+                            struct PP_CompletionCallback callback);
+  int32_t (*GetPlayerState)(PP_Resource player,
+                            PP_MediaPlayerState* state,
+                            struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentVideoTrackInfo)(PP_Resource player,
+                                      struct PP_VideoTrackInfo* track_info,
+                                      struct PP_CompletionCallback callback);
+  int32_t (*GetVideoTracksList)(PP_Resource player,
+                                struct PP_ArrayOutput output,
+                                struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentAudioTrackInfo)(PP_Resource player,
+                                      struct PP_AudioTrackInfo* track_info,
+                                      struct PP_CompletionCallback callback);
+  int32_t (*GetAudioTracksList)(PP_Resource player,
+                                struct PP_ArrayOutput output,
+                                struct PP_CompletionCallback callback);
+  int32_t (*GetCurrentTextTrackInfo)(PP_Resource player,
+                                     struct PP_TextTrackInfo* track_info,
+                                     struct PP_CompletionCallback callback);
+  int32_t (*GetTextTracksList)(PP_Resource player,
+                               struct PP_ArrayOutput output,
+                               struct PP_CompletionCallback callback);
+  int32_t (*SelectTrack)(PP_Resource player,
+                         PP_ElementaryStream_Type_Samsung track_type,
+                         uint32_t track_index,
+                         struct PP_CompletionCallback callback);
+  int32_t (*AddExternalSubtitles)(PP_Resource player,
+                                  const char* file_path,
+                                  const char* encoding,
+                                  struct PP_TextTrackInfo* subtitles,
+                                  struct PP_CompletionCallback callback);
+  int32_t (*SetSubtitlesDelay)(PP_Resource player,
+                               PP_TimeDelta delay,
+                               struct PP_CompletionCallback callback);
+  int32_t (*SetDisplayRect)(PP_Resource player,
+                            const struct PP_Rect* rect,
+                            struct PP_CompletionCallback callback);
+  int32_t (*SetDisplayMode)(PP_Resource player,
+                            PP_MediaPlayerDisplayMode display_mode,
+                            struct PP_CompletionCallback callback);
+  int32_t (*SetDRMSpecificData)(PP_Resource player,
+                                PP_MediaPlayerDRMType drm_type,
+                                PP_MediaPlayerDRMOperation drm_operation,
+                                uint32_t drm_data_size,
+                                const void* drm_data,
+                                struct PP_CompletionCallback callback);
+};
 /**
  * @}
  */
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/ppb_udp_socket_extension_samsung.h b/vendor/brightray/vendor/libchromiumcontent/src/ppapi/c/samsung/ppb_udp_socket_extension_samsung.h
new file mode 100644 (file)
index 0000000..a4d78cd
--- /dev/null
@@ -0,0 +1,143 @@
+/* Copyright (c) 2015 Samsung Electronics. All rights reserved.
+ */
+
+/* From samsung/ppb_udp_socket_extension_samsung.idl,
+ *   modified Fri Jul 28 16:25:06 2017.
+ */
+
+#ifndef PPAPI_C_SAMSUNG_PPB_UDP_SOCKET_EXTENSION_SAMSUNG_H_
+#define PPAPI_C_SAMSUNG_PPB_UDP_SOCKET_EXTENSION_SAMSUNG_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_var.h"
+#include "ppapi/c/ppb_udp_socket.h"
+
+#define PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE_0_1 \
+    "PPB_UDPSocketExtension_Samsung;0.1"
+#define PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE \
+    PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE_0_1
+
+/**
+ * @file
+ * This file defines the <code>PPB_UDPSocketExtension_Samsung</code> interface.
+ */
+
+
+/**
+ * @addtogroup Structs
+ * @{
+ */
+/**
+ * Multicast membership addresses.
+ */
+struct PP_MulticastMembership {
+  /**
+   * A <code>PPB_NetAddress</code> resource holding the IP multicast group
+   * address.
+   */
+  PP_Resource multicast_addr;
+  /**
+   * A <code>PPB_NetAddress</code> resource holding the IP address of local
+   * interface.
+   */
+  PP_Resource interface_addr;
+  /**
+   * (Optional) A <code>PPB_NetAddress</code> resource holding the IP address of
+   * multicast source.
+   * Specify to join/leave only given source on multicast address.
+   */
+  PP_Resource source_addr;
+};
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * The <code>PPB_UDPSocketExtension_Samsung</code> interface provides
+ * additional sockets functionality for PPB_UDPSocket. To use this
+ * interface, one have to create standard UDPSocket object.
+ *
+ * Permissions: This interface does not require additional permissions
+ * in relation to standard sockets.
+ *
+ * This API is deprecated since Samsung Pepper 47.
+ * Please use PPB_UDPSocket API instead.
+ */
+struct PPB_UDPSocketExtension_Samsung_0_1 {
+  /**
+   * Get a socket option on the associated socket.
+   * Please see the <code>PP_UDPSocket_Option</code> description for option
+   * names, value types and allowed values.
+   * Socket need to be already bound and method will fail with
+   * <code>PP_ERROR_FAILED</code> if it's not.
+   *
+   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+   * socket.
+   * @param[in] name The option to get.
+   * @param[out] Value of requested option.
+   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+   * completion.
+   *
+   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+   */
+  int32_t (*GetOption)(PP_Resource udp_socket,
+                       PP_UDPSocket_Option name,
+                       struct PP_Var* value,
+                       struct PP_CompletionCallback callback);
+  /**
+   * Join a multicast group. Use optional <code>source_addr</code> to allow
+   * receiving data only from a specified source. This option can be used
+   * multiple times to allow receiving data from more than one source.
+   * Socket need to be already bound and method will fail with
+   * <code>PP_ERROR_FAILED</code> if it's not.
+   *
+   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+   * socket.
+   * @param[in] membership A <code>PP_MulticastMembership</code> multicast
+   * group and optional source IP.
+   * @param[in] callback  A <code>PP_CompletionCallback</code> to be called upon
+   * completion.
+   *
+   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+   */
+  int32_t (*JoinMulticast)(PP_Resource udp_socket,
+                           const struct PP_MulticastMembership* membership,
+                           struct PP_CompletionCallback callback);
+  /**
+   * Leave a multicast group. Use optional member <code>source_addr</code>
+   * to stop receiving data from multicast group that come from a given source.
+   * If the application has subscribed to multiple sources within the same
+   * group, data from the remaining sources will still be delivered.
+   * Socket need to be already bound and method will fail with
+   * <code>PP_ERROR_FAILED</code> if it's not.
+   *
+   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+   * socket.
+   * @param[in] membership A <code>PP_MulticastMembership</code> multicast
+   * group and optional source IP.
+   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+   * completion.
+   *
+   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+   */
+  int32_t (*LeaveMulticast)(PP_Resource udp_socket,
+                            const struct PP_MulticastMembership* membership,
+                            struct PP_CompletionCallback callback);
+};
+
+typedef struct PPB_UDPSocketExtension_Samsung_0_1
+    PPB_UDPSocketExtension_Samsung;
+/**
+ * @}
+ */
+
+#endif  /* PPAPI_C_SAMSUNG_PPB_UDP_SOCKET_EXTENSION_SAMSUNG_H_ */
+
index 3f3faaa..9750e01 100644 (file)
@@ -138,7 +138,7 @@ class FileIO : public Resource {
   /// managed by the callback.
   ///
   /// @param[in] offset The offset into the file.
-  /// @param[in] buffer The buffer to hold the specified number of bytes read.
+  /// @param[out] buffer The buffer to hold the specified number of bytes read.
   /// @param[in] bytes_to_read The number of bytes to read from
   /// <code>offset</code>.
   /// @param[in] cc A <code>CompletionCallback</code> to be called upon
@@ -181,7 +181,8 @@ class FileIO : public Resource {
   /// partial write. The FileIO object must have been opened with write access.
   ///
   /// @param[in] offset The offset into the file.
-  /// @param[in] buffer The buffer to hold the specified number of bytes read.
+  /// @param[in] buffer The buffer to hold the specified number of bytes to
+  /// write.
   /// @param[in] bytes_to_write The number of bytes to write to
   /// <code>offset</code>.
   /// @param[in] cc A <code>CompletionCallback</code> to be called upon
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/samsung/audio_config_samsung.h b/vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/samsung/audio_config_samsung.h
new file mode 100644 (file)
index 0000000..41e5b85
--- /dev/null
@@ -0,0 +1,54 @@
+// Copyright (c) 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_SAMSUNG_AUDIO_CONFIG_SAMSUNG_H_
+#define PPAPI_CPP_SAMSUNG_AUDIO_CONFIG_SAMSUNG_H_
+
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#include "ppapi/cpp/audio_config.h"
+#include "ppapi/cpp/resource.h"
+
+/// @file
+/// This file defines the interface for extending an
+/// audio configuration resource within the browser.
+
+namespace pp {
+
+class InstanceHandle;
+
+class AudioConfigSamsung : public AudioConfig {
+ public:
+  /// An empty constructor for an <code>AudioConfigSamsung</code> resource.
+  AudioConfigSamsung();
+
+  /// A constructor that creates an audio config based on the given sample rate
+  /// and frame count.
+  ///
+  /// For details check AudioConfig class.
+  ///
+  /// @param[in] instance The instance associated with this resource.
+  ///
+  /// @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
+  /// <code>PP_AUDIOSAMPLERATE_44100</code> or
+  /// <code>PP_AUDIOSAMPLERATE_48000</code>.
+  ///
+  /// @param[in] sample_frame_count A uint32_t frame count returned from the
+  /// <code>RecommendSampleFrameCount</code> function.
+  AudioConfigSamsung(const InstanceHandle& instance,
+                     PP_AudioSampleRate sample_rate,
+                     uint32_t sample_frame_count);
+
+  /// Sets specified audio mode for the given audio config.
+  ///
+  /// @param[in] audio_mode Selected audio mode.
+  ///
+  /// @return An int32_t containing a result code from
+  /// <code>pp_errors.h</code>.
+  int32_t SetAudioMode(PP_AudioMode audio_mode);
+};
+
+}  // namespace pp
+
+#endif  // PPAPI_CPP_SAMSUNG_AUDIO_CONFIG_SAMSUNG_H_
index 6d6bbb8..452a064 100644 (file)
@@ -428,6 +428,20 @@ class MediaPlayer_Samsung : public Resource {
       const PP_Rect& rect,
       const CompletionCallback& callback);
 
+  /// Sets a display mode which will be used by player. If no display mode is
+  /// set, <code>PP_MEDIAPLAYERDISPLAYMODE_STRETCH</code> is used.
+  ///
+  /// @param[in] display_mode A display mode to be used. See <code>
+  /// PP_MediaPlayerDisplayMode</code> enum for possible options.
+  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
+  /// completion.
+  ///
+  /// @return PP_OK on success, otherwise an error code from
+  /// <code>pp_errors.h</code>.
+  int32_t SetDisplayMode(
+      PP_MediaPlayerDisplayMode display_mode,
+      const CompletionCallback& callback);
+
   /* DRM Related */
 
   /// Calls DRM system specific operation.
@@ -449,6 +463,56 @@ class MediaPlayer_Samsung : public Resource {
       uint32_t drm_data_size,
       const void* drm_data,
       const CompletionCallback& callback);
+
+  /* Vr360 Control */
+
+  /// Set Vr360 mode.
+  /// This function should be called in player
+  /// <code>PP_MEDIAPLAYERSTATE_UNINITIALIZED</code> - when data source was not
+  /// attached yet.
+  ///
+  /// @param[in] player A <code>PP_Resource</code> identifying the media player.
+  /// @param[in] vr360_mode <code>PP_MediaPlayerVr360Mode</code>
+  /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+  /// completion.
+  ///
+  /// @return PP_OK on success, otherwise an error code from
+  /// <code>pp_errors.h</code>. Meaning of errors:
+  /// - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+  /// - <code>PP_ERROR_FAILED</code> - if player was is invalid state.
+  int32_t SetVr360Mode(PP_MediaPlayerVr360Mode display_mode,
+                       const CompletionCallback& callback);
+
+  /// Set Vr360 rotation.
+  ///
+  /// @param[in] player A <code>PP_Resource</code> identifying the media player.
+  /// @param[in] horizontal_angle - horizontal angle of rotation in degree
+  /// (0.0f to 360.0f),
+  /// @param[in] vertical_angle - vertical angle of rotation in degree
+  /// (0.0f to 360.0f),
+  /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+  /// completion.
+  ///
+  /// @return PP_OK on success, otherwise an error code from
+  /// <code>pp_errors.h</code>. Meaning of errors:
+  /// - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+  int32_t SetVr360Rotation(float horizontal_angle,
+                           float vertical_angle,
+                           const CompletionCallback& callback);
+
+  /// Set Vr360 zoom.
+  ///
+  /// @param[in] player A <code>PP_Resource</code> identifying the media player.
+  /// @param[in] zoom - zoom level (0 to 100) 0 means max zoom-out,
+  /// 100 means max zoom-in.
+  /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+  /// completion.
+  ///
+  /// @return PP_OK on success, otherwise an error code from
+  /// <code>pp_errors.h</code>. Meaning of errors:
+  /// - <code>PP_ERROR_BADARGUMENT</code> - if parameter was wrong.
+  int32_t SetVr360ZoomLevel(uint32_t zoom_level,
+                            const CompletionCallback& callback);
 };
 
 }  // namespace pp
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/samsung/udp_socket_extension_samsung.h b/vendor/brightray/vendor/libchromiumcontent/src/ppapi/cpp/samsung/udp_socket_extension_samsung.h
new file mode 100644 (file)
index 0000000..7c50f49
--- /dev/null
@@ -0,0 +1,90 @@
+// Copyright (c) 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_SAMSUNG_SOCKET_EXTENSION_SAMSUNG_H_
+#define PPAPI_CPP_SAMSUNG_SOCKET_EXTENSION_SAMSUNG_H_
+
+#include "ppapi/c/samsung/ppb_udp_socket_extension_samsung.h"
+#include "ppapi/cpp/udp_socket.h"
+
+/// @file
+/// This file defines the API used to handle gesture input events.
+/// This file defines the API providing additional sockets functionality
+/// for PPB_UDPSocket.
+/// To use this interface, one have to create standard UDPSocket object.
+///
+/// This API is deprecated since Samsung Pepper 47.
+/// Please use PPB_UDPSocket API instead.
+namespace pp {
+
+class UDPSocketExtensionSamsung : public UDPSocket {
+ public:
+  /// Constructs an is_null() gesture input event object.
+  UDPSocketExtensionSamsung();
+
+  /// This constructor constructs a extended socket object from the
+  /// provided generic UDP socket. If the given socket is itself
+  /// is_null() or is not a UDPSocket, the extended socket object will be
+  /// is_null().
+  ///
+  /// @param[in] socket A generic UDP socket instance.
+  explicit UDPSocketExtensionSamsung(const InstanceHandle& instance);
+
+  /// Get a socket option on the associated socket.
+  /// Please see the <code>PP_UDPSocket_Option</code> description for option
+  /// names, value types and allowed values.
+  /// Socket need to be already bound and method will fail with
+  /// <code>PP_ERROR_FAILED</code> if it's not.
+  ///
+  /// @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+  /// socket.
+  /// @param[in] name The option to get.
+  /// @param[out] Value of requested option.
+  /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+  /// completion.
+  ///
+  /// @return An int32_t containing an error code from <code>pp_errors.h</code>
+  int32_t GetOption(PP_UDPSocket_Option name,
+                    const CompletionCallbackWithOutput<Var>& callback);
+
+  /// Join a multicast group. Use optional <code>source_addr</code> to allow
+  /// receiving data only from a specified source. This option can be used
+  /// multiple times to allow receiving data from more than one source.
+  /// Socket need to be already bound and method will fail with
+  /// <code>PP_ERROR_FAILED</code> if it's not.
+  ///
+  /// @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+  /// socket.
+  /// @param[in] membership A <code>PP_MulticastMembership</code> multicast
+  /// group and optional source IP.
+  /// @param[in] callback  A <code>PP_CompletionCallback</code> to be called
+  /// upon completion.
+  ///
+  /// @return An int32_t containing an error code from <code>pp_errors.h</code>
+  int32_t JoinMulticast(const struct PP_MulticastMembership& membership,
+                        const CompletionCallback& callback);
+
+  /// Leave a multicast group. Use optional member <code>source_addr</code>
+  /// to stop receiving data from multicast group that come from a given source.
+  /// If the application has subscribed to multiple sources within the same
+  /// group, data from the remaining sources will still be delivered.
+  /// Socket need to be already bound and method will fail with
+  /// <code>PP_ERROR_FAILED</code> if it's not.
+  ///
+  /// @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
+  /// socket.
+  /// @param[in] membership A <code>PP_MulticastMembership</code> multicast
+  /// group and optional source IP.
+  /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+  /// completion.
+  ///
+  /// @return An int32_t containing an error code from <code>pp_errors.h</code>
+  int32_t LeaveMulticast(const struct PP_MulticastMembership& membership,
+                         const CompletionCallback& callback);
+};
+
+}  // namespace pp
+
+#endif  // PPAPI_CPP_SAMSUNG_SOCKET_EXTENSION_SAMSUNG_H_
+
index 809c0db..b618ab8 100644 (file)
@@ -9,6 +9,7 @@
 #include <stdint.h>
 
 #include <memory>
+#include <vector>
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
@@ -23,6 +24,7 @@
 
 namespace media {
 class AudioBus;
+struct AudioInputBuffer;
 }
 
 namespace ppapi {
@@ -73,12 +75,14 @@ class AudioInputResource : public PluginResource,
     CLOSED
   };
 
-  void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params);
+  void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params,
+                            uint32_t shared_memory_segment_count);
 
   // Sets the shared memory and socket handles. This will automatically start
   // capture if we're currently set to capture.
   void SetStreamInfo(base::SharedMemoryHandle shared_memory_handle,
                      size_t shared_memory_size,
+                     uint32_t shared_memory_segment_count,
                      base::SyncSocket::Handle socket_handle);
 
   // Starts execution of the audio input thread.
@@ -139,8 +143,10 @@ class AudioInputResource : public PluginResource,
   // latency.
   size_t bytes_per_second_;
 
-  // AudioBus for shuttling data across the shared memory.
-  std::unique_ptr<media::AudioBus> audio_bus_;
+  // AudioBuses circular buffer for shuttling data across the shared memory.
+  std::vector<std::unique_ptr<media::AudioBus>> audio_buses_;
+  uint32_t current_bus_id_;
+  std::vector<media::AudioInputBuffer*> audio_input_buffers_;
   int sample_frame_count_;
 
   // Internal buffer for client's integer audio data.
index be121d0..14b9c2b 100644 (file)
@@ -6,15 +6,16 @@
 #define PPAPI_PROXY_MEDIA_PLAYER_ELEMENTARY_STREAM_RESOURCE_H_
 
 #include <cstring>
-#include <functional>
 #include <memory>
 #include <unordered_set>
 #include <utility>
+#include <vector>
 
+#include "base/memory/ref_counted.h"
+#include "ppapi/c/samsung/pp_media_player_samsung.h"
 #include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/media_player/es_packet.h"
-#include "ppapi/thunk/ppb_media_data_source_api.h"
 #include "ppapi/shared_impl/thread_aware_callback.h"
+#include "ppapi/thunk/ppb_media_data_source_api.h"
 
 namespace ppapi {
 namespace proxy {
@@ -43,6 +44,7 @@ class ElementaryStreamListener {
 };
 
 // This base class holds the non-template methods and attributes.
+// SharedMemory comunication based on implementation in VideoDecoder
 class ElementaryStreamResourceBase : public PluginResource {
  public:
   virtual ~ElementaryStreamResourceBase();
@@ -72,6 +74,20 @@ class ElementaryStreamResourceBase : public PluginResource {
   ElementaryStreamResourceBase(Connection, PP_Instance);
 
  private:
+  // Struct to hold a shared memory buffer.
+  struct ShmBuffer {
+    ShmBuffer(std::unique_ptr<base::SharedMemory> shm,
+              uint32_t size,
+              uint32_t shm_id);
+    ~ShmBuffer();
+
+    const std::unique_ptr<base::SharedMemory> shm;
+    void* addr;
+    // Index into shm_buffers_ vector, used as an id. This should map 1:1 to
+    // the index on the host side of the proxy.
+    const uint32_t shm_id;
+  };
+
   struct callback_ptr_hash {
     std::size_t operator()(scoped_refptr<TrackedCallback> const& cp) const {
       return reinterpret_cast<std::size_t>(
@@ -79,8 +95,12 @@ class ElementaryStreamResourceBase : public PluginResource {
     }
   };
 
+  int32_t ReserveSHMBuffer(uint32_t size);
   void OnAppendReply(scoped_refptr<TrackedCallback>,
                      const ResourceMessageReplyParams&);
+  void OnAppendReplyWithSHM(scoped_refptr<TrackedCallback>,
+                            uint32_t shm_id,
+                            const ResourceMessageReplyParams&);
   void OnFlushReply(const ResourceMessageReplyParams&);
   void OnSetDRMInitDataReply(const ResourceMessageReplyParams&);
 
@@ -91,6 +111,12 @@ class ElementaryStreamResourceBase : public PluginResource {
 
   std::unique_ptr<ElementaryStreamListener> listener_;
 
+  std::vector<std::unique_ptr<ShmBuffer>> shm_buffers_;
+
+  // List of available shared memory buffers.
+  typedef std::vector<ShmBuffer*> ShmBufferList;
+  ShmBufferList available_shm_buffers_;
+
   DISALLOW_COPY_AND_ASSIGN(ElementaryStreamResourceBase);
 };
 
index 09fe6b0..ae0852e 100644 (file)
@@ -87,6 +87,17 @@ class MediaPlayerResource : public PluginResource,
 
   int32_t SetDisplayRect(const PP_Rect*,
                          scoped_refptr<TrackedCallback>) override;
+  int32_t SetDisplayMode(PP_MediaPlayerDisplayMode,
+                         scoped_refptr<TrackedCallback>) override;
+
+  int32_t SetVr360Mode(PP_MediaPlayerVr360Mode,
+                       scoped_refptr<TrackedCallback>) override;
+
+  int32_t SetVr360Rotation(float,
+                           float,
+                           scoped_refptr<TrackedCallback>) override;
+
+  int32_t SetVr360ZoomLevel(uint32_t, scoped_refptr<TrackedCallback>) override;
 
   int32_t SetDRMSpecificData(PP_MediaPlayerDRMType,
                              PP_MediaPlayerDRMOperation,
@@ -127,6 +138,10 @@ class MediaPlayerResource : public PluginResource,
   scoped_refptr<TrackedCallback> add_external_subtitles_callback_;
   scoped_refptr<TrackedCallback> set_subtitles_delay_callback_;
   scoped_refptr<TrackedCallback> set_display_rect_callback_;
+  scoped_refptr<TrackedCallback> set_display_mode_callback_;
+  scoped_refptr<TrackedCallback> set_vr360_mode_callback_;
+  scoped_refptr<TrackedCallback> set_vr360_rotation_callback_;
+  scoped_refptr<TrackedCallback> set_vr360_zoom_level_callback_;
   scoped_refptr<TrackedCallback> set_drm_specific_data_callback_;
 
   PP_Resource data_source_;
index 0006a04..4433934 100644 (file)
@@ -27,6 +27,7 @@
 #include "ipc/ipc_platform_file.h"
 #include "ppapi/c/dev/pp_video_capture_dev.h"
 #include "ppapi/c/dev/pp_video_dev.h"
+#include "ppapi/c/dev/ppb_audio_input_dev.h"
 #include "ppapi/c/dev/ppb_truetype_font_dev.h"
 #include "ppapi/c/dev/ppb_url_util_dev.h"
 #include "ppapi/c/dev/ppp_printing_dev.h"
@@ -86,6 +87,7 @@
 #include "ppapi/shared_impl/url_response_info_data.h"
 
 #if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
 #include "ppapi/c/samsung/ppb_remote_controller_samsung.h"
 #endif
 
@@ -93,7 +95,6 @@
 #include "ppapi/c/samsung/pp_media_common_samsung.h"
 #include "ppapi/c/samsung/pp_media_codecs_samsung.h"
 #include "ppapi/c/samsung/pp_media_player_samsung.h"
-#include "ppapi/shared_impl/media_player/serialized_es_packet.h"
 #include "ppapi/shared_impl/media_player/media_codecs_configs.h"
 #endif
 
 IPC_ENUM_TRAITS_MAX_VALUE(ppapi::TCPSocketVersion,
                           ppapi::TCP_SOCKET_VERSION_1_1_OR_ABOVE)
 IPC_ENUM_TRAITS(PP_AudioSampleRate)
+
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_AudioMode, PP_AUDIOMODE_LAST)
+#endif
+
 IPC_ENUM_TRAITS_MAX_VALUE(PP_BlendMode, PP_BLENDMODE_LAST)
 IPC_ENUM_TRAITS_MAX_VALUE(PP_CdmExceptionCode, PP_CDMEXCEPTIONCODE_OUTPUTERROR)
 IPC_ENUM_TRAITS_MAX_VALUE(PP_CdmKeyStatus, PP_CDMKEYSTATUS_STATUSPENDING)
@@ -555,31 +561,14 @@ IPC_ENUM_TRAITS_MIN_MAX_VALUE(PP_StreamInitializationMode,
 IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerError, PP_MEDIAPLAYERERROR_LAST)
 IPC_ENUM_TRAITS_MAX_VALUE(PP_StreamingProperty, PP_STREAMINGPROPERTY_LAST)
 IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerMode, PP_MEDIAPLAYERMODE_LAST)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerDisplayMode,
+                          PP_MEDIAPLAYERDISPLAYMODE_LAST)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerVr360Mode, PP_MEDIAPLAYERVR360MODE_LAST)
 IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerState, PP_MEDIAPLAYERSTATE_LAST)
 IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerDRMOperation,
                           PP_MEDIAPLAYERDRMOPERATION_LAST)
 IPC_ENUM_TRAITS_MAX_VALUE(PP_MediaPlayerDRMType, PP_MEDIAPLAYERDRMTYPE_LAST)
 
-IPC_STRUCT_TRAITS_BEGIN(ppapi::EncryptedESPacket::SubsampleDescription)
-IPC_STRUCT_TRAITS_MEMBER(clear_bytes)
-IPC_STRUCT_TRAITS_MEMBER(cipher_bytes)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::SerializedESPacket)
-IPC_STRUCT_TRAITS_MEMBER(pts)
-IPC_STRUCT_TRAITS_MEMBER(dts)
-IPC_STRUCT_TRAITS_MEMBER(duration)
-IPC_STRUCT_TRAITS_MEMBER(key_frame)
-IPC_STRUCT_TRAITS_MEMBER(data)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::SerializedEncryptedESPacket)
-IPC_STRUCT_TRAITS_MEMBER(serialized_es_packet)
-IPC_STRUCT_TRAITS_MEMBER(key_id)
-IPC_STRUCT_TRAITS_MEMBER(iv)
-IPC_STRUCT_TRAITS_MEMBER(subsamples)
-IPC_STRUCT_TRAITS_END()
-
 IPC_STRUCT_TRAITS_BEGIN(PP_TrustZoneReference)
 IPC_STRUCT_TRAITS_MEMBER(handle)
 IPC_STRUCT_TRAITS_MEMBER(size)
@@ -1160,11 +1149,20 @@ IPC_MESSAGE_CONTROL4(PpapiHostMsg_LogWithSource,
                      std::string /* value */)
 
 // PPB_Audio.
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+IPC_SYNC_MESSAGE_ROUTED4_1(PpapiHostMsg_PPBAudio_Create,
+                           PP_Instance /* instance_id */,
+                           PP_AudioMode /* audio_mode */,
+                           int32_t /* sample_rate */,
+                           uint32_t /* sample_frame_count */,
+                           ppapi::HostResource /* result */)
+#else
 IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBAudio_Create,
                            PP_Instance /* instance_id */,
                            int32_t /* sample_rate */,
                            uint32_t /* sample_frame_count */,
                            ppapi::HostResource /* result */)
+#endif
 IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBAudio_StartOrStop,
                     ppapi::HostResource /* audio_id */,
                     bool /* play */)
@@ -2035,9 +2033,9 @@ IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_SSLHandshakeReply,
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Read,
                      int32_t /* bytes_to_read */)
 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_ReadReply,
-                     std::string /* data */)
+                     ppapi::DataView /* data */)
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Write,
-                     std::string /* data */)
+                     ppapi::DataView /* data */)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_WriteReply)
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Listen,
                      int32_t /* backlog */)
@@ -2101,6 +2099,12 @@ IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_JoinGroupReply)
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_LeaveGroup,
                      PP_NetAddress_Private /* net_addr */)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_LeaveGroupReply)
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_GetOption,
+                     PP_UDPSocket_Option /* name */)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_GetOptionReply,
+                     ppapi::SocketOptionData /* value */)
+#endif
 
 // URLLoader ------------------------------------------------------------------
 
@@ -2424,8 +2428,8 @@ IPC_MESSAGE_CONTROL0(PpapiHostMsg_RemoteController_UnRegisterKeysReply)
 
 #endif  // defined(TIZEN_PEPPER_EXTENSIONS)
 
-#if !defined(OS_NACL) && !defined(NACL_WIN64)
-
+#if (!defined(OS_NACL) && !defined(NACL_WIN64)) || \
+defined(TIZEN_PEPPER_EXTENSIONS)
 // Audio input.
 IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Create)
 IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioInput_Open,
@@ -2434,10 +2438,26 @@ IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioInput_Open,
                      uint32_t /* sample_frame_count */)
 // Reply to an Open call. This supplies a socket handle and a shared memory
 // handle. Both handles are passed in the ReplyParams struct.
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_AudioInput_OpenReply)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_AudioInput_OpenReply,
+                     uint32_t /* shared_memory_segment_count */)
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_AudioInput_StartOrStop, bool /* capture */)
 IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Close)
 
+// DeviceEnumeration -----------------------------------------------------------
+// Device enumeration messages used by audio input and video capture.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply,
+                     std::vector<ppapi::DeviceRefData> /* devices */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange,
+                     uint32_t /* callback_id */)
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange)
+IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
+                     uint32_t /* callback_id */,
+                     std::vector<ppapi::DeviceRefData> /* devices */)
+#endif  // (!defined(OS_NACL) && !defined(NACL_WIN64)) ||
+        // defined(TIZEN_PEPPER_EXTENSIONS)
+
+#if !defined(OS_NACL) && !defined(NACL_WIN64)
 // BrowserFont -----------------------------------------------------------------
 
 IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_Create)
@@ -2510,18 +2530,6 @@ IPC_MESSAGE_CONTROL1(PpapiHostMsg_Flash_IsRectTopmost,
 // reply is sent.
 IPC_MESSAGE_CONTROL0(PpapiHostMsg_Flash_InvokePrinting)
 
-// DeviceEnumeration -----------------------------------------------------------
-// Device enumeration messages used by audio input and video capture.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply,
-                     std::vector<ppapi::DeviceRefData> /* devices */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange,
-                     uint32_t /* callback_id */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange)
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
-                     uint32_t /* callback_id */,
-                     std::vector<ppapi::DeviceRefData> /* devices */)
-
 // Flash clipboard.
 IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashClipboard_Create)
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashClipboard_RegisterCustomFormat,
@@ -2729,14 +2737,30 @@ IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnBufferReady,
 
 // PPBElementaryStream messages:
 IPC_MESSAGE_CONTROL0(PpapiHostMsg_ElementaryStream_Create)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_ElementaryStream_GetShm,
+                     uint32_t /* shm_id */,
+                     uint32_t /* shm_size */)
+// On success, a shm handle is passed in the ReplyParams struct.
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_ElementaryStream_GetShmReply,
+                     uint32_t /* shm_size */)
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_ElementaryStream_AppendPacket,
-                     ppapi::SerializedESPacket)
+                     PP_ESPacket /* packet */)
+IPC_MESSAGE_CONTROL3(PpapiHostMsg_ElementaryStream_AppendPacketSHM,
+                     PP_ESPacket /* packet */,
+                     uint32_t /* shm_id */,
+                     uint32_t /* size */)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_ElementaryStream_AppendPacketReply)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_ElementaryStream_AppendEncryptedPacket,
-                     ppapi::SerializedEncryptedESPacket)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_ElementaryStream_AppendEncryptedPacket,
+                     PP_ESPacket /* packet */,
+                     PP_ESPacketEncryptionInfo /* info */)
+IPC_MESSAGE_CONTROL4(PpapiHostMsg_ElementaryStream_AppendEncryptedPacketSHM,
+                     PP_ESPacket /* packet */,
+                     PP_ESPacketEncryptionInfo /* info */,
+                     uint32_t /* shm_id */,
+                     uint32_t /* size */)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_ElementaryStream_AppendEncryptedPacketReply)
 IPC_MESSAGE_CONTROL2(PpapiHostMsg_ElementaryStream_AppendTrustZonePacket,
-                     ppapi::SerializedESPacket /* packet */,
+                     PP_ESPacket /* packet */,
                      PP_TrustZoneReference /* handle */)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_ElementaryStream_AppendTrustZonePacketReply)
 IPC_MESSAGE_CONTROL0(PpapiHostMsg_ElementaryStream_Flush)
@@ -2812,6 +2836,15 @@ IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetSubtitlesDelay,
                      PP_TimeDelta /* delay */)
 IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetDisplayRect,
                      PP_Rect /* rect */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetDisplayMode,
+                     PP_MediaPlayerDisplayMode /* display_mode */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetVr360Mode,
+                     PP_MediaPlayerVr360Mode /* vr360_mode */)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_MediaPlayer_SetVr360Rotation,
+                     float, /* horizontal_angle */
+                     float /* vertical_angle */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaPlayer_SetVr360ZoomLevel,
+                     uint32_t /* zoom_level */)
 IPC_MESSAGE_CONTROL3(PpapiHostMsg_MediaPlayer_SetDRMSpecificData,
                      PP_MediaPlayerDRMType /* type */,
                      PP_MediaPlayerDRMOperation /* operation */,
@@ -2845,8 +2878,11 @@ IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetSubtitlesVisibleReply)
 IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaPlayer_AddExternalSubtitlesReply,
                      PP_TextTrackInfo /* track_info */)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetSubtitlesDelayReply)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDisplayModeReply)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDisplayRectReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDisplayModeReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetVr360ModeReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetVr360RotationReply)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetVr360ZoomLevelReply)
 IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaPlayer_SetDRMSpecificDataReply)
 
 // MediaPlayerMessageFilter renderer host <-> browser host --------------------
index 3dfcd1d..76d564b 100644 (file)
 #include "ppapi/shared_impl/file_ref_create_info.h"
 #include "ppapi/shared_impl/media_stream_video_track_shared.h"
 #include "ppapi/shared_impl/ppapi_permissions.h"
+#include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
 #include "ppapi/shared_impl/socket_option_data.h"
 
+#if defined(TIZEN_PEPPER_PLAYER)
+#include "ppapi/c/samsung/pp_media_player_samsung.h"
+#endif  // defined(TIZEN_PEPPER_PLAYER)
+
 struct PP_KeyInformation;
 struct PP_NetAddress_Private;
 
@@ -241,6 +246,16 @@ struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::CompositorLayerData::Transform> {
   static void Log(const param_type& p, std::string* l);
 };
 
+template <>
+struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::DataView> {
+  typedef ppapi::DataView param_type;
+  static void Write(base::Pickle* m, const param_type& p);
+  static bool Read(const base::Pickle* m,
+                   base::PickleIterator* iter,
+                   param_type* r);
+  static void Log(const param_type& p, std::string* l);
+};
+
 #if defined(TIZEN_PEPPER_PLAYER)
 namespace internal {
 struct PPAPI_PROXY_EXPORT CharSequenceParamTraits {
@@ -271,6 +286,26 @@ struct PPAPI_PROXY_EXPORT ParamTraits<char[N]> {
     internal::CharSequenceParamTraits::Log(p, N, l);
   }
 };
+
+template <>
+struct PPAPI_PROXY_EXPORT ParamTraits<PP_ESPacket> {
+  typedef PP_ESPacket param_type;
+  static void Write(base::Pickle* m, const param_type& p);
+  static bool Read(const base::Pickle* m,
+                   base::PickleIterator* iter,
+                   param_type* r);
+  static void Log(const param_type& p, std::string* l);
+};
+
+template <>
+struct PPAPI_PROXY_EXPORT ParamTraits<PP_ESPacketEncryptionInfo> {
+  typedef PP_ESPacketEncryptionInfo param_type;
+  static void Write(base::Pickle* m, const param_type& p);
+  static bool Read(const base::Pickle* m,
+                   base::PickleIterator* iter,
+                   param_type* r);
+  static void Log(const param_type& p, std::string* l);
+};
 #endif  // defined(TIZEN_PEPPER_PLAYER)
 
 #if defined(TIZEN_PEPPER_TEEC)
index a738104..0494789 100644 (file)
 #include "ppapi/proxy/proxy_completion_callback_factory.h"
 #include "ppapi/utility/completion_callback_factory.h"
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#endif
+
 namespace ppapi {
 
 class AudioCallbackCombined;
@@ -50,6 +54,9 @@ class PPB_Audio_Proxy : public InterfaceProxy {
  private:
   // Plugin->renderer message handlers.
   void OnMsgCreate(PP_Instance instance_id,
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+                   PP_AudioMode audio_mode,
+#endif
                    int32_t sample_rate,
                    uint32_t sample_frame_count,
                    ppapi::HostResource* result);
index 986bf61..1208046 100644 (file)
@@ -167,8 +167,10 @@ class ResourceCreationProxy : public InterfaceProxy,
   PP_Resource CreateVpnProvider(PP_Instance instance) override;
   PP_Resource CreateWebSocket(PP_Instance instance) override;
   PP_Resource CreateX509CertificatePrivate(PP_Instance instance) override;
-#if !defined(OS_NACL)
+#if !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
   PP_Resource CreateAudioInput(PP_Instance instance) override;
+#endif  // !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+#if !defined(OS_NACL)
   PP_Resource CreateBroker(PP_Instance instance) override;
   PP_Resource CreateBrowserFont(
       PP_Instance instance,
index eac370c..098f781 100644 (file)
@@ -64,10 +64,6 @@ class PPAPI_PROXY_EXPORT ResourceMessageParams {
                                IPC::PlatformFileForTransit* handle) const;
   bool TakeFileHandleAtIndex(size_t index,
                              IPC::PlatformFileForTransit* handle) const;
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-  bool TakeUDPSocketHandleAtIndex(size_t index,
-                                  IPC::PlatformFileForTransit* handle) const;
-#endif
   void TakeAllSharedMemoryHandles(
       std::vector<base::SharedMemoryHandle>* handles) const;
 
index 2454290..87576d3 100644 (file)
@@ -32,19 +32,11 @@ namespace proxy {
 // NaClIPCAdapter for use in NaCl.
 class PPAPI_PROXY_EXPORT SerializedHandle {
  public:
-  enum Type {
-    INVALID,
-    SHARED_MEMORY,
-    SOCKET,
-    FILE,
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-    UDP_SOCKET
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
-  };
+  enum Type { INVALID, SHARED_MEMORY, SOCKET, FILE };
   // Header contains the fields that we send in IPC messages, apart from the
   // actual handle. See comments on the SerializedHandle fields below.
   struct Header {
-    Header() : type(INVALID), size(0), open_flags(0) {}
+    Header() : type(INVALID), size(0), open_flags(0), file_io(0) {}
     Header(Type type_arg,
            uint32_t size_arg,
            int32_t open_flags_arg,
@@ -75,9 +67,6 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
   bool is_shmem() const { return type_ == SHARED_MEMORY; }
   bool is_socket() const { return type_ == SOCKET; }
   bool is_file() const { return type_ == FILE; }
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-  bool is_udp_socket() const { return type_ == UDP_SOCKET; }
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
   const base::SharedMemoryHandle& shmem() const {
     DCHECK(is_shmem());
     return shm_handle_;
@@ -87,11 +76,7 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
     return size_;
   }
   const IPC::PlatformFileForTransit& descriptor() const {
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-    DCHECK(is_socket() || is_file() || is_udp_socket());
-#else
     DCHECK(is_socket() || is_file());
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
     return descriptor_;
   }
   int32_t open_flags() const { return open_flags_; }
@@ -112,16 +97,6 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
     shm_handle_ = base::SharedMemory::NULLHandle();
     size_ = 0;
   }
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-  void set_udp_socket(const IPC::PlatformFileForTransit& socket) {
-    type_ = UDP_SOCKET;
-    descriptor_ = socket;
-
-    shm_handle_ = base::SharedMemory::NULLHandle();
-    size_ = 0;
-  }
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
-
   void set_file_handle(const IPC::PlatformFileForTransit& descriptor,
                        int32_t open_flags,
                        PP_Resource file_io) {
index c60ff33..0936e8c 100644 (file)
@@ -112,7 +112,7 @@ class PPAPI_PROXY_EXPORT TCPSocketResourceBase : public PluginResource {
       const ResourceMessageReplyParams& params,
       const PPB_X509Certificate_Fields& certificate_fields);
   void OnPluginMsgReadReply(const ResourceMessageReplyParams& params,
-                            const std::string& data);
+                            const ppapi::DataView& data);
   void OnPluginMsgWriteReply(const ResourceMessageReplyParams& params);
   void OnPluginMsgListenReply(const ResourceMessageReplyParams& params);
   void OnPluginMsgAcceptReply(const ResourceMessageReplyParams& params,
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/udp_socket_io.h b/vendor/brightray/vendor/libchromiumcontent/src/ppapi/proxy/udp_socket_io.h
deleted file mode 100644 (file)
index 90a34da..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2017 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_PROXY_UDP_SOCKET_IO_H_
-#define PPAPI_PROXY_UDP_SOCKET_IO_H_
-
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-#if defined(OS_NACL) && !defined(OS_NACL_NONSFI)
-#include "native_client/src/public/linux_syscalls/sys/socket.h"
-#else
-#include <sys/socket.h>
-#include <sys/types.h>
-#endif
-
-namespace ppapi {
-namespace proxy {
-
-class UDPSocketIO : public base::RefCountedThreadSafe<UDPSocketIO> {
- public:
-  explicit UDPSocketIO(int fd);
-  ~UDPSocketIO();
-
-  int32_t RecvFrom(char* buffer_out,
-                   int32_t num_bytes,
-                   PP_NetAddress_Private* net_addr);
-  int32_t SendTo(const char* buffer,
-                 int32_t num_bytes,
-                 const PP_NetAddress_Private& addr);
-  base::TaskRunner* reader_runner() const;
-  base::TaskRunner* sender_runner() const;
-
- private:
-  int fd_;
-  base::Thread reader_thread_;
-  base::Thread sender_thread_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_UDP_SOCKET_IO_H_
index e7ba86d..12956aa 100644 (file)
@@ -53,6 +53,11 @@ class PPAPI_PROXY_EXPORT UDPSocketResource : public UDPSocketResourceBase,
                     scoped_refptr<TrackedCallback> callback) override;
   int32_t LeaveGroup(PP_Resource group,
                      scoped_refptr<TrackedCallback> callback) override;
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  int32_t GetOption(PP_UDPSocket_Option name,
+                    PP_Var* value,
+                    scoped_refptr<TrackedCallback> callback) override;
+#endif
 
  private:
   DISALLOW_COPY_AND_ASSIGN(UDPSocketResource);
index 865be51..3e5bf1d 100644 (file)
 #include "ppapi/proxy/plugin_resource.h"
 #include "ppapi/proxy/ppapi_proxy_export.h"
 #include "ppapi/proxy/udp_socket_filter.h"
+#include "ppapi/shared_impl/socket_option_data.h"
 #include "ppapi/shared_impl/tracked_callback.h"
 
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-#include "ppapi/proxy/udp_socket_io.h"
-#endif
-
 namespace ppapi {
 namespace proxy {
 
@@ -85,6 +82,12 @@ class PPAPI_PROXY_EXPORT UDPSocketResourceBase : public PluginResource {
   int32_t LeaveGroupImpl(const PP_NetAddress_Private *group,
                          scoped_refptr<TrackedCallback> callback);
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  int32_t GetOptionImpl(PP_UDPSocket_Option name,
+                        PP_Var* value,
+                        scoped_refptr<TrackedCallback> callback);
+#endif
+
  private:
   // IPC message handlers.
   void OnPluginMsgGeneralReply(scoped_refptr<TrackedCallback> callback,
@@ -94,50 +97,15 @@ class PPAPI_PROXY_EXPORT UDPSocketResourceBase : public PluginResource {
   void OnPluginMsgSendToReply(const ResourceMessageReplyParams& params,
                               int32_t bytes_written);
 
-  static void SlotBecameAvailable(PP_Resource resource);
-  static void SlotBecameAvailableWithLock(PP_Resource resource);
-
 #if defined(TIZEN_PEPPER_EXTENSIONS)
-  class RecvFromWork : public base::RefCountedThreadSafe<RecvFromWork> {
-   public:
-    RecvFromWork(const scoped_refptr<UDPSocketIO>& reader,
-                 char* buff,
-                 int32_t bytes,
-                 PP_Resource* addr);
-
-    int32_t DoWork();
-
-    const PP_NetAddress_Private& net_addr() const { return net_addr_; }
-    PP_Resource* addr_out() const { return addr_out_; }
-
-   private:
-    scoped_refptr<UDPSocketIO> reader_;
-    char* buffer_out_;
-    int32_t num_bytes_;
-    PP_Resource* addr_out_;
-    PP_NetAddress_Private net_addr_;
-  };
-
-  class SendToWork : public base::RefCountedThreadSafe<SendToWork> {
-   public:
-    SendToWork(const scoped_refptr<UDPSocketIO>& sender,
-               const char* buff,
-               int32_t bytes,
-               const PP_NetAddress_Private& net_addr);
-
-    int32_t DoWork();
-
-   private:
-    scoped_refptr<UDPSocketIO> sender_;
-    const char* buffer_;
-    int32_t num_bytes_;
-    PP_NetAddress_Private net_addr_;
-  };
-
-  int32_t OnRecvFromComplete(scoped_refptr<RecvFromWork> work, int32_t result);
-  int32_t OnSendToComplete(int32_t result);
+  void OnPluginMsgGetOptionReply(PP_Var* return_value,
+                                 const ResourceMessageReplyParams& params,
+                                 const SocketOptionData& socket_option_data);
 #endif
 
+  static void SlotBecameAvailable(PP_Resource resource);
+  static void SlotBecameAvailableWithLock(PP_Resource resource);
+
   bool private_api_;
 
   // |bind_called_| is true after Bind() is called, while |bound_| is true
@@ -151,8 +119,7 @@ class PPAPI_PROXY_EXPORT UDPSocketResourceBase : public PluginResource {
   scoped_refptr<UDPSocketFilter> recv_filter_;
 
 #if defined(TIZEN_PEPPER_EXTENSIONS)
-  PP_NetAddress_Private recv_addr_;
-  scoped_refptr<UDPSocketIO> socket_io_;
+  scoped_refptr<TrackedCallback> get_option_callback_;
 #endif
 
   PP_NetAddress_Private bound_addr_;
index 1e84ad8..25765f6 100644 (file)
@@ -9,6 +9,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/memory/shared_memory.h"
 #include "ppapi/c/samsung/pp_media_player_samsung.h"
 
 namespace ppapi {
@@ -18,13 +19,14 @@ struct SerializedEncryptedESPacket;
 
 class ESPacket {
  public:
-  explicit ESPacket(const SerializedESPacket& src);
+  explicit ESPacket(const PP_ESPacket& pkt);
+  ESPacket(const PP_ESPacket& pkt, base::SharedMemory* shm, uint32_t shm_size);
 
-  ESPacket();
-  ESPacket(const ESPacket& rhs);
+  ESPacket() = delete;
+  ESPacket(const ESPacket& rhs) = delete;
   ESPacket(ESPacket&& rhs);
 
-  ESPacket& operator=(const ESPacket& rhs);
+  ESPacket& operator=(const ESPacket& rhs) = delete;
   ESPacket& operator=(ESPacket&& rhs);
 
   ~ESPacket();
@@ -35,16 +37,18 @@ class ESPacket {
 
   bool KeyFrame() const { return key_frame_; }
 
-  size_t DataSize() const { return data_.size(); }
-  const void* Data() const { return data_.data(); }
-
-  void AddHeaderToData(const std::vector<uint8_t>& header);
+  size_t DataSize() const { return data_size_; }
+  const void* Data() const { return data_ptr_; }
 
  private:
   double pts_;
   double dts_;
   double duration_;
   bool key_frame_;
+
+  const void* data_ptr_;
+  size_t data_size_;
+
   std::vector<uint8_t> data_;
 };
 
@@ -66,13 +70,19 @@ class EncryptedESPacket : public ESPacket {
     ~SubsampleDescription();
   };
 
-  explicit EncryptedESPacket(const SerializedEncryptedESPacket& src);
+  explicit EncryptedESPacket(const PP_ESPacket& pkt,
+                             const PP_ESPacketEncryptionInfo& info);
 
-  EncryptedESPacket();
-  EncryptedESPacket(const EncryptedESPacket& rhs);
+  EncryptedESPacket(const PP_ESPacket& pkt,
+                    base::SharedMemory* shm,
+                    uint32_t shm_size,
+                    const PP_ESPacketEncryptionInfo& info);
+
+  EncryptedESPacket() = delete;
+  EncryptedESPacket(const EncryptedESPacket& rhs) = delete;
   EncryptedESPacket(EncryptedESPacket&& rhs);
 
-  EncryptedESPacket& operator=(const EncryptedESPacket& rhs);
+  EncryptedESPacket& operator=(const EncryptedESPacket& rhs) = delete;
   EncryptedESPacket& operator=(EncryptedESPacket&& rhs);
 
   ~EncryptedESPacket();
@@ -87,9 +97,9 @@ class EncryptedESPacket : public ESPacket {
     return subsamples_;
   }
 
-  void AddHeaderToClearData(const std::vector<uint8_t>& header);
-
  private:
+  void CopySubsamples(const PP_ESPacketEncryptionInfo& info);
+
   std::vector<uint8_t> key_id_;
   std::vector<uint8_t> iv_;
   std::vector<SubsampleDescription> subsamples_;
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/ppapi/shared_impl/media_player/serialized_es_packet.h b/vendor/brightray/vendor/libchromiumcontent/src/ppapi/shared_impl/media_player/serialized_es_packet.h
deleted file mode 100644 (file)
index ae00d8f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2016 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_SHARED_IMPL_MEDIA_PLAYER_SERIALIZED_ES_PACKET_H_
-#define PPAPI_SHARED_IMPL_MEDIA_PLAYER_SERIALIZED_ES_PACKET_H_
-
-#include <vector>
-#include "ppapi/shared_impl/media_player/es_packet.h"
-
-namespace ppapi {
-
-struct SerializedESPacket {
-  double pts;
-  double dts;
-  double duration;
-  bool key_frame;
-  std::vector<uint8_t> data;
-
-  explicit SerializedESPacket(const PP_ESPacket* pkt);
-
-  SerializedESPacket();
-  SerializedESPacket(const SerializedESPacket& rhs);
-  SerializedESPacket(SerializedESPacket&& rhs);
-
-  SerializedESPacket& operator=(const SerializedESPacket& rhs);
-  SerializedESPacket& operator=(SerializedESPacket&& rhs);
-
-  ~SerializedESPacket();
-};
-
-struct SerializedEncryptedESPacket {
-  SerializedESPacket serialized_es_packet;
-  std::vector<uint8_t> key_id;
-  std::vector<uint8_t> iv;
-  std::vector<EncryptedESPacket::SubsampleDescription> subsamples;
-
-  explicit SerializedEncryptedESPacket(const PP_ESPacket* pkt,
-                                       const PP_ESPacketEncryptionInfo* info);
-
-  SerializedEncryptedESPacket();
-  SerializedEncryptedESPacket(const SerializedEncryptedESPacket& rhs);
-  SerializedEncryptedESPacket(SerializedEncryptedESPacket&& rhs);
-
-  SerializedEncryptedESPacket& operator=(
-      const SerializedEncryptedESPacket& rhs);
-  SerializedEncryptedESPacket& operator=(SerializedEncryptedESPacket&& rhs);
-
-  ~SerializedEncryptedESPacket();
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_MEDIA_PLAYER_SERIALIZED_ES_PACKET_H_
index 643d1e1..fcbcaf1 100644 (file)
@@ -48,6 +48,11 @@ class PPAPI_SHARED_EXPORT PPB_AudioConfig_Shared
   PP_AudioSampleRate GetSampleRate() override;
   uint32_t GetSampleFrameCount() override;
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  int32_t SetAudioMode(PP_AudioMode) override;
+  PP_AudioMode GetAudioMode() override;
+#endif
+
  private:
   // You must call Init before using this object.
   PPB_AudioConfig_Shared(ResourceObjectType type, PP_Instance instance);
@@ -56,6 +61,10 @@ class PPAPI_SHARED_EXPORT PPB_AudioConfig_Shared
   // used in this case.
   bool Init(PP_AudioSampleRate sample_rate, uint32_t sample_frame_count);
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  PP_AudioMode audio_mode_;
+#endif
+
   PP_AudioSampleRate sample_rate_;
   uint32_t sample_frame_count_;
 
index 35bac76..da9b5ad 100644 (file)
@@ -5,10 +5,22 @@
 #ifndef PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
 #define PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
 
+#include <cstdint>
+
 #include "ppapi/shared_impl/ppapi_shared_export.h"
 
 namespace ppapi {
 
+// Contains non-owning pointer to a data which will be sent via IPC
+struct PPAPI_SHARED_EXPORT DataView {
+  DataView() : data(nullptr), size(0) {}
+  DataView(const char* data_ptr, int32_t data_size)
+      : data(data_ptr), size(data_size) {}
+
+  const char* data;
+  int32_t size;
+};
+
 class PPAPI_SHARED_EXPORT TCPSocketState {
  public:
   enum StateType {
index 072714c..dd4b56a 100644 (file)
@@ -27,12 +27,6 @@ class PPAPI_SHARED_EXPORT NetAddressPrivateImpl {
                                    uint32_t sa_length,
                                    PP_NetAddress_Private* net_addr);
 
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-  static bool NetAddressToSockaddr(const PP_NetAddress_Private& net_addr,
-                                   sockaddr* sa,
-                                   uint32_t sa_length);
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
-
   static bool IPEndPointToNetAddress(const std::vector<uint8_t>& address,
                                      uint16_t port,
                                      PP_NetAddress_Private* net_addr);
index ca28d01..0982060 100644 (file)
@@ -20,16 +20,19 @@ PROXIED_IFACE(PPB_TEXTINPUT_DEV_INTERFACE_0_2, PPB_TextInput_Dev_0_2)
 PROXIED_IFACE(PPB_TRUETYPEFONT_DEV_INTERFACE_0_1, PPB_TrueTypeFont_Dev_0_1)
 PROXIED_IFACE(PPB_VIEW_DEV_INTERFACE_0_1, PPB_View_Dev_0_1)
 
+#if !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_3, PPB_AudioInput_Dev_0_3)
+PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_4, PPB_AudioInput_Dev_0_4)
+PROXIED_IFACE(PPB_DEVICEREF_DEV_INTERFACE_0_1, PPB_DeviceRef_Dev_0_1)
+#endif  // !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+
 #if !defined(OS_NACL)
 PROXIED_API(PPB_Buffer)
 PROXIED_API(PPB_VideoDecoder)
 
-PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_3, PPB_AudioInput_Dev_0_3)
-PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_4, PPB_AudioInput_Dev_0_4)
 PROXIED_IFACE(PPB_BUFFER_DEV_INTERFACE_0_4, PPB_Buffer_Dev_0_4)
 PROXIED_IFACE(PPB_CHAR_SET_DEV_INTERFACE_0_4, PPB_CharSet_Dev_0_4)
 PROXIED_IFACE(PPB_CRYPTO_DEV_INTERFACE_0_1, PPB_Crypto_Dev_0_1)
-PROXIED_IFACE(PPB_DEVICEREF_DEV_INTERFACE_0_1, PPB_DeviceRef_Dev_0_1)
 PROXIED_IFACE(PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE_0_1,
               PPB_GLESChromiumTextureMapping_Dev_0_1)
 PROXIED_IFACE(PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1, PPB_IMEInputEvent_Dev_0_1)
index 8df78f5..4196dcd 100644 (file)
@@ -7,14 +7,20 @@
 
 #include "ppapi/thunk/interfaces_preamble.h"
 
-#if defined(TIZEN_PEPPER_EXTENSIONS) && !defined(OS_NACL)
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#if !defined(OS_NACL)
 PROXIED_IFACE(PPB_EXTENSIONSYSTEM_SAMSUNG_INTERFACE_0_1,
               PPB_ExtensionSystem_Samsung_0_1)
 PROXIED_IFACE(PPB_REMOTECONTROLLER_SAMSUNG_INTERFACE_0_1,
               PPB_RemoteController_Samsung_0_1)
-#endif  // defined(TIZEN_PEPPER_EXTENSIONS) && !defined(OS_NACL)
+#endif  // !defined(OS_NACL)
+PROXIED_IFACE(PPB_AUDIO_CONFIG_SAMSUNG_INTERFACE_1_0,
+              PPB_AudioConfig_Samsung_1_0)
 PROXIED_IFACE(PPB_COMPOSITORLAYER_SAMSUNG_INTERFACE_0_1,
               PPB_CompositorLayer_Samsung_0_1)
+PROXIED_IFACE(PPB_UDPSOCKETEXTENSION_SAMSUNG_INTERFACE_0_1,
+              PPB_UDPSocketExtension_Samsung_0_1)
+#endif  // defined(TIZEN_PEPPER_EXTENSIONS)
 
 #if defined(TIZEN_PEPPER_PLAYER)
 PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_0,
@@ -23,6 +29,10 @@ PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_1,
               PPB_MediaPlayer_Samsung_1_1)
 PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_2,
               PPB_MediaPlayer_Samsung_1_2)
+PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_3,
+              PPB_MediaPlayer_Samsung_1_3)
+PROXIED_IFACE(PPB_MEDIAPLAYER_SAMSUNG_INTERFACE_1_4,
+              PPB_MediaPlayer_Samsung_1_4)
 PROXIED_IFACE(PPB_MEDIADATASOURCE_SAMSUNG_INTERFACE_1_0,
               PPB_MediaDataSource_Samsung_1_0)
 PROXIED_IFACE(PPB_URLDATASOURCE_SAMSUNG_INTERFACE_1_0,
index 5faa6c4..041f99f 100644 (file)
 #include "ppapi/c/ppb_audio_config.h"
 #include "ppapi/thunk/ppapi_thunk_export.h"
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_audio_config_samsung.h"
+#endif
+
 namespace ppapi {
 namespace thunk {
 
@@ -19,6 +23,11 @@ class PPAPI_THUNK_EXPORT PPB_AudioConfig_API {
 
   virtual PP_AudioSampleRate GetSampleRate() = 0;
   virtual uint32_t GetSampleFrameCount() = 0;
+
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  virtual int32_t SetAudioMode(PP_AudioMode) = 0;
+  virtual PP_AudioMode GetAudioMode() = 0;
+#endif
 };
 
 }  // namespace thunk
index 0fa0372..0e73a08 100644 (file)
@@ -78,6 +78,18 @@ class PPAPI_THUNK_EXPORT PPB_MediaPlayer_API {
 
   virtual int32_t SetDisplayRect(const PP_Rect*,
                                  scoped_refptr<TrackedCallback>) = 0;
+  virtual int32_t SetDisplayMode(PP_MediaPlayerDisplayMode,
+                                 scoped_refptr<TrackedCallback>) = 0;
+
+  virtual int32_t SetVr360Mode(PP_MediaPlayerVr360Mode,
+                               scoped_refptr<TrackedCallback>) = 0;
+
+  virtual int32_t SetVr360Rotation(float,
+                                   float,
+                                   scoped_refptr<TrackedCallback>) = 0;
+
+  virtual int32_t SetVr360ZoomLevel(uint32_t,
+                                    scoped_refptr<TrackedCallback>) = 0;
 
   virtual int32_t SetDRMSpecificData(PP_MediaPlayerDRMType,
                                      PP_MediaPlayerDRMOperation,
index 5b96c8e..4e34200 100644 (file)
 #include "ppapi/c/ppb_udp_socket.h"
 #include "ppapi/thunk/ppapi_thunk_export.h"
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+#include "ppapi/c/samsung/ppb_udp_socket_extension_samsung.h"
+#endif
+
 namespace ppapi {
 
 class TrackedCallback;
@@ -46,6 +50,11 @@ class PPAPI_THUNK_EXPORT PPB_UDPSocket_API {
                             scoped_refptr<TrackedCallback> callback) = 0;
   virtual int32_t LeaveGroup(PP_Resource group,
                             scoped_refptr<TrackedCallback> callback) = 0;
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  virtual int32_t GetOption(PP_UDPSocket_Option name,
+                            struct PP_Var* value,
+                            scoped_refptr<TrackedCallback> callback) = 0;
+#endif
 };
 
 }  // namespace thunk
index 4c5be66..ef4641c 100644 (file)
@@ -189,8 +189,10 @@ class ResourceCreationAPI {
   virtual PP_Resource CreateVpnProvider(PP_Instance instance) = 0;
   virtual PP_Resource CreateWebSocket(PP_Instance instance) = 0;
   virtual PP_Resource CreateX509CertificatePrivate(PP_Instance instance) = 0;
-#if !defined(OS_NACL)
+#if !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
   virtual PP_Resource CreateAudioInput(PP_Instance instance) = 0;
+#endif  // !defined(OS_NACL) || defined(TIZEN_PEPPER_EXTENSIONS)
+#if !defined(OS_NACL)
   virtual PP_Resource CreateBroker(PP_Instance instance) = 0;
   virtual PP_Resource CreateBrowserFont(
       PP_Instance instance,
index 3af0431..cb81563 100644 (file)
@@ -53,18 +53,32 @@ class CORE_EXPORT ScriptSourceCode final {
       const String&,
       const KURL& = KURL(),
       const TextPosition& startPosition = TextPosition::minimumPosition());
+#if defined(ENABLE_STRING_COMPRESSION)
+  ScriptSourceCode(
+      const CompressibleString&,
+      const KURL& = KURL(),
+      const TextPosition& startPosition = TextPosition::minimumPosition());
+#endif
   ScriptSourceCode(ScriptStreamer*, ScriptResource*);
 
   ~ScriptSourceCode();
   DECLARE_TRACE();
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  bool isEmpty() const { return isNull() || m_source.isEmpty(); }
+#else
   bool isEmpty() const { return m_source.isEmpty(); }
+#endif
 
   // The null value represents a missing script, created by the nullary
   // constructor, and differs from the empty script.
   bool isNull() const { return m_source.isNull(); }
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  const CompressibleString& source() const { return m_source; }
+#else
   const String& source() const { return m_source; }
+#endif
   ScriptResource* resource() const { return m_resource.get(); }
   const KURL& url() const;
   int startLine() const { return m_startPosition.m_line.oneBasedInt(); }
@@ -76,7 +90,11 @@ class CORE_EXPORT ScriptSourceCode final {
  private:
   void treatNullSourceAsEmpty();
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  CompressibleString m_source;
+#else
   String m_source;
+#endif
   Member<ScriptResource> m_resource;
   Member<ScriptStreamer> m_streamer;
   mutable KURL m_url;
index 6b5d50d..0df1784 100644 (file)
 #include "wtf/text/StringView.h"
 #include <v8.h>
 
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
 namespace blink {
 
 class DOMWindow;
@@ -425,6 +429,16 @@ inline v8::Local<v8::String> v8String(v8::Isolate* isolate,
       .ToLocalChecked();
 }
 
+#if defined(ENABLE_STRING_COMPRESSION)
+inline v8::Local<v8::String> v8String(v8::Isolate* isolate,
+                                      const CompressibleString& string) {
+  if (string.isNull())
+    return v8::String::Empty(isolate);
+  return V8PerIsolateData::from(isolate)->getStringCache()->v8ExternalString(
+      isolate, string);
+}
+#endif
+
 inline v8::Local<v8::Value> v8StringOrNull(v8::Isolate* isolate,
                                            const AtomicString& string) {
   if (string.isNull())
index 5a4bd36..012db6c 100644 (file)
 #include <stdint.h>
 #include <v8.h>
 
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
 namespace blink {
 
 class CachedMetadataHandler;
@@ -58,6 +62,17 @@ class CORE_EXPORT V8ScriptRunner final {
       v8::Isolate*,
       AccessControlStatus = SharableCrossOrigin,
       V8CacheOptions = V8CacheOptionsDefault);
+#if defined(ENABLE_STRING_COMPRESSION)
+  static v8::MaybeLocal<v8::Script> compileScript(
+      const CompressibleString&,
+      const String& fileName,
+      const String& sourceMapUrl,
+      const TextPosition&,
+      v8::Isolate*,
+      CachedMetadataHandler* = nullptr,
+      AccessControlStatus = SharableCrossOrigin,
+      V8CacheOptions = V8CacheOptionsDefault);
+#else
   static v8::MaybeLocal<v8::Script> compileScript(
       const String&,
       const String& fileName,
@@ -67,6 +82,7 @@ class CORE_EXPORT V8ScriptRunner final {
       CachedMetadataHandler* = nullptr,
       AccessControlStatus = SharableCrossOrigin,
       V8CacheOptions = V8CacheOptionsDefault);
+#endif
   // CachedMetadataHandler is set when metadata caching is supported. For
   // normal scripe resources, CachedMetadataHandler is from ScriptResource.
   // For worker script, ScriptResource is null but CachedMetadataHandler may be
index c01715d..2e0136d 100644 (file)
 #include "wtf/text/AtomicString.h"
 #include <v8.h>
 
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
 namespace blink {
 
 // WebCoreStringResource is a helper class for v8ExternalString. It is used
@@ -62,18 +66,77 @@ class WebCoreStringResourceBase {
         string.charactersSizeInBytes());
   }
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  explicit WebCoreStringResourceBase(const CompressibleString& string)
+      : m_compressibleString(string) {
+#if ENABLE(ASSERT)
+    m_threadId = WTF::currentThread();
+#endif
+    ASSERT(!string.isNull());
+    v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
+        string.charactersSizeInBytes());
+  }
+#endif
+
   virtual ~WebCoreStringResourceBase() {
 #if ENABLE(ASSERT)
     ASSERT(m_threadId == WTF::currentThread());
 #endif
+
+#if defined(ENABLE_STRING_COMPRESSION)
+    int64_t reducedExternalMemory = 0;
+    if (LIKELY(m_compressibleString.isNull())) {
+      reducedExternalMemory = m_plainString.charactersSizeInBytes();
+      if (m_plainString.impl() != m_atomicString.impl() &&
+          !m_atomicString.isNull())
+        reducedExternalMemory += m_atomicString.charactersSizeInBytes();
+    } else {
+      reducedExternalMemory = m_compressibleString.charactersSizeInBytes();
+    }
+#else
     int64_t reducedExternalMemory = m_plainString.charactersSizeInBytes();
     if (m_plainString.impl() != m_atomicString.impl() &&
         !m_atomicString.isNull())
       reducedExternalMemory += m_atomicString.charactersSizeInBytes();
+#endif
     v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
         -reducedExternalMemory);
+    // FIX this!
+  }
+
+#if defined(ENABLE_STRING_COMPRESSION)
+  String webcoreString() {
+    if (!m_compressibleString.isNull()) {
+      ASSERT(m_plainString.isNull());
+      ASSERT(m_atomicString.isNull());
+      return m_compressibleString.toString();
+    }
+    return m_plainString;
+  }
+
+  AtomicString getAtomicString() {
+#if ENABLE(ASSERT)
+    ASSERT(m_threadId == WTF::currentThread());
+#endif
+    if (!m_compressibleString.isNull()) {
+      ASSERT(m_plainString.isNull());
+      ASSERT(m_atomicString.isNull());
+      return AtomicString(m_compressibleString.toString());
+    }
+    if (m_atomicString.isNull()) {
+      m_atomicString = AtomicString(m_plainString);
+      ASSERT(!m_atomicString.isNull());
+      if (m_plainString.impl() != m_atomicString.impl())
+        v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(
+            m_atomicString.charactersSizeInBytes());
+    }
+    return m_atomicString;
   }
 
+  const CompressibleString& compressibleString() {
+    return m_compressibleString;
+  }
+#else
   const String& webcoreString() { return m_plainString; }
 
   const AtomicString& getAtomicString() {
@@ -89,6 +152,7 @@ class WebCoreStringResourceBase {
     }
     return m_atomicString;
   }
+#endif
 
  protected:
   // A shallow copy of the string. Keeps the string buffer alive until the V8
@@ -101,12 +165,60 @@ class WebCoreStringResourceBase {
   // into that string.
   AtomicString m_atomicString;
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  CompressibleString m_compressibleString;
+#endif
+
  private:
 #if ENABLE(ASSERT)
   WTF::ThreadIdentifier m_threadId;
 #endif
 };
 
+#if defined(ENABLE_STRING_COMPRESSION)
+class WebCoreCompressibleStringResource16 final
+    : public WebCoreStringResourceBase,
+      public v8::String::ExternalStringResource {
+  WTF_MAKE_NONCOPYABLE(WebCoreCompressibleStringResource16);
+
+ public:
+  explicit WebCoreCompressibleStringResource16(const CompressibleString& string)
+      : WebCoreStringResourceBase(string) {
+    // ASSERT(m_string);
+    ASSERT(!m_compressibleString.is8Bit());
+  }
+
+  bool IsCompressible() const override { return true; }
+
+  size_t length() const override { return m_compressibleString.length(); }
+
+  const uint16_t* data() const override {
+    return reinterpret_cast<const uint16_t*>(
+        m_compressibleString.characters16());
+  }
+};
+
+class WebCoreCompressibleStringResource8 final
+    : public WebCoreStringResourceBase,
+      public v8::String::ExternalOneByteStringResource {
+  WTF_MAKE_NONCOPYABLE(WebCoreCompressibleStringResource8);
+
+ public:
+  explicit WebCoreCompressibleStringResource8(const CompressibleString& string)
+      : WebCoreStringResourceBase(string) {
+    ASSERT(m_compressibleString.is8Bit());
+  }
+
+  bool IsCompressible() const override { return true; }
+
+  size_t length() const override { return m_compressibleString.length(); }
+
+  const char* data() const override {
+    return reinterpret_cast<const char*>(m_compressibleString.characters8());
+  }
+};
+#endif
+
 class WebCoreStringResource16 final
     : public WebCoreStringResourceBase,
       public v8::String::ExternalStringResource {
index 6a0fc91..809ff12 100644 (file)
 #include "wtf/text/WTFString.h"
 #include <v8.h>
 
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
 namespace blink {
 
 class StringCacheMapTraits
@@ -74,21 +78,75 @@ class StringCacheMapTraits
   static void DisposeWeak(const v8::WeakCallbackInfo<WeakCallbackDataType>&);
 };
 
+#if defined(ENABLE_STRING_COMPRESSION)
+class CompressibleStringCacheMapTraits
+    : public V8GlobalValueMapTraits<CompressibleStringImpl*,
+                                    v8::String,
+                                    v8::kWeakWithParameter> {
+  STATIC_ONLY(CompressibleStringCacheMapTraits);
+
+ public:
+  // Weak traits:
+  typedef CompressibleStringImpl WeakCallbackDataType;
+  typedef v8::GlobalValueMap<CompressibleStringImpl*,
+                             v8::String,
+                             CompressibleStringCacheMapTraits>
+      MapType;
+
+  static WeakCallbackDataType* WeakCallbackParameter(
+      MapType* map,
+      CompressibleStringImpl* key,
+      v8::Local<v8::String>& value) {
+    return key;
+  }
+  static void DisposeCallbackData(WeakCallbackDataType* callbackData) {}
+
+  static MapType* MapFromWeakCallbackInfo(
+      const v8::WeakCallbackInfo<WeakCallbackDataType>&);
+
+  static CompressibleStringImpl* KeyFromWeakCallbackInfo(
+      const v8::WeakCallbackInfo<WeakCallbackDataType>& data) {
+    return data.GetParameter();
+  }
+
+  static void OnWeakCallback(const v8::WeakCallbackInfo<WeakCallbackDataType>&);
+
+  static void Dispose(v8::Isolate*,
+                      v8::Global<v8::String> value,
+                      CompressibleStringImpl* key);
+  static void DisposeWeak(const v8::WeakCallbackInfo<WeakCallbackDataType>&);
+};
+#endif
+
 class CORE_EXPORT StringCache {
   USING_FAST_MALLOC(StringCache);
   WTF_MAKE_NONCOPYABLE(StringCache);
 
  public:
+#if defined(ENABLE_STRING_COMPRESSION)
+  explicit StringCache(v8::Isolate* isolate)
+      : m_stringCache(isolate), m_compressibleStringCache(isolate) {}
+#else
   explicit StringCache(v8::Isolate* isolate) : m_stringCache(isolate) {}
+#endif
 
   v8::Local<v8::String> v8ExternalString(v8::Isolate* isolate,
                                          StringImpl* stringImpl) {
+    // Note that the last CompressibleString is not cached.
     ASSERT(stringImpl);
     if (m_lastStringImpl.get() == stringImpl)
       return m_lastV8String.NewLocal(isolate);
     return v8ExternalStringSlow(isolate, stringImpl);
   }
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  v8::Local<v8::String> v8ExternalString(v8::Isolate* isolate,
+                                         const CompressibleString& string) {
+    ASSERT(!string.isNull());
+    return v8ExternalStringSlow(isolate, string);
+  }
+#endif
+
   void setReturnValueFromString(v8::ReturnValue<v8::Value> returnValue,
                                 StringImpl* stringImpl) {
     ASSERT(stringImpl);
@@ -101,17 +159,33 @@ class CORE_EXPORT StringCache {
   void dispose();
 
   friend class StringCacheMapTraits;
+#if defined(ENABLE_STRING_COMPRESSION)
+  friend class CompressibleStringCacheMapTraits;
+#endif
 
  private:
   v8::Local<v8::String> v8ExternalStringSlow(v8::Isolate*, StringImpl*);
+#if defined(ENABLE_STRING_COMPRESSION)
+  v8::Local<v8::String> v8ExternalStringSlow(v8::Isolate*,
+                                             const CompressibleString&);
+#endif
   void setReturnValueFromStringSlow(v8::ReturnValue<v8::Value>, StringImpl*);
   v8::Local<v8::String> createStringAndInsertIntoCache(v8::Isolate*,
                                                        StringImpl*);
+#if defined(ENABLE_STRING_COMPRESSION)
+  v8::Local<v8::String> createStringAndInsertIntoCache(
+      v8::Isolate*,
+      const CompressibleString&);
+#endif
   void InvalidateLastString();
 
   StringCacheMapTraits::MapType m_stringCache;
   StringCacheMapTraits::MapType::PersistentValueReference m_lastV8String;
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  CompressibleStringCacheMapTraits::MapType m_compressibleStringCache;
+#endif
+
   // Note: RefPtr is a must as we cache by StringImpl* equality, not identity
   // hence lastStringImpl might be not a key of the cache (in sense of identity)
   // and hence it's not refed on addition.
index 563b4ac..93121d4 100644 (file)
 #include "wtf/text/TextPosition.h"
 #include <v8.h>
 
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
 namespace blink {
 
 class CachedMetadataHandler;
@@ -100,11 +104,19 @@ class CORE_EXPORT WorkerOrWorkletScriptController
   class ExecutionState;
 
   // Evaluate a script file in the current execution environment.
+#if defined(ENABLE_STRING_COMPRESSION)
+  ScriptValue evaluate(const CompressibleString& script,
+                       const String& fileName,
+                       const TextPosition& scriptStartPosition,
+                       CachedMetadataHandler*,
+                       V8CacheOptions);
+#else
   ScriptValue evaluate(const String& script,
                        const String& fileName,
                        const TextPosition& scriptStartPosition,
                        CachedMetadataHandler*,
                        V8CacheOptions);
+#endif
   void disposeContextIfNeeded();
 
   Member<WorkerOrWorkletGlobalScope> m_globalScope;
index 77190bb..b3e78ae 100644 (file)
@@ -441,6 +441,9 @@ inline CSSIdentifierValue::CSSIdentifierValue(ControlPart e)
     case MediaVolumeSliderThumbPart:
       m_valueID = CSSValueMediaVolumeSliderthumb;
       break;
+    case MediaBrightnessButtonPart:
+      m_valueID = CSSValueMediaBrightnessButton;
+      break;
     case MediaControlsBackgroundPart:
       m_valueID = CSSValueMediaControlsBackground;
       break;
index 21888b3..78118c5 100644 (file)
@@ -49,8 +49,13 @@ class CORE_EXPORT ActiveDOMObject : public ContextLifecycleObserver {
   virtual void suspend();
   virtual void resume();
 
+  virtual bool hasVideo() const { return false; }
+  virtual bool isPlaying() const { return false; }
+  virtual bool isHTMLMediaElement() const { return false; }
+
 #if defined(OS_TIZEN_TV_PRODUCT)
   virtual bool setTranslatedURL(const String&) { return false; }
+  virtual void setPreferTextLang(const String&) {}
 #endif
 
   void didMoveToNewExecutionContext(ExecutionContext*);
index cf3eb41..6da098a 100644 (file)
@@ -47,9 +47,12 @@ class CORE_EXPORT ContextLifecycleNotifier
   void notifySuspendingActiveDOMObjects();
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool setMediaTranslatedURL(const String&);
+  void setMediaPreferTextLang(const String& lang);
 #endif
   unsigned activeDOMObjectCount() const;
 
+  bool checkVideoPlaying();
+
  protected:
   // Need a default constructor to link core and modules separately.
   // If no default constructor, we will see an error: "constructor for
index 0dd6c39..19291f0 100644 (file)
@@ -1280,6 +1280,7 @@ class CORE_EXPORT Document : public ContainerNode,
     m_nodeCount--;
   }
   int nodeCount() const { return m_nodeCount; }
+  bool isVideoPlaying();
 
   SnapCoordinator* snapCoordinator();
 
@@ -1321,6 +1322,7 @@ class CORE_EXPORT Document : public ContainerNode,
   unsigned passwordCount() const;
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool setTranslatedURL(const String&);
+  void setPreferTextLang(const String&);
 #endif
 
  protected:
index 84f64e2..2352ddf 100644 (file)
@@ -120,6 +120,10 @@ struct FocusParams {
 
 typedef HeapVector<Member<Attr>> AttrNodeList;
 
+#if defined(OS_TIZEN)
+static char const tizenCircularScrollbarAttr[] = "tizen-circular-scrollbar";
+#endif
+
 class CORE_EXPORT Element : public ContainerNode {
   DEFINE_WRAPPERTYPEINFO();
 
@@ -656,6 +660,11 @@ class CORE_EXPORT Element : public ContainerNode {
   }
   void setContainsFullScreenElement(bool);
   void setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(bool);
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual bool overrideFullscreenCSS() const {
+    return false;
+  }
+#endif
 
   bool isInTopLayer() const { return hasElementFlag(IsInTopLayer); }
   void setIsInTopLayer(bool);
index a736102..6970a3b 100644 (file)
@@ -129,6 +129,7 @@ class CORE_EXPORT ExecutionContext : public ContextLifecycleNotifier,
   void notifyContextDestroyed() override;
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool setTranslatedURL(const String&);
+  void setPreferTextLang(const String&);
 #endif
 
   virtual void suspendScheduledTasks();
@@ -182,6 +183,8 @@ class CORE_EXPORT ExecutionContext : public ContextLifecycleNotifier,
   void setReferrerPolicy(ReferrerPolicy);
   virtual ReferrerPolicy getReferrerPolicy() const { return m_referrerPolicy; }
 
+  bool isVideoPlaying();
+
  protected:
   ExecutionContext();
   virtual ~ExecutionContext();
index ff6904b..d18d9aa 100644 (file)
@@ -852,11 +852,6 @@ class CORE_EXPORT Node : public EventTarget {
 
 #if defined(TIZEN_ATK_FEATURE_VD)
   bool checkCSSVisibility();
-  bool isWidget(AXObject* obj) const;
-  bool isComposite(AXObject* obj) const;
-  bool isTextObjectType(AXObject* obj) const;
-  bool isSection(AXObject* obj) const;
-  bool hasText(AXObject* obj) const;
 #endif
 
  protected:
index 098c603..370ccb7 100644 (file)
@@ -121,9 +121,11 @@ class CORE_EXPORT Frame : public GarbageCollectedFinalized<Frame> {
   // otherwise.
   virtual bool prepareForCommit() = 0;
 
+  // TODO(japhet): These should all move to LocalFrame.
   bool canNavigate(const Frame&);
   virtual void printNavigationErrorMessage(const Frame&,
                                            const char* reason) = 0;
+  virtual void printNavigationWarning(const String&) = 0;
 
   // TODO(pilgrim): Replace all instances of ownerLayoutObject() with
   // ownerLayoutItem(), https://crbug.com/499321
index 0651c7e..3a82cfe 100644 (file)
@@ -345,6 +345,10 @@ class CORE_EXPORT FrameView final
   IntPoint lastKnownMousePosition() const override;
   bool shouldSetCursor() const;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void setCursorHidden(bool hidden);
+#endif
+
   void setCursor(const Cursor&);
 
   bool scrollbarsCanBeActive() const override;
@@ -1132,6 +1136,9 @@ class CORE_EXPORT FrameView final
 
   bool m_needsScrollbarsUpdate;
   bool m_suppressAdjustViewSize;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool m_cursorHidden;
+#endif
   bool m_allowsLayoutInvalidationAfterLayoutClean;
 
   Member<ElementVisibilityObserver> m_visibilityObserver;
index 11622ba..d062c52 100644 (file)
@@ -104,6 +104,10 @@ class CORE_EXPORT History final : public GarbageCollectedFinalized<History>,
   SerializedScriptValue* stateInternal() const;
   HistoryScrollRestorationType scrollRestorationInternal() const;
 
+#if defined(OS_TIZEN)
+  double m_previousCommand;
+#endif
+
   RefPtr<SerializedScriptValue> m_lastStateObjectRequested;
 };
 
index 6b796ab..b85a412 100644 (file)
@@ -120,6 +120,7 @@ class CORE_EXPORT LocalFrame final : public Frame,
   bool shouldClose() override;
   SecurityContext* securityContext() const override;
   void printNavigationErrorMessage(const Frame&, const char* reason) override;
+  void printNavigationWarning(const String&) override;
   bool prepareForCommit() override;
   void didChangeVisibilityState() override;
   void setDocumentHasReceivedUserGesture() override;
@@ -166,6 +167,8 @@ class CORE_EXPORT LocalFrame final : public Frame,
     return m_instrumentingAgents.get();
   }
 
+  void notifyUrlForPlayingVideo(const KURL& url);
+
   // =========================================================================
   // All public functions below this point are candidates to move out of
   // LocalFrame into another class.
index 2d439b8..615445a 100644 (file)
@@ -41,6 +41,7 @@ class CORE_EXPORT RemoteFrame final : public Frame {
   void detach(FrameDetachType) override;
   RemoteSecurityContext* securityContext() const override;
   void printNavigationErrorMessage(const Frame&, const char* reason) override {}
+  void printNavigationWarning(const String&) override {}
   bool prepareForCommit() override;
   bool shouldClose() override;
   void setDocumentHasReceivedUserGesture() override;
index 2fe302d..ae4d7e7 100644 (file)
@@ -37,6 +37,9 @@
 namespace blink {
 
 class LocalFrame;
+class ScreenOrientation;
+class ScriptPromise;
+class ScriptState;
 
 class Screen final : public GarbageCollected<Screen>,
                      public ScriptWrappable,
@@ -57,6 +60,9 @@ class Screen final : public GarbageCollected<Screen>,
   int availHeight() const;
   int availWidth() const;
 
+  ScriptPromise lockOrientation(ScriptState*, const AtomicString& orientation);
+  void unlockOrientation();
+
   DECLARE_VIRTUAL_TRACE();
 
  private:
index 1de4432..7d83c53 100644 (file)
@@ -101,13 +101,36 @@ class CORE_EXPORT Settings {
   void setDelegate(SettingsDelegate*);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void setMediaSubtitleNotificationEnabled(bool enabled) {
+    m_mediaSubtitleNotificationEnabled = enabled;
+  }
+  bool mediaSubtitleNotificationEnabled() const {
+    return m_mediaSubtitleNotificationEnabled;
+  }
+
   void setMediaPlaybackNotificationEnabled(bool enabled) {
     m_mediaPlaybackNotificationEnabled = enabled;
   }
   bool mediaPlaybackNotificationEnabled() const {
     return m_mediaPlaybackNotificationEnabled;
   }
+  void setRequestCanvasFullscreen(bool enabled) {
+    m_requestCanvasFullscreen = enabled;
+  }
+  bool requestCanvasFullscreen() const {
+    return m_requestCanvasFullscreen;
+  }
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+  void setCanvasHoleEnabled(bool enabled) {
+    m_canvasHoleEnabled = enabled;
+  }
+  bool canvasHoleEnabled() const {
+    return m_canvasHoleEnabled;
+  }
 #endif
+
 #if defined(OS_TIZEN)
   void setHwKeyboardConnected(bool connected) { m_hwKeyboardConnected = connected; }
   bool hwKeyboardConnected() const { return m_hwKeyboardConnected; }
@@ -128,7 +151,13 @@ class CORE_EXPORT Settings {
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  bool m_mediaSubtitleNotificationEnabled : 1;
   bool m_mediaPlaybackNotificationEnabled : 1;
+  bool m_requestCanvasFullscreen : 1;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+  bool m_canvasHoleEnabled : 1;
 #endif
 
 #if defined(USE_EFL)
index 4e78eb2..512c7c0 100644 (file)
@@ -1395,6 +1395,16 @@ class CORE_EXPORT UseCounter {
     V8Window_SpeechRecognitionError_ConstructorGetter = 1690,
     V8Window_SpeechRecognitionEvent_ConstructorGetter = 1691,
 
+    ScreenOrientationLockOrientation = 1692,
+    ScreenOrientationUnlockOrientation = 1693,
+
+    // The below items are added for Tizen compatibility.
+    AudioContextCreateGainNode = 1694,
+    AudioBufferSourceNoteOn = 1695,
+    AudioBufferSourceNoteOff = 1696,
+    AudioBufferSourcePlaybackState = 1697,
+    AudioBufferSourceNodeGain = 1698,
+
     // Add new features immediately above this line. Don't change assigned
     // numbers of any item, and don't reuse removed slots.
     // Also, run update_use_counter_feature_enum.py in
index fa04466..61e553e 100644 (file)
 #include "platform/geometry/FloatSize.h"
 #include "platform/geometry/IntSize.h"
 #include "platform/graphics/GraphicsLayerClient.h"
+#if defined(OS_TIZEN)
+#include "platform/graphics/Image.h"
+#endif
 #include "platform/scroll/ScrollableArea.h"
 #include "public/platform/WebScrollbar.h"
 #include "public/platform/WebSize.h"
+#if defined(OS_TIZEN)
+#include "third_party/skia/include/core/SkSurface.h"
+#include "third_party/skia/include/core/SkCanvas.h"
+#endif
 #include <memory>
 
 namespace blink {
@@ -56,6 +63,132 @@ class IntRect;
 class IntSize;
 class LocalFrame;
 
+#if defined(OS_TIZEN)
+class CircleImage : public Image {
+ public:
+  static PassRefPtr<CircleImage> create(const IntSize& size, int angle) {
+    return adoptRef(new CircleImage(size, angle));
+  }
+
+  bool currentFrameKnownToBeOpaque(MetadataMode = UseCurrentMetadata) override {
+    return m_image->isOpaque();
+  }
+
+  IntSize size() const override { return m_size; }
+
+  sk_sp<SkImage> imageForCurrentFrame() override { return m_image; }
+
+  void destroyDecodedData() override {
+    // Image pure virtual stub.
+  }
+
+  void draw(SkCanvas* canvas,
+            const SkPaint& painter,
+            const FloatRect&,
+            const FloatRect&,
+            RespectImageOrientationEnum,
+            ImageClampingMode) override {
+    // Image pure virtual stub.
+  }
+  void updateCircularScrollbar(int startAngle,
+                               int sweepAngle,
+                               bool isVertical) {
+    if (!m_surface)
+      return;
+
+    m_surface->getCanvas()->clear(SK_ColorTRANSPARENT);
+
+    int xPos = (360) / 2;
+    // Calculation of the layer position will be
+    // radius(1+cos( ( 60 degrees/2 )))
+    // radius is 360/2 for circular wearable,
+    // the span of circular scroll is 60 degrees
+    // cos 30 degrees is sqrt(3)/2
+    xPos = xPos * (1 + (1.734 / 2));
+    SkRect oval = SkRect::MakeXYWH(20 - xPos, 5, 350, 350);
+    SkColor blue = SkColorSetRGB(15, 136, 210);
+    SkColor gray = SkColorSetRGB(42, 42, 42);
+
+    // Draw scrolling bar.
+    SkPaint paint_p, paint_q;
+    paint_p.setAntiAlias(true);
+    paint_p.setColor(gray);
+    paint_p.setStyle(SkPaint::kStroke_Style);
+    paint_p.setStrokeCap(SkPaint::kRound_Cap);
+    paint_p.setStrokeWidth(10.0f);
+
+    // Draw rotary indicator.
+    paint_q.setAntiAlias(true);
+    paint_q.setColor(blue);
+    paint_q.setStyle(SkPaint::kStroke_Style);
+    paint_q.setStrokeCap(SkPaint::kRound_Cap);
+    paint_q.setStrokeWidth(10.0f);
+
+    startAngle = (startAngle > 54) ? 54 : startAngle;
+    sweepAngle = (sweepAngle > 6) ? sweepAngle : 6;
+
+    SkPath p, q;
+    if (isVertical) {  // Scrollbar Vertical.
+      oval = SkRect::MakeXYWH(20 - xPos, 5, 350, 350);
+      p.arcTo(oval, -30, 60, false);
+      q.arcTo(oval, -30 + startAngle, sweepAngle, false);
+    } else {  // Scrollbar Horizontal.
+      oval = SkRect::MakeXYWH(5, xPos - 10, 350, 350);
+      p.arcTo(oval, -120, 60, false);
+      q.arcTo(oval, -120 + startAngle, sweepAngle, false);
+    }
+
+    m_surface->getCanvas()->drawPath(p, paint_p);
+    m_surface->getCanvas()->drawPath(q, paint_q);
+    m_image = m_surface->makeImageSnapshot();
+  }
+
+  static CircleImage* GetInstance() {
+    return base::Singleton<CircleImage,
+                           base::LeakySingletonTraits<CircleImage>>::get();
+  }
+
+ private:
+  CircleImage() : Image(0), m_size(IntSize(360, 360)), m_surface(nullptr) {
+    m_surface = SkSurface::MakeRaster(SkImageInfo::MakeN32(
+        m_size.width(), m_size.height(), kPremul_SkAlphaType));
+    // Draw circular scrollbar before snapshot is generated.
+    updateCircularScrollbar(0, 20, true);
+  }
+
+  CircleImage(IntSize size, int angle)
+      : Image(0), m_size(size), m_surface(nullptr) {
+    sk_sp<SkSurface> surface = createSkSurface(size, true);
+    if (!surface)
+      return;
+
+    m_surface = surface;
+    surface->getCanvas()->clear(SK_ColorTRANSPARENT);
+    // Draw circular scrollbar before snapshot is generated.
+    updateCircularScrollbar(angle, 20, true);
+
+    m_image = surface->makeImageSnapshot();
+  }
+
+  ~CircleImage() {
+    if (m_surface)
+      m_surface->getCanvas()->clear(SK_ColorTRANSPARENT);
+  }
+
+  static sk_sp<SkSurface> createSkSurface(IntSize size, bool opaque) {
+    return SkSurface::MakeRaster(SkImageInfo::MakeN32(
+        size.width(), size.height(),
+        opaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType));
+  }
+
+  IntSize m_size;
+  sk_sp<SkImage> m_image;
+  sk_sp<SkSurface> m_surface;
+  friend struct base::DefaultSingletonTraits<CircleImage>;
+  DISALLOW_COPY_AND_ASSIGN(CircleImage);
+};
+#endif
+
 // Represents the visual viewport the user is currently seeing the page through.
 // This class corresponds to the InnerViewport on the compositor. It is a
 // ScrollableArea; it's offset is set through the GraphicsLayer <-> CC sync
@@ -259,6 +392,10 @@ class CORE_EXPORT VisualViewport final
   std::unique_ptr<GraphicsLayer> m_innerViewportScrollLayer;
   std::unique_ptr<GraphicsLayer> m_overlayScrollbarHorizontal;
   std::unique_ptr<GraphicsLayer> m_overlayScrollbarVertical;
+#if defined(OS_TIZEN)
+  std::unique_ptr<GraphicsLayer> m_overlayScrollbarCircularHorizontal;
+  std::unique_ptr<GraphicsLayer> m_overlayScrollbarCircularVertical;
+#endif
   std::unique_ptr<WebScrollbarLayer> m_webOverlayScrollbarHorizontal;
   std::unique_ptr<WebScrollbarLayer> m_webOverlayScrollbarVertical;
 
index aed0212..dc057c7 100644 (file)
@@ -152,6 +152,15 @@ class CORE_EXPORT HTMLCanvasElement final : public HTMLElement,
 
   AffineTransform baseTransform() const;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool overrideFullscreenCSS() const override {
+    return m_overrideFullscreenCSS;
+  }
+  void setOverrideFullscreenCSS(bool ride) {
+    m_overrideFullscreenCSS = ride;
+  }
+#endif
+
   bool is3D() const;
   bool isAnimated2D() const;
 
@@ -284,6 +293,10 @@ class CORE_EXPORT HTMLCanvasElement final : public HTMLElement,
 
   TraceWrapperMember<CanvasRenderingContext> m_context;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool m_overrideFullscreenCSS;
+#endif
+
   bool m_ignoreReset;
   FloatRect m_dirtyRect;
 
index ad5d297..f948d13 100644 (file)
@@ -36,6 +36,7 @@
 #include "core/events/GenericEventQueue.h"
 #include "core/html/AutoplayExperimentHelper.h"
 #include "core/html/HTMLElement.h"
+#include "core/html/MediaSyncPara.h"
 #include "core/html/track/TextTrack.h"
 #include "platform/MIMETypeRegistry.h"
 #include "platform/Supplementable.h"
 #include "third_party/WebKit/public/web/WebFrameClient.h"
 #endif
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+enum EventType {
+  EVENT_TYPE_NONE = 0,
+  EVENT_TYPE_MRSURL_CHANGE,
+  EVENT_TYPE_CONTENTID_CHANGE,
+};
+#endif
+
 namespace blink {
 
 class AudioSourceProviderClient;
@@ -124,10 +133,7 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
 
   bool hasRemoteRoutes() const;
   bool isPlayingRemotely() const { return m_playingRemotely; }
-
-#if defined(TIZEN_VIDEO_HOLE)
-  void setPresetDisableVideoHole(bool disable);
-#endif
+  bool isPlaying() const { return m_playing; }
 
   // error state
   MediaError* error() const;
@@ -209,6 +215,16 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
   bool muted() const;
   void setMuted(bool);
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  double brightness() const;
+  void initSystemBrightness(int brightness);
+  void setBrightness(double, ExceptionState&);
+  int getSystemBrightness() const;
+  void setSystemBrightness(int);
+
+  void onSystemVolumeChanged(double volume, bool init) final;
+#endif
+
   void togglePlayState();
 
   AudioTrackList& audioTracks();
@@ -224,6 +240,11 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
               unsigned int id,
               long long int start_time,
               long long int end_time) override;
+  void OnSyncTimeline(const std::string& timeline_selector, int sync) override;
+  void OnRegisterTimeline(
+      const WebMediaPlayer::register_timeline_cb_info_s& info) override;
+  void OnMrsUrlChange(const std::string& url) override;
+  void OnContentIdChange(const std::string& id) override;
 #endif
 
   TextTrack* addTextTrack(const AtomicString& kind,
@@ -323,18 +344,37 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
   virtual bool isHTMLAudioElement() const { return false; }
   virtual bool isHTMLVideoElement() const { return false; }
 
+  // begin of hbbtv media sync
+  bool RegisterTimeline(const AtomicString& timeline_selector);
+  bool UnRegisterTimeline(const AtomicString& timeline_selector);
+  MediaSyncPara* GetTimelinePositions(const AtomicString& timeline_selector);
+  double GetSpeed();
+  AtomicString GetMrsUrl();
+  AtomicString GetContentId();
+  bool SyncTimeline(const AtomicString& timeline_selector,
+                    int64_t timeline_pos,
+                    int64_t wallclock_pos,
+                    int tolerance);
+  bool SetWallClock(const AtomicString& wallclock_url);
+  // end of hbbtv media sync
+
   void videoWillBeDrawnToCanvas() const;
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  bool getTextTrackInfo(int, WebString&, WebString&);
   bool setTranslatedURL(const String&);
   void onDrmError();
+  bool isHTMLMediaElement() const { return true; }
+  void setPreferTextLang(const String& lang);
+  void selectHbbtvPreferTrack();
 #endif
 
   void activatePlayer();
 #if defined(TIZEN_MULTIMEDIA_SUPPORT)
   void suspend() override;
   void resume() override;
-
+#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void launchSystemVolumeController();
   void setSystemVolume(int volume) override { m_systemVolume = volume; }
   int systemVolume() const { return m_systemVolume; }
@@ -357,6 +397,9 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
 #if defined(OS_TIZEN_TV_PRODUCT)
   void forceSettingOfficialPlaybackPosition() override;
 #endif
+#if defined(TIZEN_CANVAS_HOLE)
+  void notifyCanvasRectChanged(const WebRect&);
+#endif
 
  protected:
   HTMLMediaElement(const QualifiedName&, Document&);
@@ -586,7 +629,10 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
   void setNetworkState(NetworkState);
 
   void audioTracksTimerFired(TimerBase*);
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool checkHLSSupport(const String&) const;
+  void notifyElementRemove();
+#endif
   // TODO(liberato): remove once autoplay gesture override experiment concludes.
   void triggerAutoplayViewportCheckForTesting();
 
@@ -621,6 +667,12 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
   Member<MediaError> m_error;
 
   double m_volume;
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  double m_systemVolume;
+  double m_brightness;
+#endif
+
   double m_lastSeekTime;
 
   double m_previousProgressTime;
@@ -708,11 +760,23 @@ class CORE_EXPORT HTMLMediaElement : public HTMLElement,
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool m_hasDrmError : 1;
+  bool is_deactivate : 1;
+  bool m_isHbbtvEngineSetModeShowing : 1;
+  Member<MediaSyncPara> m_mediaSyncPara;
+  std::vector<std::string> m_textLangList;
+  // include track selected by APP and hbbtv engine
+  int m_activeTextTrackId;
+  // the track selected by js textTrack.setMode(Showing)
+  TextTrack* m_appSelectedTextTrack;
+  // the track matched by  ewk_media_set_subtitle_lang()
+  TextTrack* m_hbbtvEngineSelectedTextTrack;
 #endif
 
 #if defined(TIZEN_MULTIMEDIA_SUPPORT)
   // This is to suppress stuff set to JS. Do not use it for other purposes.
   bool m_suppressEvents : 1;
+#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   int m_systemVolume;
 #endif
 
index c3e7ac9..461062d 100644 (file)
@@ -80,8 +80,8 @@ class CORE_EXPORT HTMLVideoElement final : public HTMLMediaElement,
                                          bool flipY);
 
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
-  unsigned zeroCopyVideoTbmToPlatformTexture(gpu::gles2::GLES2Interface*,
-                                             GLuint);
+  bool zeroCopyVideoTbmToPlatformTexture(gpu::gles2::GLES2Interface*,
+                                         GLuint, unsigned&);
   void deleteVideoFrame(unsigned image_id);
 #endif
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/MediaSyncPara.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/MediaSyncPara.h
new file mode 100644 (file)
index 0000000..8aa3003
--- /dev/null
@@ -0,0 +1,52 @@
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MediaSyncPara_h
+#define MediaSyncPara_h
+
+#include "bindings/core/v8/ScriptWrappable.h"
+#include "core/CoreExport.h"
+#include "platform/heap/Handle.h"
+
+namespace blink {
+
+class CORE_EXPORT MediaSyncPara final : public GarbageCollected<MediaSyncPara>,
+                                        public ScriptWrappable {
+  DEFINE_WRAPPERTYPEINFO();
+
+ public:
+  static MediaSyncPara* create(uint32_t units_per_tick,
+                               uint32_t units_per_second,
+                               int64_t content_time,
+                               bool paused) {
+    return new MediaSyncPara(units_per_tick, units_per_second, content_time,
+                             paused);
+  }
+
+  uint32_t unitsPerTick() const { return m_unitsPerTick; }
+  uint32_t unitsPerSecond() const { return m_unitsPerSecond; }
+  int64_t contentTime() const { return m_contentTime; }
+  bool paused() const { return m_paused; }
+
+  DEFINE_INLINE_TRACE() {}
+
+ private:
+  MediaSyncPara(uint32_t units_per_tick,
+                uint32_t units_per_second,
+                int64_t content_time,
+                bool paused)
+      : m_unitsPerTick(units_per_tick),
+        m_unitsPerSecond(units_per_second),
+        m_contentTime(content_time),
+        m_paused(paused) {}
+
+  uint32_t m_unitsPerTick;
+  uint32_t m_unitsPerSecond;
+  int64_t m_contentTime;
+  bool m_paused;
+};
+
+}  // namespace blink
+
+#endif  // MediaSyncPara_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/RegisterTimelineEvent.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/RegisterTimelineEvent.h
new file mode 100644 (file)
index 0000000..2223252
--- /dev/null
@@ -0,0 +1,51 @@
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef RegisterTimelineEvent_h
+#define RegisterTimelineEvent_h
+
+#include "core/CoreExport.h"
+#include "core/events/Event.h"
+#include "core/html/RegisterTimelineEventInit.h"
+
+namespace blink {
+
+class CORE_EXPORT RegisterTimelineEvent final : public Event {
+  DEFINE_WRAPPERTYPEINFO();
+
+ public:
+  ~RegisterTimelineEvent() override;
+
+  static RegisterTimelineEvent* create() { return new RegisterTimelineEvent; }
+
+  static RegisterTimelineEvent* create(
+      const AtomicString& type,
+      const RegisterTimelineEventInit& initializer) {
+    return new RegisterTimelineEvent(type, initializer);
+  }
+
+  const AtomicString& interfaceName() const override;
+
+  String timelineSelector() const { return m_timelineSelector; }
+  uint32_t unitsPerTick() const { return m_unitsPerTick; }
+  uint32_t unitsPerSecond() const { return m_unitsPerSecond; }
+  uint64_t contentTime() const { return m_contentTime; }
+  unsigned short timelineState() const { return m_timelineState; }
+  DECLARE_VIRTUAL_TRACE();
+
+ private:
+  RegisterTimelineEvent();
+  RegisterTimelineEvent(const AtomicString& type,
+                        const RegisterTimelineEventInit& initializer);
+
+  String m_timelineSelector;
+  uint32_t m_unitsPerTick;
+  uint32_t m_unitsPerSecond;
+  uint64_t m_contentTime;
+  unsigned short m_timelineState;
+};
+
+}  // namespace blink
+
+#endif  // RegisterTimelineEvent_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/StringChangeEvent.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/StringChangeEvent.h
new file mode 100644 (file)
index 0000000..e4ffbdf
--- /dev/null
@@ -0,0 +1,43 @@
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef StringChangeEvent_h
+#define StringChangeEvent_h
+
+#include "core/CoreExport.h"
+#include "core/events/Event.h"
+#include "core/html/StringChangeEventInit.h"
+
+namespace blink {
+
+class CORE_EXPORT StringChangeEvent final : public Event {
+  DEFINE_WRAPPERTYPEINFO();
+
+ public:
+  ~StringChangeEvent() override;
+
+  static StringChangeEvent* create() { return new StringChangeEvent; }
+
+  static StringChangeEvent* create(const AtomicString& type,
+                                   const StringChangeEventInit& initializer) {
+    return new StringChangeEvent(type, initializer);
+  }
+
+  const AtomicString& interfaceName() const override;
+
+  String str() const { return m_str; }
+
+  DECLARE_VIRTUAL_TRACE();
+
+ private:
+  StringChangeEvent();
+  StringChangeEvent(const AtomicString& type,
+                    const StringChangeEventInit& initializer);
+
+  String m_str;
+};
+
+}  // namespace blink
+
+#endif  // SyncTimelineEvent_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/SyncTimelineEvent.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/html/SyncTimelineEvent.h
new file mode 100644 (file)
index 0000000..c453c1d
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SyncTimelineEvent_h
+#define SyncTimelineEvent_h
+
+#include "core/CoreExport.h"
+#include "core/events/Event.h"
+#include "core/html/SyncTimelineEventInit.h"
+
+namespace blink {
+
+class CORE_EXPORT SyncTimelineEvent final : public Event {
+  DEFINE_WRAPPERTYPEINFO();
+
+ public:
+  ~SyncTimelineEvent() override;
+
+  static SyncTimelineEvent* create() { return new SyncTimelineEvent; }
+
+  static SyncTimelineEvent* create(const AtomicString& type,
+                                   const SyncTimelineEventInit& initializer) {
+    return new SyncTimelineEvent(type, initializer);
+  }
+
+  const AtomicString& interfaceName() const override;
+
+  String timelineSelector() const { return m_timelineSelector; }
+  unsigned short sync() const { return m_sync; }
+
+  DECLARE_VIRTUAL_TRACE();
+
+ private:
+  SyncTimelineEvent();
+  SyncTimelineEvent(const AtomicString& type,
+                    const SyncTimelineEventInit& initializer);
+
+  String m_timelineSelector;
+  unsigned short m_sync;
+};
+
+}  // namespace blink
+
+#endif  // SyncTimelineEvent_h
index 207bd11..1773481 100644 (file)
@@ -65,6 +65,10 @@ enum MediaControlElementType {
   MediaVolumeSliderThumb,
   MediaFullscreenVolumeSlider,
   MediaFullscreenVolumeSliderThumb,
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  MediaBrightnessButton,
+  MediaBrightnessSlider,
+#endif
   MediaExitFullscreenButton,
   MediaOverlayPlayButton,
 #if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
@@ -80,6 +84,17 @@ enum MediaControlElementType {
 #if defined(TIZEN_MULTIMEDIA_SUPPORT)
   MediaOverlaySpinner,
 #endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+  MediaFocusEnterFullscreenButton,
+  MediaFocusExitFullscreenButton,
+  MediaFocusPlayButton,
+  MediaFocusPauseButton,
+};
+enum MouseEventType {
+  MouseOut = 0,
+  MouseOver,
+  MouseClick,
+#endif
 };
 
 CORE_EXPORT const HTMLMediaElement* toParentMediaElement(const Node*);
index 84dbc89..2a9f7c5 100644 (file)
@@ -101,10 +101,17 @@ class MediaControlMuteButtonElement final : public MediaControlInputElement {
 
   bool hasOverflowButton() override { return true; }
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void setFullScreenShadowPseudoId();
+  void setVisibility(bool visible);
+#endif
  private:
   explicit MediaControlMuteButtonElement(MediaControls&);
 
   void defaultEventHandler(Event*) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  bool m_visible = false;
+#endif
 };
 
 // ----------------------------
@@ -124,6 +131,9 @@ class MediaControlPlayButtonElement final : public MediaControlInputElement {
   explicit MediaControlPlayButtonElement(MediaControls&);
 
   void defaultEventHandler(Event*) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  MouseEventType m_mouseEventType;
+#endif
 };
 
 // ----------------------------
@@ -339,11 +349,17 @@ class MediaControlFullscreenButtonElement final
   WebLocalizedString::Name getOverflowStringName() override;
 
   bool hasOverflowButton() override { return true; }
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void updateDisplayType() override;
+#endif
  private:
   explicit MediaControlFullscreenButtonElement(MediaControls&);
 
   void defaultEventHandler(Event*) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  MouseEventType m_mouseEventType;
+  bool m_isFullscreen;
+#endif
 };
 
 // ----------------------------
@@ -399,13 +415,61 @@ class MediaControlVolumeSliderElement final : public MediaControlInputElement {
   bool willRespondToMouseMoveEvents() override;
   bool willRespondToMouseClickEvents() override;
   void setVolume(double);
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void setVisibility(bool visible);
+  void setFullScreenShadowPseudoId();
+#endif
 
  private:
   explicit MediaControlVolumeSliderElement(MediaControls&);
 
   void defaultEventHandler(Event*) override;
   bool keepEventInNode(Event*) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  bool m_visible = false;
+#endif
+};
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+class MediaControlBrightnessButtonElement final
+    : public MediaControlInputElement {
+ public:
+  static MediaControlBrightnessButtonElement* create(
+      MediaControls& mediaControls);
+
+  bool willRespondToMouseClickEvents() override { return true; }
+  void updateDisplayType() override {}
+  void setVisibility(bool visible);
+
+ private:
+  explicit MediaControlBrightnessButtonElement(MediaControls&);
+
+  void defaultEventHandler(Event*) override;
+  bool m_visible = false;
+};
+
+class MediaControlBrightnessSliderElement final
+    : public MediaControlInputElement {
+ public:
+  static MediaControlBrightnessSliderElement* create(
+      MediaControls& mediaControls);
+
+  bool willRespondToMouseMoveEvents() override;
+  bool willRespondToMouseClickEvents() override;
+  void setBrightness(double);
+  double getBrightness();
+  void initSystemBrightness(int);
+  void setFullScreenShadowPseudoId();
+  void setVisibility(bool visible);
+
+ private:
+  explicit MediaControlBrightnessSliderElement(MediaControls&);
+
+  void defaultEventHandler(Event*) override;
+  bool keepEventInNode(Event*) override;
+  bool m_visible = false;
 };
+#endif
 
 // ----------------------------
 
index 3ecd2fa..0cd7def 100644 (file)
@@ -57,6 +57,17 @@ class CORE_EXPORT MediaControls final : public HTMLDivElement {
 
   void updateCurrentTimeDisplay();
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void updateVolumeSliderDisplay();
+  void hideVolumeSlider();
+  void showVolumeSlider();
+  void updateSystemVolume();
+
+  void updateBrightnessButtonDisplay();
+  void updateBrightnessSliderDisplay();
+  void updateBrightness();
+  void initSystemBrightness();
+#endif
   void changedClosedCaptionsVisibility();
   void refreshClosedCaptionsButtonVisibility();
   void toggleTextTrackList();
@@ -110,7 +121,9 @@ class CORE_EXPORT MediaControls final : public HTMLDivElement {
   void stopSpinner();
   int getSpinnerProgressCount() const;
   void setSpinnerProgressCount(int);
+#endif
 
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void systemVolumeChanged();
 #endif
 
@@ -192,6 +205,12 @@ class CORE_EXPORT MediaControls final : public HTMLDivElement {
   Member<MediaControlTimeRemainingDisplayElement> m_durationDisplay;
   Member<MediaControlMuteButtonElement> m_muteButton;
   Member<MediaControlVolumeSliderElement> m_volumeSlider;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  Member<MediaControlVolumeSliderElement> m_fullScreenVolumeSlider;
+  Member<MediaControlMuteButtonElement> m_fullScreenMuteButton;
+  Member<MediaControlBrightnessSliderElement> m_fullScreenBrightnessSlider;
+  Member<MediaControlBrightnessButtonElement> m_fullScreenBrightnessButton;
+#endif
   Member<MediaControlToggleClosedCaptionsButtonElement>
       m_toggleClosedCaptionsButton;
   Member<MediaControlTextTrackListElement> m_textTrackList;
index bc4b4f2..88e4a92 100644 (file)
@@ -33,6 +33,9 @@
 #include "core/html/track/TrackBase.h"
 #include "platform/heap/Handle.h"
 #include "wtf/text/WTFString.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "platform/weborigin/KURL.h"
+#endif
 
 namespace blink {
 
@@ -132,11 +135,15 @@ class CORE_EXPORT TextTrack : public EventTargetWithInlineData,
   ExecutionContext* getExecutionContext() const override;
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void setSrcUrl(const KURL&);
+  const KURL& srcUrl() const { return m_srcUrl; }
+  virtual bool isTTML() { return m_isTTML; }
   TextTrackCue* findCue(unsigned int id);
   void addCue(double start_time,
               double end_time,
               unsigned int id,
               std::string& data);
+  bool isDisabledByUser();
 #endif
 
   DECLARE_VIRTUAL_TRACE();
@@ -168,6 +175,11 @@ class CORE_EXPORT TextTrack : public EventTargetWithInlineData,
   ReadinessState m_readinessState;
   int m_trackIndex;
   int m_renderedTrackIndex;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  KURL m_srcUrl;
+  bool m_isTTML;
+  bool m_isDisabledByUser;
+#endif
   bool m_hasBeenConfigured;
 };
 
index e893856..6f09ca9 100644 (file)
@@ -68,6 +68,10 @@ class CORE_EXPORT TextTrackList final : public EventTargetWithInlineData {
 
   HTMLMediaElement* owner() const;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool isAllDisabled();
+#endif
+
   void scheduleChangeEvent();
   void removeAllInbandTracks();
 
index b29f787..abacde9 100644 (file)
@@ -244,6 +244,8 @@ class CORE_EXPORT EventHandler final
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool scrollWithMultiplier(const ScrollOffset& scrollOffset, Node* startNode);
+  bool pressedScrollbar() const { return m_pressedScrollbar; }
+  bool mousePressEventSwallowed() const { return m_mousePressEventSwallowed; }
 #endif
 
   // FIXME(nzolghadr): This function is technically a private function of
@@ -412,6 +414,8 @@ class CORE_EXPORT EventHandler final
 #endif
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool m_handledMouseLeftButtonPressEvent;
+  bool m_pressedScrollbar;
+  bool m_mousePressEventSwallowed;
 #endif
 };
 
index f7fe1a9..8726467 100644 (file)
@@ -157,6 +157,10 @@ class CORE_EXPORT HitTestResult {
 
   bool isOverLink() const;
 
+#if defined(OS_TIZEN)
+  bool canPlayLinkEffect() const;
+#endif
+
   bool isCacheable() const { return m_cacheable; }
   void setCacheable(bool cacheable) { m_cacheable = cacheable; }
 
index 6e9ae47..f1f9ef4 100644 (file)
@@ -138,6 +138,12 @@ class CORE_EXPORT LayoutBlock : public LayoutBox {
                                             LayoutUnit replacedHeight) const;
 
   bool createsNewFormattingContext() const;
+#if defined(OS_TIZEN)
+  // This function is used in compatibility mode instead of
+  // createsNewFormattingContext()
+  // for computing marging collapse like webkit.
+  bool createsNewFormattingContextInWebkitCompatibility() const;
+#endif
 
   const char* name() const override;
 
index 293ed14..75bd28f 100644 (file)
@@ -219,8 +219,8 @@ class CORE_EXPORT DocumentThreadableLoader final : public ThreadableLoader,
   ResourceRequest m_actualRequest;
   ResourceLoaderOptions m_actualOptions;
 
-  // stores simple request headers in case of a cross-origin redirect.
-  HTTPHeaderMap m_simpleRequestHeaders;
+  // stores request headers in case of a cross-origin redirect.
+  HTTPHeaderMap m_requestHeaders;
 
   Timer<DocumentThreadableLoader> m_timeoutTimer;
   double
index 2368faa..db943fb 100644 (file)
@@ -362,14 +362,13 @@ class CORE_EXPORT FrameLoaderClient : public FrameClient {
   // returned if the URL is not overriden.
   virtual KURL overrideFlashEmbedWithHTML(const KURL&) { return KURL(); }
 
-#if defined(TIZEN_VIDEO_HOLE)
-  virtual void setPresetDisableVideoHole(LocalFrame*, bool) { }
-#endif
-
 #if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
   virtual void requestRotateWebMediaPlayer(LocalFrame* frame,
                                            WebMediaPlayerRotate rotate) { }
 #endif
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void checkHLSSupport(const String&, bool&) {}
+#endif
 };
 
 }  // namespace blink
index b0dced7..eb713c2 100644 (file)
 #include "core/fetch/ResourceClient.h"
 #include "core/fetch/TextResource.h"
 
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
 namespace blink {
 
 enum class ScriptIntegrityDisposition { NotChecked = 0, Failed, Passed };
@@ -71,7 +75,11 @@ class CORE_EXPORT ScriptResource final : public TextResource {
 
   void destroyDecodedDataForFailedRevalidation() override;
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  const CompressibleString& script();
+#else
   const String& script();
+#endif
 
   bool mimeTypeAllowedByNosniff() const;
 
@@ -91,7 +99,11 @@ class CORE_EXPORT ScriptResource final : public TextResource {
                  const ResourceLoaderOptions&,
                  const String& charset);
 
+#if defined(ENABLE_STRING_COMPRESSION)
+  CompressibleString m_script;
+#else
   AtomicString m_script;
+#endif
 };
 
 DEFINE_RESOURCE_TYPE_CASTS(Script);
index 0f9f8e4..449719a 100644 (file)
@@ -63,6 +63,7 @@ class HTMLInputElement;
 class HTMLSelectElement;
 class HitTestResult;
 class IntRect;
+class KURL;
 class KeyboardEvent;
 class LocalFrame;
 class Node;
@@ -81,6 +82,10 @@ struct ViewportDescription;
 struct WebPoint;
 struct WindowFeatures;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+class HTMLVideoElement;
+#endif
+
 class CORE_EXPORT ChromeClient : public HostWindow {
  public:
   virtual void chromeDestroyed() = 0;
@@ -234,6 +239,8 @@ class CORE_EXPORT ChromeClient : public HostWindow {
   // user.
   virtual void enumerateChosenDirectory(FileChooser*) = 0;
 
+  virtual void notifyUrlForPlayingVideo(const KURL& url){};
+
   // Pass nullptr as the GraphicsLayer to detach the root layer.
   // This sets the graphics layer for the LocalFrame's WebWidget, if it has
   // one. Otherwise it sets it for the WebViewImpl.
@@ -343,6 +350,7 @@ class CORE_EXPORT ChromeClient : public HostWindow {
 #if defined(OS_TIZEN_TV_PRODUCT)
   virtual void thumbPartFocusChanged(ScrollbarOrientation, bool) const {}
   virtual void runArrowScroll() const {}
+  virtual void setVideo360(HTMLVideoElement*) {}
 #endif
 #if defined(TIZEN_ATK_FEATURE_VD)
   virtual void moveFocusToBrowser(int direction) const {}
index 3ceb229..ef6b723 100644 (file)
@@ -60,6 +60,7 @@ class EditorClient;
 class FocusController;
 class Frame;
 class FrameHost;
+class KURL;
 class PluginData;
 class PointerLockController;
 class ScrollingCoordinator;
@@ -234,6 +235,7 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
 
   ViewMode viewMode() const { return m_viewMode; }
   void setViewMode(ViewMode);
+  void notifyUrlForPlayingVideo(const KURL& url);
 #if defined(USE_EFL)
   void setLongPollingGlobalTimeout(unsigned long timeout);
   unsigned long getLongPollingGlobalTimeout();
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/page/scrolling/ScrollLayerAnimationController.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/core/page/scrolling/ScrollLayerAnimationController.h
new file mode 100644 (file)
index 0000000..0291c10
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+*   Copyright (C) 2017 Samsung Electronics
+*
+*   This library is free software; you can redistribute it and/or
+*   modify it under the terms of the GNU Library General Public
+*   License as published by the Free Software Foundation; either
+*   version 2 of the License, or (at your option) any later version.
+*
+*   This library is distributed in the hope that it will be useful,
+*   but WITHOUT ANY WARRANTY; without even the implied warranty of
+*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+*   Library General Public License for more details.
+*
+*   You should have received a copy of the GNU Library General Public License
+*   along with this library; see the file COPYING.LIB.  If not, write to
+*   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+*   Boston, MA 02110-1301, USA.
+*/
+
+#ifndef ScrollLayerAnimationController_h
+#define ScrollLayerAnimationController_h
+
+#include "platform/Timer.h"
+#include "platform/graphics/GraphicsLayer.h"
+
+namespace blink {
+class GraphicsLayer;
+
+class ScrollLayerAnimationController {
+ public:
+  ScrollLayerAnimationController();
+  ~ScrollLayerAnimationController();
+
+  void showOverflowScrollLayer(GraphicsLayer* layer);
+  void clear();
+
+ private:
+  void fadeAnimationTimerFired(TimerBase*);
+  GraphicsLayer* m_layer;
+
+  Timer<ScrollLayerAnimationController> m_timer;
+};
+
+}  // namespace blink
+
+#endif  // ScrollLayerAnimationController_h
index e874663..e985f2e 100644 (file)
 #define ScrollingCoordinator_h
 
 #include "core/CoreExport.h"
+#if defined(OS_TIZEN)
+#include "core/frame/VisualViewport.h"
+#include "core/page/scrolling/ScrollLayerAnimationController.h"
+#endif
 #include "core/paint/LayerHitTestRects.h"
 #include "platform/PlatformWheelEvent.h"
 #include "platform/geometry/IntRect.h"
@@ -191,7 +195,11 @@ class CORE_EXPORT ScrollingCoordinator final
   ScrollbarMap m_verticalScrollbars;
   HashSet<const PaintLayer*> m_layersWithTouchRects;
   bool m_wasFrameScrollable;
-
+#if defined(OS_TIZEN)
+  RefPtr<CircleImage> m_image;
+  ScrollLayerAnimationController m_horizontalScrollLayerAnimator;
+  ScrollLayerAnimationController m_verticalScrollLayerAnimator;
+#endif
   MainThreadScrollingReasons m_lastMainThreadScrollingReasons;
 };
 
index e0922d6..0bf9a3b 100644 (file)
@@ -71,6 +71,13 @@ class MediaControlsPainter {
   static bool paintMediaVolumeSliderThumb(const LayoutObject&,
                                           const PaintInfo&,
                                           const IntRect&);
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  static bool paintMediaBrightnessButton(const LayoutObject&,
+                                         const PaintInfo&,
+                                         const IntRect&);
+#endif
+
   static bool paintMediaFullscreenButton(const LayoutObject&,
                                          const PaintInfo&,
                                          const IntRect&);
index df1df81..dcd7b52 100644 (file)
@@ -25,6 +25,9 @@
 
 #include "platform/ThemeTypes.h"
 #include "wtf/Allocator.h"
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "core/html/shadow/MediaControlElementTypes.h"
+#endif
 
 namespace blink {
 
@@ -54,6 +57,11 @@ class ThemePainter {
   }
   void paintSliderTicks(const LayoutObject&, const PaintInfo&, const IntRect&);
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual MouseEventType mediaThumbFocused() { return MouseOut; }
+  virtual void setMediaThumbMouseEvent(MouseEventType mediaThumbMouseFocused) {}
+#endif
+
 #if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
   virtual bool paintMediaRotateButton(const LayoutObject&,
                                       const PaintInfo&,
index 48c2190..74f0ef7 100644 (file)
@@ -39,6 +39,10 @@ class LayoutBox;
 class ThemePainterDefault final : public ThemePainter {
  public:
   ThemePainterDefault();
+#if defined(OS_TIZEN_TV_PRODUCT)
+  MouseEventType mediaThumbFocused() override;
+  void setMediaThumbMouseEvent(MouseEventType mediaThumbMouseFocused) override;
+#endif
 
  private:
   bool paintCheckbox(const LayoutObject&,
@@ -84,6 +88,9 @@ class ThemePainterDefault final : public ThemePainter {
   void setupMenuListArrow(const LayoutBox&,
                           const IntRect&,
                           WebThemeEngine::ExtraParams&);
+#if defined(OS_TIZEN_TV_PRODUCT)
+  MouseEventType m_mediaThumbMouseFocused;
+#endif
 };
 
 }  // namespace blink
index de8c1fd..12e104b 100644 (file)
 #include "bindings/core/v8/TraceWrapperMember.h"
 #include "core/dom/ActiveDOMObject.h"
 #include "core/dom/DocumentParserClient.h"
+#include "core/loader/ThreadableLoader.h"
 #include "core/loader/ThreadableLoaderClient.h"
 #include "core/xmlhttprequest/XMLHttpRequestEventTarget.h"
 #include "core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h"
 #include "platform/heap/Handle.h"
 #include "platform/network/EncodedFormData.h"
 #include "platform/network/HTTPHeaderMap.h"
+#include "platform/network/ResourceRequest.h"
 #include "platform/network/ResourceResponse.h"
+#include "platform/Timer.h"
 #include "platform/weborigin/KURL.h"
 #include "platform/weborigin/SecurityOrigin.h"
 #include "wtf/Forward.h"
@@ -247,6 +250,10 @@ class XMLHttpRequest final : public XMLHttpRequestEventTarget,
   void clearResponse();
   void clearRequest();
 
+#if defined(OS_TIZEN)
+  void AsyncStartTimerFired(TimerBase*);
+#endif
+
   void createRequest(PassRefPtr<EncodedFormData>, ExceptionState&);
 
   // Dispatches a response ProgressEvent.
@@ -337,6 +344,13 @@ class XMLHttpRequest final : public XMLHttpRequestEventTarget,
   bool m_downloadingToFile;
   bool m_responseTextOverflow;
   bool m_sendFlag;
+
+#if defined(OS_TIZEN)
+  Timer<XMLHttpRequest> m_asyncStartTimer;
+  ResourceRequest m_asyncRequest;
+  ThreadableLoaderOptions m_asyncOptions;
+  ResourceLoaderOptions m_asyncResourceLoaderOptions;
+#endif
 };
 
 std::ostream& operator<<(std::ostream&, const XMLHttpRequest*);
index 69ebc35..fe21808 100644 (file)
@@ -680,6 +680,16 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> {
   bool ancestorExposesActiveDescendant() const;
   bool computeAncestorExposesActiveDescendant() const;
 
+#if defined(TIZEN_ATK_FEATURE_VD)
+  bool isWidget() const;
+  bool isComposite() const;
+  bool isTextObjectType() const;
+  bool isSection() const;
+  bool hasOnlyTextChildren();
+  bool hasTextInChildren();
+  bool hasText();
+#endif
+
   //
   // Accessible name calculation
   //
index 2e1f33e..8e43a5f 100644 (file)
@@ -92,6 +92,10 @@ class MODULES_EXPORT AudioBuffer final : public GarbageCollected<AudioBuffer>,
 
   void zero();
 
+  // Added for backward compatibility.
+  double gain() const { return m_gain; }
+  void setGain(double gain) { m_gain = gain; }
+
   DEFINE_INLINE_TRACE() { visitor->trace(m_channels); }
 
  private:
@@ -107,6 +111,9 @@ class MODULES_EXPORT AudioBuffer final : public GarbageCollected<AudioBuffer>,
   float m_sampleRate;
   size_t m_length;
 
+  // Added for backward compatibility.
+  double m_gain;  // scalar gain
+
   HeapVector<Member<DOMFloat32Array>> m_channels;
 };
 
index 16b1538..264a2a9 100644 (file)
@@ -52,7 +52,8 @@ class AudioBufferSourceHandler final : public AudioScheduledSourceHandler {
       AudioNode&,
       float sampleRate,
       AudioParamHandler& playbackRate,
-      AudioParamHandler& detune);
+      AudioParamHandler& detune,
+      AudioParamHandler& gain);
   ~AudioBufferSourceHandler() override;
 
   // AudioHandler
@@ -101,7 +102,8 @@ class AudioBufferSourceHandler final : public AudioScheduledSourceHandler {
   AudioBufferSourceHandler(AudioNode&,
                            float sampleRate,
                            AudioParamHandler& playbackRate,
-                           AudioParamHandler& detune);
+                           AudioParamHandler& detune,
+                           AudioParamHandler& gain);
   void startSource(double when,
                    double grainOffset,
                    double grainDuration,
@@ -163,6 +165,13 @@ class AudioBufferSourceHandler final : public AudioScheduledSourceHandler {
 
   // The minimum playbackRate value ever used for this source.
   double m_minPlaybackRate;
+
+#if defined(OS_TIZEN)
+  // Added for backward compatibility.
+  float m_lastGain;  // for de-zippering
+#endif
+
+  RefPtr<AudioParamHandler> m_gain;
 };
 
 class AudioBufferSourceNode final : public AudioScheduledSourceNode {
@@ -195,11 +204,17 @@ class AudioBufferSourceNode final : public AudioScheduledSourceNode {
              double grainDuration,
              ExceptionState&);
 
+  // Added for backward compatibility.
+  AudioParam* gain() const;
+
  private:
   AudioBufferSourceNode(BaseAudioContext&);
 
   Member<AudioParam> m_playbackRate;
   Member<AudioParam> m_detune;
+
+  // Added for backward compatibility.
+  Member<AudioParam> m_gain;
 };
 
 }  // namespace blink
index f52ed1f..901f897 100644 (file)
@@ -82,6 +82,7 @@ enum AudioParamType {
   ParamTypeAudioListenerUpY,
   ParamTypeAudioListenerUpZ,
   ParamTypeConstantSourceValue,
+  ParamTypeAudioBufferSourceGain,
 };
 
 // AudioParamHandler is an actual implementation of web-exposed AudioParam
index 2fcd6bd..7caf138 100644 (file)
@@ -129,6 +129,28 @@ class AudioScheduledSourceNode : public AudioSourceNode,
   USING_GARBAGE_COLLECTED_MIXIN(AudioScheduledSourceNode);
 
  public:
+  // These are the possible states an AudioScheduledSourceNode can be in:
+  //
+  // kUnscheduledState - Initial playback state. Created, but not yet scheduled.
+  // kScheduledState - Scheduled to play (via start()), but not yet playing.
+  // kPlayingState - Generating sound.
+  // kFinishedState - Finished generating sound.
+  //
+  // The state can only transition to the next state, except for the
+  // kFinishedState which can never be changed.
+  enum PlaybackState {
+    // These must be defined with the same names and values as in the .idl file.
+    kUnscheduledState = 0,
+    kScheduledState = 1,
+    kPlayingState = 2,
+    kFinishedState = 3
+  };
+
+  PlaybackState playbackState() const {
+    return static_cast<AudioScheduledSourceNode::PlaybackState>(
+        audioScheduledSourceHandler().playbackState());
+  }
+
   void start(ExceptionState&);
   void start(double when, ExceptionState&);
   void stop(ExceptionState&);
index 17bc6bc..88b4930 100644 (file)
@@ -465,7 +465,6 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
                      ImageBitmap*,
                      ExceptionState&);
 
-  // TODO(zmo): Obsolete, remove after WebGL2 conformance tests are updated.
   void texImage2D(GLenum,
                   GLint,
                   GLint,
@@ -484,15 +483,6 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
                      GLenum,
                      GLenum,
                      DOMArrayBufferView*);
-  void texSubImage3D(GLenum,
-                     GLint,
-                     GLint,
-                     GLint,
-                     GLint,
-                     GLenum,
-                     GLenum,
-                     ImageBitmap*,
-                     ExceptionState&);
 
   void copyTexSubImage3D(GLenum,
                          GLint,
@@ -545,6 +535,43 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
                                DOMArrayBufferView*,
                                GLuint,
                                GLuint);
+  void compressedTexImage2D(GLenum target,
+                            GLint level,
+                            GLenum internalformat,
+                            GLsizei width,
+                            GLsizei height,
+                            GLint border,
+                            GLsizei imageSize,
+                            GLintptr offset);
+  void compressedTexSubImage2D(GLenum target,
+                               GLint level,
+                               GLint xoffset,
+                               GLint yoffset,
+                               GLsizei width,
+                               GLsizei height,
+                               GLenum format,
+                               GLsizei imageSize,
+                               GLintptr offset);
+  void compressedTexImage3D(GLenum target,
+                            GLint level,
+                            GLenum internalformat,
+                            GLsizei width,
+                            GLsizei height,
+                            GLsizei depth,
+                            GLint border,
+                            GLsizei imageSize,
+                            GLintptr offset);
+  void compressedTexSubImage3D(GLenum target,
+                               GLint level,
+                               GLint xoffset,
+                               GLint yoffset,
+                               GLint zoffset,
+                               GLsizei width,
+                               GLsizei height,
+                               GLsizei depth,
+                               GLenum format,
+                               GLsizei imageSize,
+                               GLintptr offset);
 
   // Have to re-declare/re-define the following compressedTex{Sub}Image2D
   // functions from the base class. This is because the above
@@ -573,50 +600,217 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
   void uniform2ui(const WebGLUniformLocation*, GLuint, GLuint);
   void uniform3ui(const WebGLUniformLocation*, GLuint, GLuint, GLuint);
   void uniform4ui(const WebGLUniformLocation*, GLuint, GLuint, GLuint, GLuint);
-  void uniform1uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
-  void uniform1uiv(const WebGLUniformLocation*, Vector<GLuint>&);
-  void uniform2uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
-  void uniform2uiv(const WebGLUniformLocation*, Vector<GLuint>&);
-  void uniform3uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
-  void uniform3uiv(const WebGLUniformLocation*, Vector<GLuint>&);
-  void uniform4uiv(const WebGLUniformLocation*, const FlexibleUint32ArrayView&);
-  void uniform4uiv(const WebGLUniformLocation*, Vector<GLuint>&);
+  void uniform1fv(const WebGLUniformLocation*,
+                  const FlexibleFloat32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform1fv(const WebGLUniformLocation*,
+                  Vector<GLfloat>&,
+                  GLuint,
+                  GLuint);
+  void uniform2fv(const WebGLUniformLocation*,
+                  const FlexibleFloat32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform2fv(const WebGLUniformLocation*,
+                  Vector<GLfloat>&,
+                  GLuint,
+                  GLuint);
+  void uniform3fv(const WebGLUniformLocation*,
+                  const FlexibleFloat32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform3fv(const WebGLUniformLocation*,
+                  Vector<GLfloat>&,
+                  GLuint,
+                  GLuint);
+  void uniform4fv(const WebGLUniformLocation*,
+                  const FlexibleFloat32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform4fv(const WebGLUniformLocation*,
+                  Vector<GLfloat>&,
+                  GLuint,
+                  GLuint);
+  void uniform1iv(const WebGLUniformLocation*,
+                  const FlexibleInt32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform1iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+  void uniform2iv(const WebGLUniformLocation*,
+                  const FlexibleInt32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform2iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+  void uniform3iv(const WebGLUniformLocation*,
+                  const FlexibleInt32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform3iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+  void uniform4iv(const WebGLUniformLocation*,
+                  const FlexibleInt32ArrayView&,
+                  GLuint,
+                  GLuint);
+  void uniform4iv(const WebGLUniformLocation*, Vector<GLint>&, GLuint, GLuint);
+  void uniform1uiv(const WebGLUniformLocation*,
+                   const FlexibleUint32ArrayView&,
+                   GLuint,
+                   GLuint);
+  void uniform1uiv(const WebGLUniformLocation*,
+                   Vector<GLuint>&,
+                   GLuint,
+                   GLuint);
+  void uniform2uiv(const WebGLUniformLocation*,
+                   const FlexibleUint32ArrayView&,
+                   GLuint,
+                   GLuint);
+  void uniform2uiv(const WebGLUniformLocation*,
+                   Vector<GLuint>&,
+                   GLuint,
+                   GLuint);
+  void uniform3uiv(const WebGLUniformLocation*,
+                   const FlexibleUint32ArrayView&,
+                   GLuint,
+                   GLuint);
+  void uniform3uiv(const WebGLUniformLocation*,
+                   Vector<GLuint>&,
+                   GLuint,
+                   GLuint);
+  void uniform4uiv(const WebGLUniformLocation*,
+                   const FlexibleUint32ArrayView&,
+                   GLuint,
+                   GLuint);
+  void uniform4uiv(const WebGLUniformLocation*,
+                   Vector<GLuint>&,
+                   GLuint,
+                   GLuint);
+  void uniformMatrix2fv(const WebGLUniformLocation*,
+                        GLboolean,
+                        DOMFloat32Array*,
+                        GLuint,
+                        GLuint);
+  void uniformMatrix2fv(const WebGLUniformLocation*,
+                        GLboolean,
+                        Vector<GLfloat>&,
+                        GLuint,
+                        GLuint);
+  void uniformMatrix3fv(const WebGLUniformLocation*,
+                        GLboolean,
+                        DOMFloat32Array*,
+                        GLuint,
+                        GLuint);
+  void uniformMatrix3fv(const WebGLUniformLocation*,
+                        GLboolean,
+                        Vector<GLfloat>&,
+                        GLuint,
+                        GLuint);
+  void uniformMatrix4fv(const WebGLUniformLocation*,
+                        GLboolean,
+                        DOMFloat32Array*,
+                        GLuint,
+                        GLuint);
+  void uniformMatrix4fv(const WebGLUniformLocation*,
+                        GLboolean,
+                        Vector<GLfloat>&,
+                        GLuint,
+                        GLuint);
   void uniformMatrix2x3fv(const WebGLUniformLocation*,
                           GLboolean,
-                          DOMFloat32Array*);
+                          DOMFloat32Array*,
+                          GLuint,
+                          GLuint);
   void uniformMatrix2x3fv(const WebGLUniformLocation*,
                           GLboolean,
-                          Vector<GLfloat>&);
+                          Vector<GLfloat>&,
+                          GLuint,
+                          GLuint);
   void uniformMatrix3x2fv(const WebGLUniformLocation*,
                           GLboolean,
-                          DOMFloat32Array*);
+                          DOMFloat32Array*,
+                          GLuint,
+                          GLuint);
   void uniformMatrix3x2fv(const WebGLUniformLocation*,
                           GLboolean,
-                          Vector<GLfloat>&);
+                          Vector<GLfloat>&,
+                          GLuint,
+                          GLuint);
   void uniformMatrix2x4fv(const WebGLUniformLocation*,
                           GLboolean,
-                          DOMFloat32Array*);
+                          DOMFloat32Array*,
+                          GLuint,
+                          GLuint);
   void uniformMatrix2x4fv(const WebGLUniformLocation*,
                           GLboolean,
-                          Vector<GLfloat>&);
+                          Vector<GLfloat>&,
+                          GLuint,
+                          GLuint);
   void uniformMatrix4x2fv(const WebGLUniformLocation*,
                           GLboolean,
-                          DOMFloat32Array*);
+                          DOMFloat32Array*,
+                          GLuint,
+                          GLuint);
   void uniformMatrix4x2fv(const WebGLUniformLocation*,
                           GLboolean,
-                          Vector<GLfloat>&);
+                          Vector<GLfloat>&,
+                          GLuint,
+                          GLuint);
   void uniformMatrix3x4fv(const WebGLUniformLocation*,
                           GLboolean,
-                          DOMFloat32Array*);
+                          DOMFloat32Array*,
+                          GLuint,
+                          GLuint);
   void uniformMatrix3x4fv(const WebGLUniformLocation*,
                           GLboolean,
-                          Vector<GLfloat>&);
+                          Vector<GLfloat>&,
+                          GLuint,
+                          GLuint);
   void uniformMatrix4x3fv(const WebGLUniformLocation*,
                           GLboolean,
-                          DOMFloat32Array*);
+                          DOMFloat32Array*,
+                          GLuint,
+                          GLuint);
   void uniformMatrix4x3fv(const WebGLUniformLocation*,
                           GLboolean,
-                          Vector<GLfloat>&);
+                          Vector<GLfloat>&,
+                          GLuint,
+                          GLuint);
+  // Have to re-declare/re-define the following uniform*()
+  // functions from the base class. This is because the above
+  // uniform*() hide the name from base class.
+  void uniform1fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+  void uniform1fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+  void uniform2fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+  void uniform2fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+  void uniform3fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+  void uniform3fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+  void uniform4fv(const WebGLUniformLocation*, const FlexibleFloat32ArrayView&);
+  void uniform4fv(const WebGLUniformLocation*, Vector<GLfloat>&);
+  void uniform1iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+  void uniform1iv(const WebGLUniformLocation*, Vector<GLint>&);
+  void uniform2iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+  void uniform2iv(const WebGLUniformLocation*, Vector<GLint>&);
+  void uniform3iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+  void uniform3iv(const WebGLUniformLocation*, Vector<GLint>&);
+  void uniform4iv(const WebGLUniformLocation*, const FlexibleInt32ArrayView&);
+  void uniform4iv(const WebGLUniformLocation*, Vector<GLint>&);
+  void uniformMatrix2fv(const WebGLUniformLocation*,
+                        GLboolean transpose,
+                        DOMFloat32Array* value);
+  void uniformMatrix2fv(const WebGLUniformLocation*,
+                        GLboolean transpose,
+                        Vector<GLfloat>& value);
+  void uniformMatrix3fv(const WebGLUniformLocation*,
+                        GLboolean transpose,
+                        DOMFloat32Array* value);
+  void uniformMatrix3fv(const WebGLUniformLocation*,
+                        GLboolean transpose,
+                        Vector<GLfloat>& value);
+  void uniformMatrix4fv(const WebGLUniformLocation*,
+                        GLboolean transpose,
+                        DOMFloat32Array* value);
+  void uniformMatrix4fv(const WebGLUniformLocation*,
+                        GLboolean transpose,
+                        Vector<GLfloat>& value);
 
   void vertexAttribI4i(GLuint, GLint, GLint, GLint, GLint);
   void vertexAttribI4iv(GLuint, const DOMInt32Array*);
@@ -643,12 +837,12 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
 
   /* Multiple Render Targets */
   void drawBuffers(const Vector<GLenum>&);
-  void clearBufferiv(GLenum, GLint, DOMInt32Array*);
-  void clearBufferiv(GLenum, GLint, const Vector<GLint>&);
-  void clearBufferuiv(GLenum, GLint, DOMUint32Array*);
-  void clearBufferuiv(GLenum, GLint, const Vector<GLuint>&);
-  void clearBufferfv(GLenum, GLint, DOMFloat32Array*);
-  void clearBufferfv(GLenum, GLint, const Vector<GLfloat>&);
+  void clearBufferiv(GLenum, GLint, DOMInt32Array*, GLuint);
+  void clearBufferiv(GLenum, GLint, const Vector<GLint>&, GLuint);
+  void clearBufferuiv(GLenum, GLint, DOMUint32Array*, GLuint);
+  void clearBufferuiv(GLenum, GLint, const Vector<GLuint>&, GLuint);
+  void clearBufferfv(GLenum, GLint, DOMFloat32Array*, GLuint);
+  void clearBufferfv(GLenum, GLint, const Vector<GLfloat>&, GLuint);
   void clearBufferfi(GLenum, GLint, GLfloat, GLint);
 
   /* Query Objects */
@@ -778,7 +972,8 @@ class WebGL2RenderingContextBase : public WebGLRenderingContextBase {
 
   bool validateClearBuffer(const char* functionName,
                            GLenum buffer,
-                           GLsizei length);
+                           GLsizei length,
+                           GLuint src_offset);
 
   enum TexStorageType {
     TexStorageType2D,
index 7a8b9f4..5b85dca 100644 (file)
@@ -656,6 +656,9 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
   void DrawingBufferClientRestoreRenderbufferBinding() override;
   void DrawingBufferClientRestoreFramebufferBinding() override;
   void DrawingBufferClientRestorePixelUnpackBufferBinding() override;
+#if defined(TIZEN_CANVAS_HOLE)
+  void DrawingBufferClientCanvasRectChanged(const IntRect&) override;
+#endif
 
   void addSharedObject(WebGLSharedObject*);
   void addContextObject(WebGLContextObject*);
@@ -668,6 +671,10 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
 
   void notifyCanvasContextChanged();
 
+#if defined(TIZEN_CANVAS_HOLE)
+  void notifyCanvasRectChanged(const IntRect&);
+#endif
+
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
   void prepareOESTextureProgram(WebGLProgram*, bool);
   bool isEnabledOESEglImageExternal() {
@@ -961,16 +968,25 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
   bool m_isWebGLDepthTextureFormatsTypesAdded;
   bool m_isEXTsRGBFormatsTypesAdded;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool m_requestCanvasFullscreen;
+  bool m_enteredFullscreen;
+  HTMLVideoElement* m_video;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+  bool m_canvasHoleEnabled;
+#endif
+
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
   bool m_isOESTextureVideo;
   bool m_isFirstFrameOES;
   bool m_isEnabledOESEglImageExternal;
-  WebGLTexture* m_videoTexture;
-  WebGLTexture* m_videoTextureOES;
-  WebGLShader* m_videoFragmentShader;
-  WebGLShader* m_videoVertexShader;
-  WebGLProgram* m_videoProgram;
-  HTMLVideoElement* m_video;
+  TraceWrapperMember<WebGLTexture> m_videoTexture;
+  TraceWrapperMember<WebGLTexture> m_videoTextureOES;
+  TraceWrapperMember<WebGLShader> m_videoFragmentShader;
+  TraceWrapperMember<WebGLShader> m_videoVertexShader;
+  TraceWrapperMember<WebGLProgram> m_videoProgram;
   unsigned m_videoImageId;
 #endif
 
@@ -1070,10 +1086,11 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
     DCHECK(functionName);
     DCHECK(selectingSubRectangle);
     DCHECK(image);
-    *selectingSubRectangle = image &&
-                             !(subRect.x() == 0 && subRect.y() == 0 &&
-                               subRect.width() == image->width() &&
-                               subRect.height() == image->height());
+    int imageWidth = static_cast<int>(image->width());
+    int imageHeight = static_cast<int>(image->height());
+    *selectingSubRectangle =
+        !(subRect.x() == 0 && subRect.y() == 0 &&
+          subRect.width() == imageWidth && subRect.height() == imageHeight);
     // If the source image rect selects anything except the entire
     // contents of the image, assert that we're running WebGL 2.0 or
     // higher, since this should never happen for WebGL 1.0 (even though
@@ -1082,11 +1099,10 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
     DCHECK(!*selectingSubRectangle || isWebGL2OrHigher())
         << "subRect = (" << subRect.width() << " x " << subRect.height()
         << ") @ (" << subRect.x() << ", " << subRect.y() << "), image = ("
-        << (image ? image->width() : -1) << " x "
-        << (image ? image->height() : -1) << ")";
+        << imageWidth << " x " << imageHeight << ")";
 
-    if (subRect.x() < 0 || subRect.y() < 0 || subRect.maxX() > image->width() ||
-        subRect.maxY() > image->height() || subRect.width() < 0 ||
+    if (subRect.x() < 0 || subRect.y() < 0 || subRect.maxX() > imageWidth ||
+        subRect.maxY() > imageHeight || subRect.width() < 0 ||
         subRect.height() < 0) {
       synthesizeGLError(GL_INVALID_OPERATION, functionName,
                         "source sub-rectangle specified via pixel unpack "
@@ -1097,15 +1113,32 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
     if (functionID == TexImage3D || functionID == TexSubImage3D) {
       DCHECK_GE(unpackImageHeight, 0);
 
-      // Verify that the image data can cover the required depth.
-      WTF::CheckedNumeric<GLint> maxDepthSupported = 1;
+      if (depth < 1) {
+        synthesizeGLError(GL_INVALID_OPERATION, functionName,
+                          "Can't define a 3D texture with depth < 1");
+        return false;
+      }
+
+      // According to the WebGL 2.0 spec, specifying depth > 1 means
+      // to select multiple rectangles stacked vertically.
+      WTF::CheckedNumeric<GLint> maxYAccessed;
       if (unpackImageHeight) {
-        maxDepthSupported = subRect.height();
-        maxDepthSupported /= unpackImageHeight;
+        maxYAccessed = unpackImageHeight;
+      } else {
+        maxYAccessed = subRect.height();
       }
+      maxYAccessed *= depth - 1;
+      maxYAccessed += subRect.height();
+      maxYAccessed += subRect.y();
 
-      if (!maxDepthSupported.IsValid() ||
-          maxDepthSupported.ValueOrDie() < depth) {
+      if (!maxYAccessed.IsValid()) {
+        synthesizeGLError(GL_INVALID_OPERATION, functionName,
+                          "Out-of-range parameters passed for 3D texture "
+                          "upload");
+        return false;
+      }
+
+      if (maxYAccessed.ValueOrDie() > imageHeight) {
         synthesizeGLError(GL_INVALID_OPERATION, functionName,
                           "Not enough data supplied to upload to a 3D texture "
                           "with depth > 1");
@@ -1377,42 +1410,42 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
   // Helper function to validate input parameters for uniform functions.
   bool validateUniformParameters(const char* functionName,
                                  const WebGLUniformLocation*,
-                                 DOMFloat32Array*,
-                                 GLsizei mod);
-  bool validateUniformParameters(const char* functionName,
-                                 const WebGLUniformLocation*,
-                                 DOMInt32Array*,
-                                 GLsizei mod);
-  bool validateUniformParameters(const char* functionName,
-                                 const WebGLUniformLocation*,
                                  void*,
                                  GLsizei,
-                                 GLsizei mod);
+                                 GLsizei mod,
+                                 GLuint srcOffset,
+                                 GLuint srcLength);
   bool validateUniformMatrixParameters(const char* functionName,
                                        const WebGLUniformLocation*,
                                        GLboolean transpose,
                                        DOMFloat32Array*,
-                                       GLsizei mod);
+                                       GLsizei mod,
+                                       GLuint srcOffset,
+                                       GLuint srcLength);
   bool validateUniformMatrixParameters(const char* functionName,
                                        const WebGLUniformLocation*,
                                        GLboolean transpose,
                                        void*,
                                        GLsizei,
-                                       GLsizei mod);
+                                       GLsizei mod,
+                                       GLuint srcOffset,
+                                       GLuint srcLength);
 
   template <typename WTFTypedArray>
   bool validateUniformParameters(
       const char* functionName,
       const WebGLUniformLocation* location,
       const TypedFlexibleArrayBufferView<WTFTypedArray>& v,
-      GLsizei requiredMinSize) {
+      GLsizei requiredMinSize,
+      GLuint srcOffset,
+      GLuint srcLength) {
     if (!v.dataMaybeOnStack()) {
       synthesizeGLError(GL_INVALID_VALUE, functionName, "no array");
       return false;
     }
-    return validateUniformMatrixParameters(functionName, location, false,
-                                           v.dataMaybeOnStack(), v.length(),
-                                           requiredMinSize);
+    return validateUniformMatrixParameters(
+        functionName, location, false, v.dataMaybeOnStack(), v.length(),
+        requiredMinSize, srcOffset, srcLength);
   }
 
   // Helper function to validate the target for bufferData and
@@ -1631,6 +1664,9 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
                                  GLint,
                                  GLint,
                                  ImageBitmap*,
+                                 const IntRect&,
+                                 GLsizei,
+                                 GLint,
                                  ExceptionState&);
   static const char* getTexImageFunctionName(TexImageFunctionID);
   IntRect sentinelEmptyRect();
@@ -1658,7 +1694,13 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
                                 ScriptState*,
                                 const CanvasContextCreationAttributes&,
                                 unsigned);
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void enterFullscreen();
+#endif
+
   void texImageCanvasByGPU(HTMLCanvasElement*,
+                           GLenum,
                            GLuint,
                            GLenum,
                            GLenum,
@@ -1666,7 +1708,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
                            GLint,
                            GLint,
                            const IntRect& sourceSubRectangle);
-  void texImageBitmapByGPU(ImageBitmap*, GLuint, GLenum, GLenum, GLint, bool);
+  void texImageBitmapByGPU(ImageBitmap*, GLenum, GLuint, GLenum, GLenum,
+                           GLint, bool);
 
   const unsigned m_version;
 
index 6192744..5c7c026 100644 (file)
 #include "wtf/WeakPtr.h"
 #include <memory>
 
+#if defined(ENABLE_STRING_COMPRESSION)
+#include "wtf/text/CompressibleString.h"
+#endif
+
 class SkRefCnt;
 
 namespace WTF {
@@ -197,6 +201,15 @@ struct CrossThreadCopier<String> {
   PLATFORM_EXPORT static Type copy(const String&);
 };
 
+#if defined(ENABLE_STRING_COMPRESSION)
+template <>
+struct CrossThreadCopier<CompressibleString> {
+  STATIC_ONLY(CrossThreadCopier);
+  typedef CompressibleString Type;
+  PLATFORM_EXPORT static Type copy(const CompressibleString&);
+};
+#endif
+
 template <>
 struct CrossThreadCopier<ResourceError> {
   STATIC_ONLY(CrossThreadCopier);
index 761a70d..8fed0c1 100644 (file)
@@ -568,339 +568,363 @@ enum {
   VKEY_OEM_CLEAR = VK_OEM_CLEAR,
 
 #if defined(OS_TIZEN_TV_PRODUCT)
-    // VKEY_RED (193) Red key on tv remote.
-    VKEY_RED = VK_RED,
+  // VKEY_RED (193) Red key on tv remote.
+  VKEY_RED = VK_RED,
 
-    // VKEY_GREEN (194) Green key on tv remote.
-    VKEY_GREEN = VK_GREEN,
+  // VKEY_GREEN (194) Green key on tv remote.
+  VKEY_GREEN = VK_GREEN,
 
-    // VKEY_YELLOW (195) Yellow key on tv remote.
-    VKEY_YELLOW = VK_YELLOW,
+  // VKEY_YELLOW (195) Yellow key on tv remote.
+  VKEY_YELLOW = VK_YELLOW,
 
-    // VKEY_BLUE (196) Blue key on tv remote.
-    VKEY_BLUE = VK_BLUE,
+  // VKEY_BLUE (196) Blue key on tv remote.
+  VKEY_BLUE = VK_BLUE,
 
-    // VKEY_GREY (197) Grey key on tv remote.
-    VKEY_GREY = VK_GREY,
+  // VKEY_GREY (197) Grey key on tv remote.
+  VKEY_GREY = VK_GREY,
 
-    // VKEY_BROWN (198) Brown key on tv remote.
-    VKEY_BROWN = VK_BROWN,
+  // VKEY_BROWN (198) Brown key on tv remote.
+  VKEY_BROWN = VK_BROWN,
 
-    // VKEY_DTV_RETURN (2719) Return key on tv remote.
-    VKEY_DTV_RETURN = VK_DTV_RETURN,
+  // VKEY_DTV_RETURN (2719) Return key on tv remote.
+  VKEY_DTV_RETURN = VK_DTV_RETURN,
 
-    // VKEY_DTV_HOME (2757)
-    VKEY_DTV_HOME = VK_DTV_HOME,
+  // VKEY_DTV_HOME (2757)
+  VKEY_DTV_HOME = VK_DTV_HOME,
 
-    // VKEY_SOURCE (2758)
-    VKEY_SOURCE = VK_SOURCE,
+  // VKEY_SOURCE (2758)
+  VKEY_SOURCE = VK_SOURCE,
 
-    // VKEY_CH_LIST (2759)
-    VKEY_CH_LIST = VK_CH_LIST,
+  // VKEY_CH_LIST (2759)
+  VKEY_CH_LIST = VK_CH_LIST,
 
-    // VKEY_POWER (199)
-    VKEY_POWER = VK_POWER,
+  // VKEY_POWER (199)
+  VKEY_POWER = VK_POWER,
 
-    // VKEY_DTV_MENU (2795)
-    VKEY_DTV_MENU = VK_DTV_MENU,
+  // VKEY_DTV_MENU (2795)
+  VKEY_DTV_MENU = VK_DTV_MENU,
 
-    // VKEY_GUIDE (1CA)
-    VKEY_GUIDE = VK_GUIDE,
+  // VKEY_GUIDE (1CA)
+  VKEY_GUIDE = VK_GUIDE,
 
-    // VKEY_ADDDEL (1AD)
-    VKEY_ADDDEL = VK_ADDDEL,
+  // VKEY_ADDDEL (1AD)
+  VKEY_ADDDEL = VK_ADDDEL,
 
-    // VKEY_AUTO_PROGRAM (1B9)
-    VKEY_AUTO_PROGRAM = VK_AUTO_PROGRAM,
+  // VKEY_AUTO_PROGRAM (1B9)
+  VKEY_AUTO_PROGRAM = VK_AUTO_PROGRAM,
 
-    // VKEY_FAVCH (1B1)
-    VKEY_FAVCH = VK_FAVCH,
+  // VKEY_FAVCH (1B1)
+  VKEY_FAVCH = VK_FAVCH,
 
-    // VKEY_BT_DUALVIEW (1BB)
-    VKEY_BT_DUALVIEW = VK_BT_DUALVIEW,
+  // VKEY_BT_DUALVIEW (1BB)
+  VKEY_BT_DUALVIEW = VK_BT_DUALVIEW,
 
-    // VKEY_SUB_TITLE (1CC)
-    VKEY_SUB_TITLE = VK_SUB_TITLE,
+  // VKEY_SUB_TITLE (1CC)
+  VKEY_SUB_TITLE = VK_SUB_TITLE,
 
-    // VKEY_REWIND (19c) Rewind key on tv remote.
-    VKEY_REWIND = VK_REWIND,
+  // VKEY_REWIND (19c) Rewind key on tv remote.
+  VKEY_REWIND = VK_REWIND,
 
-    // VKEY_STOP (19D)
-    VKEY_STOP = VK_STOP,
+  // VKEY_STOP (19D)
+  VKEY_STOP = VK_STOP,
 
-    // VKEY_RECORD (1A0)
-    VKEY_RECORD = VK_RECORD,
+  // VKEY_RECORD (1A0)
+  VKEY_RECORD = VK_RECORD,
 
-    // VKEY_FAST_FWD (1a1) Fast forward key on tv remote.
-    VKEY_FAST_FWD = VK_FAST_FWD,
+  // VKEY_FAST_FWD (1a1) Fast forward key on tv remote.
+  VKEY_FAST_FWD = VK_FAST_FWD,
 
-    // VKEY_CHANNEL_UP (1ab) P+ key on tv remote.
-    VKEY_CHANNEL_UP = VK_CHANNEL_UP,
+  // VKEY_CHANNEL_UP (1ab) P+ key on tv remote.
+  VKEY_CHANNEL_UP = VK_CHANNEL_UP,
 
-    // VKEY_CHANNEL_DOWN (1ac) P- key on tv remote.
-    VKEY_CHANNEL_DOWN = VK_CHANNEL_DOWN,
+  // VKEY_CHANNEL_DOWN (1ac) P- key on tv remote.
+  VKEY_CHANNEL_DOWN = VK_CHANNEL_DOWN,
 
-    // VKEY_INFO (1C9)
-    VKEY_INFO = VK_INFO,
+  // VKEY_INFO (1C9)
+  VKEY_INFO = VK_INFO,
 
-    // VKEY_REPEAT (2799)
-    VKEY_REPEAT = VK_REPEAT,
+  // VKEY_REPEAT (2799)
+  VKEY_REPEAT = VK_REPEAT,
 
-    // VKEY_ASPECT (279C)
-    VKEY_ASPECT = VK_ASPECT,
+  // VKEY_ASPECT (279C)
+  VKEY_ASPECT = VK_ASPECT,
 
-    // VKEY_PMODE (279D)
-    VKEY_PMODE = VK_PMODE,
+  // VKEY_PMODE (279D)
+  VKEY_PMODE = VK_PMODE,
 
-    // VKEY_HDMI (279F)
-    VKEY_HDMI = VK_HDMI,
+  // VKEY_HDMI (279F)
+  VKEY_HDMI = VK_HDMI,
 
-    // VKEY_USBHUB_SWITCH (27A0)
-    VKEY_USBHUB_SWITCH = VK_USBHUB_SWITCH,
+  // VKEY_USBHUB_SWITCH (27A0)
+  VKEY_USBHUB_SWITCH = VK_USBHUB_SWITCH,
 
-    // VKEY_EMANUAL (27A2)
-    VKEY_EMANUAL = VK_EMANUAL,
+  // VKEY_EMANUAL (27A2)
+  VKEY_EMANUAL = VK_EMANUAL,
 
-    // VKEY_TOOLS (2797)
-    VKEY_TOOLS = VK_TOOLS,
+  // VKEY_TOOLS (2797)
+  VKEY_TOOLS = VK_TOOLS,
 
-    // VKEY_MORE (27A4)
-    VKEY_MORE = VK_MORE,
+  // VKEY_MORE (27A4)
+  VKEY_MORE = VK_MORE,
 
-    // VKEY_FACTORY (27A5)
-    VKEY_FACTORY = VK_FACTORY,
+  // VKEY_FACTORY (27A5)
+  VKEY_FACTORY = VK_FACTORY,
 
-    // VKEY_TV (27A9)
-    VKEY_TV = VK_TV,
+  // VKEY_TV (27A9)
+  VKEY_TV = VK_TV,
 
-    // VKEY_DTV (27AA)
-    VKEY_DTV = VK_DTV,
+  // VKEY_DTV (27AA)
+  VKEY_DTV = VK_DTV,
 
-    // VKEY_STB_POWER (27AB)
-    VKEY_STB_POWER = VK_STB_POWER,
+  // VKEY_STB_POWER (27AB)
+  VKEY_STB_POWER = VK_STB_POWER,
 
-    // VKEY_PANEL_DOWN (27AD)
-    VKEY_PANEL_DOWN = VK_PANEL_DOWN,
+  // VKEY_PANEL_DOWN (27AD)
+  VKEY_PANEL_DOWN = VK_PANEL_DOWN,
 
-    // VKEY_CONVERGENCE (27AE)
-    VKEY_CONVERGENCE = VK_CONVERGENCE,
+  // VKEY_CONVERGENCE (27AE)
+  VKEY_CONVERGENCE = VK_CONVERGENCE,
 
-    // VKEY_BT_COLOR_MECHA (27AF)
-    VKEY_BT_COLOR_MECHA = VK_BT_COLOR_MECHA,
+  // VKEY_BT_COLOR_MECHA (27AF)
+  VKEY_BT_COLOR_MECHA = VK_BT_COLOR_MECHA,
 
-    // VKEY_STILL_PICTURE (27B0)
-    VKEY_STILL_PICTURE = VK_STILL_PICTURE,
+  // VKEY_STILL_PICTURE (27B0)
+  VKEY_STILL_PICTURE = VK_STILL_PICTURE,
 
-    // VKEY_BT_TRIGGER (27B1)
-    VKEY_BT_TRIGGER = VK_BT_TRIGGER,
+  // VKEY_BT_TRIGGER (27B1)
+  VKEY_BT_TRIGGER = VK_BT_TRIGGER,
 
-    // VKEY_BT_HOTVK (27B2)
-    VKEY_BT_HOTVK = VK_BT_HOTVK,
+  // VKEY_BT_HOTVK (27B2)
+  VKEY_BT_HOTVK = VK_BT_HOTVK,
 
-    // VKEY_BT_DEVICE (27B3)
-    VKEY_BT_DEVICE = VK_BT_DEVICE,
+  // VKEY_BT_DEVICE (27B3)
+  VKEY_BT_DEVICE = VK_BT_DEVICE,
 
-    // VKEY_BT_CONTENTSBAR (27B4)
-    VKEY_BT_CONTENTSBAR = VK_BT_CONTENTSBAR,
+  // VKEY_BT_CONTENTSBAR (27B4)
+  VKEY_BT_CONTENTSBAR = VK_BT_CONTENTSBAR,
 
-    // VKEY_GAME (27B5)
-    VKEY_GAME = VK_GAME,
+  // VKEY_GAME (27B5)
+  VKEY_GAME = VK_GAME,
 
-    // VKEY_PIP_CHUP (27B7)
-    VKEY_PIP_CHUP = VK_PIP_CHUP,
+  // VKEY_PIP_CHUP (27B7)
+  VKEY_PIP_CHUP = VK_PIP_CHUP,
 
-    // VKEY_PIP_CHDOWN (27B8)
-    VKEY_PIP_CHDOWN = VK_PIP_CHDOWN,
+  // VKEY_PIP_CHDOWN (27B8)
+  VKEY_PIP_CHDOWN = VK_PIP_CHDOWN,
 
-    // VKEY_ANTENA (27B9)
-    VKEY_ANTENA = VK_ANTENA,
+  // VKEY_ANTENA (27B9)
+  VKEY_ANTENA = VK_ANTENA,
 
-    // VKEY_PANEL_ENTER (27BB)
-    VKEY_PANEL_ENTER = VK_PANEL_ENTER,
+  // VKEY_PANEL_ENTER (27BB)
+  VKEY_PANEL_ENTER = VK_PANEL_ENTER,
 
-    // VKEY_LINK (27BC)
-    VKEY_LINK = VK_LINK,
+  // VKEY_LINK (27BC)
+  VKEY_LINK = VK_LINK,
 
-    // VKEY_PANEL_UP (27BD)
-    VKEY_PANEL_UP = VK_PANEL_UP,
+  // VKEY_PANEL_UP (27BD)
+  VKEY_PANEL_UP = VK_PANEL_UP,
 
-    // VKEY_ANGLE (27C1)
-    VKEY_ANGLE = VK_ANGLE,
+  // VKEY_ANGLE (27C1)
+  VKEY_ANGLE = VK_ANGLE,
 
-    // VKEY_WHEEL_LEFT (27C2)
-    VKEY_WHEEL_LEFT = VK_WHEEL_LEFT,
+  // VKEY_WHEEL_LEFT (27C2)
+  VKEY_WHEEL_LEFT = VK_WHEEL_LEFT,
 
-    // VKEY_WHEEL_RIGHT (27C3)
-    VKEY_WHEEL_RIGHT = VK_WHEEL_RIGHT,
+  // VKEY_WHEEL_RIGHT (27C3)
+  VKEY_WHEEL_RIGHT = VK_WHEEL_RIGHT,
 
-    // VKEY_CONTENTS (2757)
-    VKEY_CONTENTS = VK_CONTENTS,
+  // VKEY_CONTENTS (2757)
+  VKEY_CONTENTS = VK_CONTENTS,
 
-    // VKEY_PANEL_EXIT (27C5)
-    VKEY_PANEL_EXIT = VK_PANEL_EXIT,
+  // VKEY_PANEL_EXIT (27C5)
+  VKEY_PANEL_EXIT = VK_PANEL_EXIT,
 
-    // VKEY_EXIT (27C6)
-    VKEY_EXIT = VK_EXIT,
+  // VKEY_EXIT (27C6)
+  VKEY_EXIT = VK_EXIT,
 
-    // VKEY_MBR_TV (27C7)
-    VKEY_MBR_TV = VK_MBR_TV,
+  // VKEY_MBR_TV (27C7)
+  VKEY_MBR_TV = VK_MBR_TV,
 
-    // VKEY_MBR_STB_GUIDE (27C8)
-    VKEY_MBR_STB_GUIDE = VK_MBR_STB_GUIDE,
+  // VKEY_MBR_STB_GUIDE (27C8)
+  VKEY_MBR_STB_GUIDE = VK_MBR_STB_GUIDE,
 
-    // VKEY_MBR_BD_POPUP (27C9)
-    VKEY_MBR_BD_POPUP = VK_MBR_BD_POPUP,
+  // VKEY_MBR_BD_POPUP (27C9)
+  VKEY_MBR_BD_POPUP = VK_MBR_BD_POPUP,
 
-    // VKEY_MBR_BDDVD_POWER (27CA)
-    VKEY_MBR_BDDVD_POWER = VK_MBR_BDDVD_POWER,
+  // VKEY_MBR_BDDVD_POWER (27CA)
+  VKEY_MBR_BDDVD_POWER = VK_MBR_BDDVD_POWER,
 
-    // VKEY_MBR_SETUP_FAILURE (27CB)
-    VKEY_MBR_SETUP_FAILURE = VK_MBR_SETUP_FAILURE,
+  // VKEY_MBR_SETUP_FAILURE (27CB)
+  VKEY_MBR_SETUP_FAILURE = VK_MBR_SETUP_FAILURE,
 
-    // VKEY_MBR_SETUP (27CC)
-    VKEY_MBR_SETUP = VK_MBR_SETUP,
+  // VKEY_MBR_SETUP (27CC)
+  VKEY_MBR_SETUP = VK_MBR_SETUP,
 
-    // VKEY_MBR_WATCH_TV (27CD)
-    VKEY_MBR_WATCH_TV = VK_MBR_WATCH_TV,
+  // VKEY_MBR_WATCH_TV (27CD)
+  VKEY_MBR_WATCH_TV = VK_MBR_WATCH_TV,
 
-    // VKEY_PRECH (27CE)
-    VKEY_PRECH = VK_PRECH,
+  // VKEY_PRECH (27CE)
+  VKEY_PRECH = VK_PRECH,
 
-    // VKEY_RECOMMEND_SEARCH_TOGGLE (27D0)
-    VKEY_RECOMMEND_SEARCH_TOGGLE = VK_RECOMMEND_SEARCH_TOGGLE,
+  // VKEY_RECOMMEND_SEARCH_TOGGLE (27D0)
+  VKEY_RECOMMEND_SEARCH_TOGGLE = VK_RECOMMEND_SEARCH_TOGGLE,
 
-    // VKEY_BT_NUMBER (27D1)
-    VKEY_BT_NUMBER = VK_BT_NUMBER,
+  // VKEY_BT_NUMBER (27D1)
+  VKEY_BT_NUMBER = VK_BT_NUMBER,
 
-    // VKEY_16_9 (27D2)
-    VKEY_16_9 = VK_16_9,
+  // VKEY_16_9 (27D2)
+  VKEY_16_9 = VK_16_9,
 
-    // VKEY_MTS (27D3)
-    VKEY_MTS = VK_MTS,
+  // VKEY_MTS (27D3)
+  VKEY_MTS = VK_MTS,
 
-    // VKEY_SMODE (27D5)
-    VKEY_SMODE = VK_SMODE,
+  // VKEY_SMODE (27D5)
+  VKEY_SMODE = VK_SMODE,
 
-    // VKEY_3SPEED (27D6)
-    VKEY_3SPEED = VK_3SPEED,
+  // VKEY_3SPEED (27D6)
+  VKEY_3SPEED = VK_3SPEED,
 
-    // VKEY_3D (27D7)
-    VKEY_3D = VK_3D,
+  // VKEY_3D (27D7)
+  VKEY_3D = VK_3D,
 
-    // VKEY_TTX_MIX (27D8)
-    VKEY_TTX_MIX = VK_TTX_MIX,
+  // VKEY_TTX_MIX (27D8)
+  VKEY_TTX_MIX = VK_TTX_MIX,
 
-    // VKEY_SRSTSXT (27D9)
-    VKEY_SRSTSXT = VK_SRSTSXT,
+  // VKEY_SRSTSXT (27D9)
+  VKEY_SRSTSXT = VK_SRSTSXT,
 
-    // VKEY_WIFI_PAIRING (27DA)
-    VKEY_WIFI_PAIRING = VK_WIFI_PAIRING,
+  // VKEY_WIFI_PAIRING (27DA)
+  VKEY_WIFI_PAIRING = VK_WIFI_PAIRING,
 
-    // VKEY_BT_SAMSUNG_APPS (27E3)
-    VKEY_BT_SAMSUNG_APPS = VK_BT_SAMSUNG_APPS,
+  // VKEY_BT_SAMSUNG_APPS (27E3)
+  VKEY_BT_SAMSUNG_APPS = VK_BT_SAMSUNG_APPS,
 
-    // VKEY_W_LINK (2757)
-    VKEY_W_LINK = VK_W_LINK,
+  // VKEY_W_LINK (2757)
+  VKEY_W_LINK = VK_W_LINK,
 
-    // VKEY_ESAVING (27E5)
-    VKEY_ESAVING = VK_ESAVING,
+  // VKEY_ESAVING (27E5)
+  VKEY_ESAVING = VK_ESAVING,
 
-    // VKEY_TV_SNS (27E9)
-    VKEY_TV_SNS = VK_TV_SNS,
+  // VKEY_TV_SNS (27E9)
+  VKEY_TV_SNS = VK_TV_SNS,
 
-    // VKEY_DVR (27EA)
-    VKEY_DVR = VK_DVR,
+  // VKEY_DVR (27EA)
+  VKEY_DVR = VK_DVR,
 
-    // VKEY_APP_LIST (27EB)
-    VKEY_APP_LIST = VK_APP_LIST,
+  // VKEY_APP_LIST (27EB)
+  VKEY_APP_LIST = VK_APP_LIST,
 
-    // VKEY_CAMERA (27EC)
-    VKEY_CAMERA = VK_CAMERA,
+  // VKEY_CAMERA (27EC)
+  VKEY_CAMERA = VK_CAMERA,
 
-    // VKEY_CAPTION (27ED)
-    VKEY_CAPTION = VK_CAPTION,
+  // VKEY_CAPTION (27ED)
+  VKEY_CAPTION = VK_CAPTION,
 
-    // VKEY_ZOOM1 (27EE)
-    VKEY_ZOOM1 = VK_ZOOM1,
+  // VKEY_ZOOM1 (27EE)
+  VKEY_ZOOM1 = VK_ZOOM1,
 
-    // VKEY_PANEL_PLUS (27EF)
-    VKEY_PANEL_PLUS = VK_PANEL_PLUS,
+  // VKEY_PANEL_PLUS (27EF)
+  VKEY_PANEL_PLUS = VK_PANEL_PLUS,
 
-    // VKEY_BT_VOICE (27F0)
-    VKEY_BT_VOICE = VK_BT_VOICE,
+  // VKEY_BT_VOICE (27F0)
+  VKEY_BT_VOICE = VK_BT_VOICE,
 
-    // VKEY_SEARCH (27F1)
-    VKEY_SEARCH = VK_SEARCH,
+  // VKEY_SEARCH (27F1)
+  VKEY_SEARCH = VK_SEARCH,
 
-    // VKEY_PANEL_MINUS (27F3)
-    VKEY_PANEL_MINUS = VK_PANEL_MINUS,
+  // VKEY_PANEL_MINUS (27F3)
+  VKEY_PANEL_MINUS = VK_PANEL_MINUS,
 
-    // VKEY_SOCCER_MODE (27F4)
-    VKEY_SOCCER_MODE = VK_SOCCER_MODE,
+  // VKEY_SOCCER_MODE (27F4)
+  VKEY_SOCCER_MODE = VK_SOCCER_MODE,
 
-    // VKEY_FUNCTIONS_AMAZON (27F5)
-    VKEY_FUNCTIONS_AMAZON = VK_FUNCTIONS_AMAZON,
+  // VKEY_FUNCTIONS_AMAZON (27F5)
+  VKEY_FUNCTIONS_AMAZON = VK_FUNCTIONS_AMAZON,
 
-    // VKEY_AD (27F6)
-    VKEY_AD = VK_AD,
+  // VKEY_AD (27F6)
+  VKEY_AD = VK_AD,
 
-    // VKEY_REWIND_ (27F8)
-    VKEY_REWIND_ = VK_REWIND_,
+  // VKEY_REWIND_ (27F8)
+  VKEY_REWIND_ = VK_REWIND_,
 
-    // VKEY_FF_ (27F9)
-    VKEY_FF_ = VK_FF_,
+  // VKEY_FF_ (27F9)
+  VKEY_FF_ = VK_FF_,
 
-    // VKEY_FUNCTIONS_NETFLIX (27FA)
-    VKEY_FUNCTIONS_NETFLIX = VK_FUNCTIONS_NETFLIX,
+  // VKEY_FUNCTIONS_NETFLIX (27FA)
+  VKEY_FUNCTIONS_NETFLIX = VK_FUNCTIONS_NETFLIX,
 
-    // VKEY_PIP_ONOFF (27FB)
-    VKEY_PIP_ONOFF = VK_PIP_ONOFF,
+  // VKEY_PIP_ONOFF (27FB)
+  VKEY_PIP_ONOFF = VK_PIP_ONOFF,
 
-    // VKEY_MBR_WATCH_MOVIE (27FC)
-    VKEY_MBR_WATCH_MOVIE = VK_MBR_WATCH_MOVIE,
+  // VKEY_MBR_WATCH_MOVIE (27FC)
+  VKEY_MBR_WATCH_MOVIE = VK_MBR_WATCH_MOVIE,
 
-    // VKEY_MBR_STBBD_MENU (27FD)
-    VKEY_MBR_STBBD_MENU = VK_MBR_STBBD_MENU,
+  // VKEY_MBR_STBBD_MENU (27FD)
+  VKEY_MBR_STBBD_MENU = VK_MBR_STBBD_MENU,
 
-    // VKEY_MBR_SETUP_CONFIRM (27FE)
-    VKEY_MBR_SETUP_CONFIRM = VK_MBR_SETUP_CONFIRM,
+  // VKEY_MBR_SETUP_CONFIRM (27FE)
+  VKEY_MBR_SETUP_CONFIRM = VK_MBR_SETUP_CONFIRM,
 
-    // VKEY_FAMILYHUB (27FF)
-    VKEY_FAMILYHUB = VK_FAMILYHUB,
+  // VKEY_FAMILYHUB (27FF)
+  VKEY_FAMILYHUB = VK_FAMILYHUB,
 
-    // VKEY_ANYVIEW (2800)
-    VKEY_ANYVIEW = VK_ANYVIEW,
+  // VKEY_ANYVIEW (2800)
+  VKEY_ANYVIEW = VK_ANYVIEW,
 
-    // VKEY_PAGE_LEFT (2809)
-    VKEY_PAGE_LEFT = VK_PAGE_LEFT,
+  // VKEY_PAGE_LEFT (2809)
+  VKEY_PAGE_LEFT = VK_PAGE_LEFT,
 
-    // VKEY_PAGE_RIGHT (280A)
-    VKEY_PAGE_RIGHT = VK_PAGE_RIGHT,
+  // VKEY_PAGE_RIGHT (280A)
+  VKEY_PAGE_RIGHT = VK_PAGE_RIGHT,
 
-    // VKEY_SOFT_WAKE_UP (2804)
-    VKEY_SOFT_WAKE_UP = VK_SOFT_WAKE_UP,
+  // VKEY_SOFT_WAKE_UP (2804)
+  VKEY_SOFT_WAKE_UP = VK_SOFT_WAKE_UP,
 
-    // VKEY_PANEL_ON (280B)
-    VKEY_PANEL_ON = VK_PANEL_ON,
+  // VKEY_PANEL_ON (280B)
+  VKEY_PANEL_ON = VK_PANEL_ON,
 
-    // VKEY_PLAY_BACK (280C)
-    VKEY_PLAY_BACK = VK_PLAY_BACK,
+  // VKEY_PLAY_BACK (280C)
+  VKEY_PLAY_BACK = VK_PLAY_BACK,
 
-    // VKEY_EXTRA (280D)
-    VKEY_EXTRA = VK_EXTRA,
+  // VKEY_EXTRA (280D)
+  VKEY_EXTRA = VK_EXTRA,
 
-    // VKEY_COLOR (2891)
-    VKEY_COLOR = VK_COLOR,
+  // VKEY_COLOR (2891)
+  VKEY_COLOR = VK_COLOR,
 
-    // VKEY_IME_DONE (FF60) Done key on TV IME panel
-    VKEY_IME_DONE = VK_IME_DONE,
+  // VKEY_ALARM (28B2)
+  VKEY_ALARM = VK_ALARM,
 
-    // VKEY_IME_CANCEL (FF69) Cancel key on TV IME panel
-    VKEY_IME_CANCEL = VK_IME_CANCEL,
+  // VKEY_HOTEL_MOVIES (28FE)
+  VKEY_HOTEL_MOVIES = VK_HOTEL_MOVIES,
+
+  // VKEY_HOTEL_LANGUAGE (28FF)
+  VKEY_HOTEL_LANGUAGE = VK_HOTEL_LANGUAGE,
+
+  // VKEY_HOTEL_TV_GUIDE (2900)
+  VKEY_HOTEL_TV_GUIDE = VK_HOTEL_TV_GUIDE,
+
+  // VKEY_HOTEL_APPS_GUEST (2901)
+  VKEY_HOTEL_APPS_GUEST = VK_HOTEL_APPS_GUEST,
+
+  // VKEY_NOISE_REDUCTION (2917)
+  VKEY_NOISE_REDUCTION = VK_NOISE_REDUCTION,
+
+  // VKEY_NR (2919)
+  VKEY_NR = VK_NR,
+
+  // VKEY_HOTEL_ROOM_CONTROL (291A)
+  VKEY_HOTEL_ROOM_CONTROL = VK_HOTEL_ROOM_CONTROL,
+
+  // VKEY_IME_DONE (FF60) Done key on TV IME panel
+  VKEY_IME_DONE = VK_IME_DONE,
+
+  // VKEY_IME_CANCEL (FF69) Cancel key on TV IME panel
+  VKEY_IME_CANCEL = VK_IME_CANCEL,
 
 #endif
 
-    VKEY_UNKNOWN = 0
+  VKEY_UNKNOWN = 0
 };
 
 }  // namespace blink
index f50b5f4..aab21dd 100644 (file)
@@ -45,6 +45,10 @@ PLATFORM_EXPORT size_t
 indexOfBestMatchingLanguageInList(const AtomicString& language,
                                   const Vector<AtomicString>& languageList);
 
+#if defined(OS_TIZEN)
+void unregisterLanguageChangedCallback();
+#endif
+
 }  // namespace blink
 
 #endif
index da0e6c1..278e6f4 100644 (file)
@@ -41,6 +41,8 @@ class LifecycleNotifier : public virtual GarbageCollectedMixin {
   void addObserver(Observer*);
   void removeObserver(Observer*);
 
+  bool checkVideoPlaying();
+
   // notifyContextDestroyed() should be explicitly dispatched from an
   // observed context to notify observers that contextDestroyed().
   //
index 0340c38..6b9e859 100644 (file)
@@ -60,6 +60,7 @@ enum ControlPart {
   MediaExitFullscreenButtonPart,
   MediaFullscreenVolumeSliderPart,
   MediaFullscreenVolumeSliderThumbPart,
+  MediaBrightnessButtonPart,
   MediaMuteButtonPart,
   MediaPlayButtonPart,
 #if defined(OS_TIZEN)
index 44443e6..5d03b34 100644 (file)
 #ifndef VK_DELETE
 #define VK_DELETE 0x2E  // DEL key
 #endif
+#if !defined(OS_TIZEN_TV_PRODUCT)
 #ifndef VK_HELP
 #define VK_HELP 0x2F  // HELP key
 #endif
+#endif
 
 #define VK_0 0x30
 #define VK_1 0x31
 #define VK_PLAY_BACK 0x280C
 #define VK_EXTRA 0x280D
 #define VK_COLOR 0x2891
+
+#define VK_ALARM 0x28B2
+#define VK_HOTEL_MOVIES 0x28FE
+#define VK_HOTEL_LANGUAGE 0x28FF
+#define VK_HOTEL_TV_GUIDE 0x2900
+#define VK_HOTEL_APPS_GUEST 0x2901
+#define VK_NOISE_REDUCTION 0x2917
+#define VK_HELP 0x2918
+#define VK_NR 0x2919
+#define VK_HOTEL_ROOM_CONTROL 0x291A
+
 #define VK_IME_DONE 0xFF60 // keyname of IME Done button is Select. but Select(0xFF60) is only Tizen TV IME keyname defined by ISF, there is no X Server keycode. 0xFF60 is ISF keycode.
 #define VK_IME_CANCEL 0xFF69 // keyname of IME Cancel button is Cancel. but Select(0xFF69) is only Tizen TV IME keyname defined by ISF, there is no X Server keycode. 0xFF69 is ISF keycode.
 
index 873f98d..032f15a 100644 (file)
@@ -49,6 +49,7 @@ class PLATFORM_EXPORT AcceleratedStaticBitmapImage final
             ImageClampingMode) override;
 
   void copyToTexture(WebGraphicsContext3DProvider*,
+                     GLenum,
                      GLuint destTextureId,
                      GLenum destInternalFormat,
                      GLenum destType,
index ba8e471..53538d3 100644 (file)
@@ -146,6 +146,7 @@ class PLATFORM_EXPORT ImageBuffer {
   // are RGB or RGBA format, UNSIGNED_BYTE type and level 0, as specified in
   // Extensions3D::canUseCopyTextureCHROMIUM().
   bool copyToPlatformTexture(gpu::gles2::GLES2Interface*,
+                             GLenum target,
                              GLuint texture,
                              GLenum internalFormat,
                              GLenum destType,
@@ -200,6 +201,11 @@ class PLATFORM_EXPORT ImageBuffer {
   mutable intptr_t m_gpuMemoryUsage;
   static intptr_t s_globalGPUMemoryUsage;
   static unsigned s_globalAcceleratedImageBufferCount;
+  mutable base::TimeTicks m_previousFrametime;
+  mutable base::TimeDelta m_totalFrametime;
+  mutable base::TimeDelta m_readbackTime;
+  mutable bool m_newframe;
+  mutable int m_frameCount;
 };
 
 struct ImageDataBuffer {
index 7753fa8..6f05790 100644 (file)
@@ -41,6 +41,7 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image {
 
   // Methods overrided by AcceleratedStaticBitmapImage only
   virtual void copyToTexture(WebGraphicsContext3DProvider*,
+                             GLenum,
                              GLuint,
                              GLenum,
                              GLenum,
index b031a37..a1d6277 100644 (file)
@@ -89,6 +89,9 @@ class PLATFORM_EXPORT DrawingBuffer
     virtual void DrawingBufferClientRestoreRenderbufferBinding() = 0;
     virtual void DrawingBufferClientRestoreFramebufferBinding() = 0;
     virtual void DrawingBufferClientRestorePixelUnpackBufferBinding() = 0;
+#if defined(TIZEN_CANVAS_HOLE)
+    virtual void DrawingBufferClientCanvasRectChanged(const IntRect&) = 0;
+#endif
   };
 
   enum PreserveDrawingBuffer {
@@ -178,6 +181,10 @@ class PLATFORM_EXPORT DrawingBuffer
   // default framebuffer.
   bool defaultBufferRequiresAlphaChannelToBePreserved();
 
+#if defined(TIZEN_CANVAS_HOLE)
+  void setCanvasHoleEnabled(bool);
+#endif
+
   WebLayer* platformLayer();
 
   gpu::gles2::GLES2Interface* contextGL();
@@ -188,6 +195,10 @@ class PLATFORM_EXPORT DrawingBuffer
       cc::TextureMailbox* outMailbox,
       std::unique_ptr<cc::SingleReleaseCallback>* outReleaseCallback) override;
 
+#if defined(TIZEN_CANVAS_HOLE)
+  void NotifyTextureRectChanged(const gfx::Rect&) override;
+#endif
+
   // Returns a StaticBitmapImage backed by a texture containing the current
   // contents of the front buffer. This is done without any pixel copies. The
   // texture in the ImageBitmap is from the active ContextProvider on the
@@ -195,6 +206,7 @@ class PLATFORM_EXPORT DrawingBuffer
   PassRefPtr<StaticBitmapImage> transferToStaticBitmapImage();
 
   bool copyToPlatformTexture(gpu::gles2::GLES2Interface*,
+                             GLenum target,
                              GLuint texture,
                              GLenum internalFormat,
                              GLenum destType,
@@ -421,6 +433,10 @@ class PLATFORM_EXPORT DrawingBuffer
   // The format to use when creating a multisampled renderbuffer.
   GLenum getMultisampledRenderbufferFormat();
 
+#if defined(TIZEN_CANVAS_HOLE)
+  bool m_canvasHoleEnabled = false;
+#endif
+
   // Weak, reset by beginDestruction.
   Client* m_client = nullptr;
 
@@ -481,6 +497,8 @@ class PLATFORM_EXPORT DrawingBuffer
   const bool m_wantDepth;
   const bool m_wantStencil;
 
+  const bool m_useDirectCanvas;
+
   enum AntialiasingMode {
     None,
     MSAAImplicitResolve,
@@ -494,6 +512,7 @@ class PLATFORM_EXPORT DrawingBuffer
   int m_sampleCount = 0;
   bool m_destructionInProgress = false;
   bool m_isHidden = false;
+
   SkFilterQuality m_filterQuality = kLow_SkFilterQuality;
 
   std::unique_ptr<WebExternalTextureLayer> m_layer;
index 4388bdd..1b3e58d 100644 (file)
@@ -38,10 +38,7 @@ class PLATFORM_EXPORT Extensions3DUtil final {
   bool ensureExtensionEnabled(const String& name);
   bool isExtensionEnabled(const String& name);
 
-  static bool canUseCopyTextureCHROMIUM(GLenum destTarget,
-                                        GLenum destFormat,
-                                        GLenum destType,
-                                        GLint level);
+  static bool canUseCopyTextureCHROMIUM(GLenum destTarget);
 
  private:
   Extensions3DUtil(gpu::gles2::GLES2Interface*);
index 2edd92b..6cce892 100644 (file)
@@ -219,17 +219,21 @@ class PLATFORM_EXPORT WebGLImageConversion final {
                             unsigned sourceImageWidth,
                             unsigned sourceImageHeight,
                             const IntRect& sourceImageSubRectangle,
+                            int depth,
                             unsigned sourceUnpackAlignment,
+                            int unpackImageHeight,
                             Vector<uint8_t>& data);
 
   // Extracts the contents of the given ImageData into the passed Vector,
   // packing the pixel data according to the given format and type,
   // and obeying the flipY and premultiplyAlpha flags. Returns true
   // upon success.
-  static bool extractImageData(const uint8_t*,
+  static bool extractImageData(const uint8_t* imageData,
                                DataFormat sourceDataFormat,
-                               const IntSize&,
-                               const IntRect&,
+                               const IntSize& imageDataSize,
+                               const IntRect& sourceImageSubRectangle,
+                               int depth,
+                               int unpackImageHeight,
                                GLenum format,
                                GLenum type,
                                bool flipY,
@@ -266,7 +270,9 @@ class PLATFORM_EXPORT WebGLImageConversion final {
                          unsigned sourceDataWidth,
                          unsigned sourceDataHeight,
                          const IntRect& sourceDataSubRectangle,
+                         int depth,
                          unsigned sourceUnpackAlignment,
+                         int unpackImageHeight,
                          unsigned destinationFormat,
                          unsigned destinationType,
                          AlphaOp,
index ab645f8..d608058 100644 (file)
@@ -38,13 +38,15 @@ class HeapTerminatedArray : public TerminatedArray<T> {
     static PassPtr create(size_t capacity) {
       return reinterpret_cast<HeapTerminatedArray*>(
           ThreadHeap::allocate<HeapTerminatedArray>(
-              capacity * sizeof(T), IsEagerlyFinalizedType<T>::value));
+              WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T)),
+              IsEagerlyFinalizedType<T>::value));
     }
 
     static PassPtr resize(PassPtr ptr, size_t capacity) {
       return reinterpret_cast<HeapTerminatedArray*>(
-          ThreadHeap::reallocate<HeapTerminatedArray>(ptr,
-                                                      capacity * sizeof(T)));
+          ThreadHeap::reallocate<HeapTerminatedArray>(
+              ptr,
+              WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T))));
     }
   };
 
index 8d0149b..d2822da 100644 (file)
@@ -90,15 +90,12 @@ class PLATFORM_EXPORT ResourceRequest final {
   const KURL& url() const;
   void setURL(const KURL& url);
 
-#if defined(USE_EFL)
+#if defined(OS_TIZEN_TV_PRODUCT)
   const KURL& unencryptedURL() const;
   void setUnencryptedURL(const KURL&);
-
-#if defined(OS_TIZEN_TV_PRODUCT)
   bool isDecryptedFile() const;
   void setDecryptedFileFlag(const bool);
 #endif  // defined(OS_TIZEN_TV_PRODUCT)
-#endif  // defined(USE_EFL)
 
   void removeCredentials();
 
@@ -328,12 +325,10 @@ class PLATFORM_EXPORT ResourceRequest final {
   bool needsHTTPOrigin() const;
 
   KURL m_url;
-#if defined(USE_EFL)
-  KURL m_unencryptedUrl;
 #if defined(OS_TIZEN_TV_PRODUCT)
+  KURL m_unencryptedUrl;
   bool m_isDecryptedFile;
 #endif  // defined(OS_TIZEN_TV_PRODUCT)
-#endif  // defined(USE_EFL)
   WebCachePolicy m_cachePolicy;
   double m_timeoutInterval;  // 0 is a magic value for platform default on
                              // platforms that have one.
@@ -386,12 +381,10 @@ struct CrossThreadResourceRequestData {
  public:
   CrossThreadResourceRequestData() {}
   KURL m_url;
-#if defined(USE_EFL)
-  KURL m_unencryptedUrl;
 #if defined(OS_TIZEN_TV_PRODUCT)
+  KURL m_unencryptedUrl;
   bool m_isDecryptedFile;
 #endif  // defined(OS_TIZEN_TV_PRODUCT)
-#endif  // defined(USE_EFL)
 
   WebCachePolicy m_cachePolicy;
   double m_timeoutInterval;
index a237ef6..91dd24d 100644 (file)
 #include "wtf/MathExtras.h"
 #include "wtf/Noncopyable.h"
 #include "wtf/Vector.h"
-
+#if defined(OS_TIZEN)
+#include "ui/display/device_display_info_efl.h"
+#include "tizen/system_info.h"
+#endif
 namespace blink {
 
 class GraphicsLayer;
@@ -63,7 +66,9 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
   static int pixelsPerLineStep(HostWindow*);
   static float minFractionToStepWhenPaging();
   static int maxOverlapBetweenPages();
-
+#if defined(OS_TIZEN)
+  display::DeviceDisplayInfoEfl displayInfo;
+#endif
   // Convert a non-finite scroll value (Infinity, -Infinity, NaN) to 0 as
   // per http://dev.w3.org/csswg/cssom-view/#normalize-non_finite-values.
   static float normalizeNonFiniteScroll(float value) {
@@ -371,7 +376,14 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
 #if defined(OS_TIZEN_TV_PRODUCT)
   virtual void thumbPartFocusChanged(ScrollbarOrientation, bool) {}
 #endif
-
+#if defined(OS_TIZEN)
+  void setRelativePosition(IntPoint relativePosition) {
+    m_relativePosition = relativePosition;
+  }
+  IntPoint getRelativePosition() { return m_relativePosition; }
+  void setCircularScrollUse(bool shouldUse) { m_useCircularScroll = shouldUse; }
+  bool getCircularScrollUse() const { return m_useCircularScroll; }
+#endif
  protected:
   ScrollableArea();
 
@@ -435,6 +447,10 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
   unsigned m_horizontalScrollbarNeedsPaintInvalidation : 1;
   unsigned m_verticalScrollbarNeedsPaintInvalidation : 1;
   unsigned m_scrollCornerNeedsPaintInvalidation : 1;
+#if defined(OS_TIZEN)
+  bool m_useCircularScroll;
+  IntPoint m_relativePosition;
+#endif
   unsigned m_scrollbarsHidden : 1;
   unsigned m_scrollbarCaptured : 1;
 
index a2add2a..28cfde5 100644 (file)
@@ -131,6 +131,7 @@ class WEB_EXPORT ChromeClientImpl final : public ChromeClient {
       const ViewportDescription&) const override;
   void printDelegate(LocalFrame*) override;
   void annotatedRegionsChanged() override;
+  void notifyUrlForPlayingVideo(const KURL& url) override;
   ColorChooser* openColorChooser(LocalFrame*,
                                  ColorChooserClient*,
                                  const Color&) override;
@@ -228,6 +229,7 @@ class WEB_EXPORT ChromeClientImpl final : public ChromeClient {
   void thumbPartFocusChanged(ScrollbarOrientation orientation,
                              bool focused) const override;
   void runArrowScroll() const override;
+  void setVideo360(HTMLVideoElement* video) override;
 #endif
 #if defined(TIZEN_ATK_FEATURE_VD)
   void moveFocusToBrowser(int direction) const override;
@@ -248,6 +250,7 @@ class WEB_EXPORT ChromeClientImpl final : public ChromeClient {
   Cursor m_lastSetMouseCursorForTesting;
   bool m_cursorOverridden;
   bool m_didRequestNonEmptyToolTip;
+  String m_cachedToolTipText;
 };
 
 DEFINE_TYPE_CASTS(ChromeClientImpl,
index 0d41edb..9542ab9 100644 (file)
@@ -159,9 +159,6 @@ class FrameLoaderClientImpl final : public FrameLoaderClient {
                        const WTF::String&,
                        bool loadManually,
                        DetachedPluginPolicy) override;
-#if defined(TIZEN_VIDEO_HOLE)
-  void setPresetDisableVideoHole(LocalFrame* frame, bool disable) override;
-#endif
   std::unique_ptr<WebMediaPlayer> createWebMediaPlayer(
       HTMLMediaElement&,
       const WebMediaPlayerSource&,
@@ -237,7 +234,9 @@ class FrameLoaderClientImpl final : public FrameLoaderClient {
 #if defined(USE_EFL)
   bool getWrtParsedUrl(const KURL& url, KURL& parsed_url) override;
 #endif
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void checkHLSSupport(const String&, bool&) override;
+#endif
  private:
   explicit FrameLoaderClientImpl(WebLocalFrameImpl*);
 
index 4332e18..68c43fe 100644 (file)
@@ -227,6 +227,8 @@ class WEB_EXPORT WebSettingsImpl final
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void setMediaSubtitleNotificationEnabled(bool) override;
+  bool mediaSubtitleNotificationEnabled() override;
   void setMediaPlaybackNotificationEnabled(bool) override;
   bool mediaPlaybackNotificationEnabled() override;
   void setUseScrollbarThumbFocusNotifications(bool) override;
@@ -278,6 +280,8 @@ class WEB_EXPORT WebSettingsImpl final
 #if defined(OS_TIZEN)
   void setHwKeyboardConnected(bool) override;
   bool hwKeyboardConnected() override;
+  void setLinkEffectEnabled(bool) override;
+  bool linkEffectEnabled() const { return m_linkEffectEnabled; }
 #endif
 
  private:
@@ -307,6 +311,9 @@ class WEB_EXPORT WebSettingsImpl final
   float m_expensiveBackgroundThrottlingMaxBudget;
   float m_expensiveBackgroundThrottlingMaxDelay;
   bool m_forceZoomEnabled;
+#if defined(OS_TIZEN)
+  bool m_linkEffectEnabled;
+#endif
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool m_allowFileAccessFromExternalURLs;
 #endif
index a6b7254..7b0396a 100644 (file)
@@ -106,6 +106,10 @@ class WebViewFrameWidget : public WebFrameWidgetBase {
   void detachCompositorAnimationTimeline(CompositorAnimationTimeline*) override;
   WebWidgetClient* client() const override { return m_client; }
   HitTestResult coreHitTestResultAt(const WebPoint&) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool isHitScrollbar() override;
+  bool isMouseDownEventSwallowed() override;
+#endif
 
  private:
   WebWidgetClient* m_client;
index 13680ac..8defd54 100644 (file)
 #include "wtf/Vector.h"
 #include <memory>
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "core/html/HTMLVideoElement.h"
+#endif
+
 namespace blink {
 
 class BrowserControls;
@@ -302,6 +306,7 @@ class WEB_EXPORT WebViewImpl final
   virtual int getIMEOptions() override;
   virtual bool getSelectionStartContentBounds(WebRect& anchor) override;
   virtual void enableNightMode(bool nightMode) override;
+  virtual bool isVideoPlaying() override;
   float defaultMinimumPageScaleFactor() const;
   float defaultMaximumPageScaleFactor() const;
   float minimumPageScaleFactor() const;
@@ -514,6 +519,9 @@ class WEB_EXPORT WebViewImpl final
   virtual void suspendScheduledTasks();
   virtual void resumeScheduledTasks();
 
+  void suspendNetworkLoading() override;
+  void resumeNetworkLoading() override;
+
   BrowserControls& browserControls();
   // Called anytime browser controls layout height or content offset have
   // changed.
@@ -554,13 +562,26 @@ class WEB_EXPORT WebViewImpl final
 #if defined(TIZEN_VIDEO_HOLE)
   void setVideoHoleForRender(bool enable) override;
   bool isVideoHoleForRender() const override;
-  void setPresetDisableVideoHole(bool disable) override;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+  void setCanvasHoleForRender(const std::string& url) override;
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   void setTranslatedUrl(const WebString, bool&);
+  void setPreferTextLang(const WebString&) override;
   // Floating Video Window
   void setFloatVideoWindowState(bool) override;
+  bool isHitScrollbar() override;
+  bool isMouseDownEventSwallowed() override;
+  void requestCanvasFullscreen() override;
+  void play360Video() override;
+  void pause360Video() override;
+  double video360Duration() override;
+  double video360CurrentTime() override;
+  void set360VideoCurrentTime(double current_time) override;
+  void setVideo360(HTMLVideoElement* video) { m_360video = video; }
 #endif
 
 #if defined(OS_TIZEN)
@@ -787,7 +808,9 @@ class WEB_EXPORT WebViewImpl final
   FloatSize m_elasticOverscroll;
 #if defined(TIZEN_VIDEO_HOLE)
   bool m_isVideoHoleForRender;
-  bool m_isPresetDisableVideoHole;
+#endif
+#if defined(TIZEN_CANVAS_HOLE)
+  String m_usedCanvasHoleURL;
 #endif
 #if defined(OS_TIZEN)
   bool m_deferCommitEnabled;
@@ -795,6 +818,12 @@ class WEB_EXPORT WebViewImpl final
   bool m_deferredByPinch;
 #endif
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  // assume only a single video element existed in one webview instance for 360
+  // video
+  HTMLVideoElement* m_360video;
+#endif
+
   // This is owned by the LayerTreeHostImpl, and should only be used on the
   // compositor thread. The LayerTreeHostImpl is indirectly owned by this
   // class so this pointer should be valid until this class is destructed.
index 2950879..2bc941c 100644 (file)
@@ -92,13 +92,16 @@ class TerminatedArray {
     static PassPtr create(size_t capacity) {
       return wrapUnique(
           static_cast<TerminatedArray*>(WTF::Partitions::fastMalloc(
-              capacity * sizeof(T), WTF_HEAP_PROFILER_TYPE_NAME(T))));
+              WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T)),
+              WTF_HEAP_PROFILER_TYPE_NAME(T))));
     }
 
     static PassPtr resize(Ptr ptr, size_t capacity) {
-      return wrapUnique(static_cast<TerminatedArray*>(
-          WTF::Partitions::fastRealloc(ptr.release(), capacity * sizeof(T),
-                                       WTF_HEAP_PROFILER_TYPE_NAME(T))));
+      return wrapUnique(
+          static_cast<TerminatedArray*>(WTF::Partitions::fastRealloc(
+              ptr.release(),
+              WTF::Partitions::ComputeAllocationSize(capacity, sizeof(T)),
+              WTF_HEAP_PROFILER_TYPE_NAME(T))));
     }
   };
 
index 7d9d991..46afedf 100644 (file)
@@ -39,6 +39,9 @@
 namespace WTF {
 
 class AtomicStringTable;
+#if defined(ENABLE_STRING_COMPRESSION)
+class CompressibleStringTable;
+#endif
 struct ICUConverterWrapper;
 
 class WTF_EXPORT WTFThreadData {
@@ -50,15 +53,26 @@ class WTF_EXPORT WTFThreadData {
   ~WTFThreadData();
 
   AtomicStringTable& getAtomicStringTable() { return *m_atomicStringTable; }
+#if defined(ENABLE_STRING_COMPRESSION)
+  CompressibleStringTable* compressibleStringTable() {
+    return m_compressibleStringTable;
+  }
+#endif
 
   ICUConverterWrapper& cachedConverterICU() { return *m_cachedConverterICU; }
 
  private:
   std::unique_ptr<AtomicStringTable> m_atomicStringTable;
+#if defined(ENABLE_STRING_COMPRESSION)
+  CompressibleStringTable* m_compressibleStringTable;
+#endif
   std::unique_ptr<ICUConverterWrapper> m_cachedConverterICU;
 
   static ThreadSpecific<WTFThreadData>* staticData;
   friend WTFThreadData& wtfThreadData();
+#if defined(ENABLE_STRING_COMPRESSION)
+  friend class CompressibleStringTable;
+#endif
 };
 
 inline WTFThreadData& wtfThreadData() {
index 8fd74a3..5cbcd7b 100644 (file)
@@ -34,6 +34,7 @@
 #include "wtf/WTF.h"
 #include "wtf/WTFExport.h"
 #include "wtf/allocator/PartitionAlloc.h"
+#include "base/numerics/safe_math.h"
 #include <string.h>
 
 namespace WTF {
@@ -67,6 +68,12 @@ class WTF_EXPORT Partitions {
     return m_layoutAllocator.root();
   }
 
+  ALWAYS_INLINE static size_t ComputeAllocationSize(size_t count, size_t size) {
+    base::CheckedNumeric<size_t> total = count;
+    total *= size;
+    return total.ValueOrDie();
+  }
+
   static size_t currentDOMMemoryUsage() {
     ASSERT(s_initialized);
     ASSERT_NOT_REACHED();
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/wtf/text/CompressibleString.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/WebKit/Source/wtf/text/CompressibleString.h
new file mode 100644 (file)
index 0000000..afe1c71
--- /dev/null
@@ -0,0 +1,157 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CompressibleString_h
+#define CompressibleString_h
+
+#if defined(ENABLE_STRING_COMPRESSION)
+
+#include "platform/Timer.h"
+#include "public/platform/WebTraceLocation.h"
+#include "wtf/HashTableDeletedValueType.h"
+#include "wtf/text/StringImpl.h"
+#include "wtf/text/Unicode.h"
+#include "wtf/text/WTFString.h"
+#include "wtf/WTFThreadData.h"
+
+#define COMPRESS_STRING_THRESHOLD 100000
+#define COMPRESS_CHECK_TIME_INTERVAL 5.0
+#define DIFF_THRESHOLD_FOR_LAST_USAGE 5.0
+
+namespace WTF {
+
+class WTF_EXPORT CompressibleStringImpl
+    : public RefCounted<CompressibleStringImpl> {
+  WTF_MAKE_NONCOPYABLE(CompressibleStringImpl);
+
+ public:
+  static void setPageBackground(bool);
+  static void purgeMemory();
+
+  CompressibleStringImpl(PassRefPtr<StringImpl>);
+  ~CompressibleStringImpl();
+
+  bool isEmpty() const { return m_originalLength == 0; }
+
+  PassRefPtr<StringImpl> impl() { return m_impl; }
+  bool isCompressed() const { return !!m_compressedData; }
+  unsigned originalLength() const { return m_originalLength; }
+  bool is8Bit() const { return m_is8Bit; }
+  double stringLastAccessTime() const { return string_last_access_time_; }
+  unsigned originalContentSizeInBytes() const;
+  unsigned charactersSizeInBytes() const;
+
+  String toString();
+  const LChar* characters8();
+  const UChar* characters16();
+
+  void compressString();
+  void uncompressString();
+
+  void checkAndCompress(blink::TimerBase*);
+  static PassRefPtr<CompressibleStringImpl> create(const UChar*,
+                                                   unsigned length);
+  static PassRefPtr<CompressibleStringImpl> create(const LChar*,
+                                                   unsigned length);
+
+ private:
+  static bool s_isPageBackground;
+  RefPtr<StringImpl> m_impl;
+  const unsigned m_originalLength;
+  void* m_compressedData;
+  unsigned m_compressedDataSize;
+  const bool m_is8Bit;
+  double string_last_access_time_;
+  double compress_time_;
+};
+
+class WTF_EXPORT CompressibleString {
+ public:
+  CompressibleString();
+  CompressibleString(const CompressibleString&);
+  explicit CompressibleString(PassRefPtr<StringImpl>);
+
+  bool isNull() const { return !m_impl; }
+  bool isEmpty() const { return isNull() || m_impl->isEmpty(); }
+  unsigned length() const { return m_impl ? m_impl->originalLength() : 0; }
+
+  unsigned charactersSizeInBytes() const {
+    return m_impl ? m_impl->charactersSizeInBytes() : 0;
+  }
+
+  bool isCompressed() const { return m_impl ? m_impl->isCompressed() : false; }
+  bool is8Bit() const { return m_impl->is8Bit(); }
+
+  String toString() const { return m_impl ? m_impl->toString() : String(); }
+  const LChar* characters8() const {
+    return m_impl ? m_impl->characters8() : nullptr;
+  }
+  const UChar* characters16() const {
+    return m_impl ? m_impl->characters16() : nullptr;
+  }
+
+  PassRefPtr<CompressibleStringImpl> impl() const { return m_impl; }
+
+  CompressibleString isolatedCopy() const {
+    if (!m_impl)
+      return CompressibleString();
+    return CompressibleString(m_impl->impl()->isolatedCopy());
+  }
+
+ private:
+  void compressString() const;
+  void uncompressString() const;
+
+  mutable RefPtr<CompressibleStringImpl> m_impl;
+};
+class CompressibleStringTable {
+  WTF_MAKE_NONCOPYABLE(CompressibleStringTable);
+
+ public:
+  static CompressibleStringTable* create(WTFThreadData& data) {
+    data.m_compressibleStringTable = new CompressibleStringTable;
+    // data.m_compressibleStringTableDestructor =
+    // CompressibleStringTable::destroy;
+    return data.m_compressibleStringTable;
+  }
+
+  bool contains(CompressibleStringImpl* string) const {
+    return m_table.contains(string);
+  }
+
+  void remove(CompressibleStringImpl* string) { m_table.remove(string); }
+
+  void compressAll();
+  void add(CompressibleStringImpl* string);
+  void checkAndCompressOne(blink::TimerBase*);
+
+ private:
+  CompressibleStringTable()
+      : compress_string_timer_(this,
+                               &CompressibleStringTable::checkAndCompressOne) {}
+
+  static void destroy(CompressibleStringTable* table) { delete table; }
+
+  HashSet<CompressibleStringImpl*> m_table;
+  blink::Timer<CompressibleStringTable> compress_string_timer_;
+};
+
+static inline CompressibleStringTable& compressibleStringTable() {
+  // Once possible we should make this non-lazy
+  // (constructed in WTFThreadData's constructor).
+  WTFThreadData& data = wtfThreadData();
+  CompressibleStringTable* table = data.compressibleStringTable();
+  if (UNLIKELY(!table))
+    table = CompressibleStringTable::create(data);
+  return *table;
+}
+
+}  // namespace WTF
+
+using WTF::CompressibleString;
+using WTF::CompressibleStringImpl;
+
+#endif
+
+#endif
index c9bc091..19e4adb 100644 (file)
@@ -505,6 +505,10 @@ class BLINK_PLATFORM_EXPORT Platform {
     return nullptr;
   }
 
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+  virtual bool IsKantm2() { return false; }
+#endif
+
   // Returns a newly allocated and initialized offscreen context provider,
   // backed by the process-wide shared main thread context. Returns null if
   // the context cannot be created or initialized.
index 06af630..9aa02ba 100644 (file)
@@ -61,6 +61,10 @@ class WebExternalTextureLayer {
   // Sets whether this texture should use nearest neighbor interpolation as
   // opposed to bilinear. Defaults to false.
   virtual void setNearestNeighbor(bool) = 0;
+
+#if defined(TIZEN_CANVAS_HOLE)
+  virtual void setTextureHole(bool) = 0;
+#endif
 };
 
 }  // namespace blink
index cb4b48f..61590a4 100644 (file)
@@ -110,6 +110,23 @@ class WebMediaPlayer {
     PlaybackFinish,
     PlaybackStop,
   };
+
+  enum {
+    SubtitlePlay,
+    SubtitlePause,
+    SubtitleSeekStart,
+    SubtitleSeekComplete,
+    SubtitleStop,
+    SubtitleResume,
+  };
+
+  typedef struct register_timeline_cb_info {
+    std::string timeline_selector;
+    uint32_t units_per_tick;
+    uint32_t units_per_second;
+    int64_t content_time;
+    int timeline_state;
+  } register_timeline_cb_info_s;
 #endif
 
   typedef WebString TrackId;
@@ -134,6 +151,10 @@ class WebMediaPlayer {
   virtual void setBufferingStrategy(BufferingStrategy) {}
   virtual WebTimeRanges buffered() const = 0;
   virtual WebTimeRanges seekable() const = 0;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  virtual void setBrightness(int) {}
+  virtual int getBrightness() { return 0; }
+#endif
 
   // Attempts to switch the audio output device.
   // Implementations of setSinkId take ownership of the WebSetSinkCallbacks
@@ -222,8 +243,8 @@ class WebMediaPlayer {
   }
 
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
-  virtual unsigned zeroCopyVideoTbmToPlatformTexture(
-        gpu::gles2::GLES2Interface*, unsigned) { return false; }
+  virtual bool zeroCopyVideoTbmToPlatformTexture(
+        gpu::gles2::GLES2Interface*, unsigned, unsigned&) { return false; }
   virtual void deleteVideoFrame(unsigned image_id) { }
 #endif
 
@@ -257,14 +278,47 @@ class WebMediaPlayer {
   virtual void selectedVideoTrackChanged(TrackId* selectedTrackId) {}
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void setActiveTextTrack(int, bool) {}
+  virtual void notifyPlayTrack(int) {}
   virtual void setTranslatedURL(const WebString&) {}
+  virtual bool registerTimeline(const std::string& timeline_selector) {
+    return false;
+  }
+  virtual bool unRegisterTimeline(const std::string& timeline_selector) {
+    return false;
+  }
+  virtual void getTimelinePositions(const std::string& timeline_selector,
+                                    uint32_t* units_per_tick,
+                                    uint32_t* units_per_second,
+                                    int64_t* content_time,
+                                    bool* paused) {}
+  virtual double getSpeed() { return 0.0; }
+  virtual std::string getMrsUrl() { return ""; }
+  virtual std::string getContentId() { return ""; }
+  virtual bool syncTimeline(const std::string& timeline_selector,
+                            int64_t timeline_pos,
+                            int64_t wallclock_pos,
+                            int tolerance) {
+    return false;
+  }
+  virtual bool setWallClock(const std::string& wallclock_url) { return false; }
+  virtual void notifyElementRemove() {}
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+  virtual void setCanvasHoleEnabled(bool) {}
+  virtual void notifyCanvasRectChanged(const WebRect&) {}
 #endif
 
 #if defined(TIZEN_MULTIMEDIA_SUPPORT)
   virtual void suspend() {}
   virtual void resume() {}
-  virtual void activate(){};
+  virtual void activate() {}
+  virtual void deactivate() {}
   virtual bool IsMediaStreamPlayer() { return false; }
+#endif
+
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   virtual void launchSystemVolumeController() {};
 #endif
 };
index 8b14b9c..df1f948 100644 (file)
@@ -111,8 +111,10 @@ class BLINK_PLATFORM_EXPORT WebMediaPlayerClient {
   // Warning: This method will destruct the caller.
   virtual void requestReload(const WebURL& newUrl) = 0;
 
+#if defined(TIZEN_MULTIMEDIA_SUPPORT)
   virtual void mediaPlayerHidden() {}
   virtual void mediaPlayerShown() {}
+#endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   virtual void onDrmError() = 0;
@@ -122,18 +124,29 @@ class BLINK_PLATFORM_EXPORT WebMediaPlayerClient {
   virtual void onAutoRotateSettingChanged(bool) {}
 #endif
 #if defined(OS_TIZEN_TV_PRODUCT)
+  virtual bool getTextTrackInfo(int, WebString&, WebString&) = 0;
   virtual void forceSettingOfficialPlaybackPosition() = 0;
   virtual void addTextTrack(const std::string& info) = 0;
   virtual void addCue(const std::string& info,
                       unsigned int id,
                       long long int start_time,
                       long long int end_time) = 0;
+  virtual void OnSyncTimeline(const std::string& timeline_selector,
+                              int sync) = 0;
+  virtual void OnRegisterTimeline(
+      const WebMediaPlayer::register_timeline_cb_info_s& info) = 0;
+  virtual void OnMrsUrlChange(const std::string& url) = 0;
+  virtual void OnContentIdChange(const std::string& id) = 0;
 #endif
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   virtual void setSystemVolume(int volume) {};
 #endif
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  virtual void onSystemVolumeChanged(double, bool) = 0;
+#endif
+
  protected:
   ~WebMediaPlayerClient() {}
 };
index 909a6a4..fd1e7b8 100644 (file)
@@ -178,14 +178,12 @@ class WebURLRequest {
   BLINK_PLATFORM_EXPORT WebURL url() const;
   BLINK_PLATFORM_EXPORT void setURL(const WebURL&);
 
-#if defined(USE_EFL)
+#if defined(OS_TIZEN_TV_PRODUCT)
   BLINK_PLATFORM_EXPORT WebURL unencryptedURL() const;
   BLINK_PLATFORM_EXPORT void setUnencryptedURL(const WebURL&);
-#if defined(OS_TIZEN_TV_PRODUCT)
   BLINK_PLATFORM_EXPORT bool isDecryptedFile() const;
   BLINK_PLATFORM_EXPORT void setDecryptedFileFlag(const bool);
 #endif  // defined(OS_TIZEN_TV_PRODUCT)
-#endif  // defined(USE_EFL)
 
   // Used to implement third-party cookie blocking.
   BLINK_PLATFORM_EXPORT WebURL firstPartyForCookies() const;
index 77f39a1..b0be40f 100644 (file)
@@ -142,7 +142,7 @@ class BLINK_EXPORT WebFrameClient {
   // May return null.
   virtual WebMediaSession* createMediaSession() { return 0; }
 
-  virtual WebMediaRecorderHandler* createMediaCaptureHandler() { return 0; }
+  virtual WebMediaRecorderHandler* createMediaRecorderHandler() { return 0; }
 
   // May return null.
   virtual WebApplicationCacheHost* createApplicationCacheHost(
@@ -662,10 +662,6 @@ class BLINK_EXPORT WebFrameClient {
 
   virtual WebUserMediaClient* userMediaClient() { return 0; }
 
-#if defined(TIZEN_VIDEO_HOLE)
-  virtual void setPresetDisableVideoHole(bool disable) { }
-#endif
-
 #if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
   // Media rotate ----------------------------------------------------
 
@@ -822,6 +818,9 @@ class BLINK_EXPORT WebFrameClient {
   virtual WebURL overrideFlashEmbedWithHTML(const WebURL& url) {
     return WebURL();
   }
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void checkHLSSupport(const WebString&, bool&) {}
+#endif
 };
 
 }  // namespace blink
index c48ed50..66fcc89 100644 (file)
@@ -313,6 +313,8 @@ class WebSettings {
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void setMediaSubtitleNotificationEnabled(bool) = 0;
+  virtual bool mediaSubtitleNotificationEnabled() = 0;
   virtual void setAllowFileAccessFromExternalURLs(bool) = 0;
   virtual bool allowFileAccessFromExternalURLs() = 0;
   virtual void setMediaPlaybackNotificationEnabled(bool) = 0;
@@ -323,6 +325,7 @@ class WebSettings {
 #if defined(OS_TIZEN)
   virtual void setHwKeyboardConnected(bool) = 0;
   virtual bool hwKeyboardConnected() = 0;
+  virtual void setLinkEffectEnabled(bool) = 0;
 #endif
 
  protected:
index cb96fc4..a1e83b8 100644 (file)
@@ -150,6 +150,12 @@ class WebView : protected WebWidget {
   // Returns the selection rect encompassing text and images.
   virtual WebRect currentSelectionRect() const = 0;
 
+  // Suspends loaders for the main frame and all sub-frames
+  virtual void suspendNetworkLoading() = 0;
+
+  // Resumes perviously suspended frame loaders
+  virtual void resumeNetworkLoading() = 0;
+
   // Gets the bitmap of the selected image.
   virtual void selectionAsBitmap(SkBitmap& selectedRegion) const = 0;
 
@@ -565,6 +571,9 @@ class WebView : protected WebWidget {
   // API to toggle between day mode and night mode in reader mode.
   virtual void enableNightMode(bool) = 0;
 
+  // Return if there is any active video in the view
+  virtual bool isVideoPlaying() = 0;
+
   // Samsung Method called to paint the rectangular region within the WebWidget
   // onto the specified canvas, when the page is not having any 3D content.
 
@@ -593,12 +602,22 @@ class WebView : protected WebWidget {
 #if defined(TIZEN_VIDEO_HOLE)
   virtual void setVideoHoleForRender(bool enable) = 0;
   virtual bool isVideoHoleForRender() const = 0;
-  virtual void setPresetDisableVideoHole(bool disable) = 0;
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+  virtual void setCanvasHoleForRender(const std::string& url) = 0;
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   virtual void setTranslatedUrl(const WebString, bool&) = 0;
+  virtual void setPreferTextLang(const WebString&) = 0;
   virtual void setFloatVideoWindowState(bool enable) = 0;
+  virtual void requestCanvasFullscreen() = 0;
+  virtual void play360Video() = 0;
+  virtual void pause360Video() = 0;
+  virtual double video360Duration() = 0;
+  virtual double video360CurrentTime() = 0;
+  virtual void set360VideoCurrentTime(double current_time) = 0;
 #endif
 
 #if defined(OS_TIZEN)
index c719c3f..d76d3e0 100644 (file)
@@ -110,6 +110,8 @@ class WebViewClient : protected WebWidgetClient {
     return false;
   }
 
+  virtual void notifyUrlForPlayingVideo(const WebURL&) {}
+
   // Called when PageImportanceSignals for the WebView is updated.
   virtual void pageImportanceSignalsChanged() {}
 
@@ -226,6 +228,11 @@ class WebViewClient : protected WebWidgetClient {
   // Note: This is called even when the mouse down event is prevent default.
   virtual void onMouseDown(const WebNode& mouseDownNode) {}
 
+#if defined(OS_TIZEN)
+  // Request to play link effect in browser process.
+  virtual void playLinkEffect() {}
+#endif
+
   // Session history -----------------------------------------------------
 
   // Tells the embedder to navigate back or forward in session history by
index 771ef81..c2593c4 100644 (file)
@@ -238,6 +238,11 @@ class WebWidget {
   // replaced.
   virtual void applyReplacementRange(const WebRange&) {}
 
+#if defined(USE_EFL)
+  virtual bool isHitScrollbar() { return false; }
+  virtual bool isMouseDownEventSwallowed() { return false; }
+#endif
+
  protected:
   ~WebWidget() {}
 };
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/ced/src/compact_enc_det/detail_head_string.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/ced/src/compact_enc_det/detail_head_string.inc
new file mode 100644 (file)
index 0000000..e70e5ff
--- /dev/null
@@ -0,0 +1,152 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+// Produced by stringify.cc on 2007-09-28 09:13 from file i18n/encodings/compact_enc_det/tools/detail_head.ps
+  "%!PS-Adobe-2.0\n\n/inch {72 mul} def\n/cshow {dup stringwidth pop -2 div"
+  " 0 rmoveto show} def\n\n/lmargin 0.5 inch def\n/rmargin 8.5 inch def\n/t"
+  "margin 10.5 inch def\n/bmargin 0.5 inch def\n\n\n% set to N>=0 to track "
+  "ranked encoding N\n/track-me -1 def\n/track-me2 -1 def\n\n/columns 2 def"
+  "\n\n/lpi 18 def                 % lines per inch\n/lpc lpi 10 mul def   "
+  "      % lines per column\n/lpp lpc columns mul def    % lines per page\n"
+  "/probw 3.0 inch def         % probability width\n/probr 50 def          "
+  "     % probability range\n/widowlines lpi 2 idiv def  % 1/2 inch widow a"
+  "t bottom\n/widowlines lpi def         % 1 inch widow at bottom\n\n/lpg l"
+  "pi 2 idiv def         % 1/2 inch spacing between groups\n\n/delc 4 inch "
+  "def\n/dell -1 inch lpi div def\n\n/next-line 0 def      % 24 lines per i"
+  "nch, 240 per column\n\n/Cfont /Courier findfont 6 scalefont def\n/Hfont "
+  "/Helvetica findfont 6 scalefont def\nHfont setfont\n\n\n% simple string "
+  "hash -- sum the characters\n/strhash {\n  /hstr exch def\n  /h 0 def\n  "
+  "0 1 hstr length 1 sub {/i exch def  /h h hstr i get add def} for\n  h\n}"
+  " def\n\n% convert pro at 30 per 2x to 0-2.5 inches spanning -50 to 0\n/p"
+  "rob2x {\n  30 idiv probr div probw mul neg probw add\n}def\n\n\n/cliptoc"
+  "olumn {\n  % ====== MUST MATCH ME ======\n  gsave\n  lmargin tmargin mov"
+  "eto\n  next-line lpc idiv delc mul 0 rmoveto\n  -1 18 rmoveto 0 -10.5 in"
+  "ch rlineto  delc 2 add 0 rlineto  0 10.5 inch rlineto closepath\n  clip\n"
+  "  newpath\n} def\n\n/endcliptocolumn {\n  grestore\n  % ====== MUST MATC"
+  "H ME ======\n} def\n\n\n\n/column-box {\n  lmargin tmargin moveto\n  nex"
+  "t-line 1 sub lpc idiv delc mul  next-line 1 sub lpc mod 1 add dell mul r"
+  "moveto\n  % box\n  gsave -1.5 0 rmoveto 0 detail-count dell mul neg rmov"
+  "eto  probw 3 add 0 rlineto 0.25 setlinewidth stroke grestore\n  gsave -1"
+  ".5 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlinewidth strok"
+  "e grestore\n  gsave probw .8 mul 0 rmoveto 0 detail-count dell mul neg r"
+  "lineto 0.25 setlinewidth 0.8 setgray stroke grestore\n  gsave probw .6 m"
+  "ul 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlinewidth 0.8 s"
+  "etgray stroke grestore\n  gsave probw .4 mul 0 rmoveto 0 detail-count de"
+  "ll mul neg rlineto 0.25 setlinewidth 0.8 setgray stroke grestore\n  gsav"
+  "e probw .2 mul 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlin"
+  "ewidth 0.8 setgray stroke grestore\n  gsave probw 1.5 add 0 rmoveto 0 de"
+  "tail-count dell mul neg rlineto 0.25 setlinewidth stroke grestore\n} def"
+  "\n\n\n/IncrementLine {\n  /incr exch def\n  /next-line next-line incr ad"
+  "d def\n  next-line lpc ge   next-line incr sub lpc lt   and {\n    % We "
+  "just went to the top of column 2; redo clip\n    endcliptocolumn     % M"
+  "UST match\n    column-box\n    /next-line lpc def\n    cliptocolumn     "
+  "   % MUST match\n  } if\n  next-line lpp ge {\n    % We just went to the"
+  " top of column 3; start new page column 1\n    endcliptocolumn     % MUS"
+  "T match\n    column-box\n    showpage\n    Hfont setfont\n    /next-line"
+  " 0 def\n    show-pageno\n    cliptocolumn        % MUST match\n  } if\n}"
+  " def\n\n/IncrementLineOutside {\n  /incr exch def\n  /next-line next-lin"
+  "e incr add def\n  next-line lpc ge   next-line incr sub lpc lt   and {\n"
+  "    % We just went to the top of column 2\n    /next-line lpc def\n  } i"
+  "f\n  next-line lpp ge {\n    % We just went to the top of column 3; star"
+  "t new page column 1\n    showpage\n    Hfont setfont\n    /next-line 0 d"
+  "ef\n    show-pageno\n  } if\n} def\n\n/NextColumn {\n  lpc 1 sub Increme"
+  "ntLine\n} def\n\n/NextPage {\n    lpp 1 sub IncrementLine\n} def\n\n% Up"
+  "on entry, we are OUTSIDE the clip\n/start-detail {\n  /d-title exch def\n"
+  "\n  % align >= 1 inch at bottom of column, and/or start new column\n  lp"
+  "c next-line lpc mod sub widowlines lt {\n    % Start at top of a column\n"
+  "    next-line lpc ge {\n      % Start new page\n      showpage\n      Hf"
+  "ont setfont\n      /next-line 0 def\n      show-pageno\n    } {\n      %"
+  " Start new column\n      /next-line lpc def\n    } ifelse\n  } if\n\n  l"
+  "margin tmargin moveto\n  next-line lpc idiv delc mul  next-line lpc mod "
+  "dell mul rmoveto\n  gsave d-title show grestore\n  0 dell rmoveto\n  1 1"
+  " 4 {/j exch def gsave probw j mul 5 div -2 rmoveto 50 j 10 mul sub 20 st"
+  "ring cvs cshow grestore} for\n  2 IncrementLineOutside\n  /detail-count "
+  "1 def\n  cliptocolumn            % MUST match\n  /d-array [] def\n} def\n"
+  "\n/size-detail {\n  /d-names exch def\n  /d-size exch def\n  % zero sums"
+  "\n  /sums d-size array def\n  0 1 d-size 1 sub {/i exch def  sums i 0 pu"
+  "t} for\n  /old-d-max 0 def\n  /colors d-size array def\n  0 1 d-size 1 s"
+  "ub {/i exch def  colors i i 3 mul 17 mod 17 div put} for\n  %0 1 d-size "
+  "1 sub {/i exch def  colors i d-names i get strhash 3 mul 17 mod 17 div p"
+  "ut} for\n  %0 1 d-size 1 sub {/i exch def  ( ) show colors i get 20 stri"
+  "ng cvs show} for\n} def\n\n/count-detail {\n  /detail-total-count exch d"
+  "ef\n  % if total-count >= one column, start at top of a column\n  detail"
+  "-total-count lpp ge {\n    % Start new page\n    NextPage\n  } {\n    de"
+  "tail-total-count lpc ge {\n      % Start new column\n      NextColumn\n "
+  "   } if\n  } ifelse\n} def\n\n% highlight next entry with underbar\n/do-"
+  "flag {\ngsave\n  setrgbcolor\n  lmargin tmargin moveto\n  next-line lpc "
+  "idiv delc mul  next-line lpc mod dell mul rmoveto\n  0 -2 rmoveto\n  pro"
+  "bw 0 rlineto\n  0 dell neg rlineto\n  probw neg 0 rlineto\n  closepath\n"
+  "  fill\ngrestore\n} def\n\n/do-detail-e {\n  /d-array exch def\n  /d-enc"
+  " exch def\n  /d-label exch def\n  /d-max -999999 def\n\n  lmargin tmargi"
+  "n moveto\n  next-line lpc idiv delc mul  next-line lpc mod dell mul rmov"
+  "eto\n  0.25 setlinewidth\n\n  % show label, using encoding color\n  gsav"
+  "e\n    probw 2 add -2 rmoveto\n    detail-count 1 sub 2 mod 0.25 inch mu"
+  "l 0 rmoveto\n    % ([) show detail-count 20 string cvs show (] ) show\n "
+  "   d-enc 0 lt {\n      0 setgray\n    }{\n      colors d-enc get 1 .8 se"
+  "thsbcolor\n    } ifelse\n    d-label show\n  grestore\n  % For -prune- d"
+  "raw horizontal line\n  d-label length 8 gt {d-label 4 get (p) 0 get eq d"
+  "-label 5 get (r) 0 get eq and {\n    /prune-val d-label cvi def\n    /ne"
+  "wx prune-val 30 mul prob2x def\n    gsave newx 6 rmoveto 0 -12 rlineto 1"
+  ".5 setlinewidth 0.8 setgray stroke grestore\n    gsave probw 0 add 0 rli"
+  "neto 0.25 setlinewidth 0.8 setgray stroke grestore\n  } if } if\n\n  % t"
+  "rack max per new row\n  0 1 d-array length 1 sub {\n    /i exch def\n   "
+  " /sum sums i get d-array i get add def\n    d-max sum lt {/d-max sum def"
+  "} if\n  } for\n\n  % draw line increments\n  0 1 d-array length 1 sub {\n"
+  "    /i exch def\n    detail-count 1 gt {\n      /oldx old-d-max sums i g"
+  "et sub prob2x def\n    } {\n      /oldx 600 prob2x def\n    } ifelse\n  "
+  "  /oldy dell neg def\n    /newx d-max  sums i get d-array i get add  sub"
+  " prob2x def\n    /newy 0 def\n    gsave\n    oldx oldy rmoveto\n    newx"
+  " oldx sub  newy oldy sub rlineto\n    % if encoding is being tracked, ma"
+  "ke bold line\n    i track-me eq\n      {2 setlinewidth}\n      {i track-"
+  "me2 eq {1.25 setlinewidth} {0.25 setlinewidth} ifelse}\n      ifelse\n  "
+  "  colors i get 1 .8 sethsbcolor stroke\n    grestore\n  } for\n  /detail"
+  "-count detail-count 1 add def\n\n  % increment running total in sums, tr"
+  "ack max per row\n  0 1 d-array length 1 sub {\n    /i exch def\n    sums"
+  " i  sums i get d-array i get add  put\n  } for\n  /old-d-max d-max def\n"
+  "\n  1 IncrementLine\n} def\n\n\n/do-detail {\n  /d-array exch def\n  /d-"
+  "label exch def\n  d-label -1 d-array do-detail-e\n} def\n\n% Upon exit, "
+  "we are outside the clip\n/end-detail {\n  pop\n  endcliptocolumn        "
+  " % MUST match\n  column-box\n\n  % text labels\n  0 1 d-array length 1 s"
+  "ub {\n    /i exch def\n    gsave\n    /newx old-d-max sums i get sub pro"
+  "b2x def\n    newx 0 ge {\n      newx 0 rmoveto\n      currentpoint trans"
+  "late\n      colors i get 1 .8 sethsbcolor\n      gsave 0 dell neg  rline"
+  "to 0.25 setlinewidth stroke grestore\n      -60 rotate\n      0 -2 movet"
+  "o d-names i get show\n    } if\n    grestore\n  } for\n  d-array length "
+  "0 gt {\n    lpg IncrementLineOutside\n  } {\n    lpg 4 idiv IncrementLin"
+  "eOutside\n  } ifelse\n} def\n\n/do-src {\n/src exch def\n  lmargin tmarg"
+  "in moveto\n  next-line lpc idiv delc mul  next-line lpc mod dell mul rmo"
+  "veto\n  Cfont setfont\n  src show\n  Hfont setfont\n  1 IncrementLine\n}"
+  " def\n\n% Underline trigram in source text\n/do-highlight1 {\n  /hl-colo"
+  "r exch def\n  /hl-offset exch def\n  /hl-line exch 1 sub 2 mul def\n  gs"
+  "ave\n  lmargin tmargin moveto\n  next-line hl-line sub lpc idiv delc mul"
+  "\n  next-line hl-line sub lpc mod dell mul rmoveto\n  % Assume text is 6"
+  " chars in and 3.6 pts per char, but 2 chars per offset\n  hl-offset 2 mu"
+  "l 6 add 3.6 mul  4 rmoveto\n\n  0 setgray 0.5 setlinewidth\n  hl-color 1"
+  " eq {0 0 1 setrgbcolor} if  % Latin1 blue\n  hl-color 2 eq {1 0 1 setrgb"
+  "color} if  % Latin2 magenta\n  hl-color 3 eq {1 0.67 0 setrgbcolor} if  "
+  "% Latin7 orange\n  18 -2 rlineto stroke\n  grestore\n} def\n\n% Box trig"
+  "ram in source text\n/do-highlight2 {\n  /hl-color exch def\n  /hl-offset"
+  " exch def\n  /hl-line exch 1 sub 2 mul def\n  gsave\n  lmargin tmargin m"
+  "oveto\n  next-line hl-line sub lpc idiv delc mul\n  next-line hl-line su"
+  "b lpc mod dell mul rmoveto\n  % Assume text is 6 chars in and 3.6 pts pe"
+  "r char, but 2 chars per offset\n  hl-offset 2 mul 6 add 3.6 mul  4 rmove"
+  "to\n\n  0 setgray 0.25 setlinewidth\n  hl-color 1 eq {0 0 1 setrgbcolor}"
+  " if  % Latin1 blue\n  hl-color 2 eq {1 0 1 setrgbcolor} if  % Latin2 mag"
+  "enta\n  hl-color 3 eq {1 0.67 0 setrgbcolor} if  % Latin7 orange\n  -0.5"
+  " -0.5 rmoveto\n  22 0 rlineto\n  0 4 rlineto\n  -11 2 rlineto\n  -11 -2 "
+  "rlineto\n  closepath\n  stroke\n  grestore\n} def\n\n/show-pageno {\ngsa"
+  "ve\nlmargin bmargin moveto 0 -12 rmoveto\n(Page ) show pageno 20 string "
+  "cvs show\ngrestore\n/pageno pageno 1 add def\n} def\n\n/pageno 1 def\nsh"
+  "ow-pageno\n%=============================\n\n\n"
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/ffmpeg/libavfilter/all_channel_layouts.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/ffmpeg/libavfilter/all_channel_layouts.inc
new file mode 100644 (file)
index 0000000..878e1f5
--- /dev/null
@@ -0,0 +1,68 @@
+AV_CH_FRONT_CENTER,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER,
+AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_LOW_FREQUENCY|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
+AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT|AV_CH_FRONT_CENTER|AV_CH_BACK_CENTER|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT,
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/libudev/libudev0.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/libudev/libudev0.h
new file mode 100644 (file)
index 0000000..10e098d
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ * libudev - interface to udev device information
+ *
+ * Copyright (C) 2008-2011 Kay Sievers <kay.sievers@vrfy.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ */
+
+#ifndef _LIBUDEV_H_
+#define _LIBUDEV_H_
+
+#include <stdarg.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * udev - library context
+ *
+ * reads the udev config and system environment
+ * allows custom logging
+ */
+struct udev;
+struct udev *udev_ref(struct udev *udev);
+void udev_unref(struct udev *udev);
+struct udev *udev_new(void);
+void udev_set_log_fn(struct udev *udev,
+                            void (*log_fn)(struct udev *udev,
+                                           int priority, const char *file, int line, const char *fn,
+                                           const char *format, va_list args));
+int udev_get_log_priority(struct udev *udev);
+void udev_set_log_priority(struct udev *udev, int priority);
+const char *udev_get_sys_path(struct udev *udev);
+const char *udev_get_dev_path(struct udev *udev);
+const char *udev_get_run_path(struct udev *udev);
+void *udev_get_userdata(struct udev *udev);
+void udev_set_userdata(struct udev *udev, void *userdata);
+
+/*
+ * udev_list
+ *
+ * access to libudev generated lists
+ */
+struct udev_list_entry;
+struct udev_list_entry *udev_list_entry_get_next(struct udev_list_entry *list_entry);
+struct udev_list_entry *udev_list_entry_get_by_name(struct udev_list_entry *list_entry, const char *name);
+const char *udev_list_entry_get_name(struct udev_list_entry *list_entry);
+const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
+/**
+ * udev_list_entry_foreach:
+ * @list_entry: entry to store the current position
+ * @first_entry: first entry to start with
+ *
+ * Helper to iterate over all entries of a list.
+ */
+#define udev_list_entry_foreach(list_entry, first_entry) \
+        for (list_entry = first_entry; \
+             list_entry != NULL; \
+             list_entry = udev_list_entry_get_next(list_entry))
+
+/*
+ * udev_device
+ *
+ * access to sysfs/kernel devices
+ */
+struct udev_device;
+struct udev_device *udev_device_ref(struct udev_device *udev_device);
+void udev_device_unref(struct udev_device *udev_device);
+struct udev *udev_device_get_udev(struct udev_device *udev_device);
+struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
+struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
+struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname);
+struct udev_device *udev_device_new_from_environment(struct udev *udev);
+/* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
+struct udev_device *udev_device_get_parent(struct udev_device *udev_device);
+struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device,
+                                                                  const char *subsystem, const char *devtype);
+/* retrieve device properties */
+const char *udev_device_get_devpath(struct udev_device *udev_device);
+const char *udev_device_get_subsystem(struct udev_device *udev_device);
+const char *udev_device_get_devtype(struct udev_device *udev_device);
+const char *udev_device_get_syspath(struct udev_device *udev_device);
+const char *udev_device_get_sysname(struct udev_device *udev_device);
+const char *udev_device_get_sysnum(struct udev_device *udev_device);
+const char *udev_device_get_devnode(struct udev_device *udev_device);
+int udev_device_get_is_initialized(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device);
+const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
+const char *udev_device_get_driver(struct udev_device *udev_device);
+dev_t udev_device_get_devnum(struct udev_device *udev_device);
+const char *udev_device_get_action(struct udev_device *udev_device);
+unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device);
+unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device);
+const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
+int udev_device_has_tag(struct udev_device *udev_device, const char *tag);
+
+/*
+ * udev_monitor
+ *
+ * access to kernel uevents and udev events
+ */
+struct udev_monitor;
+struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
+void udev_monitor_unref(struct udev_monitor *udev_monitor);
+struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor);
+/* kernel and udev generated events over netlink */
+struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
+/* custom socket (use netlink and filters instead) */
+struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path);
+/* bind socket */
+int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
+int udev_monitor_set_receive_buffer_size(struct udev_monitor *udev_monitor, int size);
+int udev_monitor_get_fd(struct udev_monitor *udev_monitor);
+struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor);
+/* in-kernel socket filters to select messages that get delivered to a listener */
+int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor,
+                                                    const char *subsystem, const char *devtype);
+int udev_monitor_filter_add_match_tag(struct udev_monitor *udev_monitor, const char *tag);
+int udev_monitor_filter_update(struct udev_monitor *udev_monitor);
+int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
+
+/*
+ * udev_enumerate
+ *
+ * search sysfs for specific devices and provide a sorted list
+ */
+struct udev_enumerate;
+struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate);
+void udev_enumerate_unref(struct udev_enumerate *udev_enumerate);
+struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate);
+struct udev_enumerate *udev_enumerate_new(struct udev *udev);
+/* device properties filter */
+int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_nomatch_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
+int udev_enumerate_add_match_sysname(struct udev_enumerate *udev_enumerate, const char *sysname);
+int udev_enumerate_add_match_tag(struct udev_enumerate *udev_enumerate, const char *tag);
+int udev_enumerate_add_match_parent(struct udev_enumerate *udev_enumerate, struct udev_device *parent);
+int udev_enumerate_add_match_is_initialized(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_add_syspath(struct udev_enumerate *udev_enumerate, const char *syspath);
+/* run enumeration with active filters */
+int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_scan_subsystems(struct udev_enumerate *udev_enumerate);
+/* return device list */
+struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate);
+
+/*
+ * udev_queue
+ *
+ * access to the currently running udev events
+ */
+struct udev_queue;
+struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue);
+void udev_queue_unref(struct udev_queue *udev_queue);
+struct udev *udev_queue_get_udev(struct udev_queue *udev_queue);
+struct udev_queue *udev_queue_new(struct udev *udev);
+unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue);
+unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue);
+int udev_queue_get_udev_is_active(struct udev_queue *udev_queue);
+int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue);
+int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum);
+int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
+                                               unsigned long long int start, unsigned long long int end);
+struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue);
+
+/*
+ * udev_util
+ *
+ * udev specific utilities
+ */
+int udev_util_encode_string(const char *str, char *str_enc, size_t len);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/libudev/libudev1.h b/vendor/brightray/vendor/libchromiumcontent/src/third_party/libudev/libudev1.h
new file mode 100644 (file)
index 0000000..799f470
--- /dev/null
@@ -0,0 +1,185 @@
+/*
+ * libudev - interface to udev device information
+ *
+ * Copyright (C) 2008-2011 Kay Sievers <kay.sievers@vrfy.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ */
+
+#ifndef _LIBUDEV_H_
+#define _LIBUDEV_H_
+
+#include <stdarg.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * udev - library context
+ *
+ * reads the udev config and system environment
+ * allows custom logging
+ */
+struct udev;
+struct udev *udev_ref(struct udev *udev);
+struct udev *udev_unref(struct udev *udev);
+struct udev *udev_new(void);
+void udev_set_log_fn(struct udev *udev,
+                            void (*log_fn)(struct udev *udev,
+                                           int priority, const char *file, int line, const char *fn,
+                                           const char *format, va_list args));
+int udev_get_log_priority(struct udev *udev);
+void udev_set_log_priority(struct udev *udev, int priority);
+void *udev_get_userdata(struct udev *udev);
+void udev_set_userdata(struct udev *udev, void *userdata);
+
+/*
+ * udev_list
+ *
+ * access to libudev generated lists
+ */
+struct udev_list_entry;
+struct udev_list_entry *udev_list_entry_get_next(struct udev_list_entry *list_entry);
+struct udev_list_entry *udev_list_entry_get_by_name(struct udev_list_entry *list_entry, const char *name);
+const char *udev_list_entry_get_name(struct udev_list_entry *list_entry);
+const char *udev_list_entry_get_value(struct udev_list_entry *list_entry);
+/**
+ * udev_list_entry_foreach:
+ * @list_entry: entry to store the current position
+ * @first_entry: first entry to start with
+ *
+ * Helper to iterate over all entries of a list.
+ */
+#define udev_list_entry_foreach(list_entry, first_entry) \
+        for (list_entry = first_entry; \
+             list_entry != NULL; \
+             list_entry = udev_list_entry_get_next(list_entry))
+
+/*
+ * udev_device
+ *
+ * access to sysfs/kernel devices
+ */
+struct udev_device;
+struct udev_device *udev_device_ref(struct udev_device *udev_device);
+struct udev_device *udev_device_unref(struct udev_device *udev_device);
+struct udev *udev_device_get_udev(struct udev_device *udev_device);
+struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
+struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
+struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname);
+struct udev_device *udev_device_new_from_device_id(struct udev *udev, char *id);
+struct udev_device *udev_device_new_from_environment(struct udev *udev);
+/* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
+struct udev_device *udev_device_get_parent(struct udev_device *udev_device);
+struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device,
+                                                                  const char *subsystem, const char *devtype);
+/* retrieve device properties */
+const char *udev_device_get_devpath(struct udev_device *udev_device);
+const char *udev_device_get_subsystem(struct udev_device *udev_device);
+const char *udev_device_get_devtype(struct udev_device *udev_device);
+const char *udev_device_get_syspath(struct udev_device *udev_device);
+const char *udev_device_get_sysname(struct udev_device *udev_device);
+const char *udev_device_get_sysnum(struct udev_device *udev_device);
+const char *udev_device_get_devnode(struct udev_device *udev_device);
+int udev_device_get_is_initialized(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device);
+struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device);
+const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
+const char *udev_device_get_driver(struct udev_device *udev_device);
+dev_t udev_device_get_devnum(struct udev_device *udev_device);
+const char *udev_device_get_action(struct udev_device *udev_device);
+unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device);
+unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device);
+const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
+int udev_device_has_tag(struct udev_device *udev_device, const char *tag);
+
+/*
+ * udev_monitor
+ *
+ * access to kernel uevents and udev events
+ */
+struct udev_monitor;
+struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
+struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor);
+struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor);
+/* kernel and udev generated events over netlink */
+struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
+/* bind socket */
+int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
+int udev_monitor_set_receive_buffer_size(struct udev_monitor *udev_monitor, int size);
+int udev_monitor_get_fd(struct udev_monitor *udev_monitor);
+struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor);
+/* in-kernel socket filters to select messages that get delivered to a listener */
+int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor,
+                                                    const char *subsystem, const char *devtype);
+int udev_monitor_filter_add_match_tag(struct udev_monitor *udev_monitor, const char *tag);
+int udev_monitor_filter_update(struct udev_monitor *udev_monitor);
+int udev_monitor_filter_remove(struct udev_monitor *udev_monitor);
+
+/*
+ * udev_enumerate
+ *
+ * search sysfs for specific devices and provide a sorted list
+ */
+struct udev_enumerate;
+struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate);
+struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate);
+struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate);
+struct udev_enumerate *udev_enumerate_new(struct udev *udev);
+/* device properties filter */
+int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem);
+int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_nomatch_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value);
+int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
+int udev_enumerate_add_match_sysname(struct udev_enumerate *udev_enumerate, const char *sysname);
+int udev_enumerate_add_match_tag(struct udev_enumerate *udev_enumerate, const char *tag);
+int udev_enumerate_add_match_parent(struct udev_enumerate *udev_enumerate, struct udev_device *parent);
+int udev_enumerate_add_match_is_initialized(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_add_syspath(struct udev_enumerate *udev_enumerate, const char *syspath);
+/* run enumeration with active filters */
+int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate);
+int udev_enumerate_scan_subsystems(struct udev_enumerate *udev_enumerate);
+/* return device list */
+struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate);
+
+/*
+ * udev_queue
+ *
+ * access to the currently running udev events
+ */
+struct udev_queue;
+struct udev_queue *udev_queue_ref(struct udev_queue *udev_queue);
+struct udev_queue *udev_queue_unref(struct udev_queue *udev_queue);
+struct udev *udev_queue_get_udev(struct udev_queue *udev_queue);
+struct udev_queue *udev_queue_new(struct udev *udev);
+unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev_queue);
+unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_queue);
+int udev_queue_get_udev_is_active(struct udev_queue *udev_queue);
+int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue);
+int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsigned long long int seqnum);
+int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
+                                               unsigned long long int start, unsigned long long int end);
+struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue);
+
+/*
+ * udev_util
+ *
+ * udev specific utilities
+ */
+int udev_util_encode_string(const char *str, char *str_enc, size_t len);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/mesa/src/src/gallium/state_trackers/d3d1x/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/mesa/src/src/gallium/state_trackers/d3d1x/Makefile.inc
new file mode 100644 (file)
index 0000000..303915d
--- /dev/null
@@ -0,0 +1,19 @@
+TOP=../../../../..
+include $(TOP)/configs/current
+
+IDL=$(wildcard *.idl include/*.idl)
+IDL_H=$(IDL:.idl=.h)
+LD=$(CXX) $(CXXFLAGS)
+
+include ../../../Makefile.template
+
+idl: $(IDL_H)
+
+%.h: %.idl
+       widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H $@ $^ 
+
+%.svg: %.dot
+       dot -Tsvg -o $@ $<
+
+%.pdf: %.dot
+       dot -Tpdf -o $@ $<
index a63dade..0f5ccb9 100644 (file)
@@ -302,6 +302,12 @@ public:
      */
     bool isLine(SkPoint line[2]) const;
 
+    /**
+     *  Returns true if the path specifies a single line with close path
+     *  (i.e. it contains  a moveTo, a lineTo and closePath).
+     */
+    bool isClosedLine(SkPoint line[2]) const;
+
     /** Return the number of points in the path
      */
     int countPoints() const;
index 7bbdc15..59f2058 100644 (file)
@@ -12,7 +12,7 @@
 #include "SkColor.h"
 #include "SkFlattenable.h"
 
-//#ifdef SK_SUPPORT_LEGACY_XFERMODE_IS_PUBLIC
+#ifdef SK_SUPPORT_LEGACY_XFERMODE_IS_PUBLIC
 
 class GrFragmentProcessor;
 class GrTexture;
@@ -37,7 +37,6 @@ typedef SkPM4f (*SkXfermodeProc4f)(const SkPM4f& src, const SkPM4f& dst);
  *  the same instance between several threads.
  */
 class SK_API SkXfermode : public SkFlattenable {
-//YSYS
 public:
     virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
                         const SkAlpha aa[]) const;
@@ -305,6 +304,6 @@ private:
     typedef SkFlattenable INHERITED;
 };
 
-//#endif
+#endif
 
 #endif
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/animator/SkCondensedDebug.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/animator/SkCondensedDebug.inc
new file mode 100644 (file)
index 0000000..dcebe00
--- /dev/null
@@ -0,0 +1,1387 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkTypes.h"
+#ifndef SK_BUILD_FOR_UNIX
+#ifdef SK_DEBUG
+// This file was automatically generated.
+// To change it, edit the file with the matching debug info.
+// Then execute SkDisplayType::BuildCondensedInfo() to regenerate this file.
+
+static const char gMathStrings[] =
+    "E\0"
+    "LN10\0"
+    "LN2\0"
+    "LOG10E\0"
+    "LOG2E\0"
+    "PI\0"
+    "SQRT1_2\0"
+    "SQRT2\0"
+    "abs\0"
+    "acos\0"
+    "asin\0"
+    "atan\0"
+    "atan2\0"
+    "ceil\0"
+    "cos\0"
+    "exp\0"
+    "floor\0"
+    "log\0"
+    "max\0"
+    "min\0"
+    "pow\0"
+    "random\0"
+    "round\0"
+    "sin\0"
+    "sqrt\0"
+    "tan"
+;
+
+static const SkMemberInfo gMathInfo[] = {
+    {0, -1, 67, 98},
+    {2, -2, 67, 98},
+    {7, -3, 67, 98},
+    {11, -4, 67, 98},
+    {18, -5, 67, 98},
+    {24, -6, 67, 98},
+    {27, -7, 67, 98},
+    {35, -8, 67, 98},
+    {41, -1, 66, 98},
+    {45, -2, 66, 98},
+    {50, -3, 66, 98},
+    {55, -4, 66, 98},
+    {60, -5, 66, 98},
+    {66, -6, 66, 98},
+    {71, -7, 66, 98},
+    {75, -8, 66, 98},
+    {79, -9, 66, 98},
+    {85, -10, 66, 98},
+    {89, -11, 66, 98},
+    {93, -12, 66, 98},
+    {97, -13, 66, 98},
+    {101, -14, 66, 98},
+    {108, -15, 66, 98},
+    {114, -16, 66, 98},
+    {118, -17, 66, 98},
+    {123, -18, 66, 98}
+};
+
+static const char gAddStrings[] =
+    "inPlace\0"
+    "offset\0"
+    "use\0"
+    "where"
+;
+
+static const SkMemberInfo gAddInfo[] = {
+    {0, 16, 26, 1},
+    {8, 20, 96, 1},
+    {15, 24, 37, 1},
+    {19, 28, 37, 1}
+};
+
+static const char gAddCircleStrings[] =
+    "\0"
+    "radius\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gAddCircleInfo[] = {
+    {0, 3, 18, 1},
+    {1, 24, 98, 1},
+    {8, 28, 98, 1},
+    {10, 32, 98, 1}
+};
+
+static const char gUnknown1Strings[] =
+    "direction"
+;
+
+static const SkMemberInfo gUnknown1Info[] = {
+    {0, 20, 75, 1}
+};
+
+static const char gAddOvalStrings[] =
+    ""
+;
+
+static const SkMemberInfo gAddOvalInfo[] = {
+    {0, 6, 18, 5}
+};
+
+static const char gAddPathStrings[] =
+    "matrix\0"
+    "path"
+;
+
+static const SkMemberInfo gAddPathInfo[] = {
+    {0, 20, 65, 1},
+    {7, 24, 74, 1}
+};
+
+static const char gAddRectangleStrings[] =
+    "\0"
+    "bottom\0"
+    "left\0"
+    "right\0"
+    "top"
+;
+
+static const SkMemberInfo gAddRectangleInfo[] = {
+    {0, 3, 18, 1},
+    {1, 36, 98, 1},
+    {8, 24, 98, 1},
+    {13, 32, 98, 1},
+    {19, 28, 98, 1}
+};
+
+static const char gAddRoundRectStrings[] =
+    "\0"
+    "rx\0"
+    "ry"
+;
+
+static const SkMemberInfo gAddRoundRectInfo[] = {
+    {0, 6, 18, 5},
+    {1, 40, 98, 1},
+    {4, 44, 98, 1}
+};
+
+static const char gUnknown2Strings[] =
+    "begin\0"
+    "blend\0"
+    "dur\0"
+    "dynamic\0"
+    "field\0"
+    "formula\0"
+    "from\0"
+    "mirror\0"
+    "repeat\0"
+    "reset\0"
+    "target\0"
+    "to\0"
+    "values"
+;
+
+static const SkMemberInfo gUnknown2Info[] = {
+    {0, 16, 71, 1},
+    {6, 20, 119, 98},
+    {12, 36, 71, 1},
+    {16, -1, 67, 26},
+    {24, 40, 108, 2},
+    {30, 48, 40, 2},
+    {38, 56, 40, 2},
+    {43, -2, 67, 26},
+    {50, 64, 98, 1},
+    {57, -3, 67, 26},
+    {63, 68, 40, 2},
+    {70, 76, 40, 2},
+    {73, -4, 67, 40}
+};
+
+static const char gAnimateFieldStrings[] =
+    ""
+;
+
+static const SkMemberInfo gAnimateFieldInfo[] = {
+    {0, 8, 18, 13}
+};
+
+static const char gApplyStrings[] =
+    "animator\0"
+    "begin\0"
+    "dontDraw\0"
+    "dynamicScope\0"
+    "interval\0"
+    "mode\0"
+    "pickup\0"
+    "restore\0"
+    "scope\0"
+    "step\0"
+    "steps\0"
+    "time\0"
+    "transition"
+;
+
+static const SkMemberInfo gApplyInfo[] = {
+    {0, -1, 67, 10},
+    {9, 16, 71, 1},
+    {15, 20, 26, 1},
+    {24, 24, 108, 2},
+    {37, 32, 71, 1},
+    {46, 36, 13, 1},
+    {51, 40, 26, 1},
+    {58, 44, 26, 1},
+    {66, 48, 37, 1},
+    {72, -2, 67, 96},
+    {77, 52, 96, 1},
+    {83, -3, 67, 71},
+    {88, 56, 14, 1}
+};
+
+static const char gUnknown3Strings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gUnknown3Info[] = {
+    {0, 48, 98, 1},
+    {2, 52, 98, 1}
+};
+
+static const char gBitmapStrings[] =
+    "\0"
+    "erase\0"
+    "format\0"
+    "height\0"
+    "rowBytes\0"
+    "width"
+;
+
+static const SkMemberInfo gDrawBitmapInfo[] = {
+    {0, 11, 18, 2},
+    {1, -1, 67, 15},
+    {7, 56, 21, 1},
+    {14, 60, 96, 1},
+    {21, 64, 96, 1},
+    {30, 68, 96, 1}
+};
+
+static const char gBitmapShaderStrings[] =
+    "\0"
+    "filterType\0"
+    "image"
+;
+
+static const SkMemberInfo gDrawBitmapShaderInfo[] = {
+    {0, 67, 18, 2},
+    {1, 28, 47, 1},
+    {12, 32, 17, 1}
+};
+
+static const char gBlurStrings[] =
+    "blurStyle\0"
+    "radius"
+;
+
+static const SkMemberInfo gDrawBlurInfo[] = {
+    {0, 24, 63, 1},
+    {10, 20, 98, 1}
+};
+
+static const char gBoundsStrings[] =
+    "\0"
+    "inval"
+;
+
+static const SkMemberInfo gDisplayBoundsInfo[] = {
+    {0, 58, 18, 7},
+    {1, 44, 26, 1}
+};
+
+static const char gClipStrings[] =
+    "path\0"
+    "rectangle"
+;
+
+static const SkMemberInfo gDrawClipInfo[] = {
+    {0, 20, 74, 1},
+    {5, 16, 91, 1}
+};
+
+static const char gColorStrings[] =
+    "alpha\0"
+    "blue\0"
+    "color\0"
+    "green\0"
+    "hue\0"
+    "red\0"
+    "saturation\0"
+    "value"
+;
+
+static const SkMemberInfo gDrawColorInfo[] = {
+    {0, -1, 67, 98},
+    {6, -2, 67, 98},
+    {11, 20, 15, 1},
+    {17, -3, 67, 98},
+    {23, -4, 67, 98},
+    {27, -5, 67, 98},
+    {31, -6, 67, 98},
+    {42, -7, 67, 98}
+};
+
+static const char gCubicToStrings[] =
+    "x1\0"
+    "x2\0"
+    "x3\0"
+    "y1\0"
+    "y2\0"
+    "y3"
+;
+
+static const SkMemberInfo gCubicToInfo[] = {
+    {0, 20, 98, 1},
+    {3, 28, 98, 1},
+    {6, 36, 98, 1},
+    {9, 24, 98, 1},
+    {12, 32, 98, 1},
+    {15, 40, 98, 1}
+};
+
+static const char gDashStrings[] =
+    "intervals\0"
+    "phase"
+;
+
+static const SkMemberInfo gDashInfo[] = {
+    {0, 20, 119, 98},
+    {10, 36, 98, 1}
+};
+
+static const char gDataStrings[] =
+    "\0"
+    "name"
+;
+
+static const SkMemberInfo gDataInfo[] = {
+    {0, 33, 18, 3},
+    {1, 32, 108, 2}
+};
+
+static const char gDiscreteStrings[] =
+    "deviation\0"
+    "segLength"
+;
+
+static const SkMemberInfo gDiscreteInfo[] = {
+    {0, 20, 98, 1},
+    {10, 24, 98, 1}
+};
+
+static const char gDrawToStrings[] =
+    "drawOnce\0"
+    "use"
+;
+
+static const SkMemberInfo gDrawToInfo[] = {
+    {0, 72, 26, 1},
+    {9, 76, 19, 1}
+};
+
+static const char gDumpStrings[] =
+    "displayList\0"
+    "eventList\0"
+    "events\0"
+    "groups\0"
+    "name\0"
+    "posts"
+;
+
+static const SkMemberInfo gDumpInfo[] = {
+    {0, 16, 26, 1},
+    {12, 20, 26, 1},
+    {22, 24, 26, 1},
+    {29, 36, 26, 1},
+    {36, 28, 108, 2},
+    {41, 40, 26, 1}
+};
+
+static const char gEmbossStrings[] =
+    "ambient\0"
+    "direction\0"
+    "radius\0"
+    "specular"
+;
+
+static const SkMemberInfo gDrawEmbossInfo[] = {
+    {0, -1, 67, 98},
+    {8, 20, 119, 98},
+    {18, 36, 98, 1},
+    {25, -2, 67, 98}
+};
+
+static const char gEventStrings[] =
+    "code\0"
+    "disable\0"
+    "key\0"
+    "keys\0"
+    "kind\0"
+    "target\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gDisplayEventInfo[] = {
+    {0, 16, 43, 1},
+    {5, 20, 26, 1},
+    {13, -1, 67, 108},
+    {17, -2, 67, 108},
+    {22, 24, 44, 1},
+    {27, 28, 108, 2},
+    {34, 36, 98, 1},
+    {36, 40, 98, 1}
+};
+
+static const char gFromPathStrings[] =
+    "mode\0"
+    "offset\0"
+    "path"
+;
+
+static const SkMemberInfo gFromPathInfo[] = {
+    {0, 20, 49, 1},
+    {5, 24, 98, 1},
+    {12, 28, 74, 1}
+};
+
+static const char gUnknown4Strings[] =
+    "\0"
+    "offsets\0"
+    "unitMapper"
+;
+
+static const SkMemberInfo gUnknown4Info[] = {
+    {0, 67, 18, 2},
+    {1, 28, 119, 98},
+    {9, 44, 108, 2}
+};
+
+static const char gGStrings[] =
+    "condition\0"
+    "enableCondition"
+;
+
+static const SkMemberInfo gGInfo[] = {
+    {0, 16, 40, 2},
+    {10, 24, 40, 2}
+};
+
+static const char gHitClearStrings[] =
+    "targets"
+;
+
+static const SkMemberInfo gHitClearInfo[] = {
+    {0, 16, 119, 36}
+};
+
+static const char gHitTestStrings[] =
+    "bullets\0"
+    "hits\0"
+    "targets\0"
+    "value"
+;
+
+static const SkMemberInfo gHitTestInfo[] = {
+    {0, 16, 119, 36},
+    {8, 32, 119, 96},
+    {13, 48, 119, 36},
+    {21, 64, 26, 1}
+};
+
+static const char gImageStrings[] =
+    "\0"
+    "base64\0"
+    "src"
+;
+
+static const SkMemberInfo gImageInfo[] = {
+    {0, 11, 18, 2},
+    {1, 56, 16, 2},
+    {8, 64, 108, 2}
+};
+
+static const char gIncludeStrings[] =
+    "src"
+;
+
+static const SkMemberInfo gIncludeInfo[] = {
+    {0, 16, 108, 2}
+};
+
+static const char gInputStrings[] =
+    "s32\0"
+    "scalar\0"
+    "string"
+;
+
+static const SkMemberInfo gInputInfo[] = {
+    {0, 16, 96, 1},
+    {4, 20, 98, 1},
+    {11, 24, 108, 2}
+};
+
+static const char gLineStrings[] =
+    "x1\0"
+    "x2\0"
+    "y1\0"
+    "y2"
+;
+
+static const SkMemberInfo gLineInfo[] = {
+    {0, 24, 98, 1},
+    {3, 28, 98, 1},
+    {6, 32, 98, 1},
+    {9, 36, 98, 1}
+};
+
+static const char gLineToStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gLineToInfo[] = {
+    {0, 20, 98, 1},
+    {2, 24, 98, 1}
+};
+
+static const char gLinearGradientStrings[] =
+    "\0"
+    "points"
+;
+
+static const SkMemberInfo gLinearGradientInfo[] = {
+    {0, 27, 18, 3},
+    {1, 88, 77, 4}
+};
+
+static const char gMatrixStrings[] =
+    "matrix\0"
+    "perspectX\0"
+    "perspectY\0"
+    "rotate\0"
+    "scale\0"
+    "scaleX\0"
+    "scaleY\0"
+    "skewX\0"
+    "skewY\0"
+    "translate\0"
+    "translateX\0"
+    "translateY"
+;
+
+static const SkMemberInfo gDrawMatrixInfo[] = {
+    {0, 16, 119, 98},
+    {7, -1, 67, 98},
+    {17, -2, 67, 98},
+    {27, -3, 67, 98},
+    {34, -4, 67, 98},
+    {40, -5, 67, 98},
+    {47, -6, 67, 98},
+    {54, -7, 67, 98},
+    {60, -8, 67, 98},
+    {66, -9, 67, 77},
+    {76, -10, 67, 98},
+    {87, -11, 67, 98}
+};
+
+static const char gMoveStrings[] =
+    ""
+;
+
+static const SkMemberInfo gMoveInfo[] = {
+    {0, 1, 18, 4}
+};
+
+static const char gMoveToStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gMoveToInfo[] = {
+    {0, 20, 98, 1},
+    {2, 24, 98, 1}
+};
+
+static const char gMovieStrings[] =
+    "src"
+;
+
+static const SkMemberInfo gMovieInfo[] = {
+    {0, 16, 108, 2}
+};
+
+static const char gOvalStrings[] =
+    ""
+;
+
+static const SkMemberInfo gOvalInfo[] = {
+    {0, 58, 18, 7}
+};
+
+static const char gPaintStrings[] =
+    "antiAlias\0"
+    "ascent\0"
+    "color\0"
+    "descent\0"
+    "filterType\0"
+    "linearText\0"
+    "maskFilter\0"
+    "measureText\0"
+    "pathEffect\0"
+    "shader\0"
+    "strikeThru\0"
+    "stroke\0"
+    "strokeCap\0"
+    "strokeJoin\0"
+    "strokeMiter\0"
+    "strokeWidth\0"
+    "style\0"
+    "textAlign\0"
+    "textScaleX\0"
+    "textSize\0"
+    "textSkewX\0"
+    "textTracking\0"
+    "typeface\0"
+    "underline\0"
+    "xfermode"
+;
+
+static const SkMemberInfo gDrawPaintInfo[] = {
+    {0, 16, 26, 1},
+    {10, -1, 67, 98},
+    {17, 20, 31, 1},
+    {23, -2, 67, 98},
+    {31, 24, 47, 1},
+    {42, 28, 26, 1},
+    {53, 32, 62, 1},
+    {64, -1, 66, 98},
+    {76, 36, 76, 1},
+    {87, 40, 102, 1},
+    {94, 44, 26, 1},
+    {105, 48, 26, 1},
+    {112, 52, 27, 1},
+    {122, 56, 58, 1},
+    {133, 60, 98, 1},
+    {145, 64, 98, 1},
+    {157, 68, 109, 1},
+    {163, 72, 9, 1},
+    {173, 76, 98, 1},
+    {184, 80, 98, 1},
+    {193, 84, 98, 1},
+    {203, 88, 98, 1},
+    {216, 92, 120, 1},
+    {225, 96, 26, 1},
+    {235, 100, 121, 1}
+};
+
+static const char gPathStrings[] =
+    "d\0"
+    "fillType\0"
+    "length"
+;
+
+static const SkMemberInfo gDrawPathInfo[] = {
+    {0, 52, 108, 2},
+    {2, -1, 67, 46},
+    {11, -2, 67, 98}
+};
+
+static const char gUnknown5Strings[] =
+    "x\0"
+    "y\0"
+    "z"
+;
+
+static const SkMemberInfo gUnknown5Info[] = {
+    {0, 0, 98, 1},
+    {2, 4, 98, 1},
+    {4, 8, 98, 1}
+};
+
+static const char gPointStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gDrawPointInfo[] = {
+    {0, 16, 98, 1},
+    {2, 20, 98, 1}
+};
+
+static const char gPolyToPolyStrings[] =
+    "destination\0"
+    "source"
+;
+
+static const SkMemberInfo gPolyToPolyInfo[] = {
+    {0, 24, 80, 1},
+    {12, 20, 80, 1}
+};
+
+static const char gPolygonStrings[] =
+    ""
+;
+
+static const SkMemberInfo gPolygonInfo[] = {
+    {0, 48, 18, 1}
+};
+
+static const char gPolylineStrings[] =
+    "points"
+;
+
+static const SkMemberInfo gPolylineInfo[] = {
+    {0, 88, 119, 98}
+};
+
+static const char gPostStrings[] =
+    "delay\0"
+    "initialized\0"
+    "mode\0"
+    "sink\0"
+    "target\0"
+    "type"
+;
+
+static const SkMemberInfo gPostInfo[] = {
+    {0, 16, 71, 1},
+    {6, 20, 26, 1},
+    {18, 24, 45, 1},
+    {23, -1, 67, 108},
+    {28, -2, 67, 108},
+    {35, -3, 67, 108}
+};
+
+static const char gQuadToStrings[] =
+    "x1\0"
+    "x2\0"
+    "y1\0"
+    "y2"
+;
+
+static const SkMemberInfo gQuadToInfo[] = {
+    {0, 20, 98, 1},
+    {3, 28, 98, 1},
+    {6, 24, 98, 1},
+    {9, 32, 98, 1}
+};
+
+static const char gRCubicToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRCubicToInfo[] = {
+    {0, 18, 18, 6}
+};
+
+static const char gRLineToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRLineToInfo[] = {
+    {0, 35, 18, 2}
+};
+
+static const char gRMoveToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRMoveToInfo[] = {
+    {0, 39, 18, 2}
+};
+
+static const char gRQuadToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRQuadToInfo[] = {
+    {0, 50, 18, 4}
+};
+
+static const char gRadialGradientStrings[] =
+    "\0"
+    "center\0"
+    "radius"
+;
+
+static const SkMemberInfo gRadialGradientInfo[] = {
+    {0, 27, 18, 3},
+    {1, 88, 77, 2},
+    {8, 96, 98, 1}
+};
+
+static const char gRandomStrings[] =
+    "blend\0"
+    "max\0"
+    "min\0"
+    "random\0"
+    "seed"
+;
+
+static const SkMemberInfo gDisplayRandomInfo[] = {
+    {0, 16, 98, 1},
+    {6, 24, 98, 1},
+    {10, 20, 98, 1},
+    {14, 1, 67, 98},
+    {21, -2, 67, 96}
+};
+
+static const char gRectToRectStrings[] =
+    "destination\0"
+    "source"
+;
+
+static const SkMemberInfo gRectToRectInfo[] = {
+    {0, 24, 91, 1},
+    {12, 20, 91, 1}
+};
+
+static const char gRectangleStrings[] =
+    "bottom\0"
+    "height\0"
+    "left\0"
+    "needsRedraw\0"
+    "right\0"
+    "top\0"
+    "width"
+;
+
+static const SkMemberInfo gRectangleInfo[] = {
+    {0, 36, 98, 1},
+    {7, -1, 67, 98},
+    {14, 24, 98, 1},
+    {19, -2, 67, 26},
+    {31, 32, 98, 1},
+    {37, 28, 98, 1},
+    {41, -3, 67, 98}
+};
+
+static const char gRemoveStrings[] =
+    "offset\0"
+    "where"
+;
+
+static const SkMemberInfo gRemoveInfo[] = {
+    {0, 20, 96, 1},
+    {7, 28, 37, 1}
+};
+
+static const char gReplaceStrings[] =
+    ""
+;
+
+static const SkMemberInfo gReplaceInfo[] = {
+    {0, 1, 18, 4}
+};
+
+static const char gRotateStrings[] =
+    "center\0"
+    "degrees"
+;
+
+static const SkMemberInfo gRotateInfo[] = {
+    {0, 24, 77, 2},
+    {7, 20, 98, 1}
+};
+
+static const char gRoundRectStrings[] =
+    "\0"
+    "rx\0"
+    "ry"
+;
+
+static const SkMemberInfo gRoundRectInfo[] = {
+    {0, 58, 18, 7},
+    {1, 44, 98, 1},
+    {4, 48, 98, 1}
+};
+
+static const char gS32Strings[] =
+    "value"
+;
+
+static const SkMemberInfo gS32Info[] = {
+    {0, 16, 96, 1}
+};
+
+static const char gScalarStrings[] =
+    "value"
+;
+
+static const SkMemberInfo gScalarInfo[] = {
+    {0, 16, 98, 1}
+};
+
+static const char gScaleStrings[] =
+    "center\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gScaleInfo[] = {
+    {0, 28, 77, 2},
+    {7, 20, 98, 1},
+    {9, 24, 98, 1}
+};
+
+static const char gSetStrings[] =
+    "begin\0"
+    "dur\0"
+    "dynamic\0"
+    "field\0"
+    "formula\0"
+    "reset\0"
+    "target\0"
+    "to"
+;
+
+static const SkMemberInfo gSetInfo[] = {
+    {0, 16, 71, 1},
+    {6, 36, 71, 1},
+    {10, -1, 67, 26},
+    {18, 40, 108, 2},
+    {24, 48, 40, 2},
+    {32, -3, 67, 26},
+    {38, 68, 40, 2},
+    {45, 76, 40, 2}
+};
+
+static const char gShaderStrings[] =
+    "matrix\0"
+    "tileMode"
+;
+
+static const SkMemberInfo gShaderInfo[] = {
+    {0, 20, 65, 1},
+    {7, 24, 116, 1}
+};
+
+static const char gSkewStrings[] =
+    "center\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gSkewInfo[] = {
+    {0, 28, 77, 2},
+    {7, 20, 98, 1},
+    {9, 24, 98, 1}
+};
+
+static const char g3D_CameraStrings[] =
+    "axis\0"
+    "hackHeight\0"
+    "hackWidth\0"
+    "location\0"
+    "observer\0"
+    "patch\0"
+    "zenith"
+;
+
+static const SkMemberInfo g3D_CameraInfo[] = {
+    {0, 36, 106, 3},
+    {5, 20, 98, 1},
+    {16, 16, 98, 1},
+    {26, 24, 106, 3},
+    {35, 60, 106, 3},
+    {44, 108, 105, 1},
+    {50, 48, 106, 3}
+};
+
+static const char g3D_PatchStrings[] =
+    "origin\0"
+    "rotateDegrees\0"
+    "u\0"
+    "v"
+;
+
+static const SkMemberInfo g3D_PatchInfo[] = {
+    {0, 40, 106, 3},
+    {7, -1, 66, 98},
+    {21, 16, 106, 3},
+    {23, 28, 106, 3}
+};
+
+static const char gUnknown6Strings[] =
+    "x\0"
+    "y\0"
+    "z"
+;
+
+static const SkMemberInfo gUnknown6Info[] = {
+    {0, 0, 98, 1},
+    {2, 4, 98, 1},
+    {4, 8, 98, 1}
+};
+
+static const char gSnapshotStrings[] =
+    "filename\0"
+    "quality\0"
+    "sequence\0"
+    "type"
+;
+
+static const SkMemberInfo gSnapshotInfo[] = {
+    {0, 16, 108, 2},
+    {9, 24, 98, 1},
+    {17, 28, 26, 1},
+    {26, 32, 20, 1}
+};
+
+static const char gStringStrings[] =
+    "length\0"
+    "slice\0"
+    "value"
+;
+
+static const SkMemberInfo gStringInfo[] = {
+    {0, -1, 67, 96},
+    {7, -1, 66, 108},
+    {13, 16, 108, 2}
+};
+
+static const char gTextStrings[] =
+    "length\0"
+    "text\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gTextInfo[] = {
+    {0, -1, 67, 96},
+    {7, 24, 108, 2},
+    {12, 32, 98, 1},
+    {14, 36, 98, 1}
+};
+
+static const char gTextBoxStrings[] =
+    "\0"
+    "mode\0"
+    "spacingAdd\0"
+    "spacingAlign\0"
+    "spacingMul\0"
+    "text"
+;
+
+static const SkMemberInfo gTextBoxInfo[] = {
+    {0, 58, 18, 7},
+    {1, 60, 113, 1},
+    {6, 56, 98, 1},
+    {17, 64, 112, 1},
+    {30, 52, 98, 1},
+    {41, 44, 108, 2}
+};
+
+static const char gTextOnPathStrings[] =
+    "offset\0"
+    "path\0"
+    "text"
+;
+
+static const SkMemberInfo gTextOnPathInfo[] = {
+    {0, 24, 98, 1},
+    {7, 28, 74, 1},
+    {12, 32, 110, 1}
+};
+
+static const char gTextToPathStrings[] =
+    "path\0"
+    "text"
+;
+
+static const SkMemberInfo gTextToPathInfo[] = {
+    {0, 16, 74, 1},
+    {5, 20, 110, 1}
+};
+
+static const char gTranslateStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gTranslateInfo[] = {
+    {0, 20, 98, 1},
+    {2, 24, 98, 1}
+};
+
+static const char gTypedArrayStrings[] =
+    "length\0"
+    "values"
+;
+
+static const SkMemberInfo gTypedArrayInfo[] = {
+    {0, -1, 67, 96},
+    {7, 16, 119, 0}
+};
+
+static const char gTypefaceStrings[] =
+    "fontName"
+;
+
+static const SkMemberInfo gTypefaceInfo[] = {
+    {0, 20, 108, 2}
+};
+
+static const SkMemberInfo* const gInfoTables[] = {
+    gMathInfo,
+    gAddInfo,
+    gAddCircleInfo,
+    gUnknown1Info,
+    gAddOvalInfo,
+    gAddPathInfo,
+    gAddRectangleInfo,
+    gAddRoundRectInfo,
+    gUnknown2Info,
+    gAnimateFieldInfo,
+    gApplyInfo,
+    gUnknown3Info,
+    gDrawBitmapInfo,
+    gDrawBitmapShaderInfo,
+    gDrawBlurInfo,
+    gDisplayBoundsInfo,
+    gDrawClipInfo,
+    gDrawColorInfo,
+    gCubicToInfo,
+    gDashInfo,
+    gDataInfo,
+    gDiscreteInfo,
+    gDrawToInfo,
+    gDumpInfo,
+    gDrawEmbossInfo,
+    gDisplayEventInfo,
+    gFromPathInfo,
+    gUnknown4Info,
+    gGInfo,
+    gHitClearInfo,
+    gHitTestInfo,
+    gImageInfo,
+    gIncludeInfo,
+    gInputInfo,
+    gLineInfo,
+    gLineToInfo,
+    gLinearGradientInfo,
+    gDrawMatrixInfo,
+    gMoveInfo,
+    gMoveToInfo,
+    gMovieInfo,
+    gOvalInfo,
+    gDrawPaintInfo,
+    gDrawPathInfo,
+    gUnknown5Info,
+    gDrawPointInfo,
+    gPolyToPolyInfo,
+    gPolygonInfo,
+    gPolylineInfo,
+    gPostInfo,
+    gQuadToInfo,
+    gRCubicToInfo,
+    gRLineToInfo,
+    gRMoveToInfo,
+    gRQuadToInfo,
+    gRadialGradientInfo,
+    gDisplayRandomInfo,
+    gRectToRectInfo,
+    gRectangleInfo,
+    gRemoveInfo,
+    gReplaceInfo,
+    gRotateInfo,
+    gRoundRectInfo,
+    gS32Info,
+    gScalarInfo,
+    gScaleInfo,
+    gSetInfo,
+    gShaderInfo,
+    gSkewInfo,
+    g3D_CameraInfo,
+    g3D_PatchInfo,
+    gUnknown6Info,
+    gSnapshotInfo,
+    gStringInfo,
+    gTextInfo,
+    gTextBoxInfo,
+    gTextOnPathInfo,
+    gTextToPathInfo,
+    gTranslateInfo,
+    gTypedArrayInfo,
+    gTypefaceInfo,
+};
+
+static const unsigned char gInfoCounts[] = {
+    26,4,4,1,1,2,5,3,13,1,13,2,6,3,2,2,2,8,6,
+    2,2,2,2,6,4,8,3,3,2,1,4,3,1,3,4,2,2,12,1,
+    2,1,1,25,3,3,2,2,1,1,6,4,1,1,1,1,3,5,2,7,
+    2,1,2,3,1,1,3,8,2,3,7,4,3,4,3,4,6,3,2,2,
+    2,1
+};
+
+static const unsigned char gTypeIDs[] = {
+    1, // Math
+    2, // Add
+    3, // AddCircle
+    4, // Unknown1
+    5, // AddOval
+    6, // AddPath
+    7, // AddRectangle
+    8, // AddRoundRect
+    10, // Unknown2
+    11, // AnimateField
+    12, // Apply
+    17, // Unknown3
+    19, // Bitmap
+    22, // BitmapShader
+    23, // Blur
+    25, // Bounds
+    29, // Clip
+    31, // Color
+    32, // CubicTo
+    33, // Dash
+    34, // Data
+    35, // Discrete
+    38, // DrawTo
+    39, // Dump
+    41, // Emboss
+    42, // Event
+    48, // FromPath
+    51, // Unknown4
+    52, // G
+    53, // HitClear
+    54, // HitTest
+    55, // Image
+    56, // Include
+    57, // Input
+    59, // Line
+    60, // LineTo
+    61, // LinearGradient
+    65, // Matrix
+    68, // Move
+    69, // MoveTo
+    70, // Movie
+    72, // Oval
+    73, // Paint
+    74, // Path
+    77, // Unknown5
+    78, // Point
+    79, // PolyToPoly
+    80, // Polygon
+    81, // Polyline
+    82, // Post
+    83, // QuadTo
+    84, // RCubicTo
+    85, // RLineTo
+    86, // RMoveTo
+    87, // RQuadTo
+    88, // RadialGradient
+    89, // Random
+    90, // RectToRect
+    91, // Rectangle
+    92, // Remove
+    93, // Replace
+    94, // Rotate
+    95, // RoundRect
+    96, // S32
+    98, // Scalar
+    99, // Scale
+    101, // Set
+    102, // Shader
+    103, // Skew
+    104, // 3D_Camera
+    105, // 3D_Patch
+    106, // Unknown6
+    107, // Snapshot
+    108, // String
+    110, // Text
+    111, // TextBox
+    114, // TextOnPath
+    115, // TextToPath
+    117, // Translate
+    119, // TypedArray
+    120, // Typeface
+
+};
+
+static const int kTypeIDs = 81;
+
+static const char* const gInfoNames[] = {
+    gMathStrings,
+    gAddStrings,
+    gAddCircleStrings,
+    gUnknown1Strings,
+    gAddOvalStrings,
+    gAddPathStrings,
+    gAddRectangleStrings,
+    gAddRoundRectStrings,
+    gUnknown2Strings,
+    gAnimateFieldStrings,
+    gApplyStrings,
+    gUnknown3Strings,
+    gBitmapStrings,
+    gBitmapShaderStrings,
+    gBlurStrings,
+    gBoundsStrings,
+    gClipStrings,
+    gColorStrings,
+    gCubicToStrings,
+    gDashStrings,
+    gDataStrings,
+    gDiscreteStrings,
+    gDrawToStrings,
+    gDumpStrings,
+    gEmbossStrings,
+    gEventStrings,
+    gFromPathStrings,
+    gUnknown4Strings,
+    gGStrings,
+    gHitClearStrings,
+    gHitTestStrings,
+    gImageStrings,
+    gIncludeStrings,
+    gInputStrings,
+    gLineStrings,
+    gLineToStrings,
+    gLinearGradientStrings,
+    gMatrixStrings,
+    gMoveStrings,
+    gMoveToStrings,
+    gMovieStrings,
+    gOvalStrings,
+    gPaintStrings,
+    gPathStrings,
+    gUnknown5Strings,
+    gPointStrings,
+    gPolyToPolyStrings,
+    gPolygonStrings,
+    gPolylineStrings,
+    gPostStrings,
+    gQuadToStrings,
+    gRCubicToStrings,
+    gRLineToStrings,
+    gRMoveToStrings,
+    gRQuadToStrings,
+    gRadialGradientStrings,
+    gRandomStrings,
+    gRectToRectStrings,
+    gRectangleStrings,
+    gRemoveStrings,
+    gReplaceStrings,
+    gRotateStrings,
+    gRoundRectStrings,
+    gS32Strings,
+    gScalarStrings,
+    gScaleStrings,
+    gSetStrings,
+    gShaderStrings,
+    gSkewStrings,
+    g3D_CameraStrings,
+    g3D_PatchStrings,
+    gUnknown6Strings,
+    gSnapshotStrings,
+    gStringStrings,
+    gTextStrings,
+    gTextBoxStrings,
+    gTextOnPathStrings,
+    gTextToPathStrings,
+    gTranslateStrings,
+    gTypedArrayStrings,
+    gTypefaceStrings
+};
+
+#endif
+#endif
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/animator/SkCondensedRelease.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/animator/SkCondensedRelease.inc
new file mode 100644 (file)
index 0000000..1222496
--- /dev/null
@@ -0,0 +1,1365 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkTypes.h"
+#ifndef SK_BUILD_FOR_UNIX
+#ifdef SK_RELEASE
+// This file was automatically generated.
+// To change it, edit the file with the matching debug info.
+// Then execute SkDisplayType::BuildCondensedInfo() to regenerate this file.
+
+static const char gMathStrings[] =
+    "E\0"
+    "LN10\0"
+    "LN2\0"
+    "LOG10E\0"
+    "LOG2E\0"
+    "PI\0"
+    "SQRT1_2\0"
+    "SQRT2\0"
+    "abs\0"
+    "acos\0"
+    "asin\0"
+    "atan\0"
+    "atan2\0"
+    "ceil\0"
+    "cos\0"
+    "exp\0"
+    "floor\0"
+    "log\0"
+    "max\0"
+    "min\0"
+    "pow\0"
+    "random\0"
+    "round\0"
+    "sin\0"
+    "sqrt\0"
+    "tan"
+;
+
+static const SkMemberInfo gMathInfo[] = {
+    {0, -1, 67, 98},
+    {2, -2, 67, 98},
+    {7, -3, 67, 98},
+    {11, -4, 67, 98},
+    {18, -5, 67, 98},
+    {24, -6, 67, 98},
+    {27, -7, 67, 98},
+    {35, -8, 67, 98},
+    {41, -1, 66, 98},
+    {45, -2, 66, 98},
+    {50, -3, 66, 98},
+    {55, -4, 66, 98},
+    {60, -5, 66, 98},
+    {66, -6, 66, 98},
+    {71, -7, 66, 98},
+    {75, -8, 66, 98},
+    {79, -9, 66, 98},
+    {85, -10, 66, 98},
+    {89, -11, 66, 98},
+    {93, -12, 66, 98},
+    {97, -13, 66, 98},
+    {101, -14, 66, 98},
+    {108, -15, 66, 98},
+    {114, -16, 66, 98},
+    {118, -17, 66, 98},
+    {123, -18, 66, 98}
+};
+
+static const char gAddStrings[] =
+    "inPlace\0"
+    "offset\0"
+    "use\0"
+    "where"
+;
+
+static const SkMemberInfo gAddInfo[] = {
+    {0, 4, 26, 1},
+    {8, 8, 96, 1},
+    {15, 12, 37, 1},
+    {19, 16, 37, 1}
+};
+
+static const char gAddCircleStrings[] =
+    "\0"
+    "radius\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gAddCircleInfo[] = {
+    {0, 3, 18, 1},
+    {1, 12, 98, 1},
+    {8, 16, 98, 1},
+    {10, 20, 98, 1}
+};
+
+static const char gUnknown1Strings[] =
+    "direction"
+;
+
+static const SkMemberInfo gUnknown1Info[] = {
+    {0, 8, 75, 1}
+};
+
+static const char gAddOvalStrings[] =
+    ""
+;
+
+static const SkMemberInfo gAddOvalInfo[] = {
+    {0, 6, 18, 5}
+};
+
+static const char gAddPathStrings[] =
+    "matrix\0"
+    "path"
+;
+
+static const SkMemberInfo gAddPathInfo[] = {
+    {0, 8, 65, 1},
+    {7, 12, 74, 1}
+};
+
+static const char gAddRectangleStrings[] =
+    "\0"
+    "bottom\0"
+    "left\0"
+    "right\0"
+    "top"
+;
+
+static const SkMemberInfo gAddRectangleInfo[] = {
+    {0, 3, 18, 1},
+    {1, 24, 98, 1},
+    {8, 12, 98, 1},
+    {13, 20, 98, 1},
+    {19, 16, 98, 1}
+};
+
+static const char gAddRoundRectStrings[] =
+    "\0"
+    "rx\0"
+    "ry"
+;
+
+static const SkMemberInfo gAddRoundRectInfo[] = {
+    {0, 6, 18, 5},
+    {1, 28, 98, 1},
+    {4, 32, 98, 1}
+};
+
+static const char gUnknown2Strings[] =
+    "begin\0"
+    "blend\0"
+    "dur\0"
+    "dynamic\0"
+    "field\0"
+    "formula\0"
+    "from\0"
+    "mirror\0"
+    "repeat\0"
+    "reset\0"
+    "target\0"
+    "to\0"
+    "values"
+;
+
+static const SkMemberInfo gUnknown2Info[] = {
+    {0, 4, 71, 1},
+    {6, 8, 119, 98},
+    {12, 16, 71, 1},
+    {16, -1, 67, 26},
+    {24, 20, 108, 1},
+    {30, 24, 40, 1},
+    {38, 28, 40, 1},
+    {43, -2, 67, 26},
+    {50, 32, 98, 1},
+    {57, -3, 67, 26},
+    {63, 36, 40, 1},
+    {70, 40, 40, 1},
+    {73, -4, 67, 40}
+};
+
+static const char gAnimateFieldStrings[] =
+    ""
+;
+
+static const SkMemberInfo gAnimateFieldInfo[] = {
+    {0, 8, 18, 13}
+};
+
+static const char gApplyStrings[] =
+    "animator\0"
+    "begin\0"
+    "dontDraw\0"
+    "dynamicScope\0"
+    "interval\0"
+    "mode\0"
+    "pickup\0"
+    "restore\0"
+    "scope\0"
+    "step\0"
+    "steps\0"
+    "time\0"
+    "transition"
+;
+
+static const SkMemberInfo gApplyInfo[] = {
+    {0, -1, 67, 10},
+    {9, 4, 71, 1},
+    {15, 8, 26, 1},
+    {24, 12, 108, 1},
+    {37, 16, 71, 1},
+    {46, 20, 13, 1},
+    {51, 24, 26, 1},
+    {58, 28, 26, 1},
+    {66, 32, 37, 1},
+    {72, -2, 67, 96},
+    {77, 36, 96, 1},
+    {83, -3, 67, 71},
+    {88, 40, 14, 1}
+};
+
+static const char gUnknown3Strings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gUnknown3Info[] = {
+    {0, 36, 98, 1},
+    {2, 40, 98, 1}
+};
+
+static const char gBitmapStrings[] =
+    "\0"
+    "erase\0"
+    "format\0"
+    "height\0"
+    "rowBytes\0"
+    "width"
+;
+
+static const SkMemberInfo gDrawBitmapInfo[] = {
+    {0, 11, 18, 2},
+    {1, -1, 67, 15},
+    {7, 44, 21, 1},
+    {14, 48, 96, 1},
+    {21, 52, 96, 1},
+    {30, 56, 96, 1}
+};
+
+static const char gBitmapShaderStrings[] =
+    "\0"
+    "filterType\0"
+    "image"
+;
+
+static const SkMemberInfo gDrawBitmapShaderInfo[] = {
+    {0, 66, 18, 2},
+    {1, 16, 47, 1},
+    {12, 20, 17, 1}
+};
+
+static const char gBlurStrings[] =
+    "blurStyle\0"
+    "radius"
+;
+
+static const SkMemberInfo gDrawBlurInfo[] = {
+    {0, 12, 63, 1},
+    {10, 8, 98, 1}
+};
+
+static const char gBoundsStrings[] =
+    "\0"
+    "inval"
+;
+
+static const SkMemberInfo gDisplayBoundsInfo[] = {
+    {0, 57, 18, 7},
+    {1, 32, 26, 1}
+};
+
+static const char gClipStrings[] =
+    "path\0"
+    "rectangle"
+;
+
+static const SkMemberInfo gDrawClipInfo[] = {
+    {0, 8, 74, 1},
+    {5, 4, 91, 1}
+};
+
+static const char gColorStrings[] =
+    "alpha\0"
+    "blue\0"
+    "color\0"
+    "green\0"
+    "hue\0"
+    "red\0"
+    "saturation\0"
+    "value"
+;
+
+static const SkMemberInfo gDrawColorInfo[] = {
+    {0, -1, 67, 98},
+    {6, -2, 67, 98},
+    {11, 8, 15, 1},
+    {17, -3, 67, 98},
+    {23, -4, 67, 98},
+    {27, -5, 67, 98},
+    {31, -6, 67, 98},
+    {42, -7, 67, 98}
+};
+
+static const char gCubicToStrings[] =
+    "x1\0"
+    "x2\0"
+    "x3\0"
+    "y1\0"
+    "y2\0"
+    "y3"
+;
+
+static const SkMemberInfo gCubicToInfo[] = {
+    {0, 8, 98, 1},
+    {3, 16, 98, 1},
+    {6, 24, 98, 1},
+    {9, 12, 98, 1},
+    {12, 20, 98, 1},
+    {15, 28, 98, 1}
+};
+
+static const char gDashStrings[] =
+    "intervals\0"
+    "phase"
+;
+
+static const SkMemberInfo gDashInfo[] = {
+    {0, 8, 119, 98},
+    {10, 16, 98, 1}
+};
+
+static const char gDataStrings[] =
+    "\0"
+    "name"
+;
+
+static const SkMemberInfo gDataInfo[] = {
+    {0, 32, 18, 3},
+    {1, 16, 108, 1}
+};
+
+static const char gDiscreteStrings[] =
+    "deviation\0"
+    "segLength"
+;
+
+static const SkMemberInfo gDiscreteInfo[] = {
+    {0, 8, 98, 1},
+    {10, 12, 98, 1}
+};
+
+static const char gDrawToStrings[] =
+    "drawOnce\0"
+    "use"
+;
+
+static const SkMemberInfo gDrawToInfo[] = {
+    {0, 36, 26, 1},
+    {9, 40, 19, 1}
+};
+
+static const char gEmbossStrings[] =
+    "ambient\0"
+    "direction\0"
+    "radius\0"
+    "specular"
+;
+
+static const SkMemberInfo gDrawEmbossInfo[] = {
+    {0, -1, 67, 98},
+    {8, 8, 119, 98},
+    {18, 16, 98, 1},
+    {25, -2, 67, 98}
+};
+
+static const char gEventStrings[] =
+    "code\0"
+    "disable\0"
+    "key\0"
+    "keys\0"
+    "kind\0"
+    "target\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gDisplayEventInfo[] = {
+    {0, 4, 43, 1},
+    {5, 8, 26, 1},
+    {13, -1, 67, 108},
+    {17, -2, 67, 108},
+    {22, 12, 44, 1},
+    {27, 16, 108, 1},
+    {34, 20, 98, 1},
+    {36, 24, 98, 1}
+};
+
+static const char gFromPathStrings[] =
+    "mode\0"
+    "offset\0"
+    "path"
+;
+
+static const SkMemberInfo gFromPathInfo[] = {
+    {0, 8, 49, 1},
+    {5, 12, 98, 1},
+    {12, 16, 74, 1}
+};
+
+static const char gUnknown4Strings[] =
+    "\0"
+    "offsets\0"
+    "unitMapper"
+;
+
+static const SkMemberInfo gUnknown4Info[] = {
+    {0, 66, 18, 2},
+    {1, 16, 119, 98},
+    {9, 24, 108, 1}
+};
+
+static const char gGStrings[] =
+    "condition\0"
+    "enableCondition"
+;
+
+static const SkMemberInfo gGInfo[] = {
+    {0, 4, 40, 1},
+    {10, 8, 40, 1}
+};
+
+static const char gHitClearStrings[] =
+    "targets"
+;
+
+static const SkMemberInfo gHitClearInfo[] = {
+    {0, 4, 119, 36}
+};
+
+static const char gHitTestStrings[] =
+    "bullets\0"
+    "hits\0"
+    "targets\0"
+    "value"
+;
+
+static const SkMemberInfo gHitTestInfo[] = {
+    {0, 4, 119, 36},
+    {8, 12, 119, 96},
+    {13, 20, 119, 36},
+    {21, 28, 26, 1}
+};
+
+static const char gImageStrings[] =
+    "\0"
+    "base64\0"
+    "src"
+;
+
+static const SkMemberInfo gImageInfo[] = {
+    {0, 11, 18, 2},
+    {1, 44, 16, 2},
+    {8, 52, 108, 1}
+};
+
+static const char gIncludeStrings[] =
+    "src"
+;
+
+static const SkMemberInfo gIncludeInfo[] = {
+    {0, 4, 108, 1}
+};
+
+static const char gInputStrings[] =
+    "s32\0"
+    "scalar\0"
+    "string"
+;
+
+static const SkMemberInfo gInputInfo[] = {
+    {0, 4, 96, 1},
+    {4, 8, 98, 1},
+    {11, 12, 108, 1}
+};
+
+static const char gLineStrings[] =
+    "x1\0"
+    "x2\0"
+    "y1\0"
+    "y2"
+;
+
+static const SkMemberInfo gLineInfo[] = {
+    {0, 12, 98, 1},
+    {3, 16, 98, 1},
+    {6, 20, 98, 1},
+    {9, 24, 98, 1}
+};
+
+static const char gLineToStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gLineToInfo[] = {
+    {0, 8, 98, 1},
+    {2, 12, 98, 1}
+};
+
+static const char gLinearGradientStrings[] =
+    "\0"
+    "points"
+;
+
+static const SkMemberInfo gLinearGradientInfo[] = {
+    {0, 26, 18, 3},
+    {1, 48, 77, 4}
+};
+
+static const char gMatrixStrings[] =
+    "matrix\0"
+    "perspectX\0"
+    "perspectY\0"
+    "rotate\0"
+    "scale\0"
+    "scaleX\0"
+    "scaleY\0"
+    "skewX\0"
+    "skewY\0"
+    "translate\0"
+    "translateX\0"
+    "translateY"
+;
+
+static const SkMemberInfo gDrawMatrixInfo[] = {
+    {0, 4, 119, 98},
+    {7, -1, 67, 98},
+    {17, -2, 67, 98},
+    {27, -3, 67, 98},
+    {34, -4, 67, 98},
+    {40, -5, 67, 98},
+    {47, -6, 67, 98},
+    {54, -7, 67, 98},
+    {60, -8, 67, 98},
+    {66, -9, 67, 77},
+    {76, -10, 67, 98},
+    {87, -11, 67, 98}
+};
+
+static const char gMoveStrings[] =
+    ""
+;
+
+static const SkMemberInfo gMoveInfo[] = {
+    {0, 1, 18, 4}
+};
+
+static const char gMoveToStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gMoveToInfo[] = {
+    {0, 8, 98, 1},
+    {2, 12, 98, 1}
+};
+
+static const char gMovieStrings[] =
+    "src"
+;
+
+static const SkMemberInfo gMovieInfo[] = {
+    {0, 4, 108, 1}
+};
+
+static const char gOvalStrings[] =
+    ""
+;
+
+static const SkMemberInfo gOvalInfo[] = {
+    {0, 57, 18, 7}
+};
+
+static const char gPaintStrings[] =
+    "antiAlias\0"
+    "ascent\0"
+    "color\0"
+    "descent\0"
+    "filterType\0"
+    "linearText\0"
+    "maskFilter\0"
+    "measureText\0"
+    "pathEffect\0"
+    "shader\0"
+    "strikeThru\0"
+    "stroke\0"
+    "strokeCap\0"
+    "strokeJoin\0"
+    "strokeMiter\0"
+    "strokeWidth\0"
+    "style\0"
+    "textAlign\0"
+    "textScaleX\0"
+    "textSize\0"
+    "textSkewX\0"
+    "textTracking\0"
+    "typeface\0"
+    "underline\0"
+    "xfermode"
+;
+
+static const SkMemberInfo gDrawPaintInfo[] = {
+    {0, 4, 26, 1},
+    {10, -1, 67, 98},
+    {17, 8, 31, 1},
+    {23, -2, 67, 98},
+    {31, 12, 47, 1},
+    {42, 16, 26, 1},
+    {53, 20, 62, 1},
+    {64, -1, 66, 98},
+    {76, 24, 76, 1},
+    {87, 28, 102, 1},
+    {94, 32, 26, 1},
+    {105, 36, 26, 1},
+    {112, 40, 27, 1},
+    {122, 44, 58, 1},
+    {133, 48, 98, 1},
+    {145, 52, 98, 1},
+    {157, 56, 109, 1},
+    {163, 60, 9, 1},
+    {173, 64, 98, 1},
+    {184, 68, 98, 1},
+    {193, 72, 98, 1},
+    {203, 76, 98, 1},
+    {216, 80, 120, 1},
+    {225, 84, 26, 1},
+    {235, 88, 121, 1}
+};
+
+static const char gPathStrings[] =
+    "d\0"
+    "fillType\0"
+    "length"
+;
+
+static const SkMemberInfo gDrawPathInfo[] = {
+    {0, 32, 108, 1},
+    {2, -1, 67, 46},
+    {11, -2, 67, 98}
+};
+
+static const char gUnknown5Strings[] =
+    "x\0"
+    "y\0"
+    "z"
+;
+
+static const SkMemberInfo gUnknown5Info[] = {
+    {0, 0, 98, 1},
+    {2, 4, 98, 1},
+    {4, 8, 98, 1}
+};
+
+static const char gPointStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gDrawPointInfo[] = {
+    {0, 4, 98, 1},
+    {2, 8, 98, 1}
+};
+
+static const char gPolyToPolyStrings[] =
+    "destination\0"
+    "source"
+;
+
+static const SkMemberInfo gPolyToPolyInfo[] = {
+    {0, 12, 80, 1},
+    {12, 8, 80, 1}
+};
+
+static const char gPolygonStrings[] =
+    ""
+;
+
+static const SkMemberInfo gPolygonInfo[] = {
+    {0, 47, 18, 1}
+};
+
+static const char gPolylineStrings[] =
+    "points"
+;
+
+static const SkMemberInfo gPolylineInfo[] = {
+    {0, 56, 119, 98}
+};
+
+static const char gPostStrings[] =
+    "delay\0"
+    "initialized\0"
+    "mode\0"
+    "sink\0"
+    "target\0"
+    "type"
+;
+
+static const SkMemberInfo gPostInfo[] = {
+    {0, 4, 71, 1},
+    {6, 8, 26, 1},
+    {18, 12, 45, 1},
+    {23, -1, 67, 108},
+    {28, -2, 67, 108},
+    {35, -3, 67, 108}
+};
+
+static const char gQuadToStrings[] =
+    "x1\0"
+    "x2\0"
+    "y1\0"
+    "y2"
+;
+
+static const SkMemberInfo gQuadToInfo[] = {
+    {0, 8, 98, 1},
+    {3, 16, 98, 1},
+    {6, 12, 98, 1},
+    {9, 20, 98, 1}
+};
+
+static const char gRCubicToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRCubicToInfo[] = {
+    {0, 18, 18, 6}
+};
+
+static const char gRLineToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRLineToInfo[] = {
+    {0, 34, 18, 2}
+};
+
+static const char gRMoveToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRMoveToInfo[] = {
+    {0, 38, 18, 2}
+};
+
+static const char gRQuadToStrings[] =
+    ""
+;
+
+static const SkMemberInfo gRQuadToInfo[] = {
+    {0, 49, 18, 4}
+};
+
+static const char gRadialGradientStrings[] =
+    "\0"
+    "center\0"
+    "radius"
+;
+
+static const SkMemberInfo gRadialGradientInfo[] = {
+    {0, 26, 18, 3},
+    {1, 48, 77, 2},
+    {8, 56, 98, 1}
+};
+
+static const char gRandomStrings[] =
+    "blend\0"
+    "max\0"
+    "min\0"
+    "random\0"
+    "seed"
+;
+
+static const SkMemberInfo gDisplayRandomInfo[] = {
+    {0, 4, 98, 1},
+    {6, 12, 98, 1},
+    {10, 8, 98, 1},
+    {14, 1, 67, 98},
+    {21, -2, 67, 96}
+};
+
+static const char gRectToRectStrings[] =
+    "destination\0"
+    "source"
+;
+
+static const SkMemberInfo gRectToRectInfo[] = {
+    {0, 12, 91, 1},
+    {12, 8, 91, 1}
+};
+
+static const char gRectangleStrings[] =
+    "bottom\0"
+    "height\0"
+    "left\0"
+    "needsRedraw\0"
+    "right\0"
+    "top\0"
+    "width"
+;
+
+static const SkMemberInfo gRectangleInfo[] = {
+    {0, 24, 98, 1},
+    {7, -1, 67, 98},
+    {14, 12, 98, 1},
+    {19, -2, 67, 26},
+    {31, 20, 98, 1},
+    {37, 16, 98, 1},
+    {41, -3, 67, 98}
+};
+
+static const char gRemoveStrings[] =
+    "offset\0"
+    "where"
+;
+
+static const SkMemberInfo gRemoveInfo[] = {
+    {0, 8, 96, 1},
+    {7, 16, 37, 1}
+};
+
+static const char gReplaceStrings[] =
+    ""
+;
+
+static const SkMemberInfo gReplaceInfo[] = {
+    {0, 1, 18, 4}
+};
+
+static const char gRotateStrings[] =
+    "center\0"
+    "degrees"
+;
+
+static const SkMemberInfo gRotateInfo[] = {
+    {0, 12, 77, 2},
+    {7, 8, 98, 1}
+};
+
+static const char gRoundRectStrings[] =
+    "\0"
+    "rx\0"
+    "ry"
+;
+
+static const SkMemberInfo gRoundRectInfo[] = {
+    {0, 57, 18, 7},
+    {1, 32, 98, 1},
+    {4, 36, 98, 1}
+};
+
+static const char gS32Strings[] =
+    "value"
+;
+
+static const SkMemberInfo gS32Info[] = {
+    {0, 4, 96, 1}
+};
+
+static const char gScalarStrings[] =
+    "value"
+;
+
+static const SkMemberInfo gScalarInfo[] = {
+    {0, 4, 98, 1}
+};
+
+static const char gScaleStrings[] =
+    "center\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gScaleInfo[] = {
+    {0, 16, 77, 2},
+    {7, 8, 98, 1},
+    {9, 12, 98, 1}
+};
+
+static const char gSetStrings[] =
+    "begin\0"
+    "dur\0"
+    "dynamic\0"
+    "field\0"
+    "formula\0"
+    "reset\0"
+    "target\0"
+    "to"
+;
+
+static const SkMemberInfo gSetInfo[] = {
+    {0, 4, 71, 1},
+    {6, 16, 71, 1},
+    {10, -1, 67, 26},
+    {18, 20, 108, 1},
+    {24, 24, 40, 1},
+    {32, -3, 67, 26},
+    {38, 36, 40, 1},
+    {45, 40, 40, 1}
+};
+
+static const char gShaderStrings[] =
+    "matrix\0"
+    "tileMode"
+;
+
+static const SkMemberInfo gShaderInfo[] = {
+    {0, 8, 65, 1},
+    {7, 12, 116, 1}
+};
+
+static const char gSkewStrings[] =
+    "center\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gSkewInfo[] = {
+    {0, 16, 77, 2},
+    {7, 8, 98, 1},
+    {9, 12, 98, 1}
+};
+
+static const char g3D_CameraStrings[] =
+    "axis\0"
+    "hackHeight\0"
+    "hackWidth\0"
+    "location\0"
+    "observer\0"
+    "patch\0"
+    "zenith"
+;
+
+static const SkMemberInfo g3D_CameraInfo[] = {
+    {0, 24, 106, 3},
+    {5, 8, 98, 1},
+    {16, 4, 98, 1},
+    {26, 12, 106, 3},
+    {35, 48, 106, 3},
+    {44, 96, 105, 1},
+    {50, 36, 106, 3}
+};
+
+static const char g3D_PatchStrings[] =
+    "origin\0"
+    "rotateDegrees\0"
+    "u\0"
+    "v"
+;
+
+static const SkMemberInfo g3D_PatchInfo[] = {
+    {0, 28, 106, 3},
+    {7, -1, 66, 98},
+    {21, 4, 106, 3},
+    {23, 16, 106, 3}
+};
+
+static const char gUnknown6Strings[] =
+    "x\0"
+    "y\0"
+    "z"
+;
+
+static const SkMemberInfo gUnknown6Info[] = {
+    {0, 0, 98, 1},
+    {2, 4, 98, 1},
+    {4, 8, 98, 1}
+};
+
+static const char gSnapshotStrings[] =
+    "filename\0"
+    "quality\0"
+    "sequence\0"
+    "type"
+;
+
+static const SkMemberInfo gSnapshotInfo[] = {
+    {0, 4, 108, 1},
+    {9, 8, 98, 1},
+    {17, 12, 26, 1},
+    {26, 16, 20, 1}
+};
+
+static const char gStringStrings[] =
+    "length\0"
+    "slice\0"
+    "value"
+;
+
+static const SkMemberInfo gStringInfo[] = {
+    {0, -1, 67, 96},
+    {7, -1, 66, 108},
+    {13, 4, 108, 1}
+};
+
+static const char gTextStrings[] =
+    "length\0"
+    "text\0"
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gTextInfo[] = {
+    {0, -1, 67, 96},
+    {7, 12, 108, 1},
+    {12, 16, 98, 1},
+    {14, 20, 98, 1}
+};
+
+static const char gTextBoxStrings[] =
+    "\0"
+    "mode\0"
+    "spacingAdd\0"
+    "spacingAlign\0"
+    "spacingMul\0"
+    "text"
+;
+
+static const SkMemberInfo gTextBoxInfo[] = {
+    {0, 57, 18, 7},
+    {1, 44, 113, 1},
+    {6, 40, 98, 1},
+    {17, 48, 112, 1},
+    {30, 36, 98, 1},
+    {41, 32, 108, 1}
+};
+
+static const char gTextOnPathStrings[] =
+    "offset\0"
+    "path\0"
+    "text"
+;
+
+static const SkMemberInfo gTextOnPathInfo[] = {
+    {0, 12, 98, 1},
+    {7, 16, 74, 1},
+    {12, 20, 110, 1}
+};
+
+static const char gTextToPathStrings[] =
+    "path\0"
+    "text"
+;
+
+static const SkMemberInfo gTextToPathInfo[] = {
+    {0, 4, 74, 1},
+    {5, 8, 110, 1}
+};
+
+static const char gTranslateStrings[] =
+    "x\0"
+    "y"
+;
+
+static const SkMemberInfo gTranslateInfo[] = {
+    {0, 8, 98, 1},
+    {2, 12, 98, 1}
+};
+
+static const char gTypedArrayStrings[] =
+    "length\0"
+    "values"
+;
+
+static const SkMemberInfo gTypedArrayInfo[] = {
+    {0, -1, 67, 96},
+    {7, 4, 119, 0}
+};
+
+static const char gTypefaceStrings[] =
+    "fontName"
+;
+
+static const SkMemberInfo gTypefaceInfo[] = {
+    {0, 8, 108, 1}
+};
+
+static const SkMemberInfo* const gInfoTables[] = {
+    gMathInfo,
+    gAddInfo,
+    gAddCircleInfo,
+    gUnknown1Info,
+    gAddOvalInfo,
+    gAddPathInfo,
+    gAddRectangleInfo,
+    gAddRoundRectInfo,
+    gUnknown2Info,
+    gAnimateFieldInfo,
+    gApplyInfo,
+    gUnknown3Info,
+    gDrawBitmapInfo,
+    gDrawBitmapShaderInfo,
+    gDrawBlurInfo,
+    gDisplayBoundsInfo,
+    gDrawClipInfo,
+    gDrawColorInfo,
+    gCubicToInfo,
+    gDashInfo,
+    gDataInfo,
+    gDiscreteInfo,
+    gDrawToInfo,
+    gDrawEmbossInfo,
+    gDisplayEventInfo,
+    gFromPathInfo,
+    gUnknown4Info,
+    gGInfo,
+    gHitClearInfo,
+    gHitTestInfo,
+    gImageInfo,
+    gIncludeInfo,
+    gInputInfo,
+    gLineInfo,
+    gLineToInfo,
+    gLinearGradientInfo,
+    gDrawMatrixInfo,
+    gMoveInfo,
+    gMoveToInfo,
+    gMovieInfo,
+    gOvalInfo,
+    gDrawPaintInfo,
+    gDrawPathInfo,
+    gUnknown5Info,
+    gDrawPointInfo,
+    gPolyToPolyInfo,
+    gPolygonInfo,
+    gPolylineInfo,
+    gPostInfo,
+    gQuadToInfo,
+    gRCubicToInfo,
+    gRLineToInfo,
+    gRMoveToInfo,
+    gRQuadToInfo,
+    gRadialGradientInfo,
+    gDisplayRandomInfo,
+    gRectToRectInfo,
+    gRectangleInfo,
+    gRemoveInfo,
+    gReplaceInfo,
+    gRotateInfo,
+    gRoundRectInfo,
+    gS32Info,
+    gScalarInfo,
+    gScaleInfo,
+    gSetInfo,
+    gShaderInfo,
+    gSkewInfo,
+    g3D_CameraInfo,
+    g3D_PatchInfo,
+    gUnknown6Info,
+    gSnapshotInfo,
+    gStringInfo,
+    gTextInfo,
+    gTextBoxInfo,
+    gTextOnPathInfo,
+    gTextToPathInfo,
+    gTranslateInfo,
+    gTypedArrayInfo,
+    gTypefaceInfo,
+};
+
+static const unsigned char gInfoCounts[] = {
+    26,4,4,1,1,2,5,3,13,1,13,2,6,3,2,2,2,8,6,
+    2,2,2,2,4,8,3,3,2,1,4,3,1,3,4,2,2,12,1,2,
+    1,1,25,3,3,2,2,1,1,6,4,1,1,1,1,3,5,2,7,2,
+    1,2,3,1,1,3,8,2,3,7,4,3,4,3,4,6,3,2,2,2,
+    1
+};
+
+static const unsigned char gTypeIDs[] = {
+    1, // Math
+    2, // Add
+    3, // AddCircle
+    4, // Unknown1
+    5, // AddOval
+    6, // AddPath
+    7, // AddRectangle
+    8, // AddRoundRect
+    10, // Unknown2
+    11, // AnimateField
+    12, // Apply
+    17, // Unknown3
+    19, // Bitmap
+    22, // BitmapShader
+    23, // Blur
+    25, // Bounds
+    29, // Clip
+    31, // Color
+    32, // CubicTo
+    33, // Dash
+    34, // Data
+    35, // Discrete
+    38, // DrawTo
+    41, // Emboss
+    42, // Event
+    48, // FromPath
+    51, // Unknown4
+    52, // G
+    53, // HitClear
+    54, // HitTest
+    55, // Image
+    56, // Include
+    57, // Input
+    59, // Line
+    60, // LineTo
+    61, // LinearGradient
+    65, // Matrix
+    68, // Move
+    69, // MoveTo
+    70, // Movie
+    72, // Oval
+    73, // Paint
+    74, // Path
+    77, // Unknown5
+    78, // Point
+    79, // PolyToPoly
+    80, // Polygon
+    81, // Polyline
+    82, // Post
+    83, // QuadTo
+    84, // RCubicTo
+    85, // RLineTo
+    86, // RMoveTo
+    87, // RQuadTo
+    88, // RadialGradient
+    89, // Random
+    90, // RectToRect
+    91, // Rectangle
+    92, // Remove
+    93, // Replace
+    94, // Rotate
+    95, // RoundRect
+    96, // S32
+    98, // Scalar
+    99, // Scale
+    101, // Set
+    102, // Shader
+    103, // Skew
+    104, // 3D_Camera
+    105, // 3D_Patch
+    106, // Unknown6
+    107, // Snapshot
+    108, // String
+    110, // Text
+    111, // TextBox
+    114, // TextOnPath
+    115, // TextToPath
+    117, // Translate
+    119, // TypedArray
+    120, // Typeface
+
+};
+
+static const int kTypeIDs = 80;
+
+static const char* const gInfoNames[] = {
+    gMathStrings,
+    gAddStrings,
+    gAddCircleStrings,
+    gUnknown1Strings,
+    gAddOvalStrings,
+    gAddPathStrings,
+    gAddRectangleStrings,
+    gAddRoundRectStrings,
+    gUnknown2Strings,
+    gAnimateFieldStrings,
+    gApplyStrings,
+    gUnknown3Strings,
+    gBitmapStrings,
+    gBitmapShaderStrings,
+    gBlurStrings,
+    gBoundsStrings,
+    gClipStrings,
+    gColorStrings,
+    gCubicToStrings,
+    gDashStrings,
+    gDataStrings,
+    gDiscreteStrings,
+    gDrawToStrings,
+    gEmbossStrings,
+    gEventStrings,
+    gFromPathStrings,
+    gUnknown4Strings,
+    gGStrings,
+    gHitClearStrings,
+    gHitTestStrings,
+    gImageStrings,
+    gIncludeStrings,
+    gInputStrings,
+    gLineStrings,
+    gLineToStrings,
+    gLinearGradientStrings,
+    gMatrixStrings,
+    gMoveStrings,
+    gMoveToStrings,
+    gMovieStrings,
+    gOvalStrings,
+    gPaintStrings,
+    gPathStrings,
+    gUnknown5Strings,
+    gPointStrings,
+    gPolyToPolyStrings,
+    gPolygonStrings,
+    gPolylineStrings,
+    gPostStrings,
+    gQuadToStrings,
+    gRCubicToStrings,
+    gRLineToStrings,
+    gRMoveToStrings,
+    gRQuadToStrings,
+    gRadialGradientStrings,
+    gRandomStrings,
+    gRectToRectStrings,
+    gRectangleStrings,
+    gRemoveStrings,
+    gReplaceStrings,
+    gRotateStrings,
+    gRoundRectStrings,
+    gS32Strings,
+    gScalarStrings,
+    gScaleStrings,
+    gSetStrings,
+    gShaderStrings,
+    gSkewStrings,
+    g3D_CameraStrings,
+    g3D_PatchStrings,
+    gUnknown6Strings,
+    gSnapshotStrings,
+    gStringStrings,
+    gTextStrings,
+    gTextBoxStrings,
+    gTextOnPathStrings,
+    gTextToPathStrings,
+    gTranslateStrings,
+    gTypedArrayStrings,
+    gTypefaceStrings
+};
+#endif
+#endif
index 4c37f45..a3ebeb1 100644 (file)
@@ -232,6 +232,22 @@ TRACE_EVENT_API_CLASS_EXPORT extern \
 
 #define INTERNAL_TRACE_MEMORY(category, name)
 
+#if !defined(ENABLE_TRACE_EVENT)
+// Remove the macro function to add a trace event.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#endif
+
 namespace skia {
 namespace tracing_internals {
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/utils/SkWhitelistChecksums.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/src/utils/SkWhitelistChecksums.inc
new file mode 100644 (file)
index 0000000..4b17df4
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * GenerateChecksums() in ../../src/utils/SkWhitelistTypefaces.cpp generated SkWhitelistChecksums.inc.
+ * Run 'whitelist_typefaces --generate' to create anew.
+ */
+
+#include "SkTDArray.h"
+
+struct Whitelist {
+    const char* fFontName;
+    uint32_t fChecksum;
+    bool fSerializedNameOnly;
+    bool fSerializedSub;
+};
+
+static Whitelist whitelist[] = {
+    { "Aegean", 0x639a35c7, false, false },
+    { "Analecta", 0x639a35c7, false, false },
+    { "Arial", 0xbc28cb14, false, false },
+    { "DejaVu Sans", 0x639a35c7, false, false },
+    { "DejaVu Sans Mono", 0xbc29a5d9, false, false },
+    { "DejaVu Serif", 0x9db67efe, false, false },
+    { "FreeMono", 0x724884f4, false, false },
+    { "FreeSans", 0x7dfc48a3, false, false },
+    { "FreeSerif", 0xa1ae8c77, false, false },
+    { "Khmer OS", 0x917c40aa, false, false },
+    { "Kochi Gothic", 0x962132dd, false, false },
+    { "Lohit Kannada", 0x0b6ce863, false, false },
+    { "Lohit Marathi", 0x0eb0a941, false, false },
+    { "Lohit Oriya", 0xf3e9d313, false, false },
+    { "Lohit Punjabi", 0xfd8b26e0, false, false },
+    { "Lohit Tamil", 0xa8111d99, false, false },
+    { "Lohit Telugu", 0xd34299e0, false, false },
+    { "Meera", 0xe3e16220, false, false },
+    { "Mukti Narrow", 0x53f7d053, false, false },
+    { "NanumBarunGothic", 0x639a35c7, false, false },
+    { "NanumGothic", 0xff8d773d, false, false },
+    { "OpenSymbol", 0x4fcaf331, false, false },
+    { "Symbola", 0x639a35c7, false, false },
+    { "TakaoPGothic", 0x068c405a, false, false },
+    { "Waree", 0x6a2bfca8, false, false },
+    { "WenQuanYi Micro Hei", 0xcdec08a3, false, false },
+    { "padmaa", 0x09eb1865, false, false },
+};
+
+static const int whitelistCount = (int) SK_ARRAY_COUNT(whitelist);
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/BigPathBench.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/BigPathBench.inc
new file mode 100644 (file)
index 0000000..c52bd32
--- /dev/null
@@ -0,0 +1,5149 @@
+// Inspired by crbug.com/455429
+path.moveTo(-1113, 81);
+path.lineTo(-1113, 83);
+path.lineTo(-1113, 82);
+path.lineTo(-1112, 82);
+path.lineTo(-1112, 83);
+path.lineTo(-1111, 82);
+path.lineTo(-1111, 82);
+path.lineTo(-1110, 81);
+path.lineTo(-1110, 81);
+path.lineTo(-1109, 80);
+path.lineTo(-1109, 80);
+path.lineTo(-1108, 78);
+path.lineTo(-1108, 76);
+path.lineTo(-1107, 71);
+path.lineTo(-1107, 73);
+path.lineTo(-1106, 76);
+path.lineTo(-1106, 80);
+path.lineTo(-1105, 82);
+path.lineTo(-1105, 83);
+path.lineTo(-1104, 82);
+path.lineTo(-1104, 84);
+path.lineTo(-1103, 92);
+path.lineTo(-1103, 51);
+path.lineTo(-1102, 0);
+path.lineTo(-1102, 72);
+path.lineTo(-1101, 85);
+path.lineTo(-1101, 80);
+path.lineTo(-1100, 75);
+path.lineTo(-1099, 78);
+path.lineTo(-1099, 77);
+path.lineTo(-1098, 76);
+path.lineTo(-1098, 72);
+path.lineTo(-1097, 70);
+path.lineTo(-1097, 63);
+path.lineTo(-1096, 59);
+path.lineTo(-1096, 53);
+path.lineTo(-1095, 50);
+path.lineTo(-1095, 46);
+path.lineTo(-1094, 47);
+path.lineTo(-1094, 55);
+path.lineTo(-1093, 63);
+path.lineTo(-1093, 72);
+path.lineTo(-1092, 77);
+path.lineTo(-1092, 80);
+path.lineTo(-1091, 82);
+path.lineTo(-1091, 84);
+path.lineTo(-1090, 85);
+path.lineTo(-1090, 87);
+path.lineTo(-1089, 84);
+path.lineTo(-1089, 85);
+path.lineTo(-1088, 84);
+path.lineTo(-1088, 84);
+path.lineTo(-1087, 84);
+path.lineTo(-1087, 83);
+path.lineTo(-1086, 83);
+path.lineTo(-1085, 84);
+path.lineTo(-1085, 84);
+path.lineTo(-1084, 82);
+path.lineTo(-1084, 83);
+path.lineTo(-1083, 82);
+path.lineTo(-1083, 82);
+path.lineTo(-1082, 83);
+path.lineTo(-1082, 82);
+path.lineTo(-1081, 84);
+path.lineTo(-1081, 81);
+path.lineTo(-1080, 84);
+path.lineTo(-1080, 81);
+path.lineTo(-1079, 83);
+path.lineTo(-1079, 82);
+path.lineTo(-1078, 82);
+path.lineTo(-1078, 83);
+path.lineTo(-1077, 82);
+path.lineTo(-1077, 82);
+path.lineTo(-1076, 81);
+path.lineTo(-1076, 81);
+path.lineTo(-1075, 80);
+path.lineTo(-1075, 80);
+path.lineTo(-1074, 78);
+path.lineTo(-1074, 76);
+path.lineTo(-1073, 71);
+path.lineTo(-1073, 73);
+path.lineTo(-1072, 76);
+path.lineTo(-1072, 80);
+path.lineTo(-1071, 82);
+path.lineTo(-1071, 83);
+path.lineTo(-1070, 82);
+path.lineTo(-1070, 84);
+path.lineTo(-1069, 92);
+path.lineTo(-1069, 51);
+path.lineTo(-1068, 0);
+path.lineTo(-1068, 72);
+path.lineTo(-1067, 85);
+path.lineTo(-1067, 80);
+path.lineTo(-1066, 75);
+path.lineTo(-1066, 78);
+path.lineTo(-1065, 77);
+path.lineTo(-1065, 76);
+path.lineTo(-1064, 75);
+path.lineTo(-1064, 70);
+path.lineTo(-1063, 65);
+path.lineTo(-1063, 59);
+path.lineTo(-1062, 56);
+path.lineTo(-1062, 50);
+path.lineTo(-1061, 46);
+path.lineTo(-1060, 50);
+path.lineTo(-1060, 63);
+path.lineTo(-1059, 68);
+path.lineTo(-1059, 77);
+path.lineTo(-1058, 78);
+path.lineTo(-1057, 82);
+path.lineTo(-1057, 83);
+path.lineTo(-1056, 85);
+path.lineTo(-1056, 87);
+path.lineTo(-1055, 84);
+path.lineTo(-1055, 85);
+path.lineTo(-1054, 84);
+path.lineTo(-1054, 84);
+path.lineTo(-1053, 84);
+path.lineTo(-1053, 83);
+path.lineTo(-1052, 83);
+path.lineTo(-1052, 83);
+path.lineTo(-1051, 84);
+path.lineTo(-1051, 84);
+path.lineTo(-1050, 82);
+path.lineTo(-1050, 83);
+path.lineTo(-1049, 82);
+path.lineTo(-1049, 82);
+path.lineTo(-1048, 83);
+path.lineTo(-1048, 82);
+path.lineTo(-1047, 84);
+path.lineTo(-1047, 81);
+path.lineTo(-1046, 84);
+path.lineTo(-1046, 81);
+path.lineTo(-1045, 81);
+path.lineTo(-1045, 83);
+path.lineTo(-1044, 82);
+path.lineTo(-1044, 83);
+path.lineTo(-1043, 82);
+path.lineTo(-1043, 83);
+path.lineTo(-1042, 81);
+path.lineTo(-1042, 82);
+path.lineTo(-1041, 82);
+path.lineTo(-1041, 80);
+path.lineTo(-1040, 78);
+path.lineTo(-1040, 76);
+path.lineTo(-1039, 71);
+path.lineTo(-1039, 73);
+path.lineTo(-1038, 75);
+path.lineTo(-1038, 80);
+path.lineTo(-1037, 82);
+path.lineTo(-1037, 83);
+path.lineTo(-1036, 83);
+path.lineTo(-1036, 84);
+path.lineTo(-1035, 92);
+path.lineTo(-1035, 51);
+path.lineTo(-1034, 0);
+path.lineTo(-1034, 72);
+path.lineTo(-1033, 85);
+path.lineTo(-1033, 80);
+path.lineTo(-1032, 75);
+path.lineTo(-1032, 78);
+path.lineTo(-1031, 77);
+path.lineTo(-1031, 76);
+path.lineTo(-1030, 75);
+path.lineTo(-1030, 70);
+path.lineTo(-1029, 65);
+path.lineTo(-1029, 59);
+path.lineTo(-1028, 56);
+path.lineTo(-1028, 50);
+path.lineTo(-1027, 48);
+path.lineTo(-1027, 46);
+path.lineTo(-1026, 50);
+path.lineTo(-1026, 55);
+path.lineTo(-1025, 68);
+path.lineTo(-1025, 72);
+path.lineTo(-1024, 78);
+path.lineTo(-1024, 80);
+path.lineTo(-1023, 83);
+path.lineTo(-1023, 84);
+path.lineTo(-1022, 87);
+path.lineTo(-1022, 84);
+path.lineTo(-1021, 85);
+path.lineTo(-1020, 84);
+path.lineTo(-1020, 85);
+path.lineTo(-1019, 83);
+path.lineTo(-1019, 83);
+path.lineTo(-1018, 83);
+path.lineTo(-1018, 83);
+path.lineTo(-1017, 84);
+path.lineTo(-1017, 82);
+path.lineTo(-1016, 82);
+path.lineTo(-1016, 82);
+path.lineTo(-1015, 83);
+path.lineTo(-1014, 83);
+path.lineTo(-1014, 82);
+path.lineTo(-1013, 84);
+path.lineTo(-1013, 81);
+path.lineTo(-1012, 84);
+path.lineTo(-1012, 83);
+path.lineTo(-1011, 81);
+path.lineTo(-1011, 83);
+path.lineTo(-1010, 82);
+path.lineTo(-1010, 83);
+path.lineTo(-1009, 82);
+path.lineTo(-1009, 83);
+path.lineTo(-1008, 81);
+path.lineTo(-1008, 82);
+path.lineTo(-1007, 82);
+path.lineTo(-1007, 80);
+path.lineTo(-1006, 78);
+path.lineTo(-1006, 76);
+path.lineTo(-1005, 71);
+path.lineTo(-1005, 71);
+path.lineTo(-1004, 75);
+path.lineTo(-1004, 80);
+path.lineTo(-1003, 82);
+path.lineTo(-1003, 83);
+path.lineTo(-1002, 83);
+path.lineTo(-1002, 84);
+path.lineTo(-1001, 92);
+path.lineTo(-1001, 92);
+path.lineTo(-1000, 0);
+path.lineTo(-1000, 72);
+path.lineTo(-999, 85);
+path.lineTo(-999, 84);
+path.lineTo(-998, 75);
+path.lineTo(-998, 78);
+path.lineTo(-997, 77);
+path.lineTo(-997, 77);
+path.lineTo(-996, 75);
+path.lineTo(-996, 72);
+path.lineTo(-995, 65);
+path.lineTo(-995, 63);
+path.lineTo(-994, 56);
+path.lineTo(-994, 53);
+path.lineTo(-993, 48);
+path.lineTo(-993, 46);
+path.lineTo(-992, 50);
+path.lineTo(-992, 55);
+path.lineTo(-991, 68);
+path.lineTo(-991, 72);
+path.lineTo(-990, 78);
+path.lineTo(-990, 80);
+path.lineTo(-989, 83);
+path.lineTo(-989, 84);
+path.lineTo(-988, 87);
+path.lineTo(-988, 84);
+path.lineTo(-987, 86);
+path.lineTo(-987, 84);
+path.lineTo(-986, 85);
+path.lineTo(-986, 85);
+path.lineTo(-985, 83);
+path.lineTo(-985, 83);
+path.lineTo(-984, 83);
+path.lineTo(-984, 83);
+path.lineTo(-983, 84);
+path.lineTo(-983, 82);
+path.lineTo(-982, 82);
+path.lineTo(-982, 82);
+path.lineTo(-981, 83);
+path.lineTo(-981, 83);
+path.lineTo(-980, 82);
+path.lineTo(-980, 84);
+path.lineTo(-979, 81);
+path.lineTo(-979, 84);
+path.lineTo(-978, 81);
+path.lineTo(-978, 81);
+path.lineTo(-977, 83);
+path.lineTo(-977, 82);
+path.lineTo(-976, 83);
+path.lineTo(-976, 82);
+path.lineTo(-975, 83);
+path.lineTo(-975, 81);
+path.lineTo(-974, 82);
+path.lineTo(-974, 82);
+path.lineTo(-973, 80);
+path.lineTo(-973, 78);
+path.lineTo(-972, 78);
+path.lineTo(-972, 71);
+path.lineTo(-971, 71);
+path.lineTo(-970, 75);
+path.lineTo(-970, 76);
+path.lineTo(-969, 82);
+path.lineTo(-969, 81);
+path.lineTo(-968, 83);
+path.lineTo(-968, 82);
+path.lineTo(-967, 92);
+path.lineTo(-967, 92);
+path.lineTo(-966, 0);
+path.lineTo(-966, 20);
+path.lineTo(-965, 85);
+path.lineTo(-965, 84);
+path.lineTo(-964, 75);
+path.lineTo(-964, 78);
+path.lineTo(-963, 77);
+path.lineTo(-963, 77);
+path.lineTo(-962, 75);
+path.lineTo(-962, 72);
+path.lineTo(-961, 65);
+path.lineTo(-961, 63);
+path.lineTo(-960, 56);
+path.lineTo(-960, 53);
+path.lineTo(-959, 48);
+path.lineTo(-959, 46);
+path.lineTo(-958, 50);
+path.lineTo(-958, 55);
+path.lineTo(-957, 68);
+path.lineTo(-957, 72);
+path.lineTo(-956, 78);
+path.lineTo(-955, 83);
+path.lineTo(-955, 84);
+path.lineTo(-954, 87);
+path.lineTo(-954, 84);
+path.lineTo(-953, 86);
+path.lineTo(-953, 84);
+path.lineTo(-952, 85);
+path.lineTo(-952, 85);
+path.lineTo(-951, 83);
+path.lineTo(-951, 83);
+path.lineTo(-950, 83);
+path.lineTo(-950, 83);
+path.lineTo(-949, 84);
+path.lineTo(-949, 82);
+path.lineTo(-948, 82);
+path.lineTo(-948, 83);
+path.lineTo(-947, 83);
+path.lineTo(-947, 82);
+path.lineTo(-946, 82);
+path.lineTo(-946, 84);
+path.lineTo(-945, 82);
+path.lineTo(-945, 84);
+path.lineTo(-944, 83);
+path.lineTo(-944, 81);
+path.lineTo(-943, 83);
+path.lineTo(-943, 82);
+path.lineTo(-942, 82);
+path.lineTo(-942, 83);
+path.lineTo(-941, 83);
+path.lineTo(-941, 81);
+path.lineTo(-940, 82);
+path.lineTo(-940, 81);
+path.lineTo(-939, 80);
+path.lineTo(-939, 78);
+path.lineTo(-938, 78);
+path.lineTo(-938, 71);
+path.lineTo(-937, 71);
+path.lineTo(-937, 75);
+path.lineTo(-936, 76);
+path.lineTo(-936, 82);
+path.lineTo(-935, 81);
+path.lineTo(-935, 83);
+path.lineTo(-934, 82);
+path.lineTo(-934, 92);
+path.lineTo(-933, 92);
+path.lineTo(-933, 0);
+path.lineTo(-932, 20);
+path.lineTo(-932, 85);
+path.lineTo(-931, 84);
+path.lineTo(-931, 75);
+path.lineTo(-930, 78);
+path.lineTo(-930, 77);
+path.lineTo(-929, 77);
+path.lineTo(-929, 76);
+path.lineTo(-928, 72);
+path.lineTo(-927, 65);
+path.lineTo(-927, 63);
+path.lineTo(-926, 56);
+path.lineTo(-926, 53);
+path.lineTo(-925, 50);
+path.lineTo(-925, 46);
+path.lineTo(-924, 47);
+path.lineTo(-924, 55);
+path.lineTo(-923, 63);
+path.lineTo(-923, 72);
+path.lineTo(-922, 77);
+path.lineTo(-922, 80);
+path.lineTo(-921, 82);
+path.lineTo(-921, 84);
+path.lineTo(-920, 85);
+path.lineTo(-920, 87);
+path.lineTo(-919, 86);
+path.lineTo(-919, 84);
+path.lineTo(-918, 85);
+path.lineTo(-918, 85);
+path.lineTo(-917, 84);
+path.lineTo(-917, 83);
+path.lineTo(-916, 83);
+path.lineTo(-916, 83);
+path.lineTo(-915, 84);
+path.lineTo(-915, 82);
+path.lineTo(-914, 82);
+path.lineTo(-914, 83);
+path.lineTo(-913, 83);
+path.lineTo(-913, 82);
+path.lineTo(-912, 82);
+path.lineTo(-912, 82);
+path.lineTo(-911, 84);
+path.lineTo(-911, 81);
+path.lineTo(-910, 83);
+path.lineTo(-910, 81);
+path.lineTo(-909, 83);
+path.lineTo(-909, 82);
+path.lineTo(-908, 82);
+path.lineTo(-908, 83);
+path.lineTo(-907, 83);
+path.lineTo(-907, 81);
+path.lineTo(-906, 82);
+path.lineTo(-906, 81);
+path.lineTo(-905, 80);
+path.lineTo(-905, 78);
+path.lineTo(-904, 78);
+path.lineTo(-904, 71);
+path.lineTo(-903, 71);
+path.lineTo(-903, 75);
+path.lineTo(-902, 76);
+path.lineTo(-902, 80);
+path.lineTo(-901, 82);
+path.lineTo(-901, 83);
+path.lineTo(-900, 82);
+path.lineTo(-900, 92);
+path.lineTo(-899, 92);
+path.lineTo(-899, 0);
+path.lineTo(-898, 20);
+path.lineTo(-898, 72);
+path.lineTo(-897, 85);
+path.lineTo(-897, 80);
+path.lineTo(-896, 75);
+path.lineTo(-896, 78);
+path.lineTo(-895, 77);
+path.lineTo(-895, 76);
+path.lineTo(-894, 72);
+path.lineTo(-894, 70);
+path.lineTo(-893, 63);
+path.lineTo(-893, 59);
+path.lineTo(-892, 53);
+path.lineTo(-892, 50);
+path.lineTo(-891, 46);
+path.lineTo(-891, 47);
+path.lineTo(-890, 55);
+path.lineTo(-890, 63);
+path.lineTo(-889, 72);
+path.lineTo(-889, 77);
+path.lineTo(-888, 80);
+path.lineTo(-888, 82);
+path.lineTo(-887, 84);
+path.lineTo(-887, 85);
+path.lineTo(-886, 87);
+path.lineTo(-886, 86);
+path.lineTo(-885, 84);
+path.lineTo(-885, 85);
+path.lineTo(-884, 85);
+path.lineTo(-883, 84);
+path.lineTo(-883, 83);
+path.lineTo(-882, 83);
+path.lineTo(-882, 83);
+path.lineTo(-881, 84);
+path.lineTo(-881, 82);
+path.lineTo(-880, 82);
+path.lineTo(-880, 83);
+path.lineTo(-879, 83);
+path.lineTo(-879, 82);
+path.lineTo(-878, 82);
+path.lineTo(-878, 84);
+path.lineTo(-877, 82);
+path.lineTo(-877, 84);
+path.lineTo(-876, 83);
+path.lineTo(-876, 81);
+path.lineTo(-875, 83);
+path.lineTo(-875, 82);
+path.lineTo(-874, 82);
+path.lineTo(-874, 83);
+path.lineTo(-873, 83);
+path.lineTo(-873, 82);
+path.lineTo(-872, 81);
+path.lineTo(-872, 81);
+path.lineTo(-871, 80);
+path.lineTo(-871, 78);
+path.lineTo(-870, 78);
+path.lineTo(-870, 76);
+path.lineTo(-869, 71);
+path.lineTo(-869, 73);
+path.lineTo(-868, 76);
+path.lineTo(-868, 80);
+path.lineTo(-867, 82);
+path.lineTo(-867, 83);
+path.lineTo(-866, 82);
+path.lineTo(-866, 84);
+path.lineTo(-865, 92);
+path.lineTo(-865, 51);
+path.lineTo(-864, 0);
+path.lineTo(-864, 72);
+path.lineTo(-863, 85);
+path.lineTo(-863, 80);
+path.lineTo(-862, 75);
+path.lineTo(-862, 78);
+path.lineTo(-861, 77);
+path.lineTo(-861, 76);
+path.lineTo(-860, 72);
+path.lineTo(-860, 70);
+path.lineTo(-859, 63);
+path.lineTo(-859, 59);
+path.lineTo(-858, 53);
+path.lineTo(-858, 50);
+path.lineTo(-857, 46);
+path.lineTo(-857, 47);
+path.lineTo(-856, 55);
+path.lineTo(-856, 63);
+path.lineTo(-855, 72);
+path.lineTo(-855, 77);
+path.lineTo(-854, 80);
+path.lineTo(-854, 82);
+path.lineTo(-853, 84);
+path.lineTo(-853, 85);
+path.lineTo(-852, 87);
+path.lineTo(-852, 86);
+path.lineTo(-851, 84);
+path.lineTo(-851, 85);
+path.lineTo(-850, 85);
+path.lineTo(-850, 84);
+path.lineTo(-849, 83);
+path.lineTo(-849, 83);
+path.lineTo(-848, 83);
+path.lineTo(-848, 84);
+path.lineTo(-847, 84);
+path.lineTo(-847, 82);
+path.lineTo(-846, 83);
+path.lineTo(-846, 82);
+path.lineTo(-845, 82);
+path.lineTo(-845, 83);
+path.lineTo(-844, 82);
+path.lineTo(-844, 84);
+path.lineTo(-843, 81);
+path.lineTo(-843, 84);
+path.lineTo(-842, 81);
+path.lineTo(-842, 83);
+path.lineTo(-841, 82);
+path.lineTo(-840, 82);
+path.lineTo(-840, 83);
+path.lineTo(-839, 82);
+path.lineTo(-839, 82);
+path.lineTo(-838, 81);
+path.lineTo(-838, 81);
+path.lineTo(-837, 82);
+path.lineTo(-837, 80);
+path.lineTo(-836, 78);
+path.lineTo(-836, 76);
+path.lineTo(-835, 71);
+path.lineTo(-834, 76);
+path.lineTo(-834, 80);
+path.lineTo(-833, 82);
+path.lineTo(-833, 83);
+path.lineTo(-832, 82);
+path.lineTo(-832, 84);
+path.lineTo(-831, 92);
+path.lineTo(-831, 51);
+path.lineTo(-830, 0);
+path.lineTo(-830, 72);
+path.lineTo(-829, 85);
+path.lineTo(-829, 80);
+path.lineTo(-828, 75);
+path.lineTo(-828, 78);
+path.lineTo(-827, 77);
+path.lineTo(-827, 76);
+path.lineTo(-826, 75);
+path.lineTo(-826, 70);
+path.lineTo(-825, 65);
+path.lineTo(-825, 59);
+path.lineTo(-824, 56);
+path.lineTo(-824, 50);
+path.lineTo(-823, 48);
+path.lineTo(-823, 46);
+path.lineTo(-822, 50);
+path.lineTo(-822, 63);
+path.lineTo(-821, 68);
+path.lineTo(-821, 77);
+path.lineTo(-820, 78);
+path.lineTo(-820, 82);
+path.lineTo(-819, 83);
+path.lineTo(-819, 85);
+path.lineTo(-818, 87);
+path.lineTo(-818, 84);
+path.lineTo(-817, 85);
+path.lineTo(-817, 84);
+path.lineTo(-816, 84);
+path.lineTo(-816, 84);
+path.lineTo(-815, 83);
+path.lineTo(-815, 83);
+path.lineTo(-814, 83);
+path.lineTo(-814, 84);
+path.lineTo(-813, 84);
+path.lineTo(-813, 82);
+path.lineTo(-812, 83);
+path.lineTo(-812, 82);
+path.lineTo(-811, 82);
+path.lineTo(-811, 83);
+path.lineTo(-810, 82);
+path.lineTo(-810, 84);
+path.lineTo(-809, 81);
+path.lineTo(-809, 84);
+path.lineTo(-808, 81);
+path.lineTo(-808, 83);
+path.lineTo(-807, 82);
+path.lineTo(-807, 82);
+path.lineTo(-806, 83);
+path.lineTo(-806, 82);
+path.lineTo(-805, 82);
+path.lineTo(-805, 81);
+path.lineTo(-804, 82);
+path.lineTo(-804, 82);
+path.lineTo(-803, 80);
+path.lineTo(-803, 78);
+path.lineTo(-802, 76);
+path.lineTo(-802, 71);
+path.lineTo(-801, 73);
+path.lineTo(-801, 75);
+path.lineTo(-800, 80);
+path.lineTo(-800, 82);
+path.lineTo(-799, 83);
+path.lineTo(-799, 83);
+path.lineTo(-798, 84);
+path.lineTo(-797, 92);
+path.lineTo(-797, 51);
+path.lineTo(-796, 0);
+path.lineTo(-796, 72);
+path.lineTo(-795, 85);
+path.lineTo(-795, 80);
+path.lineTo(-794, 75);
+path.lineTo(-794, 78);
+path.lineTo(-793, 77);
+path.lineTo(-793, 76);
+path.lineTo(-792, 75);
+path.lineTo(-792, 70);
+path.lineTo(-791, 65);
+path.lineTo(-791, 59);
+path.lineTo(-790, 56);
+path.lineTo(-790, 50);
+path.lineTo(-789, 48);
+path.lineTo(-789, 46);
+path.lineTo(-788, 50);
+path.lineTo(-788, 63);
+path.lineTo(-787, 68);
+path.lineTo(-787, 77);
+path.lineTo(-786, 78);
+path.lineTo(-786, 82);
+path.lineTo(-785, 83);
+path.lineTo(-785, 85);
+path.lineTo(-784, 87);
+path.lineTo(-784, 84);
+path.lineTo(-783, 85);
+path.lineTo(-783, 84);
+path.lineTo(-782, 84);
+path.lineTo(-782, 84);
+path.lineTo(-781, 83);
+path.lineTo(-781, 83);
+path.lineTo(-780, 83);
+path.lineTo(-780, 83);
+path.lineTo(-779, 84);
+path.lineTo(-779, 82);
+path.lineTo(-778, 83);
+path.lineTo(-778, 82);
+path.lineTo(-777, 82);
+path.lineTo(-777, 83);
+path.lineTo(-776, 82);
+path.lineTo(-776, 84);
+path.lineTo(-775, 81);
+path.lineTo(-775, 84);
+path.lineTo(-774, 81);
+path.lineTo(-774, 81);
+path.lineTo(-773, 83);
+path.lineTo(-773, 82);
+path.lineTo(-772, 83);
+path.lineTo(-772, 82);
+path.lineTo(-771, 83);
+path.lineTo(-771, 81);
+path.lineTo(-770, 82);
+path.lineTo(-770, 82);
+path.lineTo(-769, 80);
+path.lineTo(-769, 78);
+path.lineTo(-768, 76);
+path.lineTo(-768, 71);
+path.lineTo(-767, 73);
+path.lineTo(-767, 75);
+path.lineTo(-766, 80);
+path.lineTo(-766, 82);
+path.lineTo(-765, 83);
+path.lineTo(-765, 83);
+path.lineTo(-764, 84);
+path.lineTo(-764, 92);
+path.lineTo(-763, 92);
+path.lineTo(-763, 0);
+path.lineTo(-762, 72);
+path.lineTo(-762, 85);
+path.lineTo(-761, 80);
+path.lineTo(-761, 75);
+path.lineTo(-760, 78);
+path.lineTo(-760, 77);
+path.lineTo(-759, 76);
+path.lineTo(-759, 75);
+path.lineTo(-758, 70);
+path.lineTo(-758, 65);
+path.lineTo(-757, 63);
+path.lineTo(-757, 56);
+path.lineTo(-756, 53);
+path.lineTo(-756, 48);
+path.lineTo(-755, 46);
+path.lineTo(-754, 50);
+path.lineTo(-754, 55);
+path.lineTo(-753, 68);
+path.lineTo(-753, 72);
+path.lineTo(-752, 78);
+path.lineTo(-752, 80);
+path.lineTo(-751, 83);
+path.lineTo(-751, 84);
+path.lineTo(-750, 87);
+path.lineTo(-750, 84);
+path.lineTo(-749, 86);
+path.lineTo(-749, 84);
+path.lineTo(-748, 85);
+path.lineTo(-748, 85);
+path.lineTo(-747, 83);
+path.lineTo(-747, 83);
+path.lineTo(-746, 83);
+path.lineTo(-746, 83);
+path.lineTo(-745, 84);
+path.lineTo(-745, 82);
+path.lineTo(-744, 82);
+path.lineTo(-744, 83);
+path.lineTo(-743, 82);
+path.lineTo(-743, 83);
+path.lineTo(-742, 82);
+path.lineTo(-742, 84);
+path.lineTo(-741, 81);
+path.lineTo(-741, 84);
+path.lineTo(-740, 81);
+path.lineTo(-740, 81);
+path.lineTo(-739, 83);
+path.lineTo(-739, 82);
+path.lineTo(-738, 83);
+path.lineTo(-738, 82);
+path.lineTo(-737, 83);
+path.lineTo(-737, 81);
+path.lineTo(-736, 82);
+path.lineTo(-736, 82);
+path.lineTo(-735, 80);
+path.lineTo(-735, 78);
+path.lineTo(-734, 78);
+path.lineTo(-734, 71);
+path.lineTo(-733, 71);
+path.lineTo(-733, 75);
+path.lineTo(-732, 76);
+path.lineTo(-732, 82);
+path.lineTo(-731, 83);
+path.lineTo(-731, 83);
+path.lineTo(-730, 82);
+path.lineTo(-730, 92);
+path.lineTo(-729, 92);
+path.lineTo(-729, 0);
+path.lineTo(-728, 20);
+path.lineTo(-728, 85);
+path.lineTo(-727, 84);
+path.lineTo(-727, 75);
+path.lineTo(-726, 78);
+path.lineTo(-726, 78);
+path.lineTo(-725, 77);
+path.lineTo(-725, 75);
+path.lineTo(-724, 72);
+path.lineTo(-724, 65);
+path.lineTo(-723, 63);
+path.lineTo(-723, 56);
+path.lineTo(-722, 53);
+path.lineTo(-722, 48);
+path.lineTo(-721, 46);
+path.lineTo(-721, 50);
+path.lineTo(-720, 55);
+path.lineTo(-720, 68);
+path.lineTo(-719, 72);
+path.lineTo(-719, 78);
+path.lineTo(-718, 80);
+path.lineTo(-718, 83);
+path.lineTo(-717, 84);
+path.lineTo(-717, 87);
+path.lineTo(-716, 84);
+path.lineTo(-715, 86);
+path.lineTo(-714, 85);
+path.lineTo(-714, 84);
+path.lineTo(-713, 83);
+path.lineTo(-712, 83);
+path.lineTo(-712, 83);
+path.lineTo(-711, 84);
+path.lineTo(-711, 82);
+path.lineTo(-710, 82);
+path.lineTo(-710, 83);
+path.lineTo(-709, 83);
+path.lineTo(-709, 82);
+path.lineTo(-708, 82);
+path.lineTo(-708, 84);
+path.lineTo(-707, 82);
+path.lineTo(-707, 84);
+path.lineTo(-706, 83);
+path.lineTo(-706, 81);
+path.lineTo(-705, 83);
+path.lineTo(-705, 82);
+path.lineTo(-704, 82);
+path.lineTo(-704, 83);
+path.lineTo(-703, 83);
+path.lineTo(-703, 81);
+path.lineTo(-702, 82);
+path.lineTo(-702, 81);
+path.lineTo(-701, 80);
+path.lineTo(-701, 78);
+path.lineTo(-700, 78);
+path.lineTo(-700, 71);
+path.lineTo(-699, 71);
+path.lineTo(-699, 75);
+path.lineTo(-698, 76);
+path.lineTo(-698, 80);
+path.lineTo(-697, 82);
+path.lineTo(-697, 83);
+path.lineTo(-696, 82);
+path.lineTo(-696, 92);
+path.lineTo(-695, 92);
+path.lineTo(-695, 0);
+path.lineTo(-694, 20);
+path.lineTo(-694, 85);
+path.lineTo(-693, 84);
+path.lineTo(-693, 75);
+path.lineTo(-692, 78);
+path.lineTo(-692, 78);
+path.lineTo(-691, 77);
+path.lineTo(-691, 76);
+path.lineTo(-690, 72);
+path.lineTo(-690, 65);
+path.lineTo(-689, 63);
+path.lineTo(-689, 59);
+path.lineTo(-688, 53);
+path.lineTo(-688, 50);
+path.lineTo(-687, 46);
+path.lineTo(-687, 47);
+path.lineTo(-686, 55);
+path.lineTo(-686, 63);
+path.lineTo(-685, 72);
+path.lineTo(-685, 77);
+path.lineTo(-684, 80);
+path.lineTo(-684, 82);
+path.lineTo(-683, 84);
+path.lineTo(-683, 85);
+path.lineTo(-682, 87);
+path.lineTo(-682, 86);
+path.lineTo(-681, 84);
+path.lineTo(-681, 85);
+path.lineTo(-680, 85);
+path.lineTo(-680, 84);
+path.lineTo(-679, 83);
+path.lineTo(-679, 83);
+path.lineTo(-678, 83);
+path.lineTo(-678, 84);
+path.lineTo(-677, 82);
+path.lineTo(-677, 82);
+path.lineTo(-676, 83);
+path.lineTo(-676, 83);
+path.lineTo(-675, 82);
+path.lineTo(-675, 82);
+path.lineTo(-674, 84);
+path.lineTo(-674, 82);
+path.lineTo(-673, 84);
+path.lineTo(-673, 83);
+path.lineTo(-672, 81);
+path.lineTo(-672, 83);
+path.lineTo(-671, 82);
+path.lineTo(-671, 82);
+path.lineTo(-670, 83);
+path.lineTo(-669, 82);
+path.lineTo(-669, 81);
+path.lineTo(-668, 82);
+path.lineTo(-668, 81);
+path.lineTo(-667, 80);
+path.lineTo(-667, 80);
+path.lineTo(-666, 78);
+path.lineTo(-666, 76);
+path.lineTo(-665, 71);
+path.lineTo(-665, 73);
+path.lineTo(-664, 76);
+path.lineTo(-664, 80);
+path.lineTo(-663, 82);
+path.lineTo(-663, 83);
+path.lineTo(-662, 82);
+path.lineTo(-662, 84);
+path.lineTo(-661, 92);
+path.lineTo(-661, 51);
+path.lineTo(-660, 0);
+path.lineTo(-660, 72);
+path.lineTo(-659, 85);
+path.lineTo(-659, 80);
+path.lineTo(-658, 75);
+path.lineTo(-658, 78);
+path.lineTo(-657, 77);
+path.lineTo(-657, 76);
+path.lineTo(-656, 72);
+path.lineTo(-656, 70);
+path.lineTo(-655, 63);
+path.lineTo(-655, 59);
+path.lineTo(-654, 53);
+path.lineTo(-654, 50);
+path.lineTo(-653, 46);
+path.lineTo(-653, 47);
+path.lineTo(-652, 55);
+path.lineTo(-652, 63);
+path.lineTo(-651, 68);
+path.lineTo(-651, 77);
+path.lineTo(-650, 78);
+path.lineTo(-650, 82);
+path.lineTo(-649, 84);
+path.lineTo(-649, 85);
+path.lineTo(-648, 87);
+path.lineTo(-648, 86);
+path.lineTo(-647, 85);
+path.lineTo(-647, 84);
+path.lineTo(-646, 84);
+path.lineTo(-646, 84);
+path.lineTo(-645, 83);
+path.lineTo(-645, 83);
+path.lineTo(-644, 83);
+path.lineTo(-644, 84);
+path.lineTo(-643, 84);
+path.lineTo(-643, 82);
+path.lineTo(-642, 83);
+path.lineTo(-642, 82);
+path.lineTo(-641, 82);
+path.lineTo(-641, 83);
+path.lineTo(-640, 82);
+path.lineTo(-640, 84);
+path.lineTo(-639, 81);
+path.lineTo(-639, 84);
+path.lineTo(-638, 81);
+path.lineTo(-638, 83);
+path.lineTo(-637, 82);
+path.lineTo(-637, 82);
+path.lineTo(-636, 83);
+path.lineTo(-636, 82);
+path.lineTo(-635, 82);
+path.lineTo(-635, 81);
+path.lineTo(-634, 81);
+path.lineTo(-634, 80);
+path.lineTo(-633, 80);
+path.lineTo(-633, 78);
+path.lineTo(-632, 76);
+path.lineTo(-632, 71);
+path.lineTo(-631, 76);
+path.lineTo(-630, 80);
+path.lineTo(-630, 82);
+path.lineTo(-629, 83);
+path.lineTo(-629, 82);
+path.lineTo(-628, 84);
+path.lineTo(-628, 92);
+path.lineTo(-627, 51);
+path.lineTo(-626, 0);
+path.lineTo(-626, 72);
+path.lineTo(-625, 85);
+path.lineTo(-625, 80);
+path.lineTo(-624, 75);
+path.lineTo(-624, 78);
+path.lineTo(-623, 77);
+path.lineTo(-623, 76);
+path.lineTo(-622, 75);
+path.lineTo(-622, 70);
+path.lineTo(-621, 65);
+path.lineTo(-620, 56);
+path.lineTo(-620, 50);
+path.lineTo(-619, 48);
+path.lineTo(-619, 46);
+path.lineTo(-618, 50);
+path.lineTo(-618, 63);
+path.lineTo(-617, 68);
+path.lineTo(-617, 77);
+path.lineTo(-616, 78);
+path.lineTo(-616, 82);
+path.lineTo(-615, 83);
+path.lineTo(-615, 85);
+path.lineTo(-614, 87);
+path.lineTo(-614, 84);
+path.lineTo(-613, 85);
+path.lineTo(-613, 84);
+path.lineTo(-612, 85);
+path.lineTo(-612, 84);
+path.lineTo(-611, 83);
+path.lineTo(-611, 83);
+path.lineTo(-610, 83);
+path.lineTo(-610, 84);
+path.lineTo(-609, 84);
+path.lineTo(-609, 82);
+path.lineTo(-608, 83);
+path.lineTo(-608, 82);
+path.lineTo(-607, 82);
+path.lineTo(-607, 83);
+path.lineTo(-606, 82);
+path.lineTo(-606, 84);
+path.lineTo(-605, 81);
+path.lineTo(-605, 84);
+path.lineTo(-604, 81);
+path.lineTo(-604, 83);
+path.lineTo(-603, 82);
+path.lineTo(-603, 82);
+path.lineTo(-602, 83);
+path.lineTo(-602, 82);
+path.lineTo(-601, 83);
+path.lineTo(-601, 81);
+path.lineTo(-600, 81);
+path.lineTo(-600, 82);
+path.lineTo(-599, 80);
+path.lineTo(-599, 78);
+path.lineTo(-598, 76);
+path.lineTo(-598, 71);
+path.lineTo(-597, 73);
+path.lineTo(-597, 75);
+path.lineTo(-596, 80);
+path.lineTo(-596, 82);
+path.lineTo(-595, 83);
+path.lineTo(-595, 83);
+path.lineTo(-594, 84);
+path.lineTo(-594, 92);
+path.lineTo(-593, 51);
+path.lineTo(-593, 0);
+path.lineTo(-592, 72);
+path.lineTo(-592, 85);
+path.lineTo(-591, 80);
+path.lineTo(-591, 75);
+path.lineTo(-590, 78);
+path.lineTo(-590, 77);
+path.lineTo(-589, 76);
+path.lineTo(-589, 75);
+path.lineTo(-588, 70);
+path.lineTo(-588, 65);
+path.lineTo(-587, 59);
+path.lineTo(-587, 56);
+path.lineTo(-586, 50);
+path.lineTo(-586, 48);
+path.lineTo(-585, 46);
+path.lineTo(-584, 50);
+path.lineTo(-584, 63);
+path.lineTo(-583, 68);
+path.lineTo(-583, 77);
+path.lineTo(-582, 78);
+path.lineTo(-582, 82);
+path.lineTo(-581, 83);
+path.lineTo(-581, 85);
+path.lineTo(-580, 87);
+path.lineTo(-580, 84);
+path.lineTo(-579, 85);
+path.lineTo(-579, 84);
+path.lineTo(-578, 84);
+path.lineTo(-578, 85);
+path.lineTo(-577, 83);
+path.lineTo(-577, 83);
+path.lineTo(-576, 83);
+path.lineTo(-576, 84);
+path.lineTo(-575, 84);
+path.lineTo(-575, 82);
+path.lineTo(-574, 82);
+path.lineTo(-574, 82);
+path.lineTo(-573, 83);
+path.lineTo(-573, 83);
+path.lineTo(-572, 82);
+path.lineTo(-572, 84);
+path.lineTo(-571, 81);
+path.lineTo(-571, 84);
+path.lineTo(-570, 81);
+path.lineTo(-570, 81);
+path.lineTo(-569, 83);
+path.lineTo(-569, 82);
+path.lineTo(-568, 83);
+path.lineTo(-568, 82);
+path.lineTo(-567, 83);
+path.lineTo(-567, 81);
+path.lineTo(-566, 82);
+path.lineTo(-566, 82);
+path.lineTo(-565, 80);
+path.lineTo(-565, 78);
+path.lineTo(-564, 76);
+path.lineTo(-564, 71);
+path.lineTo(-563, 73);
+path.lineTo(-563, 75);
+path.lineTo(-562, 80);
+path.lineTo(-562, 82);
+path.lineTo(-561, 83);
+path.lineTo(-561, 83);
+path.lineTo(-560, 84);
+path.lineTo(-560, 92);
+path.lineTo(-559, 51);
+path.lineTo(-559, 0);
+path.lineTo(-558, 20);
+path.lineTo(-558, 85);
+path.lineTo(-557, 84);
+path.lineTo(-557, 75);
+path.lineTo(-556, 78);
+path.lineTo(-556, 77);
+path.lineTo(-555, 77);
+path.lineTo(-555, 75);
+path.lineTo(-554, 72);
+path.lineTo(-554, 65);
+path.lineTo(-553, 63);
+path.lineTo(-553, 56);
+path.lineTo(-552, 53);
+path.lineTo(-552, 48);
+path.lineTo(-551, 46);
+path.lineTo(-551, 50);
+path.lineTo(-550, 55);
+path.lineTo(-550, 68);
+path.lineTo(-549, 72);
+path.lineTo(-549, 78);
+path.lineTo(-548, 80);
+path.lineTo(-547, 83);
+path.lineTo(-547, 87);
+path.lineTo(-546, 84);
+path.lineTo(-546, 86);
+path.lineTo(-545, 84);
+path.lineTo(-545, 85);
+path.lineTo(-544, 85);
+path.lineTo(-544, 83);
+path.lineTo(-543, 83);
+path.lineTo(-543, 83);
+path.lineTo(-542, 83);
+path.lineTo(-541, 84);
+path.lineTo(-541, 82);
+path.lineTo(-540, 82);
+path.lineTo(-540, 82);
+path.lineTo(-539, 83);
+path.lineTo(-539, 83);
+path.lineTo(-538, 82);
+path.lineTo(-538, 84);
+path.lineTo(-537, 81);
+path.lineTo(-537, 84);
+path.lineTo(-536, 81);
+path.lineTo(-536, 81);
+path.lineTo(-535, 83);
+path.lineTo(-535, 82);
+path.lineTo(-534, 83);
+path.lineTo(-534, 82);
+path.lineTo(-533, 83);
+path.lineTo(-533, 81);
+path.lineTo(-532, 82);
+path.lineTo(-532, 82);
+path.lineTo(-531, 80);
+path.lineTo(-531, 78);
+path.lineTo(-530, 78);
+path.lineTo(-530, 71);
+path.lineTo(-529, 71);
+path.lineTo(-529, 75);
+path.lineTo(-528, 76);
+path.lineTo(-528, 82);
+path.lineTo(-527, 81);
+path.lineTo(-527, 83);
+path.lineTo(-526, 82);
+path.lineTo(-526, 92);
+path.lineTo(-525, 92);
+path.lineTo(-525, 0);
+path.lineTo(-524, 20);
+path.lineTo(-524, 85);
+path.lineTo(-523, 84);
+path.lineTo(-523, 75);
+path.lineTo(-522, 78);
+path.lineTo(-522, 77);
+path.lineTo(-521, 77);
+path.lineTo(-521, 75);
+path.lineTo(-520, 72);
+path.lineTo(-520, 65);
+path.lineTo(-519, 63);
+path.lineTo(-519, 56);
+path.lineTo(-518, 53);
+path.lineTo(-518, 48);
+path.lineTo(-517, 46);
+path.lineTo(-517, 50);
+path.lineTo(-516, 55);
+path.lineTo(-516, 68);
+path.lineTo(-515, 72);
+path.lineTo(-515, 78);
+path.lineTo(-514, 80);
+path.lineTo(-514, 83);
+path.lineTo(-513, 84);
+path.lineTo(-513, 87);
+path.lineTo(-512, 84);
+path.lineTo(-512, 86);
+path.lineTo(-511, 84);
+path.lineTo(-511, 85);
+path.lineTo(-510, 85);
+path.lineTo(-510, 84);
+path.lineTo(-509, 83);
+path.lineTo(-509, 83);
+path.lineTo(-508, 83);
+path.lineTo(-508, 84);
+path.lineTo(-507, 82);
+path.lineTo(-507, 82);
+path.lineTo(-506, 83);
+path.lineTo(-506, 83);
+path.lineTo(-505, 82);
+path.lineTo(-505, 82);
+path.lineTo(-504, 84);
+path.lineTo(-504, 82);
+path.lineTo(-503, 84);
+path.lineTo(-503, 83);
+path.lineTo(-502, 81);
+path.lineTo(-502, 83);
+path.lineTo(-501, 82);
+path.lineTo(-501, 82);
+path.lineTo(-500, 83);
+path.lineTo(-500, 83);
+path.lineTo(-499, 81);
+path.lineTo(-498, 82);
+path.lineTo(-498, 81);
+path.lineTo(-497, 80);
+path.lineTo(-497, 78);
+path.lineTo(-496, 78);
+path.lineTo(-496, 71);
+path.lineTo(-495, 71);
+path.lineTo(-495, 75);
+path.lineTo(-494, 76);
+path.lineTo(-494, 82);
+path.lineTo(-493, 81);
+path.lineTo(-493, 83);
+path.lineTo(-492, 82);
+path.lineTo(-492, 92);
+path.lineTo(-491, 92);
+path.lineTo(-491, 0);
+path.lineTo(-490, 20);
+path.lineTo(-490, 85);
+path.lineTo(-489, 84);
+path.lineTo(-489, 75);
+path.lineTo(-488, 78);
+path.lineTo(-488, 77);
+path.lineTo(-487, 77);
+path.lineTo(-487, 75);
+path.lineTo(-486, 72);
+path.lineTo(-486, 70);
+path.lineTo(-485, 63);
+path.lineTo(-485, 59);
+path.lineTo(-484, 53);
+path.lineTo(-484, 50);
+path.lineTo(-483, 46);
+path.lineTo(-483, 47);
+path.lineTo(-482, 55);
+path.lineTo(-482, 63);
+path.lineTo(-481, 72);
+path.lineTo(-481, 77);
+path.lineTo(-480, 80);
+path.lineTo(-480, 82);
+path.lineTo(-479, 84);
+path.lineTo(-479, 85);
+path.lineTo(-478, 87);
+path.lineTo(-478, 86);
+path.lineTo(-477, 84);
+path.lineTo(-477, 85);
+path.lineTo(-476, 85);
+path.lineTo(-476, 84);
+path.lineTo(-475, 83);
+path.lineTo(-475, 83);
+path.lineTo(-474, 83);
+path.lineTo(-474, 84);
+path.lineTo(-473, 82);
+path.lineTo(-473, 82);
+path.lineTo(-472, 83);
+path.lineTo(-472, 83);
+path.lineTo(-471, 82);
+path.lineTo(-471, 82);
+path.lineTo(-470, 84);
+path.lineTo(-470, 82);
+path.lineTo(-469, 81);
+path.lineTo(-469, 84);
+path.lineTo(-468, 81);
+path.lineTo(-468, 83);
+path.lineTo(-467, 82);
+path.lineTo(-467, 82);
+path.lineTo(-466, 83);
+path.lineTo(-466, 82);
+path.lineTo(-465, 82);
+path.lineTo(-465, 81);
+path.lineTo(-464, 82);
+path.lineTo(-464, 80);
+path.lineTo(-463, 80);
+path.lineTo(-463, 78);
+path.lineTo(-462, 76);
+path.lineTo(-462, 71);
+path.lineTo(-461, 73);
+path.lineTo(-461, 76);
+path.lineTo(-460, 80);
+path.lineTo(-460, 82);
+path.lineTo(-459, 83);
+path.lineTo(-459, 82);
+path.lineTo(-458, 84);
+path.lineTo(-458, 92);
+path.lineTo(-457, 51);
+path.lineTo(-456, 0);
+path.lineTo(-456, 72);
+path.lineTo(-455, 85);
+path.lineTo(-455, 80);
+path.lineTo(-454, 75);
+path.lineTo(-454, 78);
+path.lineTo(-453, 77);
+path.lineTo(-453, 76);
+path.lineTo(-452, 72);
+path.lineTo(-452, 70);
+path.lineTo(-451, 65);
+path.lineTo(-451, 59);
+path.lineTo(-450, 53);
+path.lineTo(-450, 50);
+path.lineTo(-449, 48);
+path.lineTo(-449, 46);
+path.lineTo(-448, 50);
+path.lineTo(-448, 63);
+path.lineTo(-447, 68);
+path.lineTo(-447, 77);
+path.lineTo(-446, 78);
+path.lineTo(-446, 82);
+path.lineTo(-445, 83);
+path.lineTo(-445, 85);
+path.lineTo(-444, 87);
+path.lineTo(-444, 84);
+path.lineTo(-443, 85);
+path.lineTo(-443, 84);
+path.lineTo(-442, 84);
+path.lineTo(-442, 84);
+path.lineTo(-441, 83);
+path.lineTo(-441, 83);
+path.lineTo(-440, 83);
+path.lineTo(-440, 84);
+path.lineTo(-439, 84);
+path.lineTo(-439, 82);
+path.lineTo(-438, 83);
+path.lineTo(-438, 82);
+path.lineTo(-437, 82);
+path.lineTo(-437, 83);
+path.lineTo(-436, 82);
+path.lineTo(-436, 84);
+path.lineTo(-435, 81);
+path.lineTo(-435, 84);
+path.lineTo(-434, 81);
+path.lineTo(-434, 83);
+path.lineTo(-433, 82);
+path.lineTo(-433, 82);
+path.lineTo(-432, 83);
+path.lineTo(-432, 82);
+path.lineTo(-431, 82);
+path.lineTo(-431, 81);
+path.lineTo(-430, 81);
+path.lineTo(-430, 80);
+path.lineTo(-429, 80);
+path.lineTo(-429, 78);
+path.lineTo(-428, 76);
+path.lineTo(-428, 71);
+path.lineTo(-427, 73);
+path.lineTo(-427, 76);
+path.lineTo(-426, 80);
+path.lineTo(-426, 82);
+path.lineTo(-425, 83);
+path.lineTo(-425, 83);
+path.lineTo(-424, 84);
+path.lineTo(-424, 92);
+path.lineTo(-423, 51);
+path.lineTo(-423, 0);
+path.lineTo(-422, 72);
+path.lineTo(-422, 85);
+path.lineTo(-421, 80);
+path.lineTo(-421, 75);
+path.lineTo(-420, 78);
+path.lineTo(-420, 77);
+path.lineTo(-419, 76);
+path.lineTo(-419, 75);
+path.lineTo(-418, 70);
+path.lineTo(-418, 65);
+path.lineTo(-417, 59);
+path.lineTo(-417, 56);
+path.lineTo(-416, 50);
+path.lineTo(-416, 48);
+path.lineTo(-415, 46);
+path.lineTo(-415, 50);
+path.lineTo(-414, 63);
+path.lineTo(-413, 68);
+path.lineTo(-413, 77);
+path.lineTo(-412, 78);
+path.lineTo(-412, 82);
+path.lineTo(-411, 83);
+path.lineTo(-411, 85);
+path.lineTo(-410, 87);
+path.lineTo(-410, 84);
+path.lineTo(-409, 85);
+path.lineTo(-409, 84);
+path.lineTo(-408, 84);
+path.lineTo(-408, 84);
+path.lineTo(-407, 83);
+path.lineTo(-407, 83);
+path.lineTo(-406, 83);
+path.lineTo(-406, 84);
+path.lineTo(-405, 84);
+path.lineTo(-405, 82);
+path.lineTo(-404, 83);
+path.lineTo(-404, 82);
+path.lineTo(-403, 82);
+path.lineTo(-403, 83);
+path.lineTo(-402, 82);
+path.lineTo(-402, 84);
+path.lineTo(-401, 81);
+path.lineTo(-401, 84);
+path.lineTo(-400, 81);
+path.lineTo(-400, 81);
+path.lineTo(-399, 83);
+path.lineTo(-399, 82);
+path.lineTo(-398, 83);
+path.lineTo(-398, 82);
+path.lineTo(-397, 83);
+path.lineTo(-397, 81);
+path.lineTo(-396, 82);
+path.lineTo(-396, 82);
+path.lineTo(-395, 80);
+path.lineTo(-395, 78);
+path.lineTo(-394, 76);
+path.lineTo(-394, 71);
+path.lineTo(-393, 73);
+path.lineTo(-393, 75);
+path.lineTo(-392, 80);
+path.lineTo(-392, 82);
+path.lineTo(-391, 83);
+path.lineTo(-391, 83);
+path.lineTo(-390, 84);
+path.lineTo(-390, 92);
+path.lineTo(-389, 51);
+path.lineTo(-389, 0);
+path.lineTo(-388, 72);
+path.lineTo(-388, 85);
+path.lineTo(-387, 80);
+path.lineTo(-387, 75);
+path.lineTo(-386, 78);
+path.lineTo(-386, 77);
+path.lineTo(-385, 76);
+path.lineTo(-385, 75);
+path.lineTo(-384, 70);
+path.lineTo(-384, 65);
+path.lineTo(-383, 59);
+path.lineTo(-383, 56);
+path.lineTo(-382, 50);
+path.lineTo(-382, 48);
+path.lineTo(-381, 46);
+path.lineTo(-381, 50);
+path.lineTo(-380, 63);
+path.lineTo(-380, 68);
+path.lineTo(-379, 77);
+path.lineTo(-379, 78);
+path.lineTo(-378, 82);
+path.lineTo(-378, 83);
+path.lineTo(-377, 84);
+path.lineTo(-377, 87);
+path.lineTo(-376, 84);
+path.lineTo(-376, 86);
+path.lineTo(-375, 84);
+path.lineTo(-375, 85);
+path.lineTo(-374, 85);
+path.lineTo(-374, 83);
+path.lineTo(-373, 83);
+path.lineTo(-373, 83);
+path.lineTo(-372, 83);
+path.lineTo(-372, 84);
+path.lineTo(-371, 82);
+path.lineTo(-370, 82);
+path.lineTo(-370, 82);
+path.lineTo(-369, 83);
+path.lineTo(-369, 83);
+path.lineTo(-368, 82);
+path.lineTo(-368, 84);
+path.lineTo(-367, 81);
+path.lineTo(-367, 84);
+path.lineTo(-366, 81);
+path.lineTo(-366, 81);
+path.lineTo(-365, 83);
+path.lineTo(-365, 82);
+path.lineTo(-364, 83);
+path.lineTo(-364, 82);
+path.lineTo(-363, 83);
+path.lineTo(-363, 81);
+path.lineTo(-362, 82);
+path.lineTo(-362, 82);
+path.lineTo(-361, 80);
+path.lineTo(-361, 78);
+path.lineTo(-360, 76);
+path.lineTo(-360, 71);
+path.lineTo(-359, 73);
+path.lineTo(-359, 75);
+path.lineTo(-358, 80);
+path.lineTo(-358, 82);
+path.lineTo(-357, 81);
+path.lineTo(-357, 83);
+path.lineTo(-356, 82);
+path.lineTo(-356, 92);
+path.lineTo(-355, 92);
+path.lineTo(-355, 0);
+path.lineTo(-354, 20);
+path.lineTo(-354, 85);
+path.lineTo(-353, 84);
+path.lineTo(-353, 75);
+path.lineTo(-352, 78);
+path.lineTo(-352, 77);
+path.lineTo(-351, 77);
+path.lineTo(-351, 75);
+path.lineTo(-350, 72);
+path.lineTo(-350, 65);
+path.lineTo(-349, 63);
+path.lineTo(-349, 56);
+path.lineTo(-348, 53);
+path.lineTo(-348, 48);
+path.lineTo(-347, 46);
+path.lineTo(-347, 50);
+path.lineTo(-346, 55);
+path.lineTo(-346, 68);
+path.lineTo(-345, 72);
+path.lineTo(-345, 78);
+path.lineTo(-344, 80);
+path.lineTo(-344, 83);
+path.lineTo(-343, 84);
+path.lineTo(-343, 87);
+path.lineTo(-342, 84);
+path.lineTo(-342, 86);
+path.lineTo(-341, 84);
+path.lineTo(-341, 85);
+path.lineTo(-340, 85);
+path.lineTo(-340, 84);
+path.lineTo(-339, 83);
+path.lineTo(-339, 83);
+path.lineTo(-338, 83);
+path.lineTo(-338, 84);
+path.lineTo(-337, 82);
+path.lineTo(-337, 82);
+path.lineTo(-336, 83);
+path.lineTo(-336, 83);
+path.lineTo(-335, 82);
+path.lineTo(-335, 82);
+path.lineTo(-334, 84);
+path.lineTo(-334, 82);
+path.lineTo(-333, 84);
+path.lineTo(-333, 83);
+path.lineTo(-332, 81);
+path.lineTo(-332, 83);
+path.lineTo(-331, 82);
+path.lineTo(-331, 82);
+path.lineTo(-330, 83);
+path.lineTo(-330, 83);
+path.lineTo(-329, 81);
+path.lineTo(-328, 82);
+path.lineTo(-328, 81);
+path.lineTo(-327, 80);
+path.lineTo(-327, 78);
+path.lineTo(-326, 78);
+path.lineTo(-326, 71);
+path.lineTo(-325, 71);
+path.lineTo(-325, 75);
+path.lineTo(-324, 76);
+path.lineTo(-324, 82);
+path.lineTo(-323, 81);
+path.lineTo(-323, 83);
+path.lineTo(-322, 82);
+path.lineTo(-322, 92);
+path.lineTo(-321, 92);
+path.lineTo(-321, 0);
+path.lineTo(-320, 20);
+path.lineTo(-320, 85);
+path.lineTo(-319, 84);
+path.lineTo(-319, 75);
+path.lineTo(-318, 78);
+path.lineTo(-318, 77);
+path.lineTo(-317, 77);
+path.lineTo(-317, 75);
+path.lineTo(-316, 72);
+path.lineTo(-316, 65);
+path.lineTo(-315, 63);
+path.lineTo(-315, 59);
+path.lineTo(-314, 53);
+path.lineTo(-314, 48);
+path.lineTo(-313, 46);
+path.lineTo(-313, 47);
+path.lineTo(-312, 55);
+path.lineTo(-312, 63);
+path.lineTo(-311, 72);
+path.lineTo(-311, 77);
+path.lineTo(-310, 80);
+path.lineTo(-310, 82);
+path.lineTo(-309, 84);
+path.lineTo(-309, 85);
+path.lineTo(-308, 87);
+path.lineTo(-308, 86);
+path.lineTo(-307, 84);
+path.lineTo(-307, 85);
+path.lineTo(-306, 85);
+path.lineTo(-306, 84);
+path.lineTo(-305, 83);
+path.lineTo(-305, 83);
+path.lineTo(-304, 83);
+path.lineTo(-304, 84);
+path.lineTo(-303, 82);
+path.lineTo(-303, 82);
+path.lineTo(-302, 83);
+path.lineTo(-302, 83);
+path.lineTo(-301, 82);
+path.lineTo(-301, 82);
+path.lineTo(-300, 84);
+path.lineTo(-300, 82);
+path.lineTo(-299, 84);
+path.lineTo(-299, 83);
+path.lineTo(-298, 81);
+path.lineTo(-298, 83);
+path.lineTo(-297, 82);
+path.lineTo(-297, 82);
+path.lineTo(-296, 83);
+path.lineTo(-296, 83);
+path.lineTo(-295, 81);
+path.lineTo(-295, 82);
+path.lineTo(-294, 81);
+path.lineTo(-294, 80);
+path.lineTo(-293, 78);
+path.lineTo(-293, 78);
+path.lineTo(-292, 71);
+path.lineTo(-292, 71);
+path.lineTo(-291, 73);
+path.lineTo(-291, 76);
+path.lineTo(-290, 80);
+path.lineTo(-290, 82);
+path.lineTo(-289, 83);
+path.lineTo(-289, 82);
+path.lineTo(-288, 84);
+path.lineTo(-288, 92);
+path.lineTo(-287, 51);
+path.lineTo(-287, 0);
+path.lineTo(-286, 72);
+path.lineTo(-285, 85);
+path.lineTo(-285, 80);
+path.lineTo(-284, 75);
+path.lineTo(-284, 78);
+path.lineTo(-283, 77);
+path.lineTo(-283, 76);
+path.lineTo(-282, 72);
+path.lineTo(-282, 70);
+path.lineTo(-281, 63);
+path.lineTo(-281, 59);
+path.lineTo(-280, 53);
+path.lineTo(-280, 50);
+path.lineTo(-279, 46);
+path.lineTo(-278, 47);
+path.lineTo(-278, 63);
+path.lineTo(-277, 72);
+path.lineTo(-277, 77);
+path.lineTo(-276, 80);
+path.lineTo(-276, 82);
+path.lineTo(-275, 84);
+path.lineTo(-275, 85);
+path.lineTo(-274, 87);
+path.lineTo(-274, 86);
+path.lineTo(-273, 84);
+path.lineTo(-273, 85);
+path.lineTo(-272, 85);
+path.lineTo(-272, 84);
+path.lineTo(-271, 83);
+path.lineTo(-271, 83);
+path.lineTo(-270, 83);
+path.lineTo(-270, 84);
+path.lineTo(-269, 82);
+path.lineTo(-269, 82);
+path.lineTo(-268, 83);
+path.lineTo(-268, 83);
+path.lineTo(-267, 82);
+path.lineTo(-267, 82);
+path.lineTo(-266, 82);
+path.lineTo(-266, 84);
+path.lineTo(-265, 81);
+path.lineTo(-265, 84);
+path.lineTo(-264, 81);
+path.lineTo(-264, 83);
+path.lineTo(-263, 82);
+path.lineTo(-263, 82);
+path.lineTo(-262, 83);
+path.lineTo(-262, 82);
+path.lineTo(-261, 82);
+path.lineTo(-261, 81);
+path.lineTo(-260, 81);
+path.lineTo(-260, 80);
+path.lineTo(-259, 80);
+path.lineTo(-259, 78);
+path.lineTo(-258, 76);
+path.lineTo(-258, 71);
+path.lineTo(-257, 73);
+path.lineTo(-257, 76);
+path.lineTo(-256, 80);
+path.lineTo(-256, 82);
+path.lineTo(-255, 83);
+path.lineTo(-255, 82);
+path.lineTo(-254, 84);
+path.lineTo(-254, 92);
+path.lineTo(-253, 51);
+path.lineTo(-253, 0);
+path.lineTo(-252, 72);
+path.lineTo(-252, 85);
+path.lineTo(-251, 80);
+path.lineTo(-251, 75);
+path.lineTo(-250, 78);
+path.lineTo(-250, 77);
+path.lineTo(-249, 76);
+path.lineTo(-249, 72);
+path.lineTo(-248, 70);
+path.lineTo(-248, 63);
+path.lineTo(-247, 59);
+path.lineTo(-247, 56);
+path.lineTo(-246, 50);
+path.lineTo(-246, 48);
+path.lineTo(-245, 46);
+path.lineTo(-245, 50);
+path.lineTo(-244, 63);
+path.lineTo(-244, 68);
+path.lineTo(-243, 77);
+path.lineTo(-242, 78);
+path.lineTo(-242, 82);
+path.lineTo(-241, 83);
+path.lineTo(-241, 85);
+path.lineTo(-240, 87);
+path.lineTo(-240, 84);
+path.lineTo(-239, 85);
+path.lineTo(-239, 84);
+path.lineTo(-238, 84);
+path.lineTo(-238, 84);
+path.lineTo(-237, 83);
+path.lineTo(-237, 83);
+path.lineTo(-236, 83);
+path.lineTo(-236, 84);
+path.lineTo(-235, 84);
+path.lineTo(-235, 82);
+path.lineTo(-234, 83);
+path.lineTo(-234, 82);
+path.lineTo(-233, 82);
+path.lineTo(-233, 83);
+path.lineTo(-232, 82);
+path.lineTo(-232, 84);
+path.lineTo(-231, 81);
+path.lineTo(-231, 84);
+path.lineTo(-230, 81);
+path.lineTo(-230, 83);
+path.lineTo(-229, 82);
+path.lineTo(-229, 82);
+path.lineTo(-228, 83);
+path.lineTo(-228, 82);
+path.lineTo(-227, 82);
+path.lineTo(-227, 81);
+path.lineTo(-226, 82);
+path.lineTo(-226, 82);
+path.lineTo(-225, 80);
+path.lineTo(-225, 78);
+path.lineTo(-224, 76);
+path.lineTo(-224, 71);
+path.lineTo(-223, 73);
+path.lineTo(-223, 75);
+path.lineTo(-222, 80);
+path.lineTo(-222, 82);
+path.lineTo(-221, 83);
+path.lineTo(-221, 83);
+path.lineTo(-220, 84);
+path.lineTo(-220, 92);
+path.lineTo(-219, 51);
+path.lineTo(-219, 0);
+path.lineTo(-218, 72);
+path.lineTo(-218, 85);
+path.lineTo(-217, 80);
+path.lineTo(-217, 75);
+path.lineTo(-216, 78);
+path.lineTo(-216, 77);
+path.lineTo(-215, 76);
+path.lineTo(-215, 75);
+path.lineTo(-214, 70);
+path.lineTo(-214, 65);
+path.lineTo(-213, 59);
+path.lineTo(-213, 56);
+path.lineTo(-212, 50);
+path.lineTo(-212, 48);
+path.lineTo(-211, 50);
+path.lineTo(-210, 63);
+path.lineTo(-210, 68);
+path.lineTo(-209, 77);
+path.lineTo(-209, 78);
+path.lineTo(-208, 82);
+path.lineTo(-208, 83);
+path.lineTo(-207, 85);
+path.lineTo(-207, 87);
+path.lineTo(-206, 84);
+path.lineTo(-206, 85);
+path.lineTo(-205, 84);
+path.lineTo(-205, 85);
+path.lineTo(-204, 84);
+path.lineTo(-204, 83);
+path.lineTo(-203, 83);
+path.lineTo(-203, 83);
+path.lineTo(-202, 83);
+path.lineTo(-201, 82);
+path.lineTo(-200, 82);
+path.lineTo(-200, 82);
+path.lineTo(-199, 83);
+path.lineTo(-199, 83);
+path.lineTo(-198, 82);
+path.lineTo(-198, 84);
+path.lineTo(-197, 81);
+path.lineTo(-197, 84);
+path.lineTo(-196, 81);
+path.lineTo(-196, 81);
+path.lineTo(-195, 83);
+path.lineTo(-195, 82);
+path.lineTo(-194, 83);
+path.lineTo(-194, 82);
+path.lineTo(-193, 83);
+path.lineTo(-193, 81);
+path.lineTo(-192, 82);
+path.lineTo(-192, 82);
+path.lineTo(-191, 80);
+path.lineTo(-191, 78);
+path.lineTo(-190, 76);
+path.lineTo(-190, 71);
+path.lineTo(-189, 73);
+path.lineTo(-189, 75);
+path.lineTo(-188, 80);
+path.lineTo(-188, 82);
+path.lineTo(-187, 83);
+path.lineTo(-187, 83);
+path.lineTo(-186, 84);
+path.lineTo(-186, 92);
+path.lineTo(-185, 51);
+path.lineTo(-185, 0);
+path.lineTo(-184, 72);
+path.lineTo(-184, 85);
+path.lineTo(-183, 80);
+path.lineTo(-183, 75);
+path.lineTo(-182, 78);
+path.lineTo(-182, 77);
+path.lineTo(-181, 77);
+path.lineTo(-181, 75);
+path.lineTo(-180, 70);
+path.lineTo(-180, 65);
+path.lineTo(-179, 63);
+path.lineTo(-179, 56);
+path.lineTo(-178, 53);
+path.lineTo(-178, 48);
+path.lineTo(-177, 46);
+path.lineTo(-177, 50);
+path.lineTo(-176, 55);
+path.lineTo(-176, 68);
+path.lineTo(-175, 72);
+path.lineTo(-175, 78);
+path.lineTo(-174, 80);
+path.lineTo(-174, 83);
+path.lineTo(-173, 84);
+path.lineTo(-173, 87);
+path.lineTo(-172, 84);
+path.lineTo(-172, 86);
+path.lineTo(-171, 84);
+path.lineTo(-171, 85);
+path.lineTo(-170, 85);
+path.lineTo(-170, 83);
+path.lineTo(-169, 83);
+path.lineTo(-169, 83);
+path.lineTo(-168, 83);
+path.lineTo(-168, 84);
+path.lineTo(-167, 82);
+path.lineTo(-167, 82);
+path.lineTo(-166, 82);
+path.lineTo(-166, 83);
+path.lineTo(-165, 83);
+path.lineTo(-165, 82);
+path.lineTo(-164, 84);
+path.lineTo(-164, 81);
+path.lineTo(-163, 84);
+path.lineTo(-163, 81);
+path.lineTo(-162, 81);
+path.lineTo(-162, 83);
+path.lineTo(-161, 82);
+path.lineTo(-161, 83);
+path.lineTo(-160, 82);
+path.lineTo(-160, 83);
+path.lineTo(-159, 81);
+path.lineTo(-159, 82);
+path.lineTo(-158, 82);
+path.lineTo(-157, 80);
+path.lineTo(-157, 78);
+path.lineTo(-156, 78);
+path.lineTo(-156, 71);
+path.lineTo(-155, 71);
+path.lineTo(-155, 75);
+path.lineTo(-154, 76);
+path.lineTo(-154, 82);
+path.lineTo(-153, 81);
+path.lineTo(-153, 83);
+path.lineTo(-152, 82);
+path.lineTo(-152, 92);
+path.lineTo(-151, 92);
+path.lineTo(-151, 0);
+path.lineTo(-150, 20);
+path.lineTo(-150, 85);
+path.lineTo(-149, 84);
+path.lineTo(-149, 75);
+path.lineTo(-148, 78);
+path.lineTo(-148, 77);
+path.lineTo(-147, 77);
+path.lineTo(-147, 75);
+path.lineTo(-146, 72);
+path.lineTo(-146, 65);
+path.lineTo(-145, 63);
+path.lineTo(-145, 56);
+path.lineTo(-144, 53);
+path.lineTo(-144, 48);
+path.lineTo(-143, 46);
+path.lineTo(-143, 50);
+path.lineTo(-142, 55);
+path.lineTo(-142, 68);
+path.lineTo(-141, 72);
+path.lineTo(-141, 77);
+path.lineTo(-140, 80);
+path.lineTo(-140, 82);
+path.lineTo(-139, 84);
+path.lineTo(-139, 85);
+path.lineTo(-138, 87);
+path.lineTo(-138, 86);
+path.lineTo(-137, 84);
+path.lineTo(-137, 85);
+path.lineTo(-136, 85);
+path.lineTo(-136, 84);
+path.lineTo(-135, 83);
+path.lineTo(-135, 83);
+path.lineTo(-134, 83);
+path.lineTo(-134, 84);
+path.lineTo(-133, 82);
+path.lineTo(-133, 82);
+path.lineTo(-132, 83);
+path.lineTo(-132, 83);
+path.lineTo(-131, 82);
+path.lineTo(-131, 82);
+path.lineTo(-130, 84);
+path.lineTo(-130, 82);
+path.lineTo(-129, 84);
+path.lineTo(-129, 83);
+path.lineTo(-128, 81);
+path.lineTo(-128, 83);
+path.lineTo(-127, 82);
+path.lineTo(-127, 82);
+path.lineTo(-126, 83);
+path.lineTo(-126, 83);
+path.lineTo(-125, 82);
+path.lineTo(-125, 81);
+path.lineTo(-124, 81);
+path.lineTo(-124, 80);
+path.lineTo(-123, 80);
+path.lineTo(-123, 78);
+path.lineTo(-122, 76);
+path.lineTo(-122, 71);
+path.lineTo(-121, 73);
+path.lineTo(-121, 76);
+path.lineTo(-120, 80);
+path.lineTo(-120, 82);
+path.lineTo(-119, 83);
+path.lineTo(-119, 82);
+path.lineTo(-118, 84);
+path.lineTo(-118, 92);
+path.cubicTo(-115.9f, 92, -113.1f, 0, -111, 0);
+path.lineTo(-110, 65);
+path.lineTo(-110, 50);
+path.lineTo(-109, 46);
+path.lineTo(-109, 47);
+path.lineTo(-108, 55);
+path.lineTo(-108, 63);
+path.lineTo(-107, 72);
+path.lineTo(-107, 77);
+path.lineTo(-106, 78);
+path.lineTo(-106, 82);
+path.lineTo(-105, 84);
+path.lineTo(-105, 85);
+path.lineTo(-104, 87);
+path.lineTo(-104, 86);
+path.lineTo(-103, 85);
+path.lineTo(-103, 84);
+path.lineTo(-102, 85);
+path.lineTo(-102, 84);
+path.lineTo(-101, 83);
+path.lineTo(-101, 83);
+path.lineTo(-100, 83);
+path.lineTo(-100, 84);
+path.lineTo(-99, 84);
+path.lineTo(-99, 82);
+path.lineTo(-98, 83);
+path.lineTo(-98, 82);
+path.lineTo(-97, 82);
+path.lineTo(-97, 83);
+path.lineTo(-96, 82);
+path.lineTo(-96, 84);
+path.lineTo(-95, 81);
+path.lineTo(-95, 84);
+path.lineTo(-94, 81);
+path.lineTo(-94, 83);
+path.lineTo(-93, 82);
+path.lineTo(-92, 83);
+path.lineTo(-92, 82);
+path.lineTo(-91, 82);
+path.lineTo(-91, 81);
+path.lineTo(-90, 81);
+path.lineTo(-90, 80);
+path.lineTo(-89, 80);
+path.lineTo(-89, 78);
+path.lineTo(-88, 76);
+path.lineTo(-88, 71);
+path.lineTo(-87, 73);
+path.lineTo(-87, 76);
+path.lineTo(-86, 80);
+path.lineTo(-86, 82);
+path.lineTo(-85, 83);
+path.lineTo(-85, 82);
+path.lineTo(-84, 84);
+path.lineTo(-84, 92);
+path.lineTo(-83, 51);
+path.lineTo(-83, 0);
+path.lineTo(-82, 72);
+path.lineTo(-82, 85);
+path.lineTo(-81, 80);
+path.lineTo(-81, 75);
+path.lineTo(-80, 78);
+path.lineTo(-80, 77);
+path.lineTo(-79, 76);
+path.lineTo(-79, 75);
+path.lineTo(-78, 70);
+path.lineTo(-78, 65);
+path.lineTo(-77, 59);
+path.lineTo(-77, 56);
+path.lineTo(-76, 50);
+path.lineTo(-76, 48);
+path.lineTo(-75, 46);
+path.lineTo(-75, 50);
+path.lineTo(-74, 63);
+path.lineTo(-74, 68);
+path.lineTo(-73, 77);
+path.lineTo(-72, 78);
+path.lineTo(-72, 82);
+path.lineTo(-71, 83);
+path.lineTo(-71, 85);
+path.lineTo(-70, 87);
+path.lineTo(-70, 84);
+path.lineTo(-69, 85);
+path.lineTo(-69, 84);
+path.lineTo(-68, 84);
+path.lineTo(-68, 84);
+path.lineTo(-67, 83);
+path.lineTo(-67, 83);
+path.lineTo(-66, 83);
+path.lineTo(-66, 84);
+path.lineTo(-65, 84);
+path.lineTo(-65, 82);
+path.lineTo(-64, 83);
+path.lineTo(-64, 82);
+path.lineTo(-63, 82);
+path.lineTo(-63, 83);
+path.lineTo(-62, 82);
+path.lineTo(-62, 84);
+path.lineTo(-61, 81);
+path.lineTo(-61, 84);
+path.lineTo(-60, 81);
+path.lineTo(-60, 83);
+path.lineTo(-59, 82);
+path.lineTo(-59, 82);
+path.lineTo(-58, 83);
+path.lineTo(-58, 82);
+path.lineTo(-57, 82);
+path.lineTo(-57, 81);
+path.lineTo(-56, 82);
+path.lineTo(-56, 82);
+path.lineTo(-55, 80);
+path.lineTo(-55, 78);
+path.lineTo(-54, 76);
+path.lineTo(-54, 71);
+path.lineTo(-53, 73);
+path.lineTo(-53, 75);
+path.lineTo(-52, 80);
+path.lineTo(-52, 82);
+path.lineTo(-51, 83);
+path.lineTo(-51, 83);
+path.lineTo(-50, 84);
+path.lineTo(-50, 92);
+path.lineTo(-49, 51);
+path.lineTo(-49, 0);
+path.lineTo(-48, 72);
+path.lineTo(-48, 85);
+path.lineTo(-47, 80);
+path.lineTo(-47, 75);
+path.lineTo(-46, 78);
+path.lineTo(-46, 77);
+path.lineTo(-45, 76);
+path.lineTo(-45, 75);
+path.lineTo(-44, 70);
+path.lineTo(-44, 65);
+path.lineTo(-43, 59);
+path.lineTo(-43, 56);
+path.lineTo(-42, 50);
+path.lineTo(-42, 48);
+path.lineTo(-41, 46);
+path.lineTo(-41, 50);
+path.lineTo(-40, 63);
+path.lineTo(-40, 68);
+path.lineTo(-39, 77);
+path.lineTo(-39, 78);
+path.lineTo(-38, 80);
+path.lineTo(-38, 83);
+path.lineTo(-37, 85);
+path.lineTo(-37, 87);
+path.lineTo(-36, 84);
+path.lineTo(-36, 85);
+path.lineTo(-35, 84);
+path.lineTo(-35, 85);
+path.lineTo(-34, 85);
+path.lineTo(-34, 83);
+path.lineTo(-33, 83);
+path.lineTo(-33, 83);
+path.lineTo(-32, 83);
+path.lineTo(-32, 84);
+path.lineTo(-31, 82);
+path.lineTo(-31, 82);
+path.lineTo(-30, 82);
+path.lineTo(-29, 83);
+path.lineTo(-29, 83);
+path.lineTo(-28, 82);
+path.lineTo(-28, 84);
+path.lineTo(-27, 81);
+path.lineTo(-27, 84);
+path.lineTo(-26, 81);
+path.lineTo(-26, 81);
+path.lineTo(-25, 83);
+path.lineTo(-25, 82);
+path.lineTo(-24, 83);
+path.lineTo(-24, 82);
+path.lineTo(-23, 83);
+path.lineTo(-23, 81);
+path.lineTo(-22, 82);
+path.lineTo(-22, 82);
+path.lineTo(-21, 80);
+path.lineTo(-21, 78);
+path.lineTo(-20, 76);
+path.lineTo(-20, 71);
+path.lineTo(-19, 73);
+path.lineTo(-19, 75);
+path.lineTo(-18, 80);
+path.lineTo(-18, 82);
+path.lineTo(-17, 83);
+path.lineTo(-17, 83);
+path.lineTo(-16, 84);
+path.lineTo(-16, 92);
+path.lineTo(-15, 51);
+path.lineTo(-15, 0);
+path.lineTo(-14, 72);
+path.lineTo(-14, 85);
+path.lineTo(-13, 80);
+path.lineTo(-13, 75);
+path.lineTo(-12, 78);
+path.lineTo(-12, 77);
+path.lineTo(-11, 76);
+path.lineTo(-11, 75);
+path.lineTo(-10, 72);
+path.lineTo(-10, 65);
+path.lineTo(-9, 63);
+path.lineTo(-9, 56);
+path.lineTo(-8, 53);
+path.lineTo(-8, 48);
+path.lineTo(-7, 46);
+path.lineTo(-7, 50);
+path.lineTo(-6, 55);
+path.lineTo(-6, 68);
+path.lineTo(-5, 72);
+path.lineTo(-5, 78);
+path.lineTo(-4, 80);
+path.lineTo(-4, 83);
+path.lineTo(-3, 84);
+path.lineTo(-3, 87);
+path.lineTo(-2, 84);
+path.lineTo(-2, 86);
+path.lineTo(-1, 84);
+path.lineTo(-1, 85);
+path.lineTo(0, 85);
+path.lineTo(0, 83);
+path.lineTo(1, 83);
+path.lineTo(1, 83);
+path.lineTo(2, 83);
+path.lineTo(2, 84);
+path.lineTo(3, 82);
+path.lineTo(3, 82);
+path.lineTo(4, 82);
+path.lineTo(4, 83);
+path.lineTo(5, 83);
+path.lineTo(5, 82);
+path.lineTo(6, 84);
+path.lineTo(6, 82);
+path.lineTo(7, 84);
+path.lineTo(7, 81);
+path.lineTo(8, 81);
+path.lineTo(8, 83);
+path.lineTo(9, 82);
+path.lineTo(9, 82);
+path.lineTo(10, 83);
+path.lineTo(10, 83);
+path.lineTo(11, 81);
+path.lineTo(11, 82);
+path.lineTo(12, 81);
+path.lineTo(12, 80);
+path.lineTo(13, 78);
+path.lineTo(14, 78);
+path.lineTo(14, 71);
+path.lineTo(15, 71);
+path.lineTo(15, 75);
+path.lineTo(16, 76);
+path.lineTo(16, 82);
+path.lineTo(17, 81);
+path.lineTo(17, 83);
+path.lineTo(18, 82);
+path.lineTo(18, 92);
+path.lineTo(19, 92);
+path.lineTo(19, 0);
+path.lineTo(20, 20);
+path.lineTo(20, 85);
+path.lineTo(21, 84);
+path.lineTo(21, 75);
+path.lineTo(22, 78);
+path.lineTo(22, 77);
+path.lineTo(23, 77);
+path.lineTo(23, 75);
+path.lineTo(24, 72);
+path.lineTo(24, 65);
+path.lineTo(25, 63);
+path.lineTo(25, 56);
+path.lineTo(26, 53);
+path.lineTo(26, 48);
+path.lineTo(27, 46);
+path.lineTo(27, 50);
+path.lineTo(28, 55);
+path.lineTo(28, 68);
+path.lineTo(29, 72);
+path.lineTo(29, 77);
+path.lineTo(30, 80);
+path.lineTo(30, 82);
+path.lineTo(31, 84);
+path.lineTo(31, 87);
+path.lineTo(32, 84);
+path.lineTo(32, 86);
+path.lineTo(33, 84);
+path.lineTo(33, 85);
+path.lineTo(34, 85);
+path.lineTo(34, 84);
+path.lineTo(35, 83);
+path.lineTo(35, 83);
+path.lineTo(36, 83);
+path.lineTo(36, 84);
+path.lineTo(37, 82);
+path.lineTo(37, 82);
+path.lineTo(38, 83);
+path.lineTo(38, 83);
+path.lineTo(39, 82);
+path.lineTo(39, 82);
+path.lineTo(40, 84);
+path.lineTo(40, 82);
+path.lineTo(41, 84);
+path.lineTo(41, 83);
+path.lineTo(42, 81);
+path.lineTo(42, 83);
+path.lineTo(43, 82);
+path.lineTo(43, 82);
+path.lineTo(44, 83);
+path.lineTo(44, 83);
+path.lineTo(45, 81);
+path.lineTo(45, 82);
+path.lineTo(46, 81);
+path.lineTo(46, 80);
+path.lineTo(47, 78);
+path.lineTo(47, 78);
+path.lineTo(48, 71);
+path.lineTo(48, 71);
+path.lineTo(49, 75);
+path.lineTo(49, 76);
+path.lineTo(50, 80);
+path.lineTo(50, 82);
+path.lineTo(51, 83);
+path.lineTo(51, 82);
+path.lineTo(52, 92);
+path.lineTo(52, 92);
+path.lineTo(53, 51);
+path.lineTo(53, 0);
+path.lineTo(54, 72);
+path.lineTo(54, 85);
+path.lineTo(55, 80);
+path.lineTo(56, 75);
+path.lineTo(56, 78);
+path.lineTo(57, 77);
+path.lineTo(57, 76);
+path.lineTo(58, 72);
+path.lineTo(58, 70);
+path.lineTo(59, 63);
+path.lineTo(59, 59);
+path.lineTo(60, 53);
+path.lineTo(60, 50);
+path.lineTo(61, 46);
+path.lineTo(61, 47);
+path.lineTo(62, 55);
+path.lineTo(62, 63);
+path.lineTo(63, 72);
+path.lineTo(63, 77);
+path.lineTo(64, 80);
+path.lineTo(64, 82);
+path.lineTo(65, 84);
+path.lineTo(65, 85);
+path.lineTo(66, 87);
+path.lineTo(66, 86);
+path.lineTo(67, 84);
+path.lineTo(67, 85);
+path.lineTo(68, 85);
+path.lineTo(68, 84);
+path.lineTo(69, 83);
+path.lineTo(69, 83);
+path.lineTo(70, 83);
+path.lineTo(70, 84);
+path.lineTo(71, 82);
+path.lineTo(71, 82);
+path.lineTo(72, 83);
+path.lineTo(72, 82);
+path.lineTo(73, 83);
+path.lineTo(73, 82);
+path.lineTo(74, 84);
+path.lineTo(74, 82);
+path.lineTo(75, 81);
+path.lineTo(75, 84);
+path.lineTo(76, 81);
+path.lineTo(76, 83);
+path.lineTo(77, 82);
+path.lineTo(77, 82);
+path.lineTo(78, 83);
+path.lineTo(78, 82);
+path.lineTo(79, 82);
+path.lineTo(79, 81);
+path.lineTo(80, 81);
+path.lineTo(80, 80);
+path.lineTo(81, 80);
+path.lineTo(81, 78);
+path.lineTo(82, 76);
+path.lineTo(82, 71);
+path.lineTo(83, 73);
+path.lineTo(83, 76);
+path.lineTo(84, 80);
+path.lineTo(84, 82);
+path.lineTo(85, 83);
+path.lineTo(85, 82);
+path.lineTo(86, 84);
+path.lineTo(86, 92);
+path.lineTo(87, 51);
+path.lineTo(87, 0);
+path.lineTo(88, 72);
+path.lineTo(88, 85);
+path.lineTo(89, 80);
+path.lineTo(89, 75);
+path.lineTo(90, 78);
+path.lineTo(90, 77);
+path.lineTo(91, 76);
+path.lineTo(91, 72);
+path.lineTo(92, 70);
+path.lineTo(93, 53);
+path.lineTo(94, 50);
+path.lineTo(94, 46);
+path.lineTo(95, 47);
+path.lineTo(95, 55);
+path.lineTo(96, 63);
+path.lineTo(96, 72);
+path.lineTo(97, 77);
+path.lineTo(97, 80);
+path.lineTo(98, 82);
+path.lineTo(99, 84);
+path.lineTo(99, 85);
+path.lineTo(100, 87);
+path.lineTo(100, 86);
+path.lineTo(101, 84);
+path.lineTo(101, 85);
+path.lineTo(102, 85);
+path.lineTo(102, 84);
+path.lineTo(103, 83);
+path.lineTo(103, 83);
+path.lineTo(104, 83);
+path.lineTo(104, 84);
+path.lineTo(105, 84);
+path.lineTo(105, 82);
+path.lineTo(106, 83);
+path.lineTo(106, 82);
+path.lineTo(107, 82);
+path.lineTo(107, 83);
+path.lineTo(108, 82);
+path.lineTo(108, 84);
+path.lineTo(109, 81);
+path.lineTo(109, 84);
+path.lineTo(110, 81);
+path.lineTo(110, 83);
+path.lineTo(111, 82);
+path.lineTo(111, 82);
+path.lineTo(112, 83);
+path.lineTo(112, 82);
+path.lineTo(113, 82);
+path.lineTo(113, 81);
+path.lineTo(114, 81);
+path.lineTo(114, 80);
+path.lineTo(115, 80);
+path.lineTo(115, 78);
+path.lineTo(116, 76);
+path.lineTo(116, 71);
+path.lineTo(117, 73);
+path.lineTo(117, 76);
+path.lineTo(118, 80);
+path.lineTo(118, 82);
+path.lineTo(119, 83);
+path.lineTo(119, 82);
+path.lineTo(120, 84);
+path.lineTo(120, 92);
+path.lineTo(121, 51);
+path.lineTo(121, 0);
+path.lineTo(122, 72);
+path.lineTo(122, 85);
+path.lineTo(123, 80);
+path.lineTo(123, 75);
+path.lineTo(124, 78);
+path.lineTo(124, 77);
+path.lineTo(125, 76);
+path.lineTo(125, 75);
+path.lineTo(126, 70);
+path.lineTo(126, 65);
+path.lineTo(127, 59);
+path.lineTo(127, 56);
+path.lineTo(128, 50);
+path.lineTo(128, 48);
+path.lineTo(129, 46);
+path.lineTo(129, 50);
+path.lineTo(130, 63);
+path.lineTo(130, 68);
+path.lineTo(131, 77);
+path.lineTo(131, 78);
+path.lineTo(132, 82);
+path.lineTo(132, 83);
+path.lineTo(133, 85);
+path.lineTo(133, 87);
+path.lineTo(134, 84);
+path.lineTo(134, 85);
+path.lineTo(135, 84);
+path.lineTo(135, 84);
+path.lineTo(136, 84);
+path.lineTo(136, 83);
+path.lineTo(137, 83);
+path.lineTo(137, 83);
+path.lineTo(138, 84);
+path.lineTo(138, 84);
+path.lineTo(139, 82);
+path.lineTo(139, 83);
+path.lineTo(140, 82);
+path.lineTo(140, 82);
+path.lineTo(141, 83);
+path.lineTo(141, 82);
+path.lineTo(142, 84);
+path.lineTo(143, 81);
+path.lineTo(143, 84);
+path.lineTo(144, 81);
+path.lineTo(144, 83);
+path.lineTo(145, 82);
+path.lineTo(145, 82);
+path.lineTo(146, 83);
+path.lineTo(146, 82);
+path.lineTo(147, 82);
+path.lineTo(147, 81);
+path.lineTo(148, 82);
+path.lineTo(148, 80);
+path.lineTo(149, 80);
+path.lineTo(149, 78);
+path.lineTo(150, 76);
+path.lineTo(150, 71);
+path.lineTo(151, 73);
+path.lineTo(151, 75);
+path.lineTo(152, 80);
+path.lineTo(152, 82);
+path.lineTo(153, 83);
+path.lineTo(153, 83);
+path.lineTo(154, 84);
+path.lineTo(154, 92);
+path.lineTo(155, 51);
+path.lineTo(155, 0);
+path.lineTo(156, 72);
+path.lineTo(156, 85);
+path.lineTo(157, 80);
+path.lineTo(157, 75);
+path.lineTo(158, 78);
+path.lineTo(158, 77);
+path.lineTo(159, 76);
+path.lineTo(159, 75);
+path.lineTo(160, 70);
+path.lineTo(160, 65);
+path.lineTo(161, 59);
+path.lineTo(161, 56);
+path.lineTo(162, 50);
+path.lineTo(162, 48);
+path.lineTo(163, 46);
+path.lineTo(163, 50);
+path.lineTo(164, 63);
+path.lineTo(164, 68);
+path.lineTo(165, 77);
+path.lineTo(165, 78);
+path.lineTo(166, 82);
+path.lineTo(166, 83);
+path.lineTo(167, 85);
+path.lineTo(167, 87);
+path.lineTo(168, 84);
+path.lineTo(168, 85);
+path.lineTo(169, 84);
+path.lineTo(169, 84);
+path.lineTo(170, 84);
+path.lineTo(170, 83);
+path.lineTo(171, 83);
+path.lineTo(171, 83);
+path.lineTo(172, 84);
+path.lineTo(172, 84);
+path.lineTo(173, 82);
+path.lineTo(173, 82);
+path.lineTo(174, 82);
+path.lineTo(174, 83);
+path.lineTo(175, 83);
+path.lineTo(175, 82);
+path.lineTo(176, 84);
+path.lineTo(176, 81);
+path.lineTo(177, 84);
+path.lineTo(177, 81);
+path.lineTo(178, 81);
+path.lineTo(178, 83);
+path.lineTo(179, 82);
+path.lineTo(179, 83);
+path.lineTo(180, 82);
+path.lineTo(180, 83);
+path.lineTo(181, 81);
+path.lineTo(181, 82);
+path.lineTo(182, 82);
+path.lineTo(182, 80);
+path.lineTo(183, 78);
+path.lineTo(183, 76);
+path.lineTo(184, 71);
+path.lineTo(184, 73);
+path.lineTo(185, 75);
+path.lineTo(186, 80);
+path.lineTo(186, 82);
+path.lineTo(187, 83);
+path.lineTo(187, 83);
+path.lineTo(188, 84);
+path.lineTo(188, 92);
+path.lineTo(189, 51);
+path.lineTo(189, 0);
+path.lineTo(190, 72);
+path.lineTo(190, 85);
+path.lineTo(191, 80);
+path.lineTo(191, 75);
+path.lineTo(192, 78);
+path.lineTo(192, 77);
+path.lineTo(193, 76);
+path.lineTo(193, 75);
+path.lineTo(194, 70);
+path.lineTo(194, 65);
+path.lineTo(195, 59);
+path.lineTo(195, 56);
+path.lineTo(196, 53);
+path.lineTo(196, 48);
+path.lineTo(197, 46);
+path.lineTo(197, 50);
+path.lineTo(198, 55);
+path.lineTo(198, 68);
+path.lineTo(199, 72);
+path.lineTo(199, 78);
+path.lineTo(200, 80);
+path.lineTo(200, 83);
+path.lineTo(201, 84);
+path.lineTo(201, 87);
+path.lineTo(202, 84);
+path.lineTo(202, 86);
+path.lineTo(203, 84);
+path.lineTo(203, 85);
+path.lineTo(204, 85);
+path.lineTo(204, 83);
+path.lineTo(205, 83);
+path.lineTo(205, 83);
+path.lineTo(206, 83);
+path.lineTo(206, 84);
+path.lineTo(207, 82);
+path.lineTo(207, 82);
+path.lineTo(208, 82);
+path.lineTo(208, 83);
+path.lineTo(209, 83);
+path.lineTo(209, 82);
+path.lineTo(210, 84);
+path.lineTo(210, 81);
+path.lineTo(211, 84);
+path.lineTo(211, 81);
+path.lineTo(212, 81);
+path.lineTo(212, 83);
+path.lineTo(213, 82);
+path.lineTo(213, 83);
+path.lineTo(214, 82);
+path.lineTo(214, 83);
+path.lineTo(215, 81);
+path.lineTo(215, 82);
+path.lineTo(216, 81);
+path.lineTo(216, 80);
+path.lineTo(217, 78);
+path.lineTo(217, 78);
+path.lineTo(218, 71);
+path.lineTo(218, 71);
+path.lineTo(219, 75);
+path.lineTo(219, 76);
+path.lineTo(220, 82);
+path.lineTo(220, 81);
+path.lineTo(221, 83);
+path.lineTo(221, 82);
+path.lineTo(222, 92);
+path.lineTo(222, 92);
+path.lineTo(223, 0);
+path.lineTo(223, 20);
+path.lineTo(224, 85);
+path.lineTo(224, 84);
+path.lineTo(225, 75);
+path.lineTo(225, 78);
+path.lineTo(226, 77);
+path.lineTo(226, 77);
+path.lineTo(227, 75);
+path.lineTo(227, 72);
+path.lineTo(228, 65);
+path.lineTo(228, 63);
+path.lineTo(229, 56);
+path.lineTo(230, 53);
+path.lineTo(230, 48);
+path.lineTo(231, 46);
+path.lineTo(231, 50);
+path.lineTo(232, 55);
+path.lineTo(232, 68);
+path.lineTo(233, 72);
+path.lineTo(233, 78);
+path.lineTo(234, 80);
+path.lineTo(234, 83);
+path.lineTo(235, 84);
+path.lineTo(235, 87);
+path.lineTo(236, 84);
+path.lineTo(236, 86);
+path.lineTo(237, 84);
+path.lineTo(237, 85);
+path.lineTo(238, 85);
+path.lineTo(238, 83);
+path.lineTo(239, 83);
+path.lineTo(239, 83);
+path.lineTo(240, 83);
+path.lineTo(240, 84);
+path.lineTo(241, 82);
+path.lineTo(241, 82);
+path.lineTo(242, 83);
+path.lineTo(242, 83);
+path.lineTo(243, 82);
+path.lineTo(243, 82);
+path.lineTo(244, 82);
+path.lineTo(244, 84);
+path.lineTo(245, 81);
+path.lineTo(245, 83);
+path.lineTo(246, 81);
+path.lineTo(246, 83);
+path.lineTo(247, 82);
+path.lineTo(247, 82);
+path.lineTo(248, 83);
+path.lineTo(248, 83);
+path.lineTo(249, 81);
+path.lineTo(249, 82);
+path.lineTo(250, 81);
+path.lineTo(250, 80);
+path.lineTo(251, 78);
+path.lineTo(251, 78);
+path.lineTo(252, 71);
+path.lineTo(252, 71);
+path.lineTo(253, 75);
+path.lineTo(253, 76);
+path.lineTo(254, 82);
+path.lineTo(254, 81);
+path.lineTo(255, 83);
+path.lineTo(255, 82);
+path.lineTo(256, 92);
+path.lineTo(256, 92);
+path.lineTo(257, 0);
+path.lineTo(257, 20);
+path.lineTo(258, 85);
+path.lineTo(258, 84);
+path.lineTo(259, 75);
+path.lineTo(259, 78);
+path.lineTo(260, 78);
+path.lineTo(260, 77);
+path.lineTo(261, 76);
+path.lineTo(261, 72);
+path.lineTo(262, 65);
+path.lineTo(262, 63);
+path.lineTo(263, 59);
+path.lineTo(263, 53);
+path.lineTo(264, 50);
+path.lineTo(264, 46);
+path.lineTo(265, 50);
+path.lineTo(265, 55);
+path.lineTo(266, 63);
+path.lineTo(266, 72);
+path.lineTo(267, 77);
+path.lineTo(267, 80);
+path.lineTo(268, 82);
+path.lineTo(268, 84);
+path.lineTo(269, 85);
+path.lineTo(269, 87);
+path.lineTo(270, 86);
+path.lineTo(270, 84);
+path.lineTo(271, 85);
+path.lineTo(271, 85);
+path.lineTo(272, 84);
+path.lineTo(273, 83);
+path.lineTo(273, 83);
+path.lineTo(274, 83);
+path.lineTo(274, 84);
+path.lineTo(275, 82);
+path.lineTo(275, 82);
+path.lineTo(276, 83);
+path.lineTo(276, 83);
+path.lineTo(277, 82);
+path.lineTo(277, 82);
+path.lineTo(278, 82);
+path.lineTo(278, 84);
+path.lineTo(279, 81);
+path.lineTo(279, 83);
+path.lineTo(280, 81);
+path.lineTo(280, 83);
+path.lineTo(281, 82);
+path.lineTo(281, 82);
+path.lineTo(282, 83);
+path.lineTo(282, 82);
+path.lineTo(283, 82);
+path.lineTo(283, 81);
+path.lineTo(284, 81);
+path.lineTo(284, 80);
+path.lineTo(285, 80);
+path.lineTo(285, 78);
+path.lineTo(286, 76);
+path.lineTo(286, 71);
+path.lineTo(287, 73);
+path.lineTo(287, 76);
+path.lineTo(288, 80);
+path.lineTo(288, 82);
+path.lineTo(289, 83);
+path.lineTo(289, 82);
+path.lineTo(290, 84);
+path.lineTo(290, 92);
+path.lineTo(291, 51);
+path.lineTo(291, 0);
+path.lineTo(292, 72);
+path.lineTo(292, 85);
+path.lineTo(293, 80);
+path.lineTo(293, 75);
+path.lineTo(294, 78);
+path.lineTo(294, 77);
+path.lineTo(295, 76);
+path.lineTo(295, 72);
+path.lineTo(296, 70);
+path.lineTo(296, 63);
+path.lineTo(297, 59);
+path.lineTo(297, 53);
+path.lineTo(298, 50);
+path.lineTo(298, 46);
+path.lineTo(299, 47);
+path.lineTo(299, 55);
+path.lineTo(300, 63);
+path.lineTo(300, 68);
+path.lineTo(301, 77);
+path.lineTo(301, 78);
+path.lineTo(302, 82);
+path.lineTo(302, 84);
+path.lineTo(303, 85);
+path.lineTo(303, 87);
+path.lineTo(304, 84);
+path.lineTo(304, 85);
+path.lineTo(305, 84);
+path.lineTo(305, 84);
+path.lineTo(306, 84);
+path.lineTo(306, 83);
+path.lineTo(307, 83);
+path.lineTo(307, 83);
+path.lineTo(308, 84);
+path.lineTo(308, 84);
+path.lineTo(309, 82);
+path.lineTo(309, 83);
+path.lineTo(310, 82);
+path.lineTo(310, 82);
+path.lineTo(311, 83);
+path.lineTo(311, 82);
+path.lineTo(312, 84);
+path.lineTo(312, 81);
+path.lineTo(313, 84);
+path.lineTo(313, 81);
+path.lineTo(314, 83);
+path.lineTo(314, 82);
+path.lineTo(315, 82);
+path.lineTo(316, 83);
+path.lineTo(316, 82);
+path.lineTo(317, 82);
+path.lineTo(317, 81);
+path.lineTo(318, 81);
+path.lineTo(318, 80);
+path.lineTo(319, 80);
+path.lineTo(319, 78);
+path.lineTo(320, 76);
+path.lineTo(321, 71);
+path.lineTo(321, 76);
+path.lineTo(322, 80);
+path.lineTo(322, 82);
+path.lineTo(323, 83);
+path.lineTo(323, 82);
+path.lineTo(324, 84);
+path.lineTo(324, 92);
+path.lineTo(325, 51);
+path.lineTo(325, 0);
+path.lineTo(326, 72);
+path.lineTo(326, 85);
+path.lineTo(327, 80);
+path.lineTo(327, 75);
+path.lineTo(328, 78);
+path.lineTo(328, 77);
+path.lineTo(329, 76);
+path.lineTo(329, 75);
+path.lineTo(330, 70);
+path.lineTo(330, 65);
+path.lineTo(331, 59);
+path.lineTo(331, 56);
+path.lineTo(332, 50);
+path.lineTo(332, 48);
+path.lineTo(333, 46);
+path.lineTo(333, 50);
+path.lineTo(334, 63);
+path.lineTo(334, 68);
+path.lineTo(335, 77);
+path.lineTo(335, 78);
+path.lineTo(336, 82);
+path.lineTo(336, 83);
+path.lineTo(337, 85);
+path.lineTo(337, 87);
+path.lineTo(338, 84);
+path.lineTo(338, 85);
+path.lineTo(339, 84);
+path.lineTo(339, 84);
+path.lineTo(340, 84);
+path.lineTo(340, 83);
+path.lineTo(341, 83);
+path.lineTo(341, 83);
+path.lineTo(342, 84);
+path.lineTo(342, 84);
+path.lineTo(343, 82);
+path.lineTo(343, 83);
+path.lineTo(344, 82);
+path.lineTo(344, 82);
+path.lineTo(345, 83);
+path.lineTo(345, 82);
+path.lineTo(346, 84);
+path.lineTo(346, 81);
+path.lineTo(347, 84);
+path.lineTo(347, 81);
+path.lineTo(348, 81);
+path.lineTo(348, 83);
+path.lineTo(349, 82);
+path.lineTo(349, 83);
+path.lineTo(350, 82);
+path.lineTo(350, 83);
+path.lineTo(351, 81);
+path.lineTo(351, 82);
+path.lineTo(352, 82);
+path.lineTo(352, 80);
+path.lineTo(353, 78);
+path.lineTo(353, 76);
+path.lineTo(354, 71);
+path.lineTo(354, 73);
+path.lineTo(355, 75);
+path.lineTo(355, 80);
+path.lineTo(356, 82);
+path.lineTo(356, 83);
+path.lineTo(357, 83);
+path.lineTo(357, 84);
+path.lineTo(358, 92);
+path.lineTo(359, 51);
+path.lineTo(359, 0);
+path.lineTo(360, 72);
+path.lineTo(360, 85);
+path.lineTo(361, 80);
+path.lineTo(361, 75);
+path.lineTo(362, 78);
+path.lineTo(362, 77);
+path.lineTo(363, 76);
+path.lineTo(363, 75);
+path.lineTo(364, 70);
+path.lineTo(364, 65);
+path.lineTo(365, 59);
+path.lineTo(365, 56);
+path.lineTo(366, 50);
+path.lineTo(366, 48);
+path.lineTo(367, 46);
+path.lineTo(367, 50);
+path.lineTo(368, 63);
+path.lineTo(368, 68);
+path.lineTo(369, 72);
+path.lineTo(369, 78);
+path.lineTo(370, 80);
+path.lineTo(370, 83);
+path.lineTo(371, 84);
+path.lineTo(371, 87);
+path.lineTo(372, 84);
+path.lineTo(372, 86);
+path.lineTo(373, 84);
+path.lineTo(373, 85);
+path.lineTo(374, 85);
+path.lineTo(374, 83);
+path.lineTo(375, 83);
+path.lineTo(375, 83);
+path.lineTo(376, 83);
+path.lineTo(376, 84);
+path.lineTo(377, 82);
+path.lineTo(377, 82);
+path.lineTo(378, 82);
+path.lineTo(378, 83);
+path.lineTo(379, 83);
+path.lineTo(379, 82);
+path.lineTo(380, 84);
+path.lineTo(380, 81);
+path.lineTo(381, 84);
+path.lineTo(381, 81);
+path.lineTo(382, 81);
+path.lineTo(382, 83);
+path.lineTo(383, 82);
+path.lineTo(383, 83);
+path.lineTo(384, 82);
+path.lineTo(384, 83);
+path.lineTo(385, 81);
+path.lineTo(385, 82);
+path.lineTo(386, 82);
+path.lineTo(386, 80);
+path.lineTo(387, 78);
+path.lineTo(387, 76);
+path.lineTo(388, 71);
+path.lineTo(388, 73);
+path.lineTo(389, 75);
+path.lineTo(389, 76);
+path.lineTo(390, 82);
+path.lineTo(390, 81);
+path.lineTo(391, 83);
+path.lineTo(391, 82);
+path.lineTo(392, 92);
+path.lineTo(392, 92);
+path.lineTo(393, 0);
+path.lineTo(393, 20);
+path.lineTo(394, 85);
+path.lineTo(394, 84);
+path.lineTo(395, 75);
+path.lineTo(395, 78);
+path.lineTo(396, 77);
+path.lineTo(396, 77);
+path.lineTo(397, 76);
+path.lineTo(398, 70);
+path.lineTo(398, 63);
+path.lineTo(399, 56);
+path.lineTo(399, 53);
+path.lineTo(400, 48);
+path.lineTo(401, 46);
+path.lineTo(401, 50);
+path.lineTo(402, 55);
+path.lineTo(402, 68);
+path.lineTo(403, 72);
+path.lineTo(403, 78);
+path.lineTo(404, 80);
+path.lineTo(404, 83);
+path.lineTo(405, 84);
+path.lineTo(405, 87);
+path.lineTo(406, 84);
+path.lineTo(406, 86);
+path.lineTo(407, 84);
+path.lineTo(407, 85);
+path.lineTo(408, 85);
+path.lineTo(408, 83);
+path.lineTo(409, 83);
+path.lineTo(409, 83);
+path.lineTo(410, 83);
+path.lineTo(410, 84);
+path.lineTo(411, 82);
+path.lineTo(411, 82);
+path.lineTo(412, 83);
+path.lineTo(412, 82);
+path.lineTo(413, 83);
+path.lineTo(413, 82);
+path.lineTo(414, 84);
+path.lineTo(414, 82);
+path.lineTo(415, 84);
+path.lineTo(415, 81);
+path.lineTo(416, 81);
+path.lineTo(416, 83);
+path.lineTo(417, 82);
+path.lineTo(417, 82);
+path.lineTo(418, 83);
+path.lineTo(418, 83);
+path.lineTo(419, 81);
+path.lineTo(419, 82);
+path.lineTo(420, 81);
+path.lineTo(420, 80);
+path.lineTo(421, 78);
+path.lineTo(421, 78);
+path.lineTo(422, 71);
+path.lineTo(422, 71);
+path.lineTo(423, 75);
+path.lineTo(423, 76);
+path.lineTo(424, 82);
+path.lineTo(424, 81);
+path.lineTo(425, 83);
+path.lineTo(425, 82);
+path.lineTo(426, 92);
+path.lineTo(426, 92);
+path.lineTo(427, 0);
+path.lineTo(427, 20);
+path.lineTo(428, 85);
+path.lineTo(428, 84);
+path.lineTo(429, 75);
+path.lineTo(429, 78);
+path.lineTo(430, 77);
+path.lineTo(430, 77);
+path.lineTo(431, 75);
+path.lineTo(431, 72);
+path.lineTo(432, 65);
+path.lineTo(432, 63);
+path.lineTo(433, 56);
+path.lineTo(433, 53);
+path.lineTo(434, 48);
+path.lineTo(434, 46);
+path.lineTo(435, 50);
+path.lineTo(435, 55);
+path.lineTo(436, 68);
+path.lineTo(436, 72);
+path.lineTo(437, 78);
+path.lineTo(437, 80);
+path.lineTo(438, 82);
+path.lineTo(438, 84);
+path.lineTo(439, 85);
+path.lineTo(439, 87);
+path.lineTo(440, 85);
+path.lineTo(440, 84);
+path.lineTo(441, 85);
+path.lineTo(441, 85);
+path.lineTo(442, 84);
+path.lineTo(442, 83);
+path.lineTo(443, 83);
+path.lineTo(444, 83);
+path.lineTo(444, 84);
+path.lineTo(445, 82);
+path.lineTo(445, 82);
+path.lineTo(446, 83);
+path.lineTo(446, 83);
+path.lineTo(447, 82);
+path.lineTo(447, 82);
+path.lineTo(448, 84);
+path.lineTo(448, 82);
+path.lineTo(449, 84);
+path.lineTo(449, 83);
+path.lineTo(450, 81);
+path.lineTo(450, 83);
+path.lineTo(451, 82);
+path.lineTo(451, 82);
+path.lineTo(452, 83);
+path.lineTo(452, 83);
+path.lineTo(453, 81);
+path.lineTo(453, 82);
+path.lineTo(454, 81);
+path.lineTo(454, 80);
+path.lineTo(455, 78);
+path.lineTo(455, 78);
+path.lineTo(456, 76);
+path.lineTo(456, 71);
+path.lineTo(457, 75);
+path.lineTo(457, 76);
+path.lineTo(458, 80);
+path.lineTo(458, 82);
+path.lineTo(459, 83);
+path.lineTo(459, 82);
+path.lineTo(460, 84);
+path.lineTo(460, 92);
+path.lineTo(461, 51);
+path.lineTo(461, 0);
+path.lineTo(462, 72);
+path.lineTo(462, 85);
+path.lineTo(463, 80);
+path.lineTo(463, 75);
+path.cubicTo(463.6f, 75, 464.4f, 78, 465, 78);
+path.lineTo(465, 72);
+path.lineTo(466, 70);
+path.lineTo(466, 63);
+path.lineTo(467, 59);
+path.lineTo(467, 53);
+path.lineTo(468, 50);
+path.lineTo(468, 46);
+path.lineTo(469, 47);
+path.lineTo(469, 55);
+path.lineTo(470, 63);
+path.lineTo(470, 72);
+path.lineTo(471, 77);
+path.lineTo(471, 80);
+path.lineTo(472, 82);
+path.lineTo(472, 84);
+path.lineTo(473, 85);
+path.lineTo(473, 87);
+path.lineTo(474, 86);
+path.lineTo(474, 84);
+path.lineTo(475, 85);
+path.lineTo(475, 85);
+path.lineTo(476, 84);
+path.lineTo(476, 83);
+path.lineTo(477, 83);
+path.lineTo(477, 83);
+path.lineTo(478, 84);
+path.lineTo(478, 82);
+path.lineTo(479, 82);
+path.lineTo(479, 83);
+path.lineTo(480, 82);
+path.lineTo(480, 83);
+path.lineTo(481, 82);
+path.lineTo(481, 82);
+path.lineTo(482, 84);
+path.lineTo(482, 81);
+path.lineTo(483, 84);
+path.lineTo(483, 81);
+path.lineTo(484, 83);
+path.lineTo(484, 82);
+path.lineTo(485, 82);
+path.lineTo(485, 83);
+path.lineTo(486, 82);
+path.lineTo(487, 82);
+path.lineTo(487, 81);
+path.lineTo(488, 81);
+path.lineTo(488, 80);
+path.lineTo(489, 80);
+path.lineTo(489, 78);
+path.lineTo(490, 76);
+path.lineTo(490, 71);
+path.lineTo(491, 73);
+path.lineTo(491, 76);
+path.lineTo(492, 80);
+path.lineTo(492, 82);
+path.lineTo(493, 83);
+path.lineTo(493, 82);
+path.lineTo(494, 84);
+path.lineTo(494, 92);
+path.lineTo(495, 51);
+path.lineTo(495, 0);
+path.lineTo(496, 72);
+path.lineTo(496, 85);
+path.lineTo(497, 80);
+path.lineTo(497, 75);
+path.lineTo(498, 78);
+path.lineTo(498, 77);
+path.lineTo(499, 76);
+path.lineTo(499, 72);
+path.lineTo(500, 70);
+path.lineTo(500, 65);
+path.lineTo(501, 59);
+path.lineTo(501, 53);
+path.lineTo(502, 50);
+path.lineTo(502, 48);
+path.lineTo(503, 46);
+path.lineTo(503, 50);
+path.lineTo(504, 63);
+path.lineTo(504, 72);
+path.lineTo(505, 77);
+path.lineTo(505, 78);
+path.lineTo(506, 82);
+path.lineTo(506, 83);
+path.lineTo(507, 85);
+path.lineTo(507, 87);
+path.lineTo(508, 84);
+path.lineTo(508, 85);
+path.lineTo(509, 84);
+path.lineTo(509, 84);
+path.lineTo(510, 84);
+path.lineTo(510, 83);
+path.lineTo(511, 83);
+path.lineTo(511, 83);
+path.lineTo(512, 84);
+path.lineTo(512, 84);
+path.lineTo(513, 82);
+path.lineTo(513, 83);
+path.lineTo(514, 82);
+path.lineTo(514, 82);
+path.lineTo(515, 83);
+path.lineTo(515, 82);
+path.lineTo(516, 84);
+path.lineTo(516, 81);
+path.lineTo(517, 84);
+path.lineTo(517, 81);
+path.lineTo(518, 83);
+path.lineTo(518, 82);
+path.lineTo(519, 82);
+path.lineTo(519, 83);
+path.lineTo(520, 82);
+path.lineTo(520, 83);
+path.lineTo(521, 81);
+path.lineTo(521, 81);
+path.lineTo(522, 82);
+path.lineTo(522, 80);
+path.lineTo(523, 78);
+path.lineTo(523, 76);
+path.lineTo(524, 71);
+path.lineTo(524, 73);
+path.lineTo(525, 75);
+path.lineTo(525, 80);
+path.lineTo(526, 82);
+path.lineTo(526, 83);
+path.lineTo(527, 83);
+path.lineTo(527, 84);
+path.lineTo(528, 92);
+path.lineTo(529, 51);
+path.lineTo(529, 0);
+path.lineTo(530, 72);
+path.lineTo(530, 85);
+path.lineTo(531, 80);
+path.lineTo(531, 75);
+path.lineTo(532, 78);
+path.lineTo(532, 77);
+path.lineTo(533, 76);
+path.lineTo(533, 75);
+path.lineTo(534, 70);
+path.lineTo(534, 65);
+path.lineTo(535, 59);
+path.lineTo(535, 56);
+path.lineTo(536, 50);
+path.lineTo(536, 48);
+path.lineTo(537, 46);
+path.lineTo(537, 50);
+path.lineTo(538, 63);
+path.lineTo(538, 68);
+path.lineTo(539, 77);
+path.lineTo(539, 78);
+path.lineTo(540, 80);
+path.lineTo(540, 83);
+path.lineTo(541, 84);
+path.lineTo(541, 87);
+path.lineTo(542, 84);
+path.lineTo(542, 85);
+path.lineTo(543, 84);
+path.lineTo(543, 85);
+path.lineTo(544, 85);
+path.lineTo(544, 83);
+path.lineTo(545, 83);
+path.lineTo(545, 83);
+path.lineTo(546, 83);
+path.lineTo(546, 84);
+path.lineTo(547, 82);
+path.lineTo(547, 82);
+path.lineTo(548, 82);
+path.lineTo(548, 83);
+path.lineTo(549, 83);
+path.lineTo(549, 82);
+path.lineTo(550, 84);
+path.lineTo(550, 82);
+path.lineTo(551, 84);
+path.lineTo(551, 81);
+path.lineTo(552, 81);
+path.lineTo(552, 83);
+path.lineTo(553, 82);
+path.lineTo(553, 83);
+path.lineTo(554, 82);
+path.lineTo(554, 83);
+path.lineTo(555, 81);
+path.lineTo(555, 82);
+path.lineTo(556, 82);
+path.lineTo(556, 80);
+path.lineTo(557, 78);
+path.lineTo(557, 76);
+path.lineTo(558, 71);
+path.lineTo(558, 73);
+path.lineTo(559, 75);
+path.lineTo(559, 80);
+path.lineTo(560, 82);
+path.lineTo(560, 83);
+path.lineTo(561, 83);
+path.lineTo(561, 82);
+path.lineTo(562, 92);
+path.lineTo(562, 51);
+path.lineTo(563, 0);
+path.lineTo(563, 20);
+path.lineTo(564, 85);
+path.lineTo(564, 84);
+path.lineTo(565, 75);
+path.lineTo(565, 78);
+path.lineTo(566, 77);
+path.lineTo(566, 77);
+path.lineTo(567, 75);
+path.lineTo(567, 72);
+path.lineTo(568, 65);
+path.lineTo(568, 63);
+path.lineTo(569, 56);
+path.lineTo(569, 53);
+path.lineTo(570, 48);
+path.lineTo(570, 46);
+path.lineTo(571, 50);
+path.lineTo(572, 55);
+path.lineTo(572, 68);
+path.lineTo(573, 72);
+path.lineTo(573, 78);
+path.lineTo(574, 80);
+path.lineTo(574, 83);
+path.lineTo(575, 84);
+path.lineTo(575, 87);
+path.lineTo(576, 84);
+path.lineTo(576, 86);
+path.lineTo(577, 84);
+path.lineTo(577, 85);
+path.lineTo(578, 85);
+path.lineTo(578, 83);
+path.lineTo(579, 83);
+path.lineTo(579, 83);
+path.lineTo(580, 83);
+path.lineTo(580, 84);
+path.lineTo(581, 82);
+path.lineTo(581, 82);
+path.lineTo(582, 82);
+path.lineTo(582, 83);
+path.lineTo(583, 83);
+path.lineTo(583, 82);
+path.lineTo(584, 84);
+path.lineTo(584, 81);
+path.lineTo(585, 84);
+path.lineTo(585, 83);
+path.lineTo(586, 81);
+path.lineTo(586, 83);
+path.lineTo(587, 82);
+path.lineTo(587, 82);
+path.lineTo(588, 83);
+path.lineTo(588, 83);
+path.lineTo(589, 81);
+path.lineTo(589, 82);
+path.lineTo(590, 81);
+path.lineTo(590, 80);
+path.lineTo(591, 78);
+path.lineTo(591, 78);
+path.lineTo(592, 71);
+path.lineTo(592, 71);
+path.lineTo(593, 75);
+path.lineTo(593, 76);
+path.lineTo(594, 82);
+path.lineTo(594, 81);
+path.lineTo(595, 83);
+path.lineTo(595, 82);
+path.lineTo(596, 92);
+path.lineTo(596, 92);
+path.lineTo(597, 0);
+path.lineTo(597, 20);
+path.lineTo(598, 85);
+path.lineTo(598, 84);
+path.lineTo(599, 75);
+path.lineTo(599, 78);
+path.lineTo(600, 77);
+path.lineTo(600, 77);
+path.lineTo(601, 75);
+path.lineTo(601, 72);
+path.lineTo(602, 65);
+path.lineTo(602, 63);
+path.lineTo(603, 56);
+path.lineTo(603, 53);
+path.lineTo(604, 48);
+path.lineTo(604, 46);
+path.lineTo(605, 50);
+path.lineTo(605, 55);
+path.lineTo(606, 68);
+path.lineTo(606, 72);
+path.lineTo(607, 78);
+path.lineTo(607, 80);
+path.lineTo(608, 83);
+path.lineTo(608, 84);
+path.lineTo(609, 85);
+path.lineTo(609, 87);
+path.lineTo(610, 85);
+path.lineTo(610, 84);
+path.lineTo(611, 85);
+path.lineTo(611, 85);
+path.lineTo(612, 84);
+path.lineTo(612, 83);
+path.lineTo(613, 83);
+path.lineTo(613, 83);
+path.lineTo(614, 84);
+path.lineTo(615, 82);
+path.lineTo(615, 82);
+path.lineTo(616, 83);
+path.lineTo(616, 83);
+path.lineTo(617, 82);
+path.lineTo(617, 82);
+path.lineTo(618, 84);
+path.lineTo(618, 82);
+path.lineTo(619, 84);
+path.lineTo(619, 83);
+path.lineTo(620, 81);
+path.lineTo(620, 83);
+path.lineTo(621, 82);
+path.lineTo(621, 82);
+path.lineTo(622, 83);
+path.lineTo(622, 83);
+path.lineTo(623, 81);
+path.lineTo(623, 82);
+path.lineTo(624, 81);
+path.lineTo(624, 80);
+path.lineTo(625, 78);
+path.lineTo(625, 78);
+path.lineTo(626, 71);
+path.lineTo(626, 71);
+path.lineTo(627, 75);
+path.lineTo(627, 76);
+path.lineTo(628, 82);
+path.lineTo(628, 81);
+path.lineTo(629, 83);
+path.lineTo(629, 82);
+path.lineTo(630, 84);
+path.lineTo(630, 92);
+path.lineTo(631, 0);
+path.lineTo(631, 20);
+path.lineTo(632, 72);
+path.lineTo(632, 85);
+path.lineTo(633, 80);
+path.lineTo(633, 75);
+path.lineTo(634, 78);
+path.lineTo(634, 77);
+path.lineTo(635, 76);
+path.lineTo(635, 72);
+path.lineTo(636, 70);
+path.lineTo(636, 63);
+path.lineTo(637, 59);
+path.lineTo(637, 53);
+path.lineTo(638, 50);
+path.lineTo(638, 46);
+path.lineTo(639, 47);
+path.lineTo(639, 55);
+path.lineTo(640, 63);
+path.lineTo(640, 72);
+path.lineTo(641, 77);
+path.lineTo(641, 80);
+path.lineTo(642, 82);
+path.lineTo(642, 84);
+path.lineTo(643, 85);
+path.lineTo(643, 87);
+path.lineTo(644, 86);
+path.lineTo(644, 84);
+path.lineTo(645, 85);
+path.lineTo(645, 85);
+path.lineTo(646, 84);
+path.lineTo(646, 83);
+path.lineTo(647, 83);
+path.lineTo(647, 83);
+path.lineTo(648, 84);
+path.lineTo(648, 82);
+path.lineTo(649, 82);
+path.lineTo(650, 83);
+path.lineTo(650, 82);
+path.lineTo(651, 82);
+path.lineTo(651, 84);
+path.lineTo(652, 82);
+path.lineTo(652, 84);
+path.lineTo(653, 83);
+path.lineTo(653, 81);
+path.lineTo(654, 83);
+path.lineTo(654, 82);
+path.lineTo(655, 82);
+path.lineTo(655, 83);
+path.lineTo(656, 83);
+path.lineTo(657, 81);
+path.lineTo(657, 82);
+path.lineTo(658, 81);
+path.lineTo(658, 80);
+path.lineTo(659, 78);
+path.lineTo(659, 78);
+path.lineTo(660, 71);
+path.lineTo(660, 71);
+path.lineTo(661, 73);
+path.lineTo(661, 76);
+path.lineTo(662, 80);
+path.lineTo(662, 82);
+path.lineTo(663, 83);
+path.lineTo(663, 82);
+path.lineTo(664, 84);
+path.lineTo(664, 92);
+path.lineTo(665, 51);
+path.lineTo(665, 0);
+path.lineTo(666, 72);
+path.lineTo(666, 85);
+path.lineTo(667, 80);
+path.lineTo(667, 75);
+path.lineTo(668, 78);
+path.lineTo(668, 77);
+path.lineTo(669, 76);
+path.lineTo(669, 72);
+path.lineTo(670, 70);
+path.lineTo(670, 63);
+path.lineTo(671, 59);
+path.lineTo(671, 53);
+path.lineTo(672, 50);
+path.lineTo(672, 46);
+path.lineTo(673, 55);
+path.lineTo(674, 63);
+path.lineTo(674, 72);
+path.lineTo(675, 77);
+path.lineTo(675, 80);
+path.lineTo(676, 82);
+path.lineTo(676, 84);
+path.lineTo(677, 85);
+path.lineTo(677, 87);
+path.lineTo(678, 86);
+path.lineTo(678, 84);
+path.lineTo(679, 85);
+path.lineTo(679, 85);
+path.lineTo(680, 84);
+path.lineTo(680, 83);
+path.lineTo(681, 83);
+path.lineTo(681, 83);
+path.lineTo(682, 84);
+path.lineTo(682, 82);
+path.lineTo(683, 82);
+path.lineTo(683, 83);
+path.lineTo(684, 83);
+path.lineTo(684, 82);
+path.lineTo(685, 82);
+path.lineTo(685, 82);
+path.lineTo(686, 84);
+path.lineTo(686, 81);
+path.lineTo(687, 83);
+path.lineTo(687, 81);
+path.lineTo(688, 83);
+path.lineTo(688, 82);
+path.lineTo(689, 82);
+path.lineTo(689, 83);
+path.lineTo(690, 82);
+path.lineTo(690, 82);
+path.lineTo(691, 81);
+path.lineTo(691, 81);
+path.lineTo(692, 80);
+path.lineTo(692, 80);
+path.lineTo(693, 78);
+path.lineTo(693, 76);
+path.lineTo(694, 71);
+path.lineTo(694, 73);
+path.lineTo(695, 76);
+path.lineTo(695, 80);
+path.lineTo(696, 82);
+path.lineTo(696, 83);
+path.lineTo(697, 82);
+path.lineTo(697, 84);
+path.lineTo(698, 92);
+path.lineTo(698, 51);
+path.lineTo(699, 0);
+path.lineTo(700, 72);
+path.lineTo(700, 85);
+path.lineTo(701, 80);
+path.lineTo(701, 75);
+path.lineTo(702, 78);
+path.lineTo(702, 77);
+path.lineTo(703, 76);
+path.lineTo(703, 72);
+path.lineTo(704, 70);
+path.lineTo(704, 63);
+path.lineTo(705, 59);
+path.lineTo(705, 53);
+path.lineTo(706, 50);
+path.lineTo(706, 46);
+path.lineTo(707, 47);
+path.lineTo(707, 55);
+path.lineTo(708, 63);
+path.lineTo(708, 72);
+path.lineTo(709, 77);
+path.lineTo(709, 80);
+path.lineTo(710, 82);
+path.lineTo(710, 84);
+path.lineTo(711, 85);
+path.lineTo(711, 87);
+path.lineTo(712, 86);
+path.lineTo(712, 85);
+path.lineTo(713, 84);
+path.lineTo(713, 84);
+path.lineTo(714, 84);
+path.lineTo(714, 83);
+path.lineTo(715, 83);
+path.lineTo(715, 83);
+path.lineTo(716, 84);
+path.lineTo(716, 84);
+path.lineTo(717, 82);
+path.lineTo(717, 83);
+path.lineTo(718, 82);
+path.lineTo(718, 82);
+path.lineTo(719, 83);
+path.lineTo(719, 82);
+path.lineTo(720, 84);
+path.lineTo(720, 81);
+path.lineTo(721, 84);
+path.lineTo(721, 81);
+path.lineTo(722, 83);
+path.lineTo(722, 82);
+path.lineTo(723, 82);
+path.lineTo(723, 83);
+path.lineTo(724, 82);
+path.lineTo(724, 82);
+path.lineTo(725, 81);
+path.lineTo(725, 81);
+path.lineTo(726, 80);
+path.lineTo(726, 80);
+path.lineTo(727, 78);
+path.lineTo(727, 76);
+path.lineTo(728, 71);
+path.lineTo(728, 73);
+path.lineTo(729, 76);
+path.lineTo(729, 80);
+path.lineTo(730, 82);
+path.lineTo(730, 83);
+path.lineTo(731, 82);
+path.lineTo(731, 84);
+path.lineTo(732, 92);
+path.lineTo(732, 51);
+path.lineTo(733, 0);
+path.lineTo(733, 72);
+path.lineTo(734, 85);
+path.lineTo(734, 80);
+path.lineTo(735, 75);
+path.lineTo(735, 78);
+path.lineTo(736, 77);
+path.lineTo(736, 76);
+path.lineTo(737, 75);
+path.lineTo(737, 70);
+path.lineTo(738, 65);
+path.lineTo(738, 59);
+path.lineTo(739, 56);
+path.lineTo(739, 50);
+path.lineTo(740, 48);
+path.lineTo(740, 46);
+path.lineTo(741, 50);
+path.lineTo(741, 63);
+path.lineTo(742, 68);
+path.lineTo(743, 77);
+path.lineTo(743, 78);
+path.lineTo(744, 82);
+path.lineTo(744, 83);
+path.lineTo(745, 85);
+path.lineTo(745, 87);
+path.lineTo(746, 84);
+path.lineTo(746, 85);
+path.lineTo(747, 84);
+path.lineTo(747, 84);
+path.lineTo(748, 84);
+path.lineTo(748, 83);
+path.lineTo(749, 83);
+path.lineTo(749, 83);
+path.lineTo(750, 84);
+path.lineTo(750, 84);
+path.lineTo(751, 82);
+path.lineTo(751, 83);
+path.lineTo(752, 82);
+path.lineTo(752, 82);
+path.lineTo(753, 83);
+path.lineTo(753, 82);
+path.lineTo(754, 84);
+path.lineTo(754, 81);
+path.lineTo(755, 84);
+path.lineTo(755, 81);
+path.lineTo(756, 83);
+path.lineTo(756, 82);
+path.lineTo(757, 82);
+path.lineTo(757, 83);
+path.lineTo(758, 82);
+path.lineTo(758, 82);
+path.lineTo(759, 81);
+path.lineTo(759, 81);
+path.lineTo(760, 82);
+path.lineTo(760, 80);
+path.lineTo(761, 78);
+path.lineTo(761, 76);
+path.lineTo(762, 71);
+path.lineTo(762, 73);
+path.lineTo(763, 75);
+path.lineTo(763, 80);
+path.lineTo(764, 82);
+path.lineTo(764, 83);
+path.lineTo(765, 83);
+path.lineTo(765, 84);
+path.lineTo(766, 92);
+path.lineTo(766, 51);
+path.lineTo(767, 0);
+path.lineTo(767, 72);
+path.lineTo(768, 85);
+path.lineTo(768, 80);
+path.lineTo(769, 75);
+path.lineTo(769, 78);
+path.lineTo(770, 77);
+path.lineTo(770, 76);
+path.lineTo(771, 75);
+path.lineTo(771, 70);
+path.lineTo(772, 65);
+path.lineTo(772, 59);
+path.lineTo(773, 56);
+path.lineTo(773, 50);
+path.lineTo(774, 48);
+path.lineTo(774, 46);
+path.lineTo(775, 50);
+path.lineTo(775, 63);
+path.lineTo(776, 68);
+path.lineTo(776, 77);
+path.lineTo(777, 78);
+path.lineTo(777, 82);
+path.lineTo(778, 83);
+path.lineTo(778, 85);
+path.lineTo(779, 87);
+path.lineTo(779, 84);
+path.lineTo(780, 85);
+path.lineTo(780, 84);
+path.lineTo(781, 84);
+path.lineTo(781, 85);
+path.lineTo(782, 83);
+path.lineTo(782, 83);
+path.lineTo(783, 83);
+path.lineTo(783, 84);
+path.lineTo(784, 84);
+path.lineTo(785, 82);
+path.lineTo(785, 82);
+path.lineTo(786, 82);
+path.lineTo(786, 83);
+path.lineTo(787, 83);
+path.lineTo(787, 82);
+path.lineTo(788, 84);
+path.lineTo(788, 81);
+path.lineTo(789, 84);
+path.lineTo(789, 81);
+path.lineTo(790, 81);
+path.lineTo(790, 83);
+path.lineTo(791, 82);
+path.lineTo(791, 83);
+path.lineTo(792, 82);
+path.lineTo(792, 83);
+path.lineTo(793, 81);
+path.lineTo(793, 82);
+path.lineTo(794, 82);
+path.lineTo(794, 80);
+path.lineTo(795, 78);
+path.lineTo(795, 76);
+path.lineTo(796, 71);
+path.lineTo(796, 73);
+path.lineTo(797, 75);
+path.lineTo(797, 80);
+path.lineTo(798, 82);
+path.lineTo(798, 83);
+path.lineTo(799, 83);
+path.lineTo(799, 84);
+path.lineTo(800, 92);
+path.lineTo(800, 51);
+path.lineTo(801, 0);
+path.lineTo(801, 72);
+path.lineTo(802, 85);
+path.lineTo(802, 80);
+path.lineTo(803, 75);
+path.lineTo(803, 78);
+path.lineTo(804, 77);
+path.lineTo(804, 76);
+path.lineTo(805, 75);
+path.lineTo(805, 70);
+path.lineTo(806, 65);
+path.lineTo(806, 59);
+path.lineTo(807, 56);
+path.lineTo(807, 50);
+path.lineTo(808, 48);
+path.lineTo(808, 46);
+path.lineTo(809, 50);
+path.lineTo(809, 55);
+path.lineTo(810, 68);
+path.lineTo(810, 77);
+path.lineTo(811, 78);
+path.lineTo(811, 80);
+path.lineTo(812, 83);
+path.lineTo(812, 84);
+path.lineTo(813, 87);
+path.lineTo(813, 84);
+path.lineTo(814, 86);
+path.lineTo(814, 84);
+path.lineTo(815, 85);
+path.lineTo(815, 85);
+path.lineTo(816, 83);
+path.lineTo(816, 83);
+path.lineTo(817, 83);
+path.lineTo(817, 83);
+path.lineTo(818, 84);
+path.lineTo(818, 82);
+path.lineTo(819, 82);
+path.lineTo(819, 82);
+path.lineTo(820, 83);
+path.lineTo(820, 83);
+path.lineTo(821, 82);
+path.lineTo(821, 84);
+path.lineTo(822, 81);
+path.lineTo(822, 84);
+path.lineTo(823, 81);
+path.lineTo(823, 81);
+path.lineTo(824, 83);
+path.lineTo(824, 82);
+path.lineTo(825, 83);
+path.lineTo(825, 82);
+path.lineTo(826, 83);
+path.lineTo(826, 81);
+path.lineTo(827, 82);
+path.lineTo(828, 82);
+path.lineTo(828, 80);
+path.lineTo(829, 78);
+path.lineTo(829, 78);
+path.lineTo(830, 71);
+path.lineTo(830, 71);
+path.lineTo(831, 75);
+path.lineTo(831, 76);
+path.lineTo(832, 82);
+path.lineTo(832, 81);
+path.lineTo(833, 83);
+path.lineTo(833, 82);
+path.lineTo(834, 92);
+path.lineTo(834, 92);
+path.lineTo(835, 0);
+path.lineTo(835, 20);
+path.lineTo(836, 85);
+path.lineTo(836, 84);
+path.lineTo(837, 75);
+path.lineTo(837, 78);
+path.lineTo(838, 77);
+path.lineTo(838, 77);
+path.lineTo(839, 75);
+path.lineTo(839, 72);
+path.lineTo(840, 65);
+path.lineTo(840, 63);
+path.lineTo(841, 56);
+path.lineTo(841, 53);
+path.lineTo(842, 48);
+path.lineTo(842, 46);
+path.lineTo(843, 50);
+path.lineTo(843, 55);
+path.lineTo(844, 68);
+path.lineTo(844, 72);
+path.lineTo(845, 78);
+path.lineTo(845, 80);
+path.lineTo(846, 83);
+path.lineTo(846, 84);
+path.lineTo(847, 85);
+path.lineTo(847, 87);
+path.lineTo(848, 85);
+path.lineTo(848, 84);
+path.lineTo(849, 85);
+path.lineTo(849, 85);
+path.lineTo(850, 84);
+path.lineTo(850, 83);
+path.lineTo(851, 83);
+path.lineTo(851, 83);
+path.lineTo(852, 84);
+path.lineTo(852, 82);
+path.lineTo(853, 82);
+path.lineTo(853, 83);
+path.lineTo(854, 83);
+path.lineTo(854, 82);
+path.lineTo(855, 82);
+path.lineTo(855, 84);
+path.lineTo(856, 82);
+path.lineTo(856, 84);
+path.lineTo(857, 83);
+path.lineTo(857, 81);
+path.lineTo(858, 83);
+path.lineTo(858, 82);
+path.lineTo(859, 82);
+path.lineTo(859, 83);
+path.lineTo(860, 83);
+path.lineTo(860, 81);
+path.lineTo(861, 82);
+path.lineTo(861, 81);
+path.lineTo(862, 80);
+path.lineTo(862, 78);
+path.lineTo(863, 78);
+path.lineTo(863, 71);
+path.lineTo(864, 71);
+path.lineTo(864, 75);
+path.lineTo(865, 76);
+path.lineTo(865, 82);
+path.lineTo(866, 81);
+path.lineTo(866, 83);
+path.lineTo(867, 82);
+path.lineTo(867, 84);
+path.lineTo(868, 92);
+path.lineTo(868, 51);
+path.lineTo(869, 0);
+path.lineTo(869, 72);
+path.lineTo(870, 85);
+path.lineTo(871, 80);
+path.lineTo(871, 75);
+path.lineTo(872, 78);
+path.lineTo(872, 77);
+path.lineTo(873, 76);
+path.lineTo(873, 72);
+path.lineTo(874, 70);
+path.lineTo(874, 63);
+path.lineTo(875, 59);
+path.lineTo(875, 53);
+path.lineTo(876, 50);
+path.lineTo(876, 46);
+path.lineTo(877, 47);
+path.lineTo(877, 55);
+path.lineTo(878, 63);
+path.lineTo(878, 72);
+path.lineTo(879, 77);
+path.lineTo(879, 80);
+path.lineTo(880, 82);
+path.lineTo(880, 84);
+path.lineTo(881, 85);
+path.lineTo(881, 87);
+path.lineTo(882, 86);
+path.lineTo(882, 84);
+path.lineTo(883, 85);
+path.lineTo(883, 85);
+path.lineTo(884, 84);
+path.lineTo(884, 83);
+path.lineTo(885, 83);
+path.lineTo(885, 83);
+path.lineTo(886, 84);
+path.lineTo(886, 84);
+path.lineTo(887, 82);
+path.lineTo(887, 83);
+path.lineTo(888, 82);
+path.lineTo(888, 83);
+path.lineTo(889, 82);
+path.lineTo(889, 82);
+path.lineTo(890, 84);
+path.lineTo(890, 81);
+path.lineTo(891, 84);
+path.lineTo(891, 81);
+path.lineTo(892, 83);
+path.lineTo(892, 82);
+path.lineTo(893, 82);
+path.lineTo(893, 83);
+path.lineTo(894, 82);
+path.lineTo(894, 82);
+path.lineTo(895, 81);
+path.lineTo(895, 81);
+path.lineTo(896, 80);
+path.lineTo(896, 80);
+path.lineTo(897, 78);
+path.lineTo(897, 76);
+path.lineTo(898, 71);
+path.lineTo(898, 73);
+path.lineTo(899, 76);
+path.lineTo(899, 80);
+path.lineTo(900, 82);
+path.lineTo(900, 83);
+path.lineTo(901, 82);
+path.lineTo(901, 84);
+path.lineTo(902, 92);
+path.lineTo(902, 51);
+path.lineTo(903, 0);
+path.lineTo(903, 72);
+path.lineTo(904, 85);
+path.lineTo(904, 80);
+path.lineTo(905, 75);
+path.lineTo(905, 78);
+path.lineTo(906, 77);
+path.lineTo(906, 76);
+path.lineTo(907, 75);
+path.lineTo(907, 70);
+path.lineTo(908, 65);
+path.lineTo(908, 59);
+path.lineTo(909, 56);
+path.lineTo(909, 50);
+path.lineTo(910, 48);
+path.lineTo(910, 46);
+path.lineTo(911, 50);
+path.lineTo(911, 63);
+path.lineTo(912, 68);
+path.lineTo(913, 77);
+path.lineTo(913, 78);
+path.lineTo(914, 82);
+path.lineTo(914, 83);
+path.lineTo(915, 85);
+path.lineTo(915, 87);
+path.lineTo(916, 84);
+path.lineTo(916, 85);
+path.lineTo(917, 84);
+path.lineTo(917, 84);
+path.lineTo(918, 84);
+path.lineTo(918, 83);
+path.lineTo(919, 83);
+path.lineTo(919, 83);
+path.lineTo(920, 83);
+path.lineTo(920, 84);
+path.lineTo(921, 82);
+path.lineTo(921, 82);
+path.lineTo(922, 82);
+path.lineTo(922, 83);
+path.lineTo(923, 83);
+path.lineTo(923, 82);
+path.lineTo(924, 84);
+path.lineTo(924, 81);
+path.lineTo(925, 84);
+path.lineTo(925, 81);
+path.lineTo(926, 81);
+path.lineTo(926, 83);
+path.lineTo(927, 82);
+path.lineTo(927, 83);
+path.lineTo(928, 82);
+path.lineTo(928, 83);
+path.lineTo(929, 81);
+path.lineTo(929, 82);
+path.lineTo(930, 82);
+path.lineTo(930, 80);
+path.lineTo(931, 78);
+path.lineTo(931, 76);
+path.lineTo(932, 71);
+path.lineTo(932, 73);
+path.lineTo(933, 75);
+path.lineTo(933, 80);
+path.lineTo(934, 82);
+path.lineTo(934, 81);
+path.lineTo(935, 83);
+path.lineTo(935, 82);
+path.lineTo(936, 92);
+path.lineTo(936, 92);
+path.lineTo(937, 0);
+path.lineTo(937, 20);
+path.lineTo(938, 85);
+path.lineTo(938, 84);
+path.lineTo(939, 75);
+path.lineTo(939, 78);
+path.lineTo(940, 77);
+path.lineTo(940, 77);
+path.lineTo(941, 75);
+path.lineTo(941, 72);
+path.lineTo(942, 65);
+path.lineTo(942, 63);
+path.lineTo(943, 56);
+path.lineTo(943, 53);
+path.lineTo(944, 48);
+path.lineTo(944, 46);
+path.lineTo(945, 50);
+path.lineTo(945, 55);
+path.lineTo(946, 68);
+path.lineTo(946, 72);
+path.lineTo(947, 78);
+path.lineTo(947, 80);
+path.lineTo(948, 83);
+path.lineTo(948, 84);
+path.lineTo(949, 85);
+path.lineTo(949, 87);
+path.lineTo(950, 86);
+path.lineTo(950, 84);
+path.lineTo(951, 85);
+path.lineTo(951, 85);
+path.lineTo(952, 84);
+path.lineTo(952, 83);
+path.lineTo(953, 83);
+path.lineTo(953, 83);
+path.lineTo(954, 84);
+path.lineTo(954, 82);
+path.lineTo(955, 82);
+path.lineTo(956, 83);
+path.lineTo(956, 83);
+path.lineTo(957, 82);
+path.lineTo(957, 82);
+path.lineTo(958, 84);
+path.lineTo(958, 82);
+path.lineTo(959, 84);
+path.lineTo(959, 83);
+path.lineTo(960, 81);
+path.lineTo(960, 83);
+path.lineTo(961, 82);
+path.lineTo(961, 82);
+path.lineTo(962, 83);
+path.lineTo(963, 81);
+path.lineTo(963, 82);
+path.lineTo(964, 81);
+path.lineTo(964, 80);
+path.lineTo(965, 78);
+path.lineTo(965, 78);
+path.lineTo(966, 71);
+path.lineTo(966, 71);
+path.lineTo(967, 73);
+path.lineTo(967, 76);
+path.lineTo(968, 80);
+path.lineTo(968, 82);
+path.lineTo(969, 83);
+path.lineTo(969, 82);
+path.lineTo(970, 84);
+path.lineTo(970, 92);
+path.lineTo(971, 51);
+path.lineTo(971, 0);
+path.lineTo(972, 72);
+path.lineTo(972, 85);
+path.lineTo(973, 80);
+path.lineTo(973, 75);
+path.lineTo(974, 78);
+path.lineTo(974, 77);
+path.lineTo(975, 76);
+path.lineTo(975, 72);
+path.lineTo(976, 70);
+path.lineTo(976, 63);
+path.lineTo(977, 59);
+path.lineTo(977, 53);
+path.lineTo(978, 50);
+path.lineTo(978, 46);
+path.lineTo(979, 47);
+path.lineTo(979, 55);
+path.lineTo(980, 63);
+path.lineTo(980, 72);
+path.lineTo(981, 77);
+path.lineTo(981, 80);
+path.lineTo(982, 82);
+path.lineTo(982, 84);
+path.lineTo(983, 85);
+path.lineTo(983, 87);
+path.lineTo(984, 86);
+path.lineTo(984, 84);
+path.lineTo(985, 85);
+path.lineTo(985, 85);
+path.lineTo(986, 84);
+path.lineTo(986, 83);
+path.lineTo(987, 83);
+path.lineTo(987, 83);
+path.lineTo(988, 84);
+path.lineTo(988, 82);
+path.lineTo(989, 82);
+path.lineTo(989, 83);
+path.lineTo(990, 83);
+path.lineTo(990, 82);
+path.lineTo(991, 82);
+path.lineTo(991, 82);
+path.lineTo(992, 84);
+path.lineTo(992, 81);
+path.lineTo(993, 84);
+path.lineTo(993, 81);
+path.lineTo(994, 83);
+path.lineTo(994, 82);
+path.lineTo(995, 82);
+path.lineTo(995, 83);
+path.lineTo(996, 82);
+path.lineTo(996, 82);
+path.lineTo(997, 81);
+path.lineTo(997, 81);
+path.lineTo(998, 80);
+path.lineTo(999, 80);
+path.lineTo(999, 78);
+path.lineTo(1000, 76);
+path.lineTo(1000, 71);
+path.lineTo(1001, 73);
+path.lineTo(1001, 76);
+path.lineTo(1002, 80);
+path.lineTo(1002, 82);
+path.lineTo(1003, 83);
+path.lineTo(1003, 82);
+path.lineTo(1004, 84);
+path.lineTo(1004, 92);
+path.lineTo(1005, 51);
+path.lineTo(1005, 0);
+path.lineTo(1006, 72);
+path.lineTo(1006, 85);
+path.lineTo(1007, 80);
+path.lineTo(1007, 75);
+path.lineTo(1008, 78);
+path.lineTo(1008, 77);
+path.lineTo(1009, 76);
+path.lineTo(1009, 72);
+path.lineTo(1010, 70);
+path.lineTo(1010, 63);
+path.lineTo(1011, 59);
+path.lineTo(1011, 56);
+path.lineTo(1012, 50);
+path.lineTo(1012, 48);
+path.lineTo(1013, 46);
+path.lineTo(1013, 55);
+path.lineTo(1014, 63);
+path.lineTo(1014, 68);
+path.lineTo(1015, 77);
+path.lineTo(1015, 78);
+path.lineTo(1016, 82);
+path.lineTo(1016, 83);
+path.lineTo(1017, 85);
+path.lineTo(1017, 87);
+path.lineTo(1018, 84);
+path.lineTo(1018, 85);
+path.lineTo(1019, 84);
+path.lineTo(1019, 84);
+path.lineTo(1020, 85);
+path.lineTo(1020, 84);
+path.lineTo(1021, 83);
+path.lineTo(1021, 83);
+path.lineTo(1022, 84);
+path.lineTo(1022, 84);
+path.lineTo(1023, 82);
+path.lineTo(1023, 83);
+path.lineTo(1024, 82);
+path.lineTo(1024, 82);
+path.lineTo(1025, 83);
+path.lineTo(1025, 82);
+path.lineTo(1026, 84);
+path.lineTo(1026, 81);
+path.lineTo(1027, 84);
+path.lineTo(1027, 81);
+path.lineTo(1028, 83);
+path.lineTo(1028, 82);
+path.lineTo(1029, 82);
+path.lineTo(1029, 83);
+path.lineTo(1030, 82);
+path.lineTo(1030, 82);
+path.lineTo(1031, 81);
+path.lineTo(1031, 82);
+path.lineTo(1032, 82);
+path.lineTo(1032, 80);
+path.lineTo(1033, 78);
+path.lineTo(1033, 76);
+path.lineTo(1034, 71);
+path.lineTo(1034, 73);
+path.lineTo(1035, 75);
+path.lineTo(1035, 80);
+path.lineTo(1036, 82);
+path.lineTo(1036, 83);
+path.lineTo(1037, 83);
+path.lineTo(1037, 84);
+path.lineTo(1038, 92);
+path.lineTo(1038, 51);
+path.lineTo(1039, 0);
+path.lineTo(1039, 72);
+path.lineTo(1040, 85);
+path.lineTo(1041, 80);
+path.lineTo(1041, 75);
+path.lineTo(1042, 78);
+path.lineTo(1042, 77);
+path.lineTo(1043, 76);
+path.lineTo(1043, 75);
+path.lineTo(1044, 70);
+path.lineTo(1044, 65);
+path.lineTo(1045, 59);
+path.lineTo(1045, 56);
+path.lineTo(1046, 50);
+path.lineTo(1046, 48);
+path.lineTo(1047, 46);
+path.lineTo(1047, 50);
+path.lineTo(1048, 63);
+path.lineTo(1048, 68);
+path.lineTo(1049, 77);
+path.lineTo(1049, 78);
+path.lineTo(1050, 82);
+path.lineTo(1050, 83);
+path.lineTo(1051, 85);
+path.lineTo(1051, 87);
+path.lineTo(1052, 84);
+path.lineTo(1052, 85);
+path.lineTo(1053, 84);
+path.lineTo(1053, 85);
+path.lineTo(1054, 84);
+path.lineTo(1054, 83);
+path.lineTo(1055, 83);
+path.lineTo(1055, 83);
+path.lineTo(1056, 83);
+path.lineTo(1056, 84);
+path.lineTo(1057, 82);
+path.lineTo(1057, 82);
+path.lineTo(1058, 83);
+path.lineTo(1058, 82);
+path.lineTo(1059, 83);
+path.lineTo(1059, 82);
+path.lineTo(1060, 84);
+path.lineTo(1060, 81);
+path.lineTo(1061, 84);
+path.lineTo(1061, 81);
+path.lineTo(1062, 81);
+path.lineTo(1062, 83);
+path.lineTo(1063, 82);
+path.lineTo(1063, 83);
+path.lineTo(1064, 82);
+path.lineTo(1064, 83);
+path.lineTo(1065, 81);
+path.lineTo(1065, 82);
+path.lineTo(1066, 82);
+path.lineTo(1066, 80);
+path.lineTo(1067, 78);
+path.lineTo(1067, 76);
+path.lineTo(1068, 71);
+path.lineTo(1068, 73);
+path.lineTo(1069, 75);
+path.lineTo(1069, 80);
+path.lineTo(1070, 82);
+path.lineTo(1070, 83);
+path.lineTo(1071, 83);
+path.lineTo(1071, 84);
+path.lineTo(1072, 92);
+path.lineTo(1072, 51);
+path.lineTo(1073, 0);
+path.lineTo(1073, 72);
+path.lineTo(1074, 85);
+path.lineTo(1074, 80);
+path.lineTo(1075, 75);
+path.lineTo(1075, 78);
+path.lineTo(1076, 77);
+path.lineTo(1076, 76);
+path.lineTo(1077, 75);
+path.lineTo(1077, 70);
+path.lineTo(1078, 65);
+path.lineTo(1078, 59);
+path.lineTo(1079, 56);
+path.lineTo(1079, 53);
+path.lineTo(1080, 48);
+path.lineTo(1080, 46);
+path.lineTo(1081, 50);
+path.lineTo(1081, 55);
+path.lineTo(1082, 68);
+path.lineTo(1082, 72);
+path.lineTo(1083, 78);
+path.lineTo(1084, 80);
+path.lineTo(1084, 83);
+path.lineTo(1085, 84);
+path.lineTo(1085, 87);
+path.lineTo(1086, 84);
+path.lineTo(1086, 86);
+path.lineTo(1087, 84);
+path.lineTo(1087, 85);
+path.lineTo(1088, 85);
+path.lineTo(1088, 83);
+path.lineTo(1089, 83);
+path.lineTo(1089, 83);
+path.lineTo(1090, 83);
+path.lineTo(1090, 84);
+path.lineTo(1091, 82);
+path.lineTo(1091, 82);
+path.lineTo(1092, 83);
+path.lineTo(1093, 83);
+path.lineTo(1093, 82);
+path.lineTo(1094, 84);
+path.lineTo(1094, 81);
+path.lineTo(1095, 84);
+path.lineTo(1095, 81);
+path.lineTo(1096, 81);
+path.lineTo(1096, 83);
+path.lineTo(1097, 82);
+path.lineTo(1097, 83);
+path.lineTo(1098, 82);
+path.lineTo(1098, 83);
+path.lineTo(1099, 81);
+path.lineTo(1099, 82);
+path.lineTo(1100, 82);
+path.lineTo(1100, 80);
+path.lineTo(1101, 78);
+path.lineTo(1101, 76);
+path.lineTo(1102, 71);
+path.lineTo(1102, 73);
+path.lineTo(1103, 75);
+path.lineTo(1103, 80);
+path.lineTo(1104, 82);
+path.lineTo(1104, 83);
+path.lineTo(1105, 83);
+path.lineTo(1105, 84);
+path.lineTo(1106, 92);
+path.lineTo(1106, 92);
+path.lineTo(1107, 0);
+path.lineTo(1107, 20);
+path.lineTo(1108, 85);
+path.lineTo(1108, 84);
+path.lineTo(1109, 75);
+path.lineTo(1109, 78);
+path.lineTo(1110, 77);
+path.lineTo(1110, 77);
+path.lineTo(1111, 75);
+path.lineTo(1111, 72);
+path.lineTo(1112, 65);
+path.lineTo(1112, 63);
+path.lineTo(1113, 56);
+path.lineTo(1113, 53);
+path.lineTo(1114, 48);
+path.lineTo(1114, 46);
+path.lineTo(1115, 50);
+path.lineTo(1115, 55);
+path.lineTo(1116, 68);
+path.lineTo(1116, 72);
+path.lineTo(1117, 78);
+path.lineTo(1117, 80);
+path.lineTo(1118, 83);
+path.lineTo(1118, 84);
+path.lineTo(1119, 87);
+path.lineTo(1119, 84);
+path.lineTo(1120, 86);
+path.lineTo(1120, 84);
+path.lineTo(1121, 85);
+path.lineTo(1121, 85);
+path.lineTo(1122, 83);
+path.lineTo(1122, 83);
+path.lineTo(1123, 83);
+path.lineTo(1123, 83);
+path.lineTo(1124, 84);
+path.lineTo(1124, 82);
+path.lineTo(1125, 82);
+path.lineTo(1125, 83);
+path.lineTo(1126, 83);
+path.lineTo(1127, 82);
+path.lineTo(1127, 82);
+path.lineTo(1128, 84);
+path.lineTo(1128, 82);
+path.lineTo(1129, 84);
+path.lineTo(1129, 83);
+path.lineTo(1130, 81);
+path.lineTo(1130, 83);
+path.lineTo(1131, 82);
+path.lineTo(1131, 82);
+path.lineTo(1132, 83);
+path.lineTo(1132, 83);
+path.lineTo(1133, 81);
+path.lineTo(1133, 82);
+path.lineTo(1134, 81);
+path.lineTo(1134, 80);
+path.lineTo(1135, 78);
+path.lineTo(1135, 78);
+path.lineTo(1136, 71);
+path.lineTo(1136, 71);
+path.lineTo(1137, 75);
+path.lineTo(1137, 76);
+path.lineTo(1138, 82);
+path.lineTo(1138, 81);
+path.lineTo(1139, 83);
+path.lineTo(1139, 82);
+path.lineTo(1140, 92);
+path.lineTo(1140, 92);
+path.lineTo(1141, 0);
+path.lineTo(1141, 20);
+path.lineTo(1142, 85);
+path.lineTo(1142, 84);
+path.lineTo(1143, 75);
+path.lineTo(1143, 78);
+path.lineTo(1144, 77);
+path.lineTo(1144, 77);
+path.lineTo(1145, 75);
+path.lineTo(1145, 72);
+path.lineTo(1146, 70);
+path.lineTo(1146, 63);
+path.lineTo(1147, 56);
+path.lineTo(1147, 53);
+path.lineTo(1148, 50);
+path.lineTo(1148, 46);
+path.lineTo(1149, 47);
+path.lineTo(1149, 55);
+path.lineTo(1150, 63);
+path.lineTo(1150, 72);
+path.lineTo(1151, 77);
+path.lineTo(1151, 80);
+path.lineTo(1152, 82);
+path.lineTo(1152, 84);
+path.lineTo(1153, 85);
+path.lineTo(1153, 87);
+path.lineTo(1154, 86);
+path.lineTo(1154, 84);
+path.lineTo(1155, 85);
+path.lineTo(1155, 85);
+path.lineTo(1156, 84);
+path.lineTo(1156, 83);
+path.lineTo(1157, 83);
+path.lineTo(1157, 83);
+path.lineTo(1158, 84);
+path.lineTo(1158, 82);
+path.lineTo(1159, 82);
+path.lineTo(1159, 83);
+path.lineTo(1160, 83);
+path.lineTo(1160, 82);
+path.lineTo(1161, 82);
+path.lineTo(1161, 84);
+path.lineTo(1162, 82);
+path.lineTo(1162, 84);
+path.lineTo(1163, 83);
+path.lineTo(1163, 81);
+path.lineTo(1164, 83);
+path.lineTo(1164, 82);
+path.lineTo(1165, 82);
+path.lineTo(1165, 83);
+path.lineTo(1166, 83);
+path.lineTo(1166, 81);
+path.lineTo(1167, 82);
+path.lineTo(1167, 81);
+path.lineTo(1168, 80);
+path.lineTo(1169, 78);
+path.lineTo(1169, 78);
+path.lineTo(1170, 71);
+path.lineTo(1170, 71);
+path.lineTo(1171, 75);
+path.lineTo(1171, 76);
+path.lineTo(1172, 82);
+path.lineTo(1172, 81);
+path.lineTo(1173, 83);
+path.lineTo(1173, 82);
+path.lineTo(1174, 84);
+path.lineTo(1174, 92);
+path.lineTo(1175, 51);
+path.lineTo(1175, 0);
+path.lineTo(1176, 72);
+path.lineTo(1176, 85);
+path.lineTo(1177, 80);
+path.lineTo(1177, 75);
+path.lineTo(1178, 78);
+path.lineTo(1178, 77);
+path.lineTo(1179, 76);
+path.lineTo(1179, 72);
+path.lineTo(1180, 70);
+path.lineTo(1180, 63);
+path.lineTo(1181, 59);
+path.lineTo(1181, 53);
+path.lineTo(1182, 50);
+path.lineTo(1182, 46);
+path.lineTo(1183, 47);
+path.lineTo(1183, 55);
+path.lineTo(1184, 63);
+path.lineTo(1184, 72);
+path.lineTo(1185, 77);
+path.lineTo(1185, 80);
+path.lineTo(1186, 82);
+path.lineTo(1186, 84);
+path.lineTo(1187, 85);
+path.lineTo(1187, 87);
+path.lineTo(1188, 86);
+path.lineTo(1188, 84);
+path.lineTo(1189, 85);
+path.lineTo(1189, 85);
+path.lineTo(1190, 84);
+path.lineTo(1190, 83);
+path.lineTo(1191, 83);
+path.lineTo(1191, 83);
+path.lineTo(1192, 84);
+path.lineTo(1192, 84);
+path.lineTo(1193, 82);
+path.lineTo(1193, 83);
+path.lineTo(1194, 82);
+path.lineTo(1194, 82);
+path.lineTo(1195, 83);
+path.lineTo(1195, 82);
+path.lineTo(1196, 84);
+path.lineTo(1196, 81);
+path.lineTo(1197, 84);
+path.lineTo(1197, 81);
+path.lineTo(1198, 83);
+path.lineTo(1198, 82);
+path.lineTo(1199, 82);
+path.lineTo(1199, 83);
+path.lineTo(1200, 82);
+path.lineTo(1200, 82);
+path.lineTo(1201, 81);
+path.lineTo(1201, 81);
+path.lineTo(1202, 80);
+path.lineTo(1202, 80);
+path.lineTo(1203, 78);
+path.lineTo(1203, 76);
+path.lineTo(1204, 71);
+path.lineTo(1204, 73);
+path.lineTo(1205, 76);
+path.lineTo(1206, 81);
+path.lineTo(1206, 83);
+path.lineTo(1207, 82);
+path.lineTo(1207, 84);
+path.lineTo(1208, 92);
+path.lineTo(1208, 51);
+path.lineTo(1209, 0);
+path.lineTo(1209, 72);
+path.lineTo(1210, 85);
+path.lineTo(1210, 80);
+path.lineTo(1211, 75);
+path.lineTo(1212, 78);
+path.lineTo(1212, 77);
+path.lineTo(1213, 76);
+path.lineTo(1213, 72);
+path.lineTo(1214, 70);
+path.lineTo(1214, 65);
+path.lineTo(1215, 59);
+path.lineTo(1215, 56);
+path.lineTo(1216, 50);
+path.lineTo(1216, 48);
+path.lineTo(1217, 46);
+path.lineTo(1217, 50);
+path.lineTo(1218, 63);
+path.lineTo(1218, 68);
+path.lineTo(1219, 77);
+path.lineTo(1219, 78);
+path.lineTo(1220, 82);
+path.lineTo(1220, 83);
+path.lineTo(1221, 85);
+path.lineTo(1221, 87);
+path.lineTo(1222, 84);
+path.lineTo(1222, 85);
+path.lineTo(1223, 84);
+path.lineTo(1223, 84);
+path.lineTo(1224, 84);
+path.lineTo(1224, 83);
+path.lineTo(1225, 83);
+path.lineTo(1225, 83);
+path.lineTo(1226, 84);
+path.lineTo(1226, 84);
+path.lineTo(1227, 82);
+path.lineTo(1227, 83);
+path.lineTo(1228, 82);
+path.lineTo(1228, 82);
+path.lineTo(1229, 83);
+path.lineTo(1229, 82);
+path.lineTo(1230, 84);
+path.lineTo(1230, 81);
+path.lineTo(1231, 84);
+path.lineTo(1231, 81);
+path.lineTo(1232, 83);
+path.lineTo(1232, 82);
+path.lineTo(1233, 82);
+path.lineTo(1233, 83);
+path.lineTo(1234, 82);
+path.lineTo(1234, 82);
+path.lineTo(1235, 81);
+path.lineTo(1235, 82);
+path.lineTo(1236, 80);
+path.lineTo(1236, 80);
+path.lineTo(1237, 78);
+path.lineTo(1237, 76);
+path.lineTo(1238, 71);
+path.lineTo(1238, 73);
+path.lineTo(1239, 75);
+path.lineTo(1239, 80);
+path.lineTo(1240, 82);
+path.lineTo(1240, 83);
+path.lineTo(1241, 83);
+path.lineTo(1241, 84);
+path.lineTo(1242, 92);
+path.lineTo(1242, 51);
+path.lineTo(1243, 0);
+path.lineTo(1243, 72);
+path.lineTo(1244, 85);
+path.lineTo(1244, 80);
+path.lineTo(1245, 75);
+path.lineTo(1245, 78);
+path.lineTo(1246, 77);
+path.lineTo(1246, 76);
+path.lineTo(1247, 75);
+path.lineTo(1247, 70);
+path.lineTo(1248, 65);
+path.lineTo(1248, 59);
+path.lineTo(1249, 56);
+path.lineTo(1249, 50);
+path.lineTo(1250, 48);
+path.lineTo(1250, 46);
+path.lineTo(1251, 50);
+path.lineTo(1251, 63);
+path.lineTo(1252, 68);
+path.lineTo(1252, 77);
+path.lineTo(1253, 78);
+path.lineTo(1253, 82);
+path.lineTo(1254, 83);
+path.lineTo(1254, 85);
+path.lineTo(1255, 87);
+path.lineTo(1256, 84);
+path.lineTo(1256, 85);
+path.lineTo(1257, 84);
+path.lineTo(1257, 84);
+path.lineTo(1258, 85);
+path.lineTo(1258, 83);
+path.lineTo(1259, 83);
+path.lineTo(1259, 83);
+path.lineTo(1260, 83);
+path.lineTo(1260, 84);
+path.lineTo(1261, 82);
+path.lineTo(1261, 82);
+path.lineTo(1262, 82);
+path.lineTo(1262, 83);
+path.lineTo(1263, 83);
+path.lineTo(1263, 82);
+path.lineTo(1264, 84);
+path.lineTo(1264, 81);
+path.lineTo(1265, 84);
+path.lineTo(1265, 81);
+path.lineTo(1266, 81);
+path.lineTo(1266, 83);
+path.lineTo(1267, 82);
+path.lineTo(1267, 83);
+path.lineTo(1268, 82);
+path.lineTo(1268, 83);
+path.lineTo(1269, 81);
+path.lineTo(1269, 82);
+path.lineTo(1270, 82);
+path.lineTo(1270, 80);
+path.lineTo(1271, 78);
+path.lineTo(1271, 76);
+path.lineTo(1272, 71);
+path.lineTo(1272, 73);
+path.lineTo(1273, 75);
+path.lineTo(1273, 80);
+path.lineTo(1274, 82);
+path.lineTo(1274, 81);
+path.lineTo(1275, 83);
+path.lineTo(1275, 82);
+path.lineTo(1276, 92);
+path.lineTo(1276, 92);
+path.lineTo(1277, 0);
+path.lineTo(1277, 20);
+path.lineTo(1278, 85);
+path.lineTo(1278, 84);
+path.lineTo(1279, 75);
+path.lineTo(1279, 78);
+path.lineTo(1280, 77);
+path.lineTo(1280, 77);
+path.lineTo(1281, 75);
+path.lineTo(1281, 72);
+path.lineTo(1282, 65);
+path.lineTo(1282, 63);
+path.lineTo(1283, 56);
+path.lineTo(1283, 53);
+path.lineTo(1284, 48);
+path.lineTo(1284, 46);
+path.lineTo(1285, 50);
+path.lineTo(1285, 55);
+path.lineTo(1286, 68);
+path.lineTo(1286, 72);
+path.lineTo(1287, 78);
+path.lineTo(1287, 80);
+path.lineTo(1288, 83);
+path.lineTo(1288, 84);
+path.lineTo(1289, 87);
+path.lineTo(1289, 84);
+path.lineTo(1290, 86);
+path.lineTo(1290, 84);
+path.lineTo(1291, 85);
+path.lineTo(1291, 85);
+path.lineTo(1292, 84);
+path.lineTo(1292, 83);
+path.lineTo(1293, 83);
+path.lineTo(1293, 83);
+path.lineTo(1294, 84);
+path.lineTo(1294, 82);
+path.lineTo(1295, 82);
+path.lineTo(1295, 83);
+path.lineTo(1296, 83);
+path.lineTo(1296, 82);
+path.lineTo(1297, 82);
+path.lineTo(1297, 84);
+path.lineTo(1298, 82);
+path.lineTo(1299, 84);
+path.lineTo(1299, 83);
+path.lineTo(1300, 81);
+path.lineTo(1300, 83);
+path.lineTo(1301, 82);
+path.lineTo(1301, 82);
+path.lineTo(1302, 83);
+path.lineTo(1302, 83);
+path.lineTo(1303, 81);
+path.lineTo(1303, 82);
+path.lineTo(1304, 81);
+path.lineTo(1304, 80);
+path.lineTo(1305, 78);
+path.lineTo(1305, 78);
+path.lineTo(1306, 71);
+path.lineTo(1306, 71);
+path.lineTo(1307, 75);
+path.lineTo(1307, 76);
+path.lineTo(1308, 82);
+path.lineTo(1308, 81);
+path.lineTo(1309, 83);
+path.lineTo(1309, 82);
+path.lineTo(1310, 92);
+path.lineTo(1310, 92);
+path.lineTo(1311, 0);
+path.lineTo(1311, 20);
+path.lineTo(1312, 85);
+path.lineTo(1312, 84);
+path.lineTo(1313, 80);
+path.lineTo(1313, 75);
+path.lineTo(1314, 78);
+path.lineTo(1314, 77);
+path.lineTo(1315, 76);
+path.lineTo(1315, 72);
+path.lineTo(1316, 70);
+path.lineTo(1316, 63);
+path.lineTo(1317, 59);
+path.lineTo(1317, 53);
+path.lineTo(1318, 50);
+path.lineTo(1318, 46);
+path.lineTo(1319, 47);
+path.lineTo(1319, 55);
+path.lineTo(1320, 63);
+path.lineTo(1320, 72);
+path.lineTo(1321, 77);
+path.lineTo(1321, 80);
+path.lineTo(1322, 82);
+path.lineTo(1322, 84);
+path.lineTo(1323, 85);
+path.lineTo(1323, 87);
+path.lineTo(1324, 84);
+path.lineTo(1325, 85);
+path.lineTo(1325, 85);
+path.lineTo(1326, 84);
+path.lineTo(1326, 83);
+path.lineTo(1327, 83);
+path.lineTo(1327, 83);
+path.lineTo(1328, 84);
+path.lineTo(1328, 82);
+path.lineTo(1329, 82);
+path.lineTo(1329, 83);
+path.lineTo(1330, 82);
+path.lineTo(1330, 83);
+path.lineTo(1331, 82);
+path.lineTo(1331, 84);
+path.lineTo(1332, 82);
+path.lineTo(1332, 84);
+path.lineTo(1333, 83);
+path.lineTo(1333, 81);
+path.lineTo(1334, 83);
+path.lineTo(1334, 82);
+path.lineTo(1335, 82);
+path.lineTo(1335, 83);
+path.lineTo(1336, 82);
+path.lineTo(1336, 82);
+path.lineTo(1337, 81);
+path.lineTo(1337, 81);
+path.lineTo(1338, 80);
+path.lineTo(1338, 80);
+path.lineTo(1339, 78);
+path.lineTo(1339, 76);
+path.lineTo(1340, 71);
+path.lineTo(1340, 73);
+path.lineTo(1341, 76);
+path.lineTo(1341, 80);
+path.lineTo(1342, 82);
+path.lineTo(1343, 83);
+path.lineTo(1343, 82);
+path.lineTo(1344, 84);
+path.lineTo(1344, 92);
+path.lineTo(1345, 51);
+path.lineTo(1345, 0);
+path.lineTo(1346, 72);
+path.lineTo(1346, 85);
+path.lineTo(1347, 80);
+path.lineTo(1347, 75);
+path.lineTo(1348, 78);
+path.lineTo(1348, 77);
+path.lineTo(1349, 76);
+path.lineTo(1349, 72);
+path.lineTo(1350, 70);
+path.lineTo(1350, 63);
+path.lineTo(1351, 59);
+path.lineTo(1351, 53);
+path.lineTo(1352, 50);
+path.lineTo(1352, 46);
+path.lineTo(1353, 47);
+path.lineTo(1353, 55);
+path.lineTo(1354, 63);
+path.lineTo(1354, 72);
+path.lineTo(1355, 77);
+path.lineTo(1355, 80);
+path.lineTo(1356, 82);
+path.lineTo(1356, 84);
+path.lineTo(1357, 85);
+path.lineTo(1357, 87);
+path.lineTo(1358, 86);
+path.lineTo(1358, 84);
+path.lineTo(1359, 85);
+path.lineTo(1359, 85);
+path.lineTo(1360, 84);
+path.lineTo(1360, 83);
+path.lineTo(1361, 83);
+path.lineTo(1361, 83);
+path.lineTo(1362, 84);
+path.lineTo(1362, 84);
+path.lineTo(1363, 82);
+path.lineTo(1363, 83);
+path.lineTo(1364, 82);
+path.lineTo(1364, 82);
+path.lineTo(1365, 83);
+path.lineTo(1365, 82);
+path.lineTo(1366, 84);
+path.lineTo(1366, 81);
+path.lineTo(1367, 84);
+path.lineTo(1367, 81);
+path.lineTo(1368, 83);
+path.lineTo(1368, 82);
+path.lineTo(1369, 82);
+path.lineTo(1369, 83);
+path.lineTo(1370, 82);
+path.lineTo(1370, 82);
+path.lineTo(1371, 81);
+path.lineTo(1371, 81);
+path.lineTo(1372, 80);
+path.lineTo(1372, 80);
+path.lineTo(1373, 78);
+path.lineTo(1373, 76);
+path.lineTo(1374, 71);
+path.lineTo(1374, 73);
+path.lineTo(1375, 76);
+path.lineTo(1375, 80);
+path.lineTo(1376, 82);
+path.lineTo(1376, 83);
+path.lineTo(1377, 82);
+path.lineTo(1377, 84);
+path.lineTo(1378, 92);
+path.lineTo(1378, 51);
+path.lineTo(1379, 0);
+path.lineTo(1379, 72);
+path.lineTo(1380, 85);
+path.lineTo(1380, 80);
+path.lineTo(1381, 75);
+path.lineTo(1381, 78);
+path.lineTo(1382, 77);
+path.lineTo(1382, 76);
+path.lineTo(1383, 75);
+path.lineTo(1383, 70);
+path.lineTo(1384, 65);
+path.lineTo(1384, 59);
+path.lineTo(1385, 56);
+path.lineTo(1386, 50);
+path.lineTo(1386, 48);
+path.lineTo(1387, 46);
+path.lineTo(1387, 50);
+path.lineTo(1388, 63);
+path.lineTo(1388, 68);
+path.lineTo(1389, 77);
+path.lineTo(1389, 78);
+path.lineTo(1390, 82);
+path.lineTo(1390, 83);
+path.lineTo(1391, 85);
+path.lineTo(1391, 87);
+path.lineTo(1392, 84);
+path.lineTo(1392, 85);
+path.lineTo(1393, 84);
+path.lineTo(1393, 84);
+path.lineTo(1394, 84);
+path.lineTo(1394, 83);
+path.lineTo(1395, 83);
+path.lineTo(1395, 83);
+path.lineTo(1396, 84);
+path.lineTo(1396, 84);
+path.lineTo(1397, 82);
+path.lineTo(1397, 83);
+path.lineTo(1398, 82);
+path.lineTo(1398, 82);
+path.lineTo(1399, 83);
+path.lineTo(1399, 82);
+path.lineTo(1400, 84);
+path.lineTo(1400, 81);
+path.lineTo(1401, 84);
+path.lineTo(1401, 81);
+path.lineTo(1402, 81);
+path.lineTo(1402, 83);
+path.lineTo(1403, 82);
+path.lineTo(1403, 83);
+path.lineTo(1404, 82);
+path.lineTo(1404, 83);
+path.lineTo(1405, 81);
+path.lineTo(1405, 82);
+path.lineTo(1406, 82);
+path.lineTo(1406, 80);
+path.lineTo(1407, 78);
+path.lineTo(1407, 76);
+path.lineTo(1408, 71);
+path.lineTo(1408, 73);
+path.lineTo(1409, 75);
+path.lineTo(1409, 80);
+path.lineTo(1410, 82);
+path.lineTo(1410, 83);
+path.lineTo(1411, 83);
+path.lineTo(1411, 84);
+path.lineTo(1412, 92);
+path.lineTo(1412, 51);
+path.lineTo(1413, 0);
+path.lineTo(1413, 72);
+path.lineTo(1414, 85);
+path.lineTo(1414, 80);
+path.lineTo(1415, 75);
+path.lineTo(1415, 78);
+path.lineTo(1416, 77);
+path.lineTo(1416, 76);
+path.lineTo(1417, 75);
+path.lineTo(1417, 70);
+path.lineTo(1418, 65);
+path.lineTo(1418, 59);
+path.lineTo(1419, 56);
+path.lineTo(1419, 50);
+path.lineTo(1420, 48);
+path.lineTo(1420, 46);
+path.lineTo(1421, 50);
+path.lineTo(1421, 63);
+path.lineTo(1422, 68);
+path.lineTo(1422, 77);
+path.lineTo(1423, 78);
+path.lineTo(1423, 82);
+path.lineTo(1424, 83);
+path.lineTo(1424, 85);
+path.lineTo(1425, 87);
+path.lineTo(1425, 84);
+path.lineTo(1426, 86);
+path.lineTo(1426, 84);
+path.lineTo(1427, 84);
+path.lineTo(1427, 85);
+path.lineTo(1428, 83);
+path.lineTo(1429, 83);
+path.lineTo(1429, 83);
+path.lineTo(1430, 83);
+path.lineTo(1430, 84);
+path.lineTo(1431, 82);
+path.lineTo(1431, 82);
+path.lineTo(1432, 82);
+path.lineTo(1432, 83);
+path.lineTo(1433, 83);
+path.lineTo(1433, 82);
+path.lineTo(1434, 84);
+path.lineTo(1434, 81);
+path.lineTo(1435, 84);
+path.lineTo(1435, 81);
+path.lineTo(1436, 81);
+path.lineTo(1436, 83);
+path.lineTo(1437, 82);
+path.lineTo(1437, 83);
+path.lineTo(1438, 82);
+path.lineTo(1438, 83);
+path.lineTo(1439, 81);
+path.lineTo(1439, 82);
+path.lineTo(1440, 82);
+path.lineTo(1440, 80);
+path.lineTo(1441, 78);
+path.lineTo(1441, 76);
+path.lineTo(1442, 71);
+path.lineTo(1442, 73);
+path.lineTo(1443, 75);
+path.lineTo(1443, 80);
+path.lineTo(1444, 82);
+path.lineTo(1445, 83);
+path.lineTo(1445, 82);
+path.lineTo(1446, 92);
+path.lineTo(1446, 92);
+path.lineTo(1447, 0);
+path.lineTo(1447, 72);
+path.lineTo(1448, 85);
+path.lineTo(1448, 84);
+path.lineTo(1449, 75);
+path.lineTo(1449, 78);
+path.lineTo(1450, 77);
+path.lineTo(1450, 77);
+path.lineTo(1451, 75);
+path.lineTo(1451, 72);
+path.lineTo(1452, 65);
+path.lineTo(1452, 63);
+path.lineTo(1453, 56);
+path.lineTo(1453, 53);
+path.lineTo(1454, 48);
+path.lineTo(1454, 46);
+path.lineTo(1455, 50);
+path.lineTo(1455, 55);
+path.lineTo(1456, 68);
+path.lineTo(1456, 72);
+path.lineTo(1457, 78);
+path.lineTo(1457, 80);
+path.lineTo(1458, 83);
+path.lineTo(1458, 84);
+path.lineTo(1459, 87);
+path.lineTo(1459, 84);
+path.lineTo(1460, 86);
+path.lineTo(1460, 84);
+path.lineTo(1461, 85);
+path.lineTo(1461, 85);
+path.lineTo(1462, 83);
+path.lineTo(1462, 83);
+path.lineTo(1463, 83);
+path.lineTo(1463, 83);
+path.lineTo(1464, 84);
+path.lineTo(1464, 82);
+path.lineTo(1465, 82);
+path.lineTo(1465, 82);
+path.lineTo(1466, 83);
+path.lineTo(1466, 82);
+path.lineTo(1467, 82);
+path.lineTo(1467, 84);
+path.lineTo(1468, 81);
+path.lineTo(1468, 84);
+path.lineTo(1469, 81);
+path.lineTo(1470, 83);
+path.lineTo(1470, 82);
+path.lineTo(1471, 83);
+path.lineTo(1472, 82);
+path.lineTo(1472, 83);
+path.lineTo(1473, 81);
+path.lineTo(1473, 82);
+path.lineTo(1474, 81);
+path.lineTo(1474, 80);
+path.lineTo(1475, 78);
+path.lineTo(1475, 78);
+path.lineTo(1476, 71);
+path.lineTo(1476, 71);
+path.lineTo(1477, 75);
+path.lineTo(1477, 76);
+path.lineTo(1478, 82);
+path.lineTo(1478, 81);
+path.lineTo(1479, 83);
+path.lineTo(1479, 82);
+path.lineTo(1480, 92);
+path.lineTo(1480, 92);
+path.lineTo(1481, 0);
+path.lineTo(1481, 20);
+path.lineTo(1482, 85);
+path.lineTo(1482, 84);
+path.lineTo(1483, 75);
+path.lineTo(1483, 78);
+path.lineTo(1484, 77);
+path.lineTo(1484, 77);
+path.lineTo(1485, 75);
+path.lineTo(1485, 72);
+path.lineTo(1486, 65);
+path.lineTo(1486, 63);
+path.lineTo(1487, 56);
+path.lineTo(1487, 53);
+path.lineTo(1488, 48);
+path.lineTo(1488, 46);
+path.lineTo(1489, 50);
+path.lineTo(1489, 55);
+path.lineTo(1490, 68);
+path.lineTo(1490, 72);
+path.lineTo(1491, 78);
+path.lineTo(1491, 80);
+path.lineTo(1492, 83);
+path.lineTo(1492, 84);
+path.lineTo(1493, 87);
+path.lineTo(1493, 84);
+path.lineTo(1494, 86);
+path.lineTo(1494, 84);
+path.lineTo(1495, 85);
+path.lineTo(1495, 85);
+path.lineTo(1496, 84);
+path.lineTo(1496, 83);
+path.lineTo(1497, 83);
+path.lineTo(1497, 83);
+path.lineTo(1498, 84);
+path.lineTo(1498, 82);
+path.lineTo(1499, 82);
+path.lineTo(1499, 83);
+path.lineTo(1500, 83);
+path.lineTo(1500, 82);
+path.lineTo(1501, 82);
+path.lineTo(1501, 84);
+path.lineTo(1502, 82);
+path.lineTo(1502, 84);
+path.lineTo(1503, 83);
+path.lineTo(1503, 81);
+path.lineTo(1504, 83);
+path.lineTo(1504, 82);
+path.lineTo(1505, 82);
+path.lineTo(1505, 83);
+path.lineTo(1506, 83);
+path.lineTo(1506, 81);
+path.lineTo(1507, 82);
+path.lineTo(1507, 81);
+path.lineTo(1508, 80);
+path.lineTo(1508, 78);
+path.lineTo(1509, 78);
+path.lineTo(1509, 71);
+path.lineTo(1510, 71);
+path.lineTo(1511, 76);
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_index.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_index.inc
new file mode 100644 (file)
index 0000000..b52c004
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+static SkTestFontData gTestFonts[] = {
+    {    LiberationMonoNormalPoints, LiberationMonoNormalVerbs, LiberationMonoNormalCharCodes,
+         LiberationMonoNormalCharCodesCount, LiberationMonoNormalWidths,
+         LiberationMonoNormalMetrics, "Toy Liberation Mono", SkTypeface::kNormal, nullptr
+    },
+    {    LiberationMonoBoldPoints, LiberationMonoBoldVerbs, LiberationMonoBoldCharCodes,
+         LiberationMonoBoldCharCodesCount, LiberationMonoBoldWidths,
+         LiberationMonoBoldMetrics, "Toy Liberation Mono", SkTypeface::kBold, nullptr
+    },
+    {    LiberationMonoItalicPoints, LiberationMonoItalicVerbs, LiberationMonoItalicCharCodes,
+         LiberationMonoItalicCharCodesCount, LiberationMonoItalicWidths,
+         LiberationMonoItalicMetrics, "Toy Liberation Mono", SkTypeface::kItalic, nullptr
+    },
+    {    LiberationMonoBoldItalicPoints, LiberationMonoBoldItalicVerbs, LiberationMonoBoldItalicCharCodes,
+         LiberationMonoBoldItalicCharCodesCount, LiberationMonoBoldItalicWidths,
+         LiberationMonoBoldItalicMetrics, "Toy Liberation Mono", SkTypeface::kBoldItalic, nullptr
+    },
+    {    LiberationSansNormalPoints, LiberationSansNormalVerbs, LiberationSansNormalCharCodes,
+         LiberationSansNormalCharCodesCount, LiberationSansNormalWidths,
+         LiberationSansNormalMetrics, "Toy Liberation Sans", SkTypeface::kNormal, nullptr
+    },
+    {    LiberationSansBoldPoints, LiberationSansBoldVerbs, LiberationSansBoldCharCodes,
+         LiberationSansBoldCharCodesCount, LiberationSansBoldWidths,
+         LiberationSansBoldMetrics, "Toy Liberation Sans", SkTypeface::kBold, nullptr
+    },
+    {    LiberationSansItalicPoints, LiberationSansItalicVerbs, LiberationSansItalicCharCodes,
+         LiberationSansItalicCharCodesCount, LiberationSansItalicWidths,
+         LiberationSansItalicMetrics, "Toy Liberation Sans", SkTypeface::kItalic, nullptr
+    },
+    {    LiberationSansBoldItalicPoints, LiberationSansBoldItalicVerbs, LiberationSansBoldItalicCharCodes,
+         LiberationSansBoldItalicCharCodesCount, LiberationSansBoldItalicWidths,
+         LiberationSansBoldItalicMetrics, "Toy Liberation Sans", SkTypeface::kBoldItalic, nullptr
+    },
+    {    LiberationSerifNormalPoints, LiberationSerifNormalVerbs, LiberationSerifNormalCharCodes,
+         LiberationSerifNormalCharCodesCount, LiberationSerifNormalWidths,
+         LiberationSerifNormalMetrics, "Toy Liberation Serif", SkTypeface::kNormal, nullptr
+    },
+    {    LiberationSerifBoldPoints, LiberationSerifBoldVerbs, LiberationSerifBoldCharCodes,
+         LiberationSerifBoldCharCodesCount, LiberationSerifBoldWidths,
+         LiberationSerifBoldMetrics, "Toy Liberation Serif", SkTypeface::kBold, nullptr
+    },
+    {    LiberationSerifItalicPoints, LiberationSerifItalicVerbs, LiberationSerifItalicCharCodes,
+         LiberationSerifItalicCharCodesCount, LiberationSerifItalicWidths,
+         LiberationSerifItalicMetrics, "Toy Liberation Serif", SkTypeface::kItalic, nullptr
+    },
+    {    LiberationSerifBoldItalicPoints, LiberationSerifBoldItalicVerbs, LiberationSerifBoldItalicCharCodes,
+         LiberationSerifBoldItalicCharCodesCount, LiberationSerifBoldItalicWidths,
+         LiberationSerifBoldItalicMetrics, "Toy Liberation Serif", SkTypeface::kBoldItalic, nullptr
+    },
+};
+
+const int gTestFontsCount = (int) SK_ARRAY_COUNT(gTestFonts);
+
+struct SubFont {
+    const char* fName;
+    SkFontStyle fStyle;
+    SkTestFontData& fFont;
+    const char* fFile;
+};
+
+const SubFont gSubFonts[] = {
+    { "monospace", SkFontStyle(), gTestFonts[0], "LiberationMono-Regular.ttf" },
+    { "monospace", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[1], "LiberationMono-Bold.ttf" },
+    { "monospace", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[2], "LiberationMono-Italic.ttf" },
+    { "monospace", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[3], "LiberationMono-BoldItalic.ttf" },
+    { "sans-serif", SkFontStyle(), gTestFonts[4], "LiberationSans-Regular.ttf" },
+    { "sans-serif", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[5], "LiberationSans-Bold.ttf" },
+    { "sans-serif", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[6], "LiberationSans-Italic.ttf" },
+    { "sans-serif", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[7], "LiberationSans-BoldItalic.ttf" },
+    { "serif", SkFontStyle(), gTestFonts[8], "LiberationSerif-Regular.ttf" },
+    { "serif", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[9], "LiberationSerif-Bold.ttf" },
+    { "serif", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[10], "LiberationSerif-Italic.ttf" },
+    { "serif", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[11], "LiberationSerif-BoldItalic.ttf" },
+    { "Toy Liberation Mono", SkFontStyle(), gTestFonts[0], "LiberationMono-Regular.ttf" },
+    { "Toy Liberation Mono", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[1], "LiberationMono-Bold.ttf" },
+    { "Toy Liberation Mono", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[2], "LiberationMono-Italic.ttf" },
+    { "Toy Liberation Mono", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[3], "LiberationMono-BoldItalic.ttf" },
+    { "Toy Liberation Sans", SkFontStyle(), gTestFonts[4], "LiberationSans-Regular.ttf" },
+    { "Toy Liberation Sans", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[5], "LiberationSans-Bold.ttf" },
+    { "Toy Liberation Sans", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[6], "LiberationSans-Italic.ttf" },
+    { "Toy Liberation Sans", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[7], "LiberationSans-BoldItalic.ttf" },
+    { "Toy Liberation Serif", SkFontStyle(), gTestFonts[8], "LiberationSerif-Regular.ttf" },
+    { "Toy Liberation Serif", SkFontStyle::FromOldStyle(SkTypeface::kBold), gTestFonts[9], "LiberationSerif-Bold.ttf" },
+    { "Toy Liberation Serif", SkFontStyle::FromOldStyle(SkTypeface::kItalic), gTestFonts[10], "LiberationSerif-Italic.ttf" },
+    { "Toy Liberation Serif", SkFontStyle::FromOldStyle(SkTypeface::kBoldItalic), gTestFonts[11], "LiberationSerif-BoldItalic.ttf" },
+};
+
+const int gSubFontsCount = (int) SK_ARRAY_COUNT(gSubFonts);
+
+const int gDefaultFontIndex = 4;
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_monospace.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_monospace.inc
new file mode 100644 (file)
index 0000000..4b14dc6
--- /dev/null
@@ -0,0 +1,4847 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+const SkScalar LiberationMonoNormalPoints[] = {
+0.0620117f, 0, 0.0620117f, -0.366211f, 0.437988f, -0.366211f, 0.437988f, 0, 0.375f,
+-0.304199f, 0.125f, -0.304199f, 0.125f, -0.0629883f, 0.375f, -0.0629883f, 0.336426f,
+-0.193848f, 0.26416f, -0.193848f, 0.252441f, -0.658203f, 0.348145f, -0.658203f, 0.251465f,
+0, 0.251465f, -0.0981445f, 0.346191f, -0.0981445f, 0.346191f, 0, 0.443359f, -0.412598f,
+0.374023f, -0.412598f, 0.354492f, -0.724609f, 0.463867f, -0.724609f, 0.224121f, -0.412598f,
+0.155273f, -0.412598f, 0.135254f, -0.724609f, 0.244629f, -0.724609f, 0.454102f, -0.406738f,
+0.421387f, -0.251953f, 0.54834f, -0.251953f, 0.54834f, -0.199219f, 0.410156f, -0.199219f,
+0.367188f, 0, 0.313477f, 0, 0.355469f, -0.199219f, 0.178223f, -0.199219f, 0.137207f,
+0, 0.0834961f, 0, 0.124512f, -0.199219f, 0.0263672f, -0.199219f, 0.0263672f, -0.251953f,
+0.13623f, -0.251953f, 0.168945f, -0.406738f, 0.0512695f, -0.406738f, 0.0512695f,
+-0.459473f, 0.179688f, -0.459473f, 0.223145f, -0.658691f, 0.276855f, -0.658691f,
+0.233887f, -0.459473f, 0.411133f, -0.459473f, 0.454102f, -0.658691f, 0.507812f, -0.658691f,
+0.464844f, -0.459473f, 0.567871f, -0.459473f, 0.567871f, -0.406738f, 0.224121f, -0.406738f,
+0.19043f, -0.251953f, 0.367188f, -0.251953f, 0.399902f, -0.406738f, 0.561523f, -0.185547f,
+0.561523f, -0.148926f, 0.547852f, -0.117676f, 0.53418f, -0.0864258f, 0.506348f, -0.0632324f,
+0.478516f, -0.0400391f, 0.435791f, -0.026123f, 0.393066f, -0.012207f, 0.334961f,
+-0.00976562f, 0.334961f, 0.0688477f, 0.272461f, 0.0688477f, 0.272461f, -0.00976562f,
+0.16748f, -0.0131836f, 0.108154f, -0.0583496f, 0.0488281f, -0.103516f, 0.0322266f,
+-0.185059f, 0.115234f, -0.203125f, 0.120605f, -0.176758f, 0.131592f, -0.154541f,
+0.142578f, -0.132324f, 0.161377f, -0.115723f, 0.180176f, -0.0991211f, 0.20752f, -0.0891113f,
+0.234863f, -0.0791016f, 0.272461f, -0.0771484f, 0.272461f, -0.315918f, 0.268555f,
+-0.316895f, 0.265137f, -0.317871f, 0.263184f, -0.318359f, 0.260254f, -0.319336f,
+0.258789f, -0.319824f, 0.257812f, -0.319824f, 0.233887f, -0.325684f, 0.209961f, -0.332764f,
+0.186035f, -0.339844f, 0.164551f, -0.349365f, 0.143066f, -0.358887f, 0.124512f, -0.372314f,
+0.105957f, -0.385742f, 0.0922852f, -0.403564f, 0.0786133f, -0.421387f, 0.0710449f,
+-0.445068f, 0.0634766f, -0.46875f, 0.0634766f, -0.499512f, 0.0634766f, -0.539551f,
+0.0791016f, -0.568604f, 0.0947266f, -0.597656f, 0.122559f, -0.616943f, 0.150391f,
+-0.63623f, 0.188721f, -0.645996f, 0.227051f, -0.655762f, 0.272461f, -0.657227f, 0.272461f,
+-0.720703f, 0.334961f, -0.720703f, 0.334961f, -0.657227f, 0.384766f, -0.655273f,
+0.420166f, -0.644531f, 0.455566f, -0.633789f, 0.480469f, -0.614258f, 0.505371f, -0.594727f,
+0.520996f, -0.566162f, 0.536621f, -0.537598f, 0.546387f, -0.500488f, 0.461426f, -0.484375f,
+0.456543f, -0.507812f, 0.447021f, -0.5271f, 0.4375f, -0.546387f, 0.422119f, -0.560303f,
+0.406738f, -0.574219f, 0.385254f, -0.582275f, 0.36377f, -0.590332f, 0.334961f, -0.592285f,
+0.334961f, -0.384277f, 0.363281f, -0.377441f, 0.391113f, -0.369873f, 0.418945f, -0.362305f,
+0.444092f, -0.351807f, 0.469238f, -0.341309f, 0.490723f, -0.327148f, 0.512207f, -0.312988f,
+0.528076f, -0.293213f, 0.543945f, -0.273438f, 0.552734f, -0.24707f, 0.561523f, -0.220703f,
+0.561523f, -0.185547f, 0.147461f, -0.49707f, 0.147461f, -0.470703f, 0.157227f, -0.453369f,
+0.166992f, -0.436035f, 0.183838f, -0.424561f, 0.200684f, -0.413086f, 0.223389f, -0.405762f,
+0.246094f, -0.398438f, 0.272461f, -0.391602f, 0.272461f, -0.593262f, 0.237793f, -0.591797f,
+0.213867f, -0.58374f, 0.189941f, -0.575684f, 0.175293f, -0.562744f, 0.160645f, -0.549805f,
+0.154053f, -0.532959f, 0.147461f, -0.516113f, 0.147461f, -0.49707f, 0.477539f, -0.187012f,
+0.477539f, -0.217773f, 0.46582f, -0.237549f, 0.454102f, -0.257324f, 0.43457f, -0.27002f,
+0.415039f, -0.282715f, 0.38916f, -0.290771f, 0.363281f, -0.298828f, 0.334961f, -0.306152f,
+0.334961f, -0.0761719f, 0.366699f, -0.078125f, 0.392822f, -0.0854492f, 0.418945f,
+-0.0927734f, 0.437744f, -0.106445f, 0.456543f, -0.120117f, 0.467041f, -0.140137f,
+0.477539f, -0.160156f, 0.477539f, -0.187012f, 0.10791f, 0, 0.0371094f, 0, 0.492188f,
+-0.660645f, 0.563965f, -0.660645f, 0.14209f, -0.664551f, 0.17041f, -0.664551f, 0.195557f,
+-0.656982f, 0.220703f, -0.649414f, 0.239502f, -0.630615f, 0.258301f, -0.611816f,
+0.269287f, -0.580322f, 0.280273f, -0.548828f, 0.280273f, -0.500488f, 0.280273f, -0.453613f,
+0.269287f, -0.421875f, 0.258301f, -0.390137f, 0.239258f, -0.370605f, 0.220215f, -0.351074f,
+0.194824f, -0.342529f, 0.169434f, -0.333984f, 0.140137f, -0.333984f, 0.11084f, -0.333984f,
+0.0852051f, -0.342529f, 0.0595703f, -0.351074f, 0.0405273f, -0.370361f, 0.0214844f,
+-0.389648f, 0.0107422f, -0.421631f, 0, -0.453613f, 0, -0.500488f, 0, -0.548828f,
+0.0109863f, -0.580322f, 0.0219727f, -0.611816f, 0.0410156f, -0.630615f, 0.0600586f,
+-0.649414f, 0.0859375f, -0.656982f, 0.111816f, -0.664551f, 0.14209f, -0.664551f,
+0.208496f, -0.500488f, 0.208496f, -0.532715f, 0.204102f, -0.554199f, 0.199707f, -0.575684f,
+0.191162f, -0.588623f, 0.182617f, -0.601562f, 0.170166f, -0.606689f, 0.157715f, -0.611816f,
+0.141602f, -0.611816f, 0.124512f, -0.611816f, 0.111328f, -0.606445f, 0.0981445f,
+-0.601074f, 0.0893555f, -0.588135f, 0.0805664f, -0.575195f, 0.0761719f, -0.553955f,
+0.0717773f, -0.532715f, 0.0717773f, -0.500488f, 0.0717773f, -0.469238f, 0.076416f,
+-0.447998f, 0.0810547f, -0.426758f, 0.0898438f, -0.413574f, 0.0986328f, -0.400391f,
+0.111572f, -0.394775f, 0.124512f, -0.38916f, 0.141113f, -0.38916f, 0.156738f, -0.38916f,
+0.169189f, -0.394775f, 0.181641f, -0.400391f, 0.19043f, -0.413574f, 0.199219f, -0.426758f,
+0.203857f, -0.447998f, 0.208496f, -0.469238f, 0.208496f, -0.500488f, 0.462402f, -0.324707f,
+0.490723f, -0.324707f, 0.515869f, -0.317139f, 0.541016f, -0.30957f, 0.559814f, -0.290771f,
+0.578613f, -0.271973f, 0.5896f, -0.240479f, 0.600586f, -0.208984f, 0.600586f, -0.160645f,
+0.600586f, -0.11377f, 0.5896f, -0.0820312f, 0.578613f, -0.050293f, 0.55957f, -0.0307617f,
+0.540527f, -0.0112305f, 0.515137f, -0.00268555f, 0.489746f, 0.00585938f, 0.460449f,
+0.00585938f, 0.431152f, 0.00585938f, 0.405518f, -0.00268555f, 0.379883f, -0.0112305f,
+0.36084f, -0.0305176f, 0.341797f, -0.0498047f, 0.331055f, -0.0817871f, 0.320312f,
+-0.11377f, 0.320312f, -0.160645f, 0.320312f, -0.208984f, 0.331299f, -0.240479f, 0.342285f,
+-0.271973f, 0.361328f, -0.290771f, 0.380371f, -0.30957f, 0.40625f, -0.317139f, 0.432129f,
+-0.324707f, 0.462402f, -0.324707f, 0.528809f, -0.160645f, 0.528809f, -0.192871f,
+0.524414f, -0.214355f, 0.52002f, -0.23584f, 0.511475f, -0.248779f, 0.50293f, -0.261719f,
+0.490479f, -0.266846f, 0.478027f, -0.271973f, 0.461914f, -0.271973f, 0.444824f, -0.271973f,
+0.431641f, -0.266602f, 0.418457f, -0.26123f, 0.409668f, -0.248291f, 0.400879f, -0.235352f,
+0.396484f, -0.214111f, 0.39209f, -0.192871f, 0.39209f, -0.160645f, 0.39209f, -0.129395f,
+0.396729f, -0.108154f, 0.401367f, -0.0869141f, 0.410156f, -0.0737305f, 0.418945f,
+-0.0605469f, 0.431885f, -0.0549316f, 0.444824f, -0.0493164f, 0.461426f, -0.0493164f,
+0.477051f, -0.0493164f, 0.489502f, -0.0549316f, 0.501953f, -0.0605469f, 0.510742f,
+-0.0737305f, 0.519531f, -0.0869141f, 0.52417f, -0.108154f, 0.528809f, -0.129395f,
+0.528809f, -0.160645f, 0.523438f, 0.00585938f, 0.503418f, 0.00585938f, 0.484863f,
+0.000732422f, 0.466309f, -0.00439453f, 0.449951f, -0.0129395f, 0.433594f, -0.0214844f,
+0.419434f, -0.032959f, 0.405273f, -0.0444336f, 0.394531f, -0.0571289f, 0.380859f,
+-0.0449219f, 0.363525f, -0.0327148f, 0.346191f, -0.0205078f, 0.325195f, -0.0112305f,
+0.304199f, -0.00195312f, 0.279053f, 0.00390625f, 0.253906f, 0.00976562f, 0.225098f,
+0.00976562f, 0.171875f, 0.00976562f, 0.133301f, -0.00439453f, 0.0947266f, -0.0185547f,
+0.0698242f, -0.043457f, 0.0449219f, -0.0683594f, 0.032959f, -0.102051f, 0.0209961f,
+-0.135742f, 0.0209961f, -0.174805f, 0.0209961f, -0.212402f, 0.0319824f, -0.243164f,
+0.0429688f, -0.273926f, 0.0620117f, -0.299072f, 0.0810547f, -0.324219f, 0.107178f,
+-0.343994f, 0.133301f, -0.36377f, 0.163574f, -0.379395f, 0.15625f, -0.393066f, 0.149658f,
+-0.409668f, 0.143066f, -0.42627f, 0.137939f, -0.444092f, 0.132812f, -0.461914f, 0.129883f,
+-0.480469f, 0.126953f, -0.499023f, 0.126953f, -0.51709f, 0.126953f, -0.547363f, 0.137451f,
+-0.573975f, 0.147949f, -0.600586f, 0.169189f, -0.620361f, 0.19043f, -0.640137f, 0.222656f,
+-0.651367f, 0.254883f, -0.662598f, 0.29834f, -0.662598f, 0.332031f, -0.662598f, 0.36084f,
+-0.654053f, 0.389648f, -0.645508f, 0.410645f, -0.628906f, 0.431641f, -0.612305f,
+0.443359f, -0.587891f, 0.455078f, -0.563477f, 0.455078f, -0.532227f, 0.455078f, -0.497559f,
+0.438477f, -0.471191f, 0.421875f, -0.444824f, 0.394043f, -0.423828f, 0.366211f, -0.402832f,
+0.330322f, -0.385742f, 0.294434f, -0.368652f, 0.256348f, -0.352539f, 0.271484f, -0.326172f,
+0.286621f, -0.301758f, 0.301758f, -0.277344f, 0.318359f, -0.253906f, 0.334961f, -0.230469f,
+0.353027f, -0.207764f, 0.371094f, -0.185059f, 0.391602f, -0.162598f, 0.412109f, -0.205078f,
+0.42749f, -0.253418f, 0.442871f, -0.301758f, 0.452637f, -0.36084f, 0.523438f, -0.339844f,
+0.510742f, -0.271973f, 0.489502f, -0.216064f, 0.468262f, -0.160156f, 0.444336f, -0.114258f,
+0.465332f, -0.0878906f, 0.489014f, -0.0754395f, 0.512695f, -0.0629883f, 0.532227f,
+-0.0629883f, 0.544922f, -0.0629883f, 0.556641f, -0.0646973f, 0.568359f, -0.0664062f,
+0.578613f, -0.0708008f, 0.578613f, -0.00488281f, 0.566895f, 0.000488281f, 0.553223f,
+0.00317383f, 0.539551f, 0.00585938f, 0.523438f, 0.00585938f, 0.380859f, -0.529785f,
+0.380859f, -0.546387f, 0.375f, -0.560059f, 0.369141f, -0.57373f, 0.358154f, -0.583252f,
+0.347168f, -0.592773f, 0.331543f, -0.598145f, 0.315918f, -0.603516f, 0.296875f, -0.603516f,
+0.275391f, -0.603516f, 0.257568f, -0.597412f, 0.239746f, -0.591309f, 0.226807f, -0.580078f,
+0.213867f, -0.568848f, 0.206543f, -0.55249f, 0.199219f, -0.536133f, 0.199219f, -0.515625f,
+0.199219f, -0.483887f, 0.208496f, -0.455566f, 0.217773f, -0.427246f, 0.229004f, -0.40625f,
+0.260254f, -0.419434f, 0.287842f, -0.431641f, 0.31543f, -0.443848f, 0.336182f, -0.458008f,
+0.356934f, -0.472168f, 0.368896f, -0.489502f, 0.380859f, -0.506836f, 0.380859f, -0.529785f,
+0.344727f, -0.105957f, 0.30127f, -0.154785f, 0.261963f, -0.209717f, 0.222656f, -0.264648f,
+0.19043f, -0.321289f, 0.148926f, -0.298828f, 0.125977f, -0.262451f, 0.103027f, -0.226074f,
+0.103027f, -0.176758f, 0.103027f, -0.151367f, 0.11084f, -0.128906f, 0.118652f, -0.106445f,
+0.134277f, -0.0898438f, 0.149902f, -0.0732422f, 0.173584f, -0.0637207f, 0.197266f,
+-0.0541992f, 0.229004f, -0.0541992f, 0.248047f, -0.0541992f, 0.265381f, -0.0588379f,
+0.282715f, -0.0634766f, 0.297363f, -0.0708008f, 0.312012f, -0.078125f, 0.323975f,
+-0.0874023f, 0.335938f, -0.0966797f, 0.344727f, -0.105957f, 0.333984f, -0.412598f,
+0.265137f, -0.412598f, 0.245117f, -0.724609f, 0.354492f, -0.724609f, 0.258301f, -0.258789f,
+0.258301f, -0.191406f, 0.268311f, -0.131836f, 0.27832f, -0.0722656f, 0.299805f, -0.0161133f,
+0.321289f, 0.0400391f, 0.354736f, 0.0949707f, 0.388184f, 0.149902f, 0.435059f, 0.20752f,
+0.342285f, 0.20752f, 0.297363f, 0.152344f, 0.264404f, 0.098877f, 0.231445f, 0.0454102f,
+0.209717f, -0.0107422f, 0.187988f, -0.0668945f, 0.17749f, -0.128174f, 0.166992f,
+-0.189453f, 0.166992f, -0.259766f, 0.166992f, -0.330078f, 0.17749f, -0.390869f, 0.187988f,
+-0.45166f, 0.209717f, -0.507568f, 0.231445f, -0.563477f, 0.264404f, -0.616455f, 0.297363f,
+-0.669434f, 0.342285f, -0.724609f, 0.435059f, -0.724609f, 0.388184f, -0.666992f,
+0.354736f, -0.612061f, 0.321289f, -0.557129f, 0.299805f, -0.500977f, 0.27832f, -0.444824f,
+0.268311f, -0.385254f, 0.258301f, -0.325684f, 0.258301f, -0.258789f, 0.432129f, -0.259766f,
+0.432129f, -0.189453f, 0.421875f, -0.128174f, 0.411621f, -0.0668945f, 0.390137f,
+-0.0107422f, 0.368652f, 0.0454102f, 0.335693f, 0.098877f, 0.302734f, 0.152344f, 0.257812f,
+0.20752f, 0.164062f, 0.20752f, 0.210938f, 0.149902f, 0.244629f, 0.0949707f, 0.27832f,
+0.0400391f, 0.299805f, -0.0161133f, 0.321289f, -0.0722656f, 0.331543f, -0.131836f,
+0.341797f, -0.191406f, 0.341797f, -0.258789f, 0.341797f, -0.325684f, 0.331543f, -0.385254f,
+0.321289f, -0.444824f, 0.299805f, -0.500977f, 0.27832f, -0.557129f, 0.244629f, -0.612061f,
+0.210938f, -0.666992f, 0.164062f, -0.724609f, 0.257812f, -0.724609f, 0.302734f, -0.669434f,
+0.335693f, -0.616455f, 0.368652f, -0.563477f, 0.390137f, -0.507568f, 0.411621f, -0.45166f,
+0.421875f, -0.390869f, 0.432129f, -0.330078f, 0.432129f, -0.259766f, 0.327637f, -0.580078f,
+0.456543f, -0.630371f, 0.478516f, -0.565918f, 0.34082f, -0.530273f, 0.431152f, -0.408203f,
+0.373047f, -0.373047f, 0.299805f, -0.499023f, 0.223633f, -0.374023f, 0.165527f, -0.40918f,
+0.257812f, -0.530273f, 0.121094f, -0.565918f, 0.143066f, -0.631348f, 0.273438f, -0.579102f,
+0.267578f, -0.724121f, 0.333984f, -0.724121f, 0.335449f, -0.296875f, 0.335449f, -0.0878906f,
+0.263672f, -0.0878906f, 0.263672f, -0.296875f, 0.0566406f, -0.296875f, 0.0566406f,
+-0.368164f, 0.263672f, -0.368164f, 0.263672f, -0.577148f, 0.335449f, -0.577148f,
+0.335449f, -0.368164f, 0.54248f, -0.368164f, 0.54248f, -0.296875f, 0.126465f, 0.177246f,
+0.208984f, -0.145996f, 0.338379f, -0.145996f, 0.186523f, 0.177246f, 0.163086f, -0.226562f,
+0.163086f, -0.304688f, 0.436523f, -0.304688f, 0.436523f, -0.226562f, 0.242188f, 0,
+0.242188f, -0.145996f, 0.356934f, -0.145996f, 0.356934f, 0, 0.0556641f, 0.00976562f,
+0.456543f, -0.724609f, 0.543457f, -0.724609f, 0.144531f, 0.00976562f, 0.538574f,
+-0.32959f, 0.538574f, -0.234375f, 0.519775f, -0.169678f, 0.500977f, -0.10498f, 0.468506f,
+-0.0649414f, 0.436035f, -0.0249023f, 0.39209f, -0.00756836f, 0.348145f, 0.00976562f,
+0.29834f, 0.00976562f, 0.248047f, 0.00976562f, 0.20459f, -0.00756836f, 0.161133f,
+-0.0249023f, 0.12915f, -0.0646973f, 0.097168f, -0.104492f, 0.0788574f, -0.169434f,
+0.0605469f, -0.234375f, 0.0605469f, -0.32959f, 0.0605469f, -0.429199f, 0.0788574f,
+-0.494629f, 0.097168f, -0.560059f, 0.129395f, -0.598877f, 0.161621f, -0.637695f,
+0.205566f, -0.65332f, 0.249512f, -0.668945f, 0.30127f, -0.668945f, 0.350586f, -0.668945f,
+0.393799f, -0.65332f, 0.437012f, -0.637695f, 0.469238f, -0.598877f, 0.501465f, -0.560059f,
+0.52002f, -0.494629f, 0.538574f, -0.429199f, 0.538574f, -0.32959f, 0.449219f, -0.32959f,
+0.449219f, -0.407227f, 0.439453f, -0.458984f, 0.429688f, -0.510742f, 0.410645f, -0.541504f,
+0.391602f, -0.572266f, 0.364014f, -0.584961f, 0.336426f, -0.597656f, 0.30127f, -0.597656f,
+0.26416f, -0.597656f, 0.23584f, -0.584717f, 0.20752f, -0.571777f, 0.188232f, -0.541016f,
+0.168945f, -0.510254f, 0.15918f, -0.45874f, 0.149414f, -0.407227f, 0.149414f, -0.32959f,
+0.149414f, -0.254395f, 0.159424f, -0.203125f, 0.169434f, -0.151855f, 0.188721f, -0.120605f,
+0.208008f, -0.0893555f, 0.23584f, -0.0756836f, 0.263672f, -0.0620117f, 0.299316f,
+-0.0620117f, 0.333984f, -0.0620117f, 0.361816f, -0.0756836f, 0.389648f, -0.0893555f,
+0.408936f, -0.120605f, 0.428223f, -0.151855f, 0.438721f, -0.203125f, 0.449219f, -0.254395f,
+0.449219f, -0.32959f, 0.0766602f, 0, 0.0766602f, -0.0708008f, 0.291016f, -0.0708008f,
+0.291016f, -0.569336f, 0.281738f, -0.549805f, 0.258301f, -0.532471f, 0.234863f, -0.515137f,
+0.204346f, -0.502441f, 0.173828f, -0.489746f, 0.13916f, -0.482178f, 0.104492f, -0.474609f,
+0.0722656f, -0.474609f, 0.0722656f, -0.546875f, 0.108398f, -0.546875f, 0.143311f,
+-0.555176f, 0.178223f, -0.563477f, 0.208496f, -0.578369f, 0.23877f, -0.593262f, 0.262207f,
+-0.61377f, 0.285645f, -0.634277f, 0.29834f, -0.658691f, 0.379395f, -0.658691f, 0.379395f,
+-0.0708008f, 0.551758f, -0.0708008f, 0.551758f, 0, 0.0703125f, 0, 0.0703125f, -0.0571289f,
+0.0917969f, -0.104492f, 0.126953f, -0.144531f, 0.162109f, -0.18457f, 0.201904f, -0.219971f,
+0.241699f, -0.255371f, 0.281982f, -0.287598f, 0.322266f, -0.319824f, 0.354736f, -0.351318f,
+0.387207f, -0.382812f, 0.407715f, -0.415283f, 0.428223f, -0.447754f, 0.428223f, -0.483887f,
+0.428223f, -0.513184f, 0.418701f, -0.534424f, 0.40918f, -0.555664f, 0.391846f, -0.56958f,
+0.374512f, -0.583496f, 0.35083f, -0.590088f, 0.327148f, -0.59668f, 0.29834f, -0.59668f,
+0.271973f, -0.59668f, 0.249268f, -0.589355f, 0.226562f, -0.582031f, 0.209473f, -0.567383f,
+0.192383f, -0.552734f, 0.181641f, -0.531006f, 0.170898f, -0.509277f, 0.16748f, -0.480469f,
+0.0776367f, -0.48877f, 0.0820312f, -0.525879f, 0.0976562f, -0.558594f, 0.113281f,
+-0.591309f, 0.140381f, -0.615967f, 0.16748f, -0.640625f, 0.207031f, -0.654785f, 0.246582f,
+-0.668945f, 0.29834f, -0.668945f, 0.349609f, -0.668945f, 0.390381f, -0.657227f, 0.431152f,
+-0.645508f, 0.459717f, -0.622803f, 0.488281f, -0.600098f, 0.503418f, -0.566406f,
+0.518555f, -0.532715f, 0.518555f, -0.489258f, 0.518555f, -0.443359f, 0.497559f, -0.404053f,
+0.476562f, -0.364746f, 0.443604f, -0.32959f, 0.410645f, -0.294434f, 0.370605f, -0.262695f,
+0.330566f, -0.230957f, 0.29248f, -0.199707f, 0.254395f, -0.168457f, 0.223145f, -0.136963f,
+0.191895f, -0.105469f, 0.17627f, -0.0712891f, 0.529297f, -0.0712891f, 0.529297f,
+0, 0.536621f, -0.180664f, 0.536621f, -0.13623f, 0.52124f, -0.10083f, 0.505859f, -0.0654297f,
+0.476318f, -0.0410156f, 0.446777f, -0.0166016f, 0.40332f, -0.00341797f, 0.359863f,
+0.00976562f, 0.303223f, 0.00976562f, 0.239746f, 0.00976562f, 0.195801f, -0.00610352f,
+0.151855f, -0.0219727f, 0.123535f, -0.0480957f, 0.0952148f, -0.0742188f, 0.0810547f,
+-0.107666f, 0.0668945f, -0.141113f, 0.0625f, -0.176758f, 0.15332f, -0.185059f, 0.157227f,
+-0.157715f, 0.167725f, -0.135254f, 0.178223f, -0.112793f, 0.196289f, -0.0966797f,
+0.214355f, -0.0805664f, 0.240967f, -0.0717773f, 0.267578f, -0.0629883f, 0.303223f,
+-0.0629883f, 0.369629f, -0.0629883f, 0.407471f, -0.09375f, 0.445312f, -0.124512f,
+0.445312f, -0.183594f, 0.445312f, -0.216797f, 0.428467f, -0.23877f, 0.411621f, -0.260742f,
+0.386475f, -0.273682f, 0.361328f, -0.286621f, 0.331787f, -0.291992f, 0.302246f, -0.297363f,
+0.277344f, -0.297363f, 0.227539f, -0.297363f, 0.227539f, -0.373535f, 0.275391f, -0.373535f,
+0.300293f, -0.373535f, 0.327148f, -0.379639f, 0.354004f, -0.385742f, 0.376221f, -0.39917f,
+0.398438f, -0.412598f, 0.412842f, -0.434326f, 0.427246f, -0.456055f, 0.427246f, -0.486816f,
+0.427246f, -0.538574f, 0.394775f, -0.567627f, 0.362305f, -0.59668f, 0.29834f, -0.59668f,
+0.240234f, -0.59668f, 0.204346f, -0.566895f, 0.168457f, -0.537109f, 0.162598f, -0.48291f,
+0.0742188f, -0.489746f, 0.0795898f, -0.535156f, 0.0991211f, -0.568848f, 0.118652f,
+-0.602539f, 0.148682f, -0.624756f, 0.178711f, -0.646973f, 0.217285f, -0.657959f,
+0.255859f, -0.668945f, 0.299316f, -0.668945f, 0.357422f, -0.668945f, 0.398682f, -0.655273f,
+0.439941f, -0.641602f, 0.466309f, -0.618164f, 0.492676f, -0.594727f, 0.505127f, -0.563232f,
+0.517578f, -0.531738f, 0.517578f, -0.496094f, 0.517578f, -0.469238f, 0.508545f, -0.444092f,
+0.499512f, -0.418945f, 0.481689f, -0.397949f, 0.463867f, -0.376953f, 0.436768f, -0.361328f,
+0.409668f, -0.345703f, 0.373535f, -0.338379f, 0.373535f, -0.336426f, 0.413574f, -0.332031f,
+0.444092f, -0.317383f, 0.474609f, -0.302734f, 0.495117f, -0.281494f, 0.515625f, -0.260254f,
+0.526123f, -0.234375f, 0.536621f, -0.208496f, 0.536621f, -0.180664f, 0.45752f, -0.155762f,
+0.45752f, 0, 0.369629f, 0, 0.369629f, -0.155762f, 0.050293f, -0.155762f, 0.050293f,
+-0.224121f, 0.360352f, -0.658691f, 0.45752f, -0.658691f, 0.45752f, -0.225098f, 0.549316f,
+-0.225098f, 0.549316f, -0.155762f, 0.369629f, -0.563477f, 0.125488f, -0.225098f,
+0.369629f, -0.225098f, 0.536621f, -0.216797f, 0.536621f, -0.167969f, 0.520996f, -0.126221f,
+0.505371f, -0.0844727f, 0.474609f, -0.0544434f, 0.443848f, -0.0244141f, 0.398193f,
+-0.00732422f, 0.352539f, 0.00976562f, 0.29248f, 0.00976562f, 0.238281f, 0.00976562f,
+0.197998f, -0.00292969f, 0.157715f, -0.015625f, 0.129883f, -0.0378418f, 0.102051f,
+-0.0600586f, 0.0856934f, -0.0898438f, 0.0693359f, -0.119629f, 0.0625f, -0.153809f,
+0.151367f, -0.164062f, 0.156738f, -0.144531f, 0.166504f, -0.126221f, 0.17627f, -0.10791f,
+0.193115f, -0.0935059f, 0.209961f, -0.0791016f, 0.234619f, -0.0705566f, 0.259277f,
+-0.0620117f, 0.294434f, -0.0620117f, 0.328613f, -0.0620117f, 0.356445f, -0.0725098f,
+0.384277f, -0.0830078f, 0.404053f, -0.102539f, 0.423828f, -0.12207f, 0.43457f, -0.150635f,
+0.445312f, -0.179199f, 0.445312f, -0.214844f, 0.445312f, -0.244141f, 0.435059f, -0.269287f,
+0.424805f, -0.294434f, 0.405762f, -0.312988f, 0.386719f, -0.331543f, 0.359131f, -0.342041f,
+0.331543f, -0.352539f, 0.296387f, -0.352539f, 0.274414f, -0.352539f, 0.255859f, -0.348633f,
+0.237305f, -0.344727f, 0.221436f, -0.337891f, 0.205566f, -0.331055f, 0.192627f, -0.322021f,
+0.179688f, -0.312988f, 0.168457f, -0.303223f, 0.0825195f, -0.303223f, 0.105469f,
+-0.658691f, 0.496582f, -0.658691f, 0.496582f, -0.587891f, 0.186523f, -0.587891f,
+0.172363f, -0.380371f, 0.195801f, -0.398438f, 0.230957f, -0.411377f, 0.266113f, -0.424316f,
+0.314453f, -0.424316f, 0.365723f, -0.424316f, 0.406738f, -0.408691f, 0.447754f, -0.393066f,
+0.476562f, -0.365479f, 0.505371f, -0.337891f, 0.520996f, -0.299805f, 0.536621f, -0.261719f,
+0.536621f, -0.216797f, 0.535156f, -0.217773f, 0.535156f, -0.168945f, 0.520752f, -0.127197f,
+0.506348f, -0.0854492f, 0.478271f, -0.0549316f, 0.450195f, -0.0244141f, 0.408691f,
+-0.00732422f, 0.367188f, 0.00976562f, 0.312988f, 0.00976562f, 0.25293f, 0.00976562f,
+0.208008f, -0.0129395f, 0.163086f, -0.0356445f, 0.133301f, -0.0776367f, 0.103516f,
+-0.119629f, 0.088623f, -0.179443f, 0.0737305f, -0.239258f, 0.0737305f, -0.313477f,
+0.0737305f, -0.399902f, 0.0905762f, -0.466309f, 0.107422f, -0.532715f, 0.13916f,
+-0.577637f, 0.170898f, -0.622559f, 0.216553f, -0.645752f, 0.262207f, -0.668945f,
+0.319824f, -0.668945f, 0.35498f, -0.668945f, 0.385742f, -0.661621f, 0.416504f, -0.654297f,
+0.44165f, -0.637939f, 0.466797f, -0.621582f, 0.48584f, -0.594727f, 0.504883f, -0.567871f,
+0.516113f, -0.528809f, 0.432129f, -0.513672f, 0.418457f, -0.558105f, 0.388428f, -0.577881f,
+0.358398f, -0.597656f, 0.318848f, -0.597656f, 0.282715f, -0.597656f, 0.253418f, -0.580811f,
+0.224121f, -0.563965f, 0.203613f, -0.53125f, 0.183105f, -0.498535f, 0.172119f, -0.450439f,
+0.161133f, -0.402344f, 0.161133f, -0.339355f, 0.185059f, -0.383789f, 0.228516f, -0.406982f,
+0.271973f, -0.430176f, 0.328125f, -0.430176f, 0.375f, -0.430176f, 0.41333f, -0.415039f,
+0.45166f, -0.399902f, 0.47876f, -0.37207f, 0.505859f, -0.344238f, 0.520508f, -0.305176f,
+0.535156f, -0.266113f, 0.535156f, -0.217773f, 0.445801f, -0.213867f, 0.445801f, -0.246582f,
+0.437012f, -0.273926f, 0.428223f, -0.30127f, 0.410645f, -0.320801f, 0.393066f, -0.340332f,
+0.367188f, -0.351318f, 0.341309f, -0.362305f, 0.307129f, -0.362305f, 0.283203f, -0.362305f,
+0.258789f, -0.354248f, 0.234375f, -0.346191f, 0.2146f, -0.330322f, 0.194824f, -0.314453f,
+0.182373f, -0.290527f, 0.169922f, -0.266602f, 0.169922f, -0.234863f, 0.169922f, -0.199707f,
+0.179688f, -0.168213f, 0.189453f, -0.136719f, 0.207764f, -0.112793f, 0.226074f, -0.0888672f,
+0.251953f, -0.0749512f, 0.277832f, -0.0610352f, 0.310059f, -0.0610352f, 0.341797f,
+-0.0610352f, 0.366943f, -0.0720215f, 0.39209f, -0.0830078f, 0.409668f, -0.103027f,
+0.427246f, -0.123047f, 0.436523f, -0.151367f, 0.445801f, -0.179688f, 0.445801f, -0.213867f,
+0.521973f, -0.59082f, 0.475098f, -0.523438f, 0.43335f, -0.45166f, 0.391602f, -0.379883f,
+0.359863f, -0.30542f, 0.328125f, -0.230957f, 0.30957f, -0.154297f, 0.291016f, -0.0776367f,
+0.291016f, 0, 0.199219f, 0, 0.199219f, -0.0771484f, 0.21875f, -0.154053f, 0.238281f,
+-0.230957f, 0.270996f, -0.305664f, 0.303711f, -0.380371f, 0.34668f, -0.45166f, 0.389648f,
+-0.522949f, 0.437012f, -0.587891f, 0.0771484f, -0.587891f, 0.0771484f, -0.658691f,
+0.521973f, -0.658691f, 0.53418f, -0.18457f, 0.53418f, -0.143555f, 0.520264f, -0.108154f,
+0.506348f, -0.0727539f, 0.477783f, -0.0463867f, 0.449219f, -0.0200195f, 0.405029f,
+-0.00512695f, 0.36084f, 0.00976562f, 0.299805f, 0.00976562f, 0.239258f, 0.00976562f,
+0.195068f, -0.00512695f, 0.150879f, -0.0200195f, 0.121826f, -0.0461426f, 0.0927734f,
+-0.0722656f, 0.0788574f, -0.107666f, 0.0649414f, -0.143066f, 0.0649414f, -0.183594f,
+0.0649414f, -0.218262f, 0.076416f, -0.246338f, 0.0878906f, -0.274414f, 0.107178f,
+-0.294922f, 0.126465f, -0.31543f, 0.151123f, -0.328125f, 0.175781f, -0.34082f, 0.202148f,
+-0.345215f, 0.202148f, -0.347168f, 0.17334f, -0.354004f, 0.150635f, -0.369141f, 0.12793f,
+-0.384277f, 0.112549f, -0.404785f, 0.097168f, -0.425293f, 0.0891113f, -0.449707f,
+0.0810547f, -0.474121f, 0.0810547f, -0.5f, 0.0810547f, -0.533203f, 0.0949707f, -0.563721f,
+0.108887f, -0.594238f, 0.13623f, -0.617676f, 0.163574f, -0.641113f, 0.204102f, -0.655029f,
+0.244629f, -0.668945f, 0.297852f, -0.668945f, 0.354004f, -0.668945f, 0.395264f, -0.654785f,
+0.436523f, -0.640625f, 0.463623f, -0.617188f, 0.490723f, -0.59375f, 0.503906f, -0.562988f,
+0.51709f, -0.532227f, 0.51709f, -0.499023f, 0.51709f, -0.473633f, 0.509033f, -0.449219f,
+0.500977f, -0.424805f, 0.485596f, -0.404297f, 0.470215f, -0.383789f, 0.44751f, -0.368896f,
+0.424805f, -0.354004f, 0.39502f, -0.348145f, 0.39502f, -0.346191f, 0.424805f, -0.341309f,
+0.450195f, -0.328369f, 0.475586f, -0.31543f, 0.494385f, -0.294922f, 0.513184f, -0.274414f,
+0.523682f, -0.246826f, 0.53418f, -0.219238f, 0.53418f, -0.18457f, 0.425781f, -0.494141f,
+0.425781f, -0.51709f, 0.419189f, -0.537109f, 0.412598f, -0.557129f, 0.397461f, -0.571777f,
+0.382324f, -0.586426f, 0.35791f, -0.594971f, 0.333496f, -0.603516f, 0.297852f, -0.603516f,
+0.263672f, -0.603516f, 0.239502f, -0.594971f, 0.215332f, -0.586426f, 0.199951f, -0.571777f,
+0.18457f, -0.557129f, 0.177734f, -0.537109f, 0.170898f, -0.51709f, 0.170898f, -0.494141f,
+0.170898f, -0.476074f, 0.17627f, -0.456055f, 0.181641f, -0.436035f, 0.195801f, -0.419189f,
+0.209961f, -0.402344f, 0.234863f, -0.391357f, 0.259766f, -0.380371f, 0.298828f, -0.380371f,
+0.34082f, -0.380371f, 0.365723f, -0.391602f, 0.390625f, -0.402832f, 0.404053f, -0.419678f,
+0.41748f, -0.436523f, 0.421631f, -0.456543f, 0.425781f, -0.476562f, 0.425781f, -0.494141f,
+0.442871f, -0.192871f, 0.442871f, -0.214844f, 0.436035f, -0.236572f, 0.429199f, -0.258301f,
+0.412598f, -0.275635f, 0.395996f, -0.292969f, 0.36792f, -0.303711f, 0.339844f, -0.314453f,
+0.297852f, -0.314453f, 0.259277f, -0.314453f, 0.232178f, -0.303711f, 0.205078f, -0.292969f,
+0.188232f, -0.275391f, 0.171387f, -0.257812f, 0.163574f, -0.23584f, 0.155762f, -0.213867f,
+0.155762f, -0.190918f, 0.155762f, -0.162109f, 0.163574f, -0.137451f, 0.171387f, -0.112793f,
+0.188477f, -0.0947266f, 0.205566f, -0.0766602f, 0.233398f, -0.0664062f, 0.26123f,
+-0.0561523f, 0.300781f, -0.0561523f, 0.341309f, -0.0561523f, 0.368408f, -0.0661621f,
+0.395508f, -0.0761719f, 0.412109f, -0.0944824f, 0.428711f, -0.112793f, 0.435791f,
+-0.137939f, 0.442871f, -0.163086f, 0.442871f, -0.192871f, 0.530762f, -0.343262f,
+0.530762f, -0.256836f, 0.513672f, -0.190918f, 0.496582f, -0.125f, 0.464355f, -0.0803223f,
+0.432129f, -0.0356445f, 0.385986f, -0.0129395f, 0.339844f, 0.00976562f, 0.281738f,
+0.00976562f, 0.242188f, 0.00976562f, 0.210449f, 0.00170898f, 0.178711f, -0.00634766f,
+0.153809f, -0.0234375f, 0.128906f, -0.0405273f, 0.111328f, -0.0678711f, 0.09375f,
+-0.0952148f, 0.0830078f, -0.133789f, 0.166992f, -0.146973f, 0.180664f, -0.102539f,
+0.209717f, -0.0817871f, 0.23877f, -0.0610352f, 0.283203f, -0.0610352f, 0.319336f,
+-0.0610352f, 0.348633f, -0.0776367f, 0.37793f, -0.0942383f, 0.398682f, -0.126465f,
+0.419434f, -0.158691f, 0.431396f, -0.206543f, 0.443359f, -0.254395f, 0.443848f, -0.317383f,
+0.433594f, -0.294434f, 0.415771f, -0.276367f, 0.397949f, -0.258301f, 0.375244f, -0.24585f,
+0.352539f, -0.233398f, 0.326416f, -0.226807f, 0.300293f, -0.220215f, 0.272949f, -0.220215f,
+0.226074f, -0.220215f, 0.188232f, -0.236816f, 0.150391f, -0.253418f, 0.124023f, -0.283203f,
+0.0976562f, -0.312988f, 0.083252f, -0.354248f, 0.0688477f, -0.395508f, 0.0688477f,
+-0.444824f, 0.0688477f, -0.495605f, 0.0842285f, -0.536865f, 0.0996094f, -0.578125f,
+0.128906f, -0.607422f, 0.158203f, -0.636719f, 0.200928f, -0.652832f, 0.243652f, -0.668945f,
+0.297852f, -0.668945f, 0.413086f, -0.668945f, 0.471924f, -0.587891f, 0.530762f, -0.506836f,
+0.530762f, -0.343262f, 0.435059f, -0.420898f, 0.435059f, -0.456543f, 0.426025f, -0.488525f,
+0.416992f, -0.520508f, 0.39917f, -0.544678f, 0.381348f, -0.568848f, 0.355225f, -0.583252f,
+0.329102f, -0.597656f, 0.294922f, -0.597656f, 0.263184f, -0.597656f, 0.237793f, -0.58667f,
+0.212402f, -0.575684f, 0.194824f, -0.55542f, 0.177246f, -0.535156f, 0.167725f, -0.50708f,
+0.158203f, -0.479004f, 0.158203f, -0.444824f, 0.158203f, -0.412598f, 0.166748f, -0.384521f,
+0.175293f, -0.356445f, 0.192383f, -0.335205f, 0.209473f, -0.313965f, 0.234863f, -0.301758f,
+0.260254f, -0.289551f, 0.293945f, -0.289551f, 0.318359f, -0.289551f, 0.343506f, -0.297852f,
+0.368652f, -0.306152f, 0.388916f, -0.32251f, 0.40918f, -0.338867f, 0.422119f, -0.363525f,
+0.435059f, -0.388184f, 0.435059f, -0.420898f, 0.242188f, 0, 0.242188f, -0.145996f,
+0.356934f, -0.145996f, 0.356934f, 0, 0.242188f, -0.382324f, 0.242188f, -0.52832f,
+0.356934f, -0.52832f, 0.356934f, -0.382324f, 0.242188f, -0.382324f, 0.242188f, -0.52832f,
+0.356934f, -0.52832f, 0.356934f, -0.382324f, 0.171875f, 0.177246f, 0.254395f, -0.145996f,
+0.383789f, -0.145996f, 0.231934f, 0.177246f, 0.0566406f, -0.278809f, 0.0566406f,
+-0.378906f, 0.54248f, -0.583008f, 0.54248f, -0.507812f, 0.123535f, -0.329102f, 0.54248f,
+-0.149902f, 0.54248f, -0.0751953f, 0.0566406f, -0.417969f, 0.0566406f, -0.490234f,
+0.54248f, -0.490234f, 0.54248f, -0.417969f, 0.0566406f, -0.167969f, 0.0566406f, -0.240234f,
+0.54248f, -0.240234f, 0.54248f, -0.167969f, 0.0566406f, -0.0751953f, 0.0566406f,
+-0.149902f, 0.475586f, -0.329102f, 0.0566406f, -0.507812f, 0.0566406f, -0.583008f,
+0.54248f, -0.378906f, 0.54248f, -0.278809f, 0.523926f, -0.489258f, 0.523926f, -0.455566f,
+0.514893f, -0.430176f, 0.505859f, -0.404785f, 0.490723f, -0.384766f, 0.475586f, -0.364746f,
+0.456299f, -0.348633f, 0.437012f, -0.33252f, 0.416992f, -0.318115f, 0.396973f, -0.303711f,
+0.377686f, -0.289307f, 0.358398f, -0.274902f, 0.343018f, -0.258301f, 0.327637f, -0.241699f,
+0.318115f, -0.221436f, 0.308594f, -0.201172f, 0.308105f, -0.174316f, 0.222656f, -0.174316f,
+0.223633f, -0.207031f, 0.233154f, -0.231934f, 0.242676f, -0.256836f, 0.257812f, -0.276611f,
+0.272949f, -0.296387f, 0.291992f, -0.312256f, 0.311035f, -0.328125f, 0.330566f, -0.342529f,
+0.350098f, -0.356934f, 0.368896f, -0.371338f, 0.387695f, -0.385742f, 0.402344f, -0.402344f,
+0.416992f, -0.418945f, 0.426025f, -0.439209f, 0.435059f, -0.459473f, 0.435059f, -0.485352f,
+0.435059f, -0.512207f, 0.425049f, -0.532715f, 0.415039f, -0.553223f, 0.39624f, -0.567139f,
+0.377441f, -0.581055f, 0.35083f, -0.588379f, 0.324219f, -0.595703f, 0.291016f, -0.595703f,
+0.257812f, -0.595703f, 0.230713f, -0.586426f, 0.203613f, -0.577148f, 0.183594f, -0.559814f,
+0.163574f, -0.54248f, 0.151367f, -0.517822f, 0.13916f, -0.493164f, 0.135742f, -0.462891f,
+0.0458984f, -0.46875f, 0.0517578f, -0.512695f, 0.0698242f, -0.549561f, 0.0878906f,
+-0.586426f, 0.118652f, -0.612793f, 0.149414f, -0.63916f, 0.192383f, -0.654053f, 0.235352f,
+-0.668945f, 0.290039f, -0.668945f, 0.342773f, -0.668945f, 0.385986f, -0.657227f,
+0.429199f, -0.645508f, 0.459961f, -0.622803f, 0.490723f, -0.600098f, 0.507324f, -0.56665f,
+0.523926f, -0.533203f, 0.523926f, -0.489258f, 0.21875f, 0, 0.21875f, -0.0981445f,
+0.313965f, -0.0981445f, 0.313965f, 0, 0.580566f, -0.368652f, 0.580566f, -0.29834f,
+0.570557f, -0.23999f, 0.560547f, -0.181641f, 0.541504f, -0.139648f, 0.522461f, -0.0976562f,
+0.494629f, -0.0742188f, 0.466797f, -0.0507812f, 0.431641f, -0.0507812f, 0.416992f,
+-0.0507812f, 0.404297f, -0.0546875f, 0.391602f, -0.0585938f, 0.38208f, -0.067627f,
+0.372559f, -0.0766602f, 0.367188f, -0.0913086f, 0.361816f, -0.105957f, 0.361816f,
+-0.127441f, 0.361816f, -0.128418f, 0.361816f, -0.131104f, 0.361816f, -0.133789f,
+0.362061f, -0.136719f, 0.362305f, -0.139648f, 0.362549f, -0.14209f, 0.362793f, -0.144531f,
+0.362793f, -0.145996f, 0.359863f, -0.145996f, 0.352539f, -0.126953f, 0.341309f, -0.109619f,
+0.330078f, -0.0922852f, 0.315674f, -0.0791016f, 0.30127f, -0.065918f, 0.283447f,
+-0.0583496f, 0.265625f, -0.0507812f, 0.245117f, -0.0507812f, 0.214355f, -0.0507812f,
+0.193359f, -0.0666504f, 0.172363f, -0.0825195f, 0.159424f, -0.108643f, 0.146484f,
+-0.134766f, 0.140869f, -0.168701f, 0.135254f, -0.202637f, 0.135254f, -0.23877f, 0.135254f,
+-0.275879f, 0.140869f, -0.3125f, 0.146484f, -0.349121f, 0.157227f, -0.382324f, 0.167969f,
+-0.415527f, 0.183838f, -0.444092f, 0.199707f, -0.472656f, 0.219482f, -0.493408f,
+0.239258f, -0.51416f, 0.263184f, -0.525879f, 0.287109f, -0.537598f, 0.314453f, -0.537598f,
+0.334961f, -0.537598f, 0.350098f, -0.531006f, 0.365234f, -0.524414f, 0.375732f, -0.512939f,
+0.38623f, -0.501465f, 0.393066f, -0.486084f, 0.399902f, -0.470703f, 0.404297f, -0.453125f,
+0.406738f, -0.453125f, 0.422363f, -0.526855f, 0.479004f, -0.526855f, 0.430664f, -0.279297f,
+0.426758f, -0.258789f, 0.423096f, -0.239014f, 0.419434f, -0.219238f, 0.416748f, -0.201416f,
+0.414062f, -0.183594f, 0.412598f, -0.168701f, 0.411133f, -0.153809f, 0.411133f, -0.143555f,
+0.411133f, -0.118164f, 0.418213f, -0.109375f, 0.425293f, -0.100586f, 0.435059f, -0.100586f,
+0.45459f, -0.100586f, 0.470459f, -0.120117f, 0.486328f, -0.139648f, 0.497803f, -0.175049f,
+0.509277f, -0.210449f, 0.515381f, -0.259521f, 0.521484f, -0.308594f, 0.521484f, -0.367676f,
+0.521484f, -0.430664f, 0.508545f, -0.485352f, 0.495605f, -0.540039f, 0.470947f, -0.580566f,
+0.446289f, -0.621094f, 0.410156f, -0.644531f, 0.374023f, -0.667969f, 0.327148f, -0.667969f,
+0.268555f, -0.667969f, 0.2229f, -0.635254f, 0.177246f, -0.602539f, 0.14624f, -0.546143f,
+0.115234f, -0.489746f, 0.0991211f, -0.413574f, 0.0830078f, -0.337402f, 0.0830078f,
+-0.250977f, 0.0830078f, -0.176758f, 0.0974121f, -0.115723f, 0.111816f, -0.0546875f,
+0.138916f, -0.0109863f, 0.166016f, 0.0327148f, 0.205566f, 0.0566406f, 0.245117f,
+0.0805664f, 0.294922f, 0.0805664f, 0.32373f, 0.0805664f, 0.348633f, 0.0744629f, 0.373535f,
+0.0683594f, 0.395264f, 0.0581055f, 0.416992f, 0.0478516f, 0.436768f, 0.0336914f,
+0.456543f, 0.0195312f, 0.475098f, 0.00341797f, 0.509766f, 0.0458984f, 0.48877f, 0.0639648f,
+0.465088f, 0.0805664f, 0.441406f, 0.097168f, 0.414307f, 0.110107f, 0.387207f, 0.123047f,
+0.356445f, 0.130615f, 0.325684f, 0.138184f, 0.290039f, 0.138184f, 0.228027f, 0.138184f,
+0.178223f, 0.110596f, 0.128418f, 0.0830078f, 0.09375f, 0.0322266f, 0.059082f, -0.0185547f,
+0.0402832f, -0.090332f, 0.0214844f, -0.162109f, 0.0214844f, -0.250977f, 0.0214844f,
+-0.353027f, 0.0419922f, -0.439697f, 0.0625f, -0.526367f, 0.101807f, -0.589844f, 0.141113f,
+-0.65332f, 0.197998f, -0.688965f, 0.254883f, -0.724609f, 0.328125f, -0.724609f, 0.39209f,
+-0.724609f, 0.439697f, -0.695801f, 0.487305f, -0.666992f, 0.518555f, -0.618164f,
+0.549805f, -0.569336f, 0.565186f, -0.504883f, 0.580566f, -0.44043f, 0.580566f, -0.368652f,
+0.378418f, -0.382812f, 0.378418f, -0.43457f, 0.361328f, -0.461182f, 0.344238f, -0.487793f,
+0.31543f, -0.487793f, 0.297363f, -0.487793f, 0.281738f, -0.477051f, 0.266113f, -0.466309f,
+0.253418f, -0.447998f, 0.240723f, -0.429688f, 0.230957f, -0.405273f, 0.221191f, -0.380859f,
+0.2146f, -0.353271f, 0.208008f, -0.325684f, 0.20459f, -0.296631f, 0.201172f, -0.267578f,
+0.201172f, -0.239746f, 0.201172f, -0.210449f, 0.203857f, -0.185303f, 0.206543f, -0.160156f,
+0.213135f, -0.141846f, 0.219727f, -0.123535f, 0.230469f, -0.113037f, 0.241211f, -0.102539f,
+0.256836f, -0.102539f, 0.275879f, -0.102539f, 0.293213f, -0.115967f, 0.310547f, -0.129395f,
+0.324707f, -0.153809f, 0.338867f, -0.178223f, 0.350098f, -0.213135f, 0.361328f, -0.248047f,
+0.367676f, -0.290527f, 0.369141f, -0.299805f, 0.371094f, -0.3125f, 0.373047f, -0.325195f,
+0.374756f, -0.338379f, 0.376465f, -0.351562f, 0.377441f, -0.363525f, 0.378418f, -0.375488f,
+0.378418f, -0.382812f, 0.504883f, 0, 0.4375f, -0.186523f, 0.162598f, -0.186523f,
+0.0957031f, 0, 0, 0, 0.249023f, -0.658691f, 0.35498f, -0.658691f, 0.599609f, 0, 0.342285f,
+-0.46582f, 0.335938f, -0.484375f, 0.329102f, -0.503418f, 0.322266f, -0.522461f, 0.31665f,
+-0.539551f, 0.311035f, -0.556641f, 0.306885f, -0.56958f, 0.302734f, -0.58252f, 0.300781f,
+-0.588379f, 0.298828f, -0.58252f, 0.294922f, -0.569336f, 0.291016f, -0.556152f, 0.2854f,
+-0.539062f, 0.279785f, -0.521973f, 0.273682f, -0.50293f, 0.267578f, -0.483887f, 0.26123f,
+-0.46582f, 0.1875f, -0.259277f, 0.413574f, -0.259277f, 0.5625f, -0.185547f, 0.5625f,
+-0.135254f, 0.541992f, -0.100098f, 0.521484f, -0.0649414f, 0.486816f, -0.0427246f,
+0.452148f, -0.0205078f, 0.40625f, -0.0102539f, 0.360352f, 0, 0.30957f, 0, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.280273f, -0.658691f, 0.337402f, -0.658691f, 0.382324f,
+-0.649414f, 0.427246f, -0.640137f, 0.458496f, -0.62085f, 0.489746f, -0.601562f, 0.506104f,
+-0.571289f, 0.522461f, -0.541016f, 0.522461f, -0.499023f, 0.522461f, -0.47168f, 0.514404f,
+-0.447021f, 0.506348f, -0.422363f, 0.48999f, -0.402588f, 0.473633f, -0.382812f, 0.449219f,
+-0.368408f, 0.424805f, -0.354004f, 0.391602f, -0.347168f, 0.433105f, -0.342773f,
+0.465088f, -0.329102f, 0.49707f, -0.31543f, 0.518555f, -0.294189f, 0.540039f, -0.272949f,
+0.55127f, -0.245361f, 0.5625f, -0.217773f, 0.5625f, -0.185547f, 0.428711f, -0.487305f,
+0.428711f, -0.539551f, 0.391846f, -0.561768f, 0.35498f, -0.583984f, 0.28125f, -0.583984f,
+0.172363f, -0.583984f, 0.172363f, -0.380859f, 0.282227f, -0.380859f, 0.321777f, -0.380859f,
+0.349609f, -0.388428f, 0.377441f, -0.395996f, 0.39502f, -0.409912f, 0.412598f, -0.423828f,
+0.420654f, -0.443359f, 0.428711f, -0.462891f, 0.428711f, -0.487305f, 0.468262f, -0.193848f,
+0.468262f, -0.224609f, 0.455811f, -0.246094f, 0.443359f, -0.267578f, 0.420654f, -0.281494f,
+0.397949f, -0.29541f, 0.366211f, -0.301758f, 0.334473f, -0.308105f, 0.29541f, -0.308105f,
+0.172363f, -0.308105f, 0.172363f, -0.074707f, 0.302246f, -0.074707f, 0.337891f, -0.074707f,
+0.368408f, -0.0803223f, 0.398926f, -0.0859375f, 0.421143f, -0.0996094f, 0.443359f,
+-0.113281f, 0.455811f, -0.13623f, 0.468262f, -0.15918f, 0.468262f, -0.193848f, 0.15332f,
+-0.33252f, 0.15332f, -0.268555f, 0.163086f, -0.218994f, 0.172852f, -0.169434f, 0.193359f,
+-0.135254f, 0.213867f, -0.101074f, 0.24585f, -0.0834961f, 0.277832f, -0.065918f,
+0.322754f, -0.065918f, 0.353516f, -0.065918f, 0.378174f, -0.0776367f, 0.402832f,
+-0.0893555f, 0.422119f, -0.108398f, 0.441406f, -0.127441f, 0.455566f, -0.152344f,
+0.469727f, -0.177246f, 0.47998f, -0.203613f, 0.557617f, -0.171875f, 0.543945f, -0.137695f,
+0.523926f, -0.105225f, 0.503906f, -0.0727539f, 0.475586f, -0.0471191f, 0.447266f,
+-0.0214844f, 0.409424f, -0.00585938f, 0.371582f, 0.00976562f, 0.321777f, 0.00976562f,
+0.25293f, 0.00976562f, 0.202881f, -0.0148926f, 0.152832f, -0.0395508f, 0.119873f,
+-0.0844727f, 0.0869141f, -0.129395f, 0.0710449f, -0.192383f, 0.0551758f, -0.255371f,
+0.0551758f, -0.33252f, 0.0551758f, -0.413574f, 0.0708008f, -0.476318f, 0.0864258f,
+-0.539062f, 0.118652f, -0.581787f, 0.150879f, -0.624512f, 0.200195f, -0.646729f,
+0.249512f, -0.668945f, 0.316895f, -0.668945f, 0.366211f, -0.668945f, 0.40332f, -0.655518f,
+0.44043f, -0.64209f, 0.467529f, -0.619385f, 0.494629f, -0.59668f, 0.513428f, -0.567139f,
+0.532227f, -0.537598f, 0.544434f, -0.505371f, 0.462402f, -0.473633f, 0.455078f, -0.496094f,
+0.442383f, -0.517578f, 0.429688f, -0.539062f, 0.411865f, -0.555664f, 0.394043f, -0.572266f,
+0.370361f, -0.58252f, 0.34668f, -0.592773f, 0.317383f, -0.592773f, 0.273926f, -0.592773f,
+0.24292f, -0.576172f, 0.211914f, -0.55957f, 0.191895f, -0.526611f, 0.171875f, -0.493652f,
+0.162598f, -0.445068f, 0.15332f, -0.396484f, 0.15332f, -0.33252f, 0.549316f, -0.335938f,
+0.549316f, -0.253906f, 0.529785f, -0.191162f, 0.510254f, -0.128418f, 0.473145f, -0.0859375f,
+0.436035f, -0.043457f, 0.38208f, -0.0217285f, 0.328125f, 0, 0.259766f, 0, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.230957f, -0.658691f, 0.308105f, -0.658691f, 0.367432f,
+-0.639893f, 0.426758f, -0.621094f, 0.467285f, -0.581543f, 0.507812f, -0.541992f,
+0.528564f, -0.480957f, 0.549316f, -0.419922f, 0.549316f, -0.335938f, 0.455566f, -0.335938f,
+0.455566f, -0.401855f, 0.441895f, -0.44873f, 0.428223f, -0.495605f, 0.400391f, -0.525146f,
+0.372559f, -0.554688f, 0.330566f, -0.568604f, 0.288574f, -0.58252f, 0.231445f, -0.58252f,
+0.172363f, -0.58252f, 0.172363f, -0.0761719f, 0.251465f, -0.0761719f, 0.35498f, -0.0761719f,
+0.405273f, -0.141113f, 0.455566f, -0.206055f, 0.455566f, -0.335938f, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.527832f, -0.658691f, 0.527832f, -0.58252f, 0.172363f,
+-0.58252f, 0.172363f, -0.376465f, 0.498535f, -0.376465f, 0.498535f, -0.30127f, 0.172363f,
+-0.30127f, 0.172363f, -0.0761719f, 0.547852f, -0.0761719f, 0.547852f, 0, 0.187988f,
+-0.58252f, 0.187988f, -0.341309f, 0.518066f, -0.341309f, 0.518066f, -0.26416f, 0.187988f,
+-0.26416f, 0.187988f, 0, 0.0947266f, 0, 0.0947266f, -0.658691f, 0.529785f, -0.658691f,
+0.529785f, -0.58252f, 0.537598f, -0.0649414f, 0.52002f, -0.0532227f, 0.496826f, -0.0400391f,
+0.473633f, -0.0268555f, 0.445312f, -0.0158691f, 0.416992f, -0.00488281f, 0.383545f,
+0.00244141f, 0.350098f, 0.00976562f, 0.312012f, 0.00976562f, 0.246582f, 0.00976562f,
+0.198242f, -0.0158691f, 0.149902f, -0.0415039f, 0.118164f, -0.0869141f, 0.0864258f,
+-0.132324f, 0.0708008f, -0.195068f, 0.0551758f, -0.257812f, 0.0551758f, -0.33252f,
+0.0551758f, -0.414062f, 0.0703125f, -0.476807f, 0.0854492f, -0.539551f, 0.117188f,
+-0.582275f, 0.148926f, -0.625f, 0.197754f, -0.646973f, 0.246582f, -0.668945f, 0.313477f,
+-0.668945f, 0.362305f, -0.668945f, 0.39917f, -0.65625f, 0.436035f, -0.643555f, 0.463135f,
+-0.621826f, 0.490234f, -0.600098f, 0.508545f, -0.570557f, 0.526855f, -0.541016f,
+0.538574f, -0.507324f, 0.455078f, -0.47998f, 0.436523f, -0.533691f, 0.402588f, -0.563232f,
+0.368652f, -0.592773f, 0.314453f, -0.592773f, 0.270508f, -0.592773f, 0.239746f, -0.575928f,
+0.208984f, -0.559082f, 0.189697f, -0.526123f, 0.17041f, -0.493164f, 0.161865f, -0.44458f,
+0.15332f, -0.395996f, 0.15332f, -0.33252f, 0.15332f, -0.20166f, 0.19458f, -0.133789f,
+0.23584f, -0.065918f, 0.319824f, -0.065918f, 0.343262f, -0.065918f, 0.363525f, -0.0700684f,
+0.383789f, -0.0742188f, 0.400146f, -0.079834f, 0.416504f, -0.0854492f, 0.428467f,
+-0.0915527f, 0.44043f, -0.0976562f, 0.446777f, -0.102051f, 0.446777f, -0.266113f,
+0.303711f, -0.266113f, 0.303711f, -0.344238f, 0.537598f, -0.344238f, 0.427246f, 0,
+0.427246f, -0.304199f, 0.172363f, -0.304199f, 0.172363f, 0, 0.0791016f, 0, 0.0791016f,
+-0.658691f, 0.172363f, -0.658691f, 0.172363f, -0.382324f, 0.427246f, -0.382324f,
+0.427246f, -0.658691f, 0.520508f, -0.658691f, 0.520508f, 0, 0.0986328f, -0.658691f,
+0.500488f, -0.658691f, 0.500488f, -0.58252f, 0.346191f, -0.58252f, 0.346191f, -0.0761719f,
+0.500488f, -0.0761719f, 0.500488f, 0, 0.0986328f, 0, 0.0986328f, -0.0761719f, 0.25293f,
+-0.0761719f, 0.25293f, -0.58252f, 0.0986328f, -0.58252f, 0.481445f, -0.205078f, 0.481445f,
+-0.15625f, 0.468994f, -0.116455f, 0.456543f, -0.0766602f, 0.431885f, -0.048584f,
+0.407227f, -0.0205078f, 0.370605f, -0.00537109f, 0.333984f, 0.00976562f, 0.286133f,
+0.00976562f, 0.202637f, 0.00976562f, 0.152832f, -0.0336914f, 0.103027f, -0.0771484f,
+0.0859375f, -0.170898f, 0.177246f, -0.186035f, 0.182129f, -0.154785f, 0.192383f,
+-0.13208f, 0.202637f, -0.109375f, 0.216797f, -0.0947266f, 0.230957f, -0.0800781f,
+0.248779f, -0.072998f, 0.266602f, -0.065918f, 0.286621f, -0.065918f, 0.337402f, -0.065918f,
+0.363037f, -0.10083f, 0.388672f, -0.135742f, 0.388672f, -0.203125f, 0.388672f, -0.58252f,
+0.236816f, -0.58252f, 0.236816f, -0.658691f, 0.481445f, -0.658691f, 0.489746f, 0,
+0.251953f, -0.311523f, 0.172363f, -0.229004f, 0.172363f, 0, 0.0791016f, 0, 0.0791016f,
+-0.658691f, 0.172363f, -0.658691f, 0.172363f, -0.330078f, 0.45166f, -0.658691f, 0.561523f,
+-0.658691f, 0.31543f, -0.379395f, 0.599121f, 0, 0.115723f, 0, 0.115723f, -0.658691f,
+0.208984f, -0.658691f, 0.208984f, -0.0761719f, 0.537109f, -0.0761719f, 0.537109f,
+0, 0.45752f, 0, 0.45752f, -0.423828f, 0.45752f, -0.44873f, 0.457764f, -0.474609f,
+0.458008f, -0.500488f, 0.458984f, -0.521973f, 0.459961f, -0.546875f, 0.460449f, -0.570801f,
+0.452148f, -0.543945f, 0.443848f, -0.518066f, 0.437012f, -0.496094f, 0.428955f, -0.47168f,
+0.420898f, -0.447266f, 0.414062f, -0.428711f, 0.333984f, -0.214844f, 0.26709f, -0.214844f,
+0.186035f, -0.428711f, 0.183105f, -0.436035f, 0.179688f, -0.446045f, 0.17627f, -0.456055f,
+0.172607f, -0.467529f, 0.168945f, -0.479004f, 0.165039f, -0.490967f, 0.161133f, -0.50293f,
+0.157227f, -0.514648f, 0.148438f, -0.541504f, 0.13916f, -0.570801f, 0.139648f, -0.547363f,
+0.140137f, -0.521973f, 0.140625f, -0.5f, 0.140869f, -0.474365f, 0.141113f, -0.44873f,
+0.141113f, -0.423828f, 0.141113f, 0, 0.0629883f, 0, 0.0629883f, -0.658691f, 0.178711f,
+-0.658691f, 0.269043f, -0.419922f, 0.273438f, -0.408691f, 0.279053f, -0.389893f,
+0.284668f, -0.371094f, 0.290039f, -0.352539f, 0.295898f, -0.331055f, 0.302246f, -0.307129f,
+0.309082f, -0.330078f, 0.314941f, -0.351074f, 0.320312f, -0.369141f, 0.326172f, -0.388184f,
+0.332031f, -0.407227f, 0.336426f, -0.419434f, 0.426758f, -0.658691f, 0.536621f, -0.658691f,
+0.536621f, 0, 0.408203f, 0, 0.154297f, -0.551758f, 0.15625f, -0.530762f, 0.158203f,
+-0.508789f, 0.159668f, -0.490234f, 0.160889f, -0.468506f, 0.162109f, -0.446777f,
+0.162109f, -0.427734f, 0.162109f, 0, 0.0791016f, 0, 0.0791016f, -0.658691f, 0.1875f,
+-0.658691f, 0.445312f, -0.103027f, 0.442871f, -0.122559f, 0.440918f, -0.14502f, 0.438965f,
+-0.164062f, 0.437744f, -0.187988f, 0.436523f, -0.211914f, 0.436523f, -0.236816f,
+0.436523f, -0.658691f, 0.520508f, -0.658691f, 0.520508f, 0, 0.549805f, -0.33252f,
+0.549805f, -0.248047f, 0.532715f, -0.184082f, 0.515625f, -0.120117f, 0.483398f, -0.0769043f,
+0.451172f, -0.0336914f, 0.404541f, -0.0119629f, 0.35791f, 0.00976562f, 0.299316f,
+0.00976562f, 0.237305f, 0.00976562f, 0.19043f, -0.0131836f, 0.143555f, -0.0361328f,
+0.112305f, -0.079834f, 0.0810547f, -0.123535f, 0.0654297f, -0.187256f, 0.0498047f,
+-0.250977f, 0.0498047f, -0.33252f, 0.0498047f, -0.416992f, 0.0664062f, -0.47998f,
+0.0830078f, -0.542969f, 0.114746f, -0.584961f, 0.146484f, -0.626953f, 0.193115f,
+-0.647949f, 0.239746f, -0.668945f, 0.300293f, -0.668945f, 0.420898f, -0.668945f,
+0.485352f, -0.584229f, 0.549805f, -0.499512f, 0.549805f, -0.33252f, 0.45166f, -0.33252f,
+0.45166f, -0.464355f, 0.413086f, -0.528564f, 0.374512f, -0.592773f, 0.300293f, -0.592773f,
+0.224121f, -0.592773f, 0.186035f, -0.528564f, 0.147949f, -0.464355f, 0.147949f, -0.33252f,
+0.147949f, -0.200684f, 0.186523f, -0.133301f, 0.225098f, -0.065918f, 0.299805f, -0.065918f,
+0.379395f, -0.065918f, 0.415527f, -0.134277f, 0.45166f, -0.202637f, 0.45166f, -0.33252f,
+0.546387f, -0.461426f, 0.546387f, -0.42041f, 0.531982f, -0.382568f, 0.517578f, -0.344727f,
+0.488037f, -0.31543f, 0.458496f, -0.286133f, 0.414062f, -0.268555f, 0.369629f, -0.250977f,
+0.30957f, -0.250977f, 0.172363f, -0.250977f, 0.172363f, 0, 0.0791016f, 0, 0.0791016f,
+-0.658691f, 0.303711f, -0.658691f, 0.364746f, -0.658691f, 0.410156f, -0.644531f,
+0.455566f, -0.630371f, 0.48584f, -0.604492f, 0.516113f, -0.578613f, 0.53125f, -0.542236f,
+0.546387f, -0.505859f, 0.546387f, -0.461426f, 0.452637f, -0.459961f, 0.452637f, -0.520996f,
+0.412598f, -0.55249f, 0.372559f, -0.583984f, 0.29248f, -0.583984f, 0.172363f, -0.583984f,
+0.172363f, -0.324707f, 0.296387f, -0.324707f, 0.336426f, -0.324707f, 0.365967f, -0.335205f,
+0.395508f, -0.345703f, 0.414795f, -0.36377f, 0.434082f, -0.381836f, 0.443359f, -0.406738f,
+0.452637f, -0.431641f, 0.452637f, -0.459961f, 0.549805f, -0.33252f, 0.549805f, -0.260742f,
+0.537354f, -0.203369f, 0.524902f, -0.145996f, 0.500977f, -0.104004f, 0.477051f, -0.0620117f,
+0.442627f, -0.0354004f, 0.408203f, -0.00878906f, 0.364258f, 0.00195312f, 0.384277f,
+0.0634766f, 0.416992f, 0.0913086f, 0.449707f, 0.119141f, 0.499023f, 0.119141f, 0.512695f,
+0.119141f, 0.52832f, 0.117188f, 0.543945f, 0.115234f, 0.555176f, 0.112793f, 0.555176f,
+0.178223f, 0.536621f, 0.182617f, 0.514404f, 0.185791f, 0.492188f, 0.188965f, 0.468262f,
+0.188965f, 0.426758f, 0.188965f, 0.395264f, 0.176514f, 0.36377f, 0.164062f, 0.340088f,
+0.140869f, 0.316406f, 0.117676f, 0.299316f, 0.0839844f, 0.282227f, 0.050293f, 0.269043f,
+0.0078125f, 0.214355f, 0.00244141f, 0.17334f, -0.0227051f, 0.132324f, -0.0478516f,
+0.104736f, -0.0913086f, 0.0771484f, -0.134766f, 0.0634766f, -0.195557f, 0.0498047f,
+-0.256348f, 0.0498047f, -0.33252f, 0.0498047f, -0.416992f, 0.0664062f, -0.47998f,
+0.0830078f, -0.542969f, 0.114746f, -0.584961f, 0.146484f, -0.626953f, 0.193115f,
+-0.647949f, 0.239746f, -0.668945f, 0.300293f, -0.668945f, 0.420898f, -0.668945f,
+0.485352f, -0.584229f, 0.549805f, -0.499512f, 0.549805f, -0.33252f, 0.45166f, -0.33252f,
+0.45166f, -0.464355f, 0.413086f, -0.528564f, 0.374512f, -0.592773f, 0.300293f, -0.592773f,
+0.224121f, -0.592773f, 0.186035f, -0.528564f, 0.147949f, -0.464355f, 0.147949f, -0.33252f,
+0.147949f, -0.200684f, 0.186523f, -0.133301f, 0.225098f, -0.065918f, 0.299805f, -0.065918f,
+0.379395f, -0.065918f, 0.415527f, -0.134277f, 0.45166f, -0.202637f, 0.45166f, -0.33252f,
+0.467285f, 0, 0.288574f, -0.280762f, 0.172363f, -0.280762f, 0.172363f, 0, 0.0791016f,
+0, 0.0791016f, -0.658691f, 0.314453f, -0.658691f, 0.373047f, -0.658691f, 0.416748f,
+-0.64624f, 0.460449f, -0.633789f, 0.489502f, -0.610107f, 0.518555f, -0.586426f, 0.532959f,
+-0.552734f, 0.547363f, -0.519043f, 0.547363f, -0.476562f, 0.547363f, -0.446289f,
+0.537842f, -0.41626f, 0.52832f, -0.38623f, 0.507812f, -0.361084f, 0.487305f, -0.335938f,
+0.455566f, -0.317383f, 0.423828f, -0.298828f, 0.379395f, -0.291504f, 0.574707f, 0,
+0.453613f, -0.475098f, 0.453613f, -0.583984f, 0.305176f, -0.583984f, 0.172363f, -0.583984f,
+0.172363f, -0.354492f, 0.309082f, -0.354492f, 0.349609f, -0.354492f, 0.377197f, -0.364258f,
+0.404785f, -0.374023f, 0.421631f, -0.390381f, 0.438477f, -0.406738f, 0.446045f, -0.428711f,
+0.453613f, -0.450684f, 0.453613f, -0.475098f, 0.550781f, -0.180664f, 0.550781f, -0.13916f,
+0.535645f, -0.104248f, 0.520508f, -0.0693359f, 0.489502f, -0.0439453f, 0.458496f,
+-0.0185547f, 0.410889f, -0.00439453f, 0.363281f, 0.00976562f, 0.297852f, 0.00976562f,
+0.183594f, 0.00976562f, 0.119873f, -0.0351562f, 0.0561523f, -0.0800781f, 0.0385742f,
+-0.165039f, 0.128906f, -0.183105f, 0.134766f, -0.15625f, 0.146484f, -0.134277f, 0.158203f,
+-0.112305f, 0.178711f, -0.0964355f, 0.199219f, -0.0805664f, 0.229004f, -0.0717773f,
+0.258789f, -0.0629883f, 0.300293f, -0.0629883f, 0.335449f, -0.0629883f, 0.364502f,
+-0.0695801f, 0.393555f, -0.0761719f, 0.414307f, -0.090332f, 0.435059f, -0.104492f,
+0.446777f, -0.126465f, 0.458496f, -0.148438f, 0.458496f, -0.179199f, 0.458496f, -0.213379f,
+0.442627f, -0.234863f, 0.426758f, -0.256348f, 0.400879f, -0.27002f, 0.375f, -0.283691f,
+0.342529f, -0.292236f, 0.310059f, -0.300781f, 0.276855f, -0.309082f, 0.252441f, -0.31543f,
+0.227539f, -0.32251f, 0.202637f, -0.32959f, 0.179688f, -0.339111f, 0.156738f, -0.348633f,
+0.136963f, -0.361572f, 0.117188f, -0.374512f, 0.102295f, -0.392822f, 0.0874023f,
+-0.411133f, 0.0791016f, -0.435791f, 0.0708008f, -0.460449f, 0.0708008f, -0.493164f,
+0.0708008f, -0.540039f, 0.0883789f, -0.573486f, 0.105957f, -0.606934f, 0.136719f,
+-0.628174f, 0.16748f, -0.649414f, 0.209473f, -0.65918f, 0.251465f, -0.668945f, 0.300293f,
+-0.668945f, 0.356934f, -0.668945f, 0.396729f, -0.658936f, 0.436523f, -0.648926f,
+0.464111f, -0.628906f, 0.491699f, -0.608887f, 0.508301f, -0.579346f, 0.524902f, -0.549805f,
+0.534668f, -0.510742f, 0.442871f, -0.494629f, 0.4375f, -0.519531f, 0.427002f, -0.539062f,
+0.416504f, -0.558594f, 0.39917f, -0.571777f, 0.381836f, -0.584961f, 0.357422f, -0.591797f,
+0.333008f, -0.598633f, 0.299805f, -0.598633f, 0.260742f, -0.598633f, 0.234375f, -0.590576f,
+0.208008f, -0.58252f, 0.191895f, -0.568604f, 0.175781f, -0.554688f, 0.168701f, -0.535645f,
+0.161621f, -0.516602f, 0.161621f, -0.494629f, 0.161621f, -0.465332f, 0.174561f, -0.447021f,
+0.1875f, -0.428711f, 0.209717f, -0.416748f, 0.231934f, -0.404785f, 0.261475f, -0.396973f,
+0.291016f, -0.38916f, 0.324707f, -0.380371f, 0.351562f, -0.373535f, 0.378906f, -0.365967f,
+0.40625f, -0.358398f, 0.431396f, -0.348145f, 0.456543f, -0.337891f, 0.478271f, -0.323975f,
+0.5f, -0.310059f, 0.516113f, -0.290039f, 0.532227f, -0.27002f, 0.541504f, -0.243164f,
+0.550781f, -0.216309f, 0.550781f, -0.180664f, 0.346191f, -0.58252f, 0.346191f, 0,
+0.253418f, 0, 0.253418f, -0.58252f, 0.0371094f, -0.58252f, 0.0371094f, -0.658691f,
+0.5625f, -0.658691f, 0.5625f, -0.58252f, 0.529785f, -0.239258f, 0.529785f, -0.172363f,
+0.515625f, -0.125f, 0.501465f, -0.0776367f, 0.472412f, -0.0476074f, 0.443359f, -0.0175781f,
+0.39917f, -0.00390625f, 0.35498f, 0.00976562f, 0.29541f, 0.00976562f, 0.23877f, 0.00976562f,
+0.196289f, -0.00317383f, 0.153809f, -0.0161133f, 0.125732f, -0.0446777f, 0.0976562f,
+-0.0732422f, 0.0834961f, -0.118896f, 0.0693359f, -0.164551f, 0.0693359f, -0.230469f,
+0.0693359f, -0.658691f, 0.162598f, -0.658691f, 0.162598f, -0.243164f, 0.162598f,
+-0.195801f, 0.168701f, -0.162109f, 0.174805f, -0.128418f, 0.189697f, -0.106934f,
+0.20459f, -0.0854492f, 0.230225f, -0.0756836f, 0.255859f, -0.065918f, 0.294922f,
+-0.065918f, 0.335449f, -0.065918f, 0.362549f, -0.0756836f, 0.389648f, -0.0854492f,
+0.40625f, -0.107178f, 0.422852f, -0.128906f, 0.429932f, -0.164062f, 0.437012f, -0.199219f,
+0.437012f, -0.249512f, 0.437012f, -0.658691f, 0.529785f, -0.658691f, 0.348145f, 0,
+0.251465f, 0, 0.00488281f, -0.658691f, 0.103027f, -0.658691f, 0.259277f, -0.218262f,
+0.26709f, -0.196289f, 0.27417f, -0.172607f, 0.28125f, -0.148926f, 0.287109f, -0.128418f,
+0.293945f, -0.10498f, 0.300293f, -0.0820312f, 0.306152f, -0.104004f, 0.312988f, -0.127441f,
+0.318848f, -0.147461f, 0.326172f, -0.171387f, 0.333496f, -0.195312f, 0.341309f, -0.218262f,
+0.496582f, -0.658691f, 0.594727f, -0.658691f, 0.49707f, 0, 0.395508f, 0, 0.344727f,
+-0.188965f, 0.342285f, -0.198242f, 0.338867f, -0.210938f, 0.335449f, -0.223633f,
+0.331787f, -0.238037f, 0.328125f, -0.252441f, 0.324463f, -0.267822f, 0.320801f, -0.283203f,
+0.317383f, -0.297852f, 0.309082f, -0.332031f, 0.300781f, -0.369141f, 0.291992f, -0.331543f,
+0.283691f, -0.297363f, 0.280273f, -0.282715f, 0.276611f, -0.267334f, 0.272949f, -0.251953f,
+0.269287f, -0.237549f, 0.265625f, -0.223145f, 0.262207f, -0.210693f, 0.258789f, -0.198242f,
+0.256348f, -0.188965f, 0.20459f, 0, 0.103027f, 0, 0, -0.658691f, 0.0922852f, -0.658691f,
+0.145508f, -0.250977f, 0.149414f, -0.219238f, 0.1521f, -0.188965f, 0.154785f, -0.158691f,
+0.157227f, -0.134766f, 0.159668f, -0.106934f, 0.161621f, -0.0820312f, 0.169434f,
+-0.115723f, 0.177246f, -0.148438f, 0.180664f, -0.162598f, 0.184082f, -0.17749f, 0.1875f,
+-0.192383f, 0.191162f, -0.207031f, 0.194824f, -0.22168f, 0.198242f, -0.235107f, 0.20166f,
+-0.248535f, 0.20459f, -0.259766f, 0.257812f, -0.45459f, 0.343262f, -0.45459f, 0.396484f,
+-0.259766f, 0.399414f, -0.249023f, 0.402832f, -0.235352f, 0.40625f, -0.22168f, 0.409912f,
+-0.207275f, 0.413574f, -0.192871f, 0.416992f, -0.177979f, 0.42041f, -0.163086f, 0.423828f,
+-0.148926f, 0.431641f, -0.116211f, 0.439453f, -0.0820312f, 0.439941f, -0.0820312f,
+0.441406f, -0.0986328f, 0.442871f, -0.115234f, 0.445312f, -0.140137f, 0.447754f,
+-0.165039f, 0.450684f, -0.194824f, 0.453613f, -0.224609f, 0.456543f, -0.250977f,
+0.507324f, -0.658691f, 0.599609f, -0.658691f, 0.299805f, -0.408203f, 0.462402f, -0.658691f,
+0.5625f, -0.658691f, 0.350098f, -0.344238f, 0.58252f, 0, 0.482422f, 0, 0.299805f,
+-0.279785f, 0.117676f, 0, 0.0175781f, 0, 0.25f, -0.344238f, 0.0375977f, -0.658691f,
+0.137695f, -0.658691f, 0.345703f, -0.285156f, 0.345703f, 0, 0.253906f, 0, 0.253906f,
+-0.285156f, 0.0175781f, -0.658691f, 0.117676f, -0.658691f, 0.300293f, -0.360352f,
+0.481934f, -0.658691f, 0.582031f, -0.658691f, 0.563965f, 0, 0.0356445f, 0, 0.0356445f,
+-0.0698242f, 0.435059f, -0.58252f, 0.0712891f, -0.58252f, 0.0712891f, -0.658691f,
+0.541016f, -0.658691f, 0.541016f, -0.59082f, 0.141602f, -0.0761719f, 0.563965f, -0.0761719f,
+0.200195f, 0.20752f, 0.200195f, -0.724609f, 0.467285f, -0.724609f, 0.467285f, -0.656738f,
+0.288086f, -0.656738f, 0.288086f, 0.139648f, 0.467285f, 0.139648f, 0.467285f, 0.20752f,
+0.455078f, 0.00976562f, 0.0561523f, -0.724609f, 0.143066f, -0.724609f, 0.543945f,
+0.00976562f, 0.131836f, 0.20752f, 0.131836f, 0.139648f, 0.311035f, 0.139648f, 0.311035f,
+-0.656738f, 0.131836f, -0.656738f, 0.131836f, -0.724609f, 0.398926f, -0.724609f,
+0.398926f, 0.20752f, 0.458984f, -0.21582f, 0.29834f, -0.60791f, 0.13916f, -0.21582f,
+0.0649414f, -0.21582f, 0.249512f, -0.658691f, 0.348633f, -0.658691f, 0.53418f, -0.21582f,
+-0.00244141f, 0.107422f, -0.00244141f, 0.0605469f, 0.602051f, 0.0605469f, 0.602051f,
+0.107422f, 0.342773f, -0.586426f, 0.196289f, -0.69873f, 0.196289f, -0.712891f, 0.29248f,
+-0.712891f, 0.40332f, -0.596191f, 0.40332f, -0.586426f, 0.537598f, -0.0541992f, 0.544922f,
+-0.0541992f, 0.552246f, -0.0551758f, 0.55957f, -0.0561523f, 0.566406f, -0.0576172f,
+0.566406f, -0.00292969f, 0.549805f, 0.000976562f, 0.533447f, 0.00292969f, 0.51709f,
+0.00488281f, 0.498535f, 0.00488281f, 0.473633f, 0.00488281f, 0.455811f, -0.00170898f,
+0.437988f, -0.00830078f, 0.426758f, -0.0217285f, 0.415527f, -0.0351562f, 0.409668f,
+-0.0549316f, 0.403809f, -0.074707f, 0.402344f, -0.101074f, 0.399414f, -0.101074f,
+0.385742f, -0.0756836f, 0.369141f, -0.0551758f, 0.352539f, -0.034668f, 0.331055f,
+-0.0202637f, 0.30957f, -0.00585938f, 0.281738f, 0.00195312f, 0.253906f, 0.00976562f,
+0.217773f, 0.00976562f, 0.140625f, 0.00976562f, 0.101562f, -0.0322266f, 0.0625f,
+-0.0742188f, 0.0625f, -0.147461f, 0.0625f, -0.199707f, 0.0817871f, -0.233154f, 0.101074f,
+-0.266602f, 0.132324f, -0.285645f, 0.163574f, -0.304688f, 0.203369f, -0.312256f,
+0.243164f, -0.319824f, 0.28418f, -0.320312f, 0.399414f, -0.322266f, 0.399414f, -0.351074f,
+0.399414f, -0.383789f, 0.392822f, -0.406738f, 0.38623f, -0.429688f, 0.372803f, -0.443848f,
+0.359375f, -0.458008f, 0.338867f, -0.4646f, 0.318359f, -0.471191f, 0.291016f, -0.471191f,
+0.266602f, -0.471191f, 0.246826f, -0.467529f, 0.227051f, -0.463867f, 0.212891f, -0.454346f,
+0.19873f, -0.444824f, 0.189697f, -0.428467f, 0.180664f, -0.412109f, 0.177734f, -0.387207f,
+0.0859375f, -0.395508f, 0.0908203f, -0.426758f, 0.104248f, -0.452881f, 0.117676f,
+-0.479004f, 0.14209f, -0.498047f, 0.166504f, -0.51709f, 0.203369f, -0.527588f, 0.240234f,
+-0.538086f, 0.29248f, -0.538086f, 0.390137f, -0.538086f, 0.439209f, -0.492432f, 0.488281f,
+-0.446777f, 0.488281f, -0.360352f, 0.488281f, -0.132812f, 0.488281f, -0.09375f, 0.498535f,
+-0.0739746f, 0.508789f, -0.0541992f, 0.537598f, -0.0541992f, 0.240234f, -0.0571289f,
+0.280762f, -0.0571289f, 0.310547f, -0.0725098f, 0.340332f, -0.0878906f, 0.360107f,
+-0.111328f, 0.379883f, -0.134766f, 0.389648f, -0.163086f, 0.399414f, -0.191406f,
+0.399414f, -0.217285f, 0.399414f, -0.260742f, 0.306641f, -0.258789f, 0.279785f, -0.258301f,
+0.252686f, -0.254639f, 0.225586f, -0.250977f, 0.203857f, -0.239258f, 0.182129f, -0.227539f,
+0.168457f, -0.205322f, 0.154785f, -0.183105f, 0.154785f, -0.145996f, 0.154785f, -0.105957f,
+0.176514f, -0.081543f, 0.198242f, -0.0571289f, 0.240234f, -0.0571289f, 0.532227f,
+-0.266602f, 0.532227f, -0.12793f, 0.482666f, -0.059082f, 0.433105f, 0.00976562f,
+0.34082f, 0.00976562f, 0.28418f, 0.00976562f, 0.242676f, -0.0112305f, 0.201172f,
+-0.0322266f, 0.177734f, -0.0800781f, 0.176758f, -0.0800781f, 0.176758f, -0.0673828f,
+0.17627f, -0.0539551f, 0.175781f, -0.0405273f, 0.175049f, -0.0292969f, 0.174316f,
+-0.0180664f, 0.173584f, -0.0100098f, 0.172852f, -0.00195312f, 0.172363f, 0, 0.0874023f,
+0, 0.0878906f, -0.00439453f, 0.0883789f, -0.0148926f, 0.0888672f, -0.0253906f, 0.0893555f,
+-0.0400391f, 0.0898438f, -0.0546875f, 0.0900879f, -0.0722656f, 0.090332f, -0.0898438f,
+0.090332f, -0.108887f, 0.090332f, -0.724609f, 0.178223f, -0.724609f, 0.178223f, -0.518066f,
+0.178223f, -0.503906f, 0.177979f, -0.48999f, 0.177734f, -0.476074f, 0.177246f, -0.465332f,
+0.176758f, -0.452637f, 0.17627f, -0.441406f, 0.178223f, -0.441406f, 0.20166f, -0.492676f,
+0.24292f, -0.515869f, 0.28418f, -0.539062f, 0.341309f, -0.539062f, 0.436523f, -0.539062f,
+0.484375f, -0.471436f, 0.532227f, -0.403809f, 0.532227f, -0.266602f, 0.441406f, -0.263672f,
+0.441406f, -0.318359f, 0.434082f, -0.357666f, 0.426758f, -0.396973f, 0.411377f, -0.422119f,
+0.395996f, -0.447266f, 0.372803f, -0.459229f, 0.349609f, -0.471191f, 0.317383f, -0.471191f,
+0.285156f, -0.471191f, 0.259277f, -0.460205f, 0.233398f, -0.449219f, 0.215576f, -0.424072f,
+0.197754f, -0.398926f, 0.187988f, -0.357666f, 0.178223f, -0.316406f, 0.178223f, -0.255859f,
+0.178223f, -0.197754f, 0.187988f, -0.15918f, 0.197754f, -0.120605f, 0.215576f, -0.0974121f,
+0.233398f, -0.0742188f, 0.259033f, -0.0646973f, 0.284668f, -0.0551758f, 0.316406f,
+-0.0551758f, 0.347168f, -0.0551758f, 0.370605f, -0.0664062f, 0.394043f, -0.0776367f,
+0.409668f, -0.102539f, 0.425293f, -0.127441f, 0.43335f, -0.167236f, 0.441406f, -0.207031f,
+0.441406f, -0.263672f, 0.0634766f, -0.264648f, 0.0634766f, -0.344238f, 0.0844727f,
+-0.396973f, 0.105469f, -0.449707f, 0.139893f, -0.480957f, 0.174316f, -0.512207f,
+0.218262f, -0.525146f, 0.262207f, -0.538086f, 0.308594f, -0.538086f, 0.356445f, -0.538086f,
+0.394043f, -0.525879f, 0.431641f, -0.513672f, 0.45874f, -0.492432f, 0.48584f, -0.471191f,
+0.50293f, -0.442383f, 0.52002f, -0.413574f, 0.526367f, -0.380371f, 0.432617f, -0.373535f,
+0.424805f, -0.417969f, 0.393555f, -0.443604f, 0.362305f, -0.469238f, 0.304688f, -0.469238f,
+0.262695f, -0.469238f, 0.234131f, -0.455811f, 0.205566f, -0.442383f, 0.188232f, -0.416748f,
+0.170898f, -0.391113f, 0.16333f, -0.353271f, 0.155762f, -0.31543f, 0.155762f, -0.266602f,
+0.155762f, -0.217773f, 0.16333f, -0.178955f, 0.170898f, -0.140137f, 0.188232f, -0.113281f,
+0.205566f, -0.0864258f, 0.234131f, -0.0722656f, 0.262695f, -0.0581055f, 0.304199f,
+-0.0581055f, 0.356934f, -0.0581055f, 0.391602f, -0.0839844f, 0.42627f, -0.109863f,
+0.43457f, -0.163086f, 0.527344f, -0.157227f, 0.522949f, -0.124512f, 0.506348f, -0.0942383f,
+0.489746f, -0.0639648f, 0.461914f, -0.0410156f, 0.434082f, -0.0180664f, 0.395508f,
+-0.00415039f, 0.356934f, 0.00976562f, 0.308105f, 0.00976562f, 0.241211f, 0.00976562f,
+0.19458f, -0.0112305f, 0.147949f, -0.0322266f, 0.118896f, -0.0690918f, 0.0898438f,
+-0.105957f, 0.0766602f, -0.156006f, 0.0634766f, -0.206055f, 0.0634766f, -0.264648f,
+0.420898f, -0.0849609f, 0.396973f, -0.0336914f, 0.357422f, -0.010498f, 0.317871f,
+0.0126953f, 0.258789f, 0.0126953f, 0.160156f, 0.0126953f, 0.11377f, -0.0551758f,
+0.0673828f, -0.123047f, 0.0673828f, -0.259766f, 0.0673828f, -0.536133f, 0.258789f,
+-0.536133f, 0.317871f, -0.536133f, 0.357666f, -0.515137f, 0.397461f, -0.494141f,
+0.421387f, -0.446289f, 0.422363f, -0.446289f, 0.422363f, -0.44873f, 0.422119f, -0.458984f,
+0.421875f, -0.469238f, 0.421875f, -0.481445f, 0.421875f, -0.493652f, 0.421631f, -0.504639f,
+0.421387f, -0.515625f, 0.421387f, -0.52002f, 0.421387f, -0.724609f, 0.509277f, -0.724609f,
+0.509277f, -0.108887f, 0.509277f, -0.0898438f, 0.509521f, -0.0722656f, 0.509766f,
+-0.0546875f, 0.510254f, -0.0400391f, 0.510742f, -0.0253906f, 0.51123f, -0.0148926f,
+0.511719f, -0.00439453f, 0.512207f, 0, 0.428223f, 0, 0.427734f, -0.00195312f, 0.426758f,
+-0.0107422f, 0.425781f, -0.0195312f, 0.425049f, -0.0317383f, 0.424316f, -0.0439453f,
+0.423828f, -0.0581055f, 0.42334f, -0.0722656f, 0.42334f, -0.0849609f, 0.158203f,
+-0.262695f, 0.158203f, -0.208008f, 0.165283f, -0.168945f, 0.172363f, -0.129883f,
+0.187256f, -0.104492f, 0.202148f, -0.0791016f, 0.225586f, -0.0671387f, 0.249023f,
+-0.0551758f, 0.281738f, -0.0551758f, 0.31543f, -0.0551758f, 0.341553f, -0.0668945f,
+0.367676f, -0.0786133f, 0.385498f, -0.104248f, 0.40332f, -0.129883f, 0.412354f, -0.170898f,
+0.421387f, -0.211914f, 0.421387f, -0.270508f, 0.421387f, -0.327148f, 0.412354f, -0.365479f,
+0.40332f, -0.403809f, 0.385742f, -0.427246f, 0.368164f, -0.450684f, 0.342285f, -0.460938f,
+0.316406f, -0.471191f, 0.282715f, -0.471191f, 0.251465f, -0.471191f, 0.228027f, -0.459961f,
+0.20459f, -0.44873f, 0.189209f, -0.423828f, 0.173828f, -0.398926f, 0.166016f, -0.359131f,
+0.158203f, -0.319336f, 0.158203f, -0.262695f, 0.157227f, -0.245605f, 0.157227f, -0.204102f,
+0.166504f, -0.169189f, 0.175781f, -0.134277f, 0.194336f, -0.109131f, 0.212891f, -0.0839844f,
+0.240479f, -0.0700684f, 0.268066f, -0.0561523f, 0.304199f, -0.0561523f, 0.331055f,
+-0.0561523f, 0.35376f, -0.0622559f, 0.376465f, -0.0683594f, 0.394531f, -0.0791016f,
+0.412598f, -0.0898438f, 0.424805f, -0.104736f, 0.437012f, -0.119629f, 0.442871f,
+-0.137207f, 0.52002f, -0.115234f, 0.512207f, -0.0932617f, 0.496582f, -0.0710449f,
+0.480957f, -0.0488281f, 0.455078f, -0.0310059f, 0.429199f, -0.0131836f, 0.39209f,
+-0.00170898f, 0.35498f, 0.00976562f, 0.304199f, 0.00976562f, 0.248047f, 0.00976562f,
+0.203613f, -0.0078125f, 0.15918f, -0.0253906f, 0.128418f, -0.0600586f, 0.0976562f,
+-0.0947266f, 0.0812988f, -0.146729f, 0.0649414f, -0.19873f, 0.0649414f, -0.267578f,
+0.0649414f, -0.34375f, 0.0842285f, -0.395508f, 0.103516f, -0.447266f, 0.13623f, -0.479004f,
+0.168945f, -0.510742f, 0.21167f, -0.524414f, 0.254395f, -0.538086f, 0.30127f, -0.538086f,
+0.365234f, -0.538086f, 0.409424f, -0.517578f, 0.453613f, -0.49707f, 0.481445f, -0.460205f,
+0.509277f, -0.42334f, 0.521729f, -0.371582f, 0.53418f, -0.319824f, 0.53418f, -0.257324f,
+0.53418f, -0.245605f, 0.302246f, -0.473145f, 0.279785f, -0.473145f, 0.255127f, -0.466064f,
+0.230469f, -0.458984f, 0.209473f, -0.440918f, 0.188477f, -0.422852f, 0.174072f, -0.391846f,
+0.159668f, -0.36084f, 0.158203f, -0.312988f, 0.443359f, -0.312988f, 0.439453f, -0.358887f,
+0.426758f, -0.389648f, 0.414062f, -0.42041f, 0.395264f, -0.438965f, 0.376465f, -0.45752f,
+0.352539f, -0.465332f, 0.328613f, -0.473145f, 0.302246f, -0.473145f, 0.283203f, -0.458984f,
+0.283203f, 0, 0.195312f, 0, 0.195312f, -0.458984f, 0.0673828f, -0.458984f, 0.0673828f,
+-0.52832f, 0.195312f, -0.52832f, 0.195312f, -0.540527f, 0.195312f, -0.589844f, 0.206299f,
+-0.624756f, 0.217285f, -0.659668f, 0.241699f, -0.681885f, 0.266113f, -0.704102f,
+0.304932f, -0.714355f, 0.34375f, -0.724609f, 0.399414f, -0.724609f, 0.413574f, -0.724609f,
+0.433105f, -0.723877f, 0.452637f, -0.723145f, 0.472168f, -0.72168f, 0.491699f, -0.720215f,
+0.509033f, -0.718262f, 0.526367f, -0.716309f, 0.536621f, -0.714355f, 0.536621f, -0.643555f,
+0.527832f, -0.64502f, 0.510254f, -0.646484f, 0.492676f, -0.647949f, 0.473389f, -0.64917f,
+0.454102f, -0.650391f, 0.436523f, -0.651123f, 0.418945f, -0.651855f, 0.409668f, -0.651855f,
+0.377441f, -0.651855f, 0.353516f, -0.646973f, 0.32959f, -0.64209f, 0.313965f, -0.628906f,
+0.29834f, -0.615723f, 0.290771f, -0.592773f, 0.283203f, -0.569824f, 0.283203f, -0.533203f,
+0.283203f, -0.52832f, 0.522949f, -0.52832f, 0.522949f, -0.458984f, 0.300293f, 0.207031f,
+0.256348f, 0.207031f, 0.2229f, 0.197754f, 0.189453f, 0.188477f, 0.165283f, 0.171143f,
+0.141113f, 0.153809f, 0.126221f, 0.129883f, 0.111328f, 0.105957f, 0.10498f, 0.0766602f,
+0.194824f, 0.0644531f, 0.203125f, 0.101074f, 0.230713f, 0.12085f, 0.258301f, 0.140625f,
+0.303223f, 0.140625f, 0.331055f, 0.140625f, 0.353271f, 0.132324f, 0.375488f, 0.124023f,
+0.391357f, 0.105713f, 0.407227f, 0.0874023f, 0.415771f, 0.0581055f, 0.424316f, 0.0288086f,
+0.424316f, -0.0131836f, 0.424316f, -0.10791f, 0.42334f, -0.10791f, 0.414062f, -0.0883789f,
+0.399658f, -0.0698242f, 0.385254f, -0.0512695f, 0.36499f, -0.0371094f, 0.344727f,
+-0.0229492f, 0.317871f, -0.0144043f, 0.291016f, -0.00585938f, 0.255859f, -0.00585938f,
+0.206055f, -0.00585938f, 0.170898f, -0.0219727f, 0.135742f, -0.0380859f, 0.113281f,
+-0.0708008f, 0.0908203f, -0.103516f, 0.0803223f, -0.152832f, 0.0698242f, -0.202148f,
+0.0698242f, -0.268066f, 0.0698242f, -0.332031f, 0.0803223f, -0.381836f, 0.0908203f,
+-0.431641f, 0.114014f, -0.466064f, 0.137207f, -0.500488f, 0.174316f, -0.518555f,
+0.211426f, -0.536621f, 0.265137f, -0.536621f, 0.320312f, -0.536621f, 0.361084f, -0.510986f,
+0.401855f, -0.485352f, 0.423828f, -0.437988f, 0.425293f, -0.437988f, 0.425293f, -0.450195f,
+0.426025f, -0.465332f, 0.426758f, -0.480469f, 0.42749f, -0.493896f, 0.428223f, -0.507324f,
+0.429443f, -0.51709f, 0.430664f, -0.526855f, 0.431152f, -0.52832f, 0.514648f, -0.52832f,
+0.51416f, -0.523926f, 0.513672f, -0.513428f, 0.513184f, -0.50293f, 0.512695f, -0.488281f,
+0.512207f, -0.473633f, 0.511963f, -0.455811f, 0.511719f, -0.437988f, 0.511719f, -0.418945f,
+0.511719f, -0.015625f, 0.511719f, 0.0952148f, 0.459961f, 0.151123f, 0.408203f, 0.207031f,
+0.300293f, 0.207031f, 0.424316f, -0.269043f, 0.424316f, -0.324219f, 0.412598f, -0.362793f,
+0.400879f, -0.401367f, 0.381592f, -0.425537f, 0.362305f, -0.449707f, 0.337646f, -0.460449f,
+0.312988f, -0.471191f, 0.287109f, -0.471191f, 0.254395f, -0.471191f, 0.230469f, -0.460205f,
+0.206543f, -0.449219f, 0.190918f, -0.425049f, 0.175293f, -0.400879f, 0.167969f, -0.362549f,
+0.160645f, -0.324219f, 0.160645f, -0.269043f, 0.160645f, -0.211914f, 0.167969f, -0.173828f,
+0.175293f, -0.135742f, 0.190674f, -0.112793f, 0.206055f, -0.0898438f, 0.229736f,
+-0.0803223f, 0.253418f, -0.0708008f, 0.285645f, -0.0708008f, 0.311523f, -0.0708008f,
+0.336426f, -0.0812988f, 0.361328f, -0.0917969f, 0.380859f, -0.115234f, 0.400391f,
+-0.138672f, 0.412354f, -0.176514f, 0.424316f, -0.214355f, 0.424316f, -0.269043f,
+0.090332f, -0.724609f, 0.178711f, -0.724609f, 0.178711f, -0.53418f, 0.178711f, -0.509766f,
+0.177246f, -0.485107f, 0.175781f, -0.460449f, 0.174316f, -0.437988f, 0.175781f, -0.437988f,
+0.1875f, -0.460938f, 0.203125f, -0.479492f, 0.21875f, -0.498047f, 0.23877f, -0.510986f,
+0.258789f, -0.523926f, 0.284424f, -0.531006f, 0.310059f, -0.538086f, 0.341309f, -0.538086f,
+0.381836f, -0.538086f, 0.413574f, -0.527344f, 0.445312f, -0.516602f, 0.467285f, -0.494141f,
+0.489258f, -0.47168f, 0.500732f, -0.436523f, 0.512207f, -0.401367f, 0.512207f, -0.352051f,
+0.512207f, 0, 0.423828f, 0, 0.423828f, -0.339355f, 0.423828f, -0.378418f, 0.415771f,
+-0.403564f, 0.407715f, -0.428711f, 0.393311f, -0.443604f, 0.378906f, -0.458496f,
+0.359375f, -0.464355f, 0.339844f, -0.470215f, 0.316406f, -0.470215f, 0.287598f, -0.470215f,
+0.262451f, -0.459229f, 0.237305f, -0.448242f, 0.218506f, -0.42749f, 0.199707f, -0.406738f,
+0.188965f, -0.376221f, 0.178223f, -0.345703f, 0.178223f, -0.306152f, 0.178223f, 0,
+0.090332f, 0, 0.36377f, -0.0693359f, 0.549316f, -0.0693359f, 0.549316f, 0, 0.0698242f,
+0, 0.0698242f, -0.0693359f, 0.275879f, -0.0693359f, 0.275879f, -0.458984f, 0.120117f,
+-0.458984f, 0.120117f, -0.52832f, 0.36377f, -0.52832f, 0.266113f, -0.630859f, 0.266113f,
+-0.724609f, 0.36377f, -0.724609f, 0.36377f, -0.630859f, 0.408203f, 0.0136719f, 0.408203f,
+0.0668945f, 0.390869f, 0.10376f, 0.373535f, 0.140625f, 0.344727f, 0.163818f, 0.315918f,
+0.187012f, 0.277832f, 0.197266f, 0.239746f, 0.20752f, 0.197754f, 0.20752f, 0.177734f,
+0.20752f, 0.157715f, 0.205811f, 0.137695f, 0.204102f, 0.119141f, 0.201172f, 0.100586f,
+0.198242f, 0.0847168f, 0.19458f, 0.0688477f, 0.190918f, 0.0571289f, 0.186523f, 0.0571289f,
+0.118164f, 0.0678711f, 0.120605f, 0.0825195f, 0.123535f, 0.097168f, 0.126465f, 0.114746f,
+0.128906f, 0.132324f, 0.131348f, 0.151611f, 0.133057f, 0.170898f, 0.134766f, 0.19043f,
+0.134766f, 0.217773f, 0.134766f, 0.241455f, 0.12793f, 0.265137f, 0.121094f, 0.282715f,
+0.106201f, 0.300293f, 0.0913086f, 0.310303f, 0.0681152f, 0.320312f, 0.0449219f, 0.320312f,
+0.012207f, 0.320312f, -0.458984f, 0.121582f, -0.458984f, 0.121582f, -0.52832f, 0.408203f,
+-0.52832f, 0.310547f, -0.630859f, 0.310547f, -0.724609f, 0.408203f, -0.724609f, 0.408203f,
+-0.630859f, 0.446289f, 0, 0.267578f, -0.243652f, 0.203125f, -0.195801f, 0.203125f,
+0, 0.115234f, 0, 0.115234f, -0.724609f, 0.203125f, -0.724609f, 0.203125f, -0.271973f,
+0.435059f, -0.52832f, 0.538086f, -0.52832f, 0.32373f, -0.30127f, 0.549316f, 0, 0.359375f,
+-0.0693359f, 0.544922f, -0.0693359f, 0.544922f, 0, 0.0654297f, 0, 0.0654297f, -0.0693359f,
+0.271484f, -0.0693359f, 0.271484f, -0.655273f, 0.130371f, -0.655273f, 0.130371f,
+-0.724609f, 0.359375f, -0.724609f, 0.259277f, 0, 0.259277f, -0.334961f, 0.259277f,
+-0.373535f, 0.256348f, -0.399414f, 0.253418f, -0.425293f, 0.246826f, -0.441162f,
+0.240234f, -0.457031f, 0.229736f, -0.463623f, 0.219238f, -0.470215f, 0.203613f, -0.470215f,
+0.1875f, -0.470215f, 0.174805f, -0.457764f, 0.162109f, -0.445312f, 0.152832f, -0.422607f,
+0.143555f, -0.399902f, 0.138672f, -0.36792f, 0.133789f, -0.335938f, 0.133789f, -0.296387f,
+0.133789f, 0, 0.0512695f, 0, 0.0512695f, -0.415527f, 0.0512695f, -0.432129f, 0.0510254f,
+-0.450439f, 0.0507812f, -0.46875f, 0.050293f, -0.485107f, 0.0498047f, -0.501465f,
+0.0493164f, -0.513184f, 0.0488281f, -0.524902f, 0.0483398f, -0.52832f, 0.121094f,
+-0.52832f, 0.121582f, -0.525879f, 0.12207f, -0.515869f, 0.122559f, -0.505859f, 0.123047f,
+-0.49292f, 0.123535f, -0.47998f, 0.123779f, -0.466309f, 0.124023f, -0.452637f, 0.124023f,
+-0.442871f, 0.125f, -0.442871f, 0.131348f, -0.461914f, 0.140137f, -0.479248f, 0.148926f,
+-0.496582f, 0.161377f, -0.509766f, 0.173828f, -0.522949f, 0.190918f, -0.530518f,
+0.208008f, -0.538086f, 0.230469f, -0.538086f, 0.273438f, -0.538086f, 0.294678f, -0.514648f,
+0.315918f, -0.491211f, 0.325195f, -0.442383f, 0.326172f, -0.442383f, 0.334961f, -0.465332f,
+0.345459f, -0.483154f, 0.355957f, -0.500977f, 0.369629f, -0.513184f, 0.383301f, -0.525391f,
+0.400879f, -0.531738f, 0.418457f, -0.538086f, 0.441406f, -0.538086f, 0.471191f, -0.538086f,
+0.491699f, -0.527344f, 0.512207f, -0.516602f, 0.524902f, -0.494141f, 0.537598f, -0.47168f,
+0.543213f, -0.436523f, 0.548828f, -0.401367f, 0.548828f, -0.352051f, 0.548828f, 0,
+0.466797f, 0, 0.466797f, -0.334961f, 0.466797f, -0.373535f, 0.463867f, -0.399414f,
+0.460938f, -0.425293f, 0.454346f, -0.441162f, 0.447754f, -0.457031f, 0.437256f, -0.463623f,
+0.426758f, -0.470215f, 0.411133f, -0.470215f, 0.378906f, -0.470215f, 0.360107f, -0.429199f,
+0.341309f, -0.388184f, 0.341309f, -0.306152f, 0.341309f, 0, 0.423828f, 0, 0.423828f,
+-0.339355f, 0.423828f, -0.378418f, 0.415771f, -0.403564f, 0.407715f, -0.428711f,
+0.393311f, -0.443604f, 0.378906f, -0.458496f, 0.359375f, -0.464355f, 0.339844f, -0.470215f,
+0.316406f, -0.470215f, 0.287598f, -0.470215f, 0.262451f, -0.459229f, 0.237305f, -0.448242f,
+0.218506f, -0.42749f, 0.199707f, -0.406738f, 0.188965f, -0.376221f, 0.178223f, -0.345703f,
+0.178223f, -0.306152f, 0.178223f, 0, 0.090332f, 0, 0.090332f, -0.415527f, 0.090332f,
+-0.432129f, 0.0900879f, -0.450439f, 0.0898438f, -0.46875f, 0.0893555f, -0.485107f,
+0.0888672f, -0.501465f, 0.0883789f, -0.513184f, 0.0878906f, -0.524902f, 0.0874023f,
+-0.52832f, 0.17041f, -0.52832f, 0.170898f, -0.525879f, 0.171387f, -0.515137f, 0.171875f,
+-0.504395f, 0.172607f, -0.490479f, 0.17334f, -0.476562f, 0.173828f, -0.462158f, 0.174316f,
+-0.447754f, 0.174316f, -0.437988f, 0.175781f, -0.437988f, 0.1875f, -0.460938f, 0.203369f,
+-0.479492f, 0.219238f, -0.498047f, 0.23999f, -0.510986f, 0.260742f, -0.523926f, 0.286621f,
+-0.531006f, 0.3125f, -0.538086f, 0.344727f, -0.538086f, 0.385254f, -0.538086f, 0.416504f,
+-0.527344f, 0.447754f, -0.516602f, 0.468994f, -0.494141f, 0.490234f, -0.47168f, 0.501221f,
+-0.436523f, 0.512207f, -0.401367f, 0.512207f, -0.352051f, 0.512207f, 0, 0.535645f,
+-0.264648f, 0.535645f, -0.195312f, 0.519287f, -0.143799f, 0.50293f, -0.0922852f,
+0.472168f, -0.0581055f, 0.441406f, -0.0239258f, 0.397217f, -0.00708008f, 0.353027f,
+0.00976562f, 0.297363f, 0.00976562f, 0.244141f, 0.00976562f, 0.200928f, -0.00683594f,
+0.157715f, -0.0234375f, 0.127197f, -0.0576172f, 0.0966797f, -0.0917969f, 0.0800781f,
+-0.143311f, 0.0634766f, -0.194824f, 0.0634766f, -0.264648f, 0.0634766f, -0.400879f,
+0.125244f, -0.469482f, 0.187012f, -0.538086f, 0.300293f, -0.538086f, 0.419434f, -0.538086f,
+0.477539f, -0.470215f, 0.535645f, -0.402344f, 0.535645f, -0.264648f, 0.443359f, -0.264648f,
+0.443359f, -0.326172f, 0.432861f, -0.366211f, 0.422363f, -0.40625f, 0.403564f, -0.430176f,
+0.384766f, -0.454102f, 0.358887f, -0.463623f, 0.333008f, -0.473145f, 0.301758f, -0.473145f,
+0.27002f, -0.473145f, 0.243164f, -0.463135f, 0.216309f, -0.453125f, 0.197021f, -0.428955f,
+0.177734f, -0.404785f, 0.166748f, -0.364746f, 0.155762f, -0.324707f, 0.155762f, -0.264648f,
+0.155762f, -0.203125f, 0.167236f, -0.162842f, 0.178711f, -0.122559f, 0.197998f, -0.0986328f,
+0.217285f, -0.074707f, 0.24292f, -0.0649414f, 0.268555f, -0.0551758f, 0.296387f,
+-0.0551758f, 0.328125f, -0.0551758f, 0.355225f, -0.0646973f, 0.382324f, -0.0742188f,
+0.401855f, -0.0981445f, 0.421387f, -0.12207f, 0.432373f, -0.162598f, 0.443359f, -0.203125f,
+0.443359f, -0.264648f, 0.532227f, -0.266602f, 0.532227f, -0.206543f, 0.522461f, -0.155762f,
+0.512695f, -0.10498f, 0.490234f, -0.0683594f, 0.467773f, -0.0317383f, 0.431152f,
+-0.0109863f, 0.394531f, 0.00976562f, 0.34082f, 0.00976562f, 0.313965f, 0.00976562f,
+0.289551f, 0.00488281f, 0.265137f, 0, 0.244141f, -0.0107422f, 0.223145f, -0.0214844f,
+0.206787f, -0.0385742f, 0.19043f, -0.0556641f, 0.179199f, -0.0800781f, 0.176758f,
+-0.0800781f, 0.177246f, -0.0791016f, 0.17749f, -0.0715332f, 0.177734f, -0.0639648f,
+0.177979f, -0.0527344f, 0.178223f, -0.0415039f, 0.178467f, -0.0273438f, 0.178711f,
+-0.0131836f, 0.178711f, 0.000976562f, 0.178711f, 0.20752f, 0.090332f, 0.20752f, 0.090332f,
+-0.418945f, 0.090332f, -0.438477f, 0.0900879f, -0.456543f, 0.0898438f, -0.474609f,
+0.0893555f, -0.489014f, 0.0888672f, -0.503418f, 0.0883789f, -0.513672f, 0.0878906f,
+-0.523926f, 0.0874023f, -0.52832f, 0.172852f, -0.52832f, 0.17334f, -0.526855f, 0.174072f,
+-0.517822f, 0.174805f, -0.508789f, 0.175537f, -0.496094f, 0.17627f, -0.483398f, 0.177002f,
+-0.46875f, 0.177734f, -0.454102f, 0.177734f, -0.441406f, 0.179688f, -0.441406f, 0.191895f,
+-0.466797f, 0.207275f, -0.485352f, 0.222656f, -0.503906f, 0.242188f, -0.515869f,
+0.261719f, -0.527832f, 0.286133f, -0.533447f, 0.310547f, -0.539062f, 0.34082f, -0.539062f,
+0.394531f, -0.539062f, 0.431152f, -0.519531f, 0.467773f, -0.5f, 0.490234f, -0.464111f,
+0.512695f, -0.428223f, 0.522461f, -0.37793f, 0.532227f, -0.327637f, 0.532227f, -0.266602f,
+0.441406f, -0.266602f, 0.441406f, -0.31543f, 0.435547f, -0.353516f, 0.429688f, -0.391602f,
+0.415283f, -0.417725f, 0.400879f, -0.443848f, 0.377197f, -0.45752f, 0.353516f, -0.471191f,
+0.317871f, -0.471191f, 0.289062f, -0.471191f, 0.263672f, -0.462158f, 0.238281f, -0.453125f,
+0.219482f, -0.429443f, 0.200684f, -0.405762f, 0.189697f, -0.36377f, 0.178711f, -0.321777f,
+0.178711f, -0.255859f, 0.178711f, -0.199707f, 0.187744f, -0.161377f, 0.196777f, -0.123047f,
+0.214355f, -0.0993652f, 0.231934f, -0.0756836f, 0.257812f, -0.0654297f, 0.283691f,
+-0.0551758f, 0.316895f, -0.0551758f, 0.352539f, -0.0551758f, 0.376465f, -0.0690918f,
+0.400391f, -0.0830078f, 0.414795f, -0.109863f, 0.429199f, -0.136719f, 0.435303f,
+-0.17627f, 0.441406f, -0.21582f, 0.441406f, -0.266602f, 0.258301f, -0.536133f, 0.290527f,
+-0.536133f, 0.31543f, -0.530762f, 0.340332f, -0.525391f, 0.359619f, -0.51416f, 0.378906f,
+-0.50293f, 0.393799f, -0.486084f, 0.408691f, -0.469238f, 0.42041f, -0.446289f, 0.421387f,
+-0.446289f, 0.421387f, -0.458496f, 0.422119f, -0.472412f, 0.422852f, -0.486328f,
+0.423584f, -0.498291f, 0.424316f, -0.510254f, 0.425537f, -0.518799f, 0.426758f, -0.527344f,
+0.427246f, -0.528809f, 0.512695f, -0.528809f, 0.512207f, -0.524414f, 0.511719f, -0.514648f,
+0.51123f, -0.504883f, 0.510742f, -0.488281f, 0.510254f, -0.47168f, 0.51001f, -0.447754f,
+0.509766f, -0.423828f, 0.509766f, -0.391113f, 0.509766f, 0.20752f, 0.421387f, 0.20752f,
+0.421387f, -0.00683594f, 0.421387f, -0.0195312f, 0.421631f, -0.0336914f, 0.421875f,
+-0.0478516f, 0.422363f, -0.0605469f, 0.422852f, -0.0751953f, 0.42334f, -0.0888672f,
+0.422363f, -0.0888672f, 0.410156f, -0.0639648f, 0.394775f, -0.0449219f, 0.379395f,
+-0.0258789f, 0.359619f, -0.0129395f, 0.339844f, 0, 0.315186f, 0.00634766f, 0.290527f,
+0.0126953f, 0.258789f, 0.0126953f, 0.160156f, 0.0126953f, 0.11377f, -0.0559082f,
+0.0673828f, -0.124512f, 0.0673828f, -0.259766f, 0.0673828f, -0.396973f, 0.11499f,
+-0.466553f, 0.162598f, -0.536133f, 0.258301f, -0.536133f, 0.421387f, -0.270508f,
+0.421387f, -0.328613f, 0.411621f, -0.367188f, 0.401855f, -0.405762f, 0.383789f, -0.428711f,
+0.365723f, -0.45166f, 0.340088f, -0.461426f, 0.314453f, -0.471191f, 0.282715f, -0.471191f,
+0.249512f, -0.471191f, 0.22583f, -0.45874f, 0.202148f, -0.446289f, 0.187256f, -0.420654f,
+0.172363f, -0.39502f, 0.165283f, -0.355713f, 0.158203f, -0.316406f, 0.158203f, -0.262695f,
+0.158203f, -0.210938f, 0.165039f, -0.172119f, 0.171875f, -0.133301f, 0.186523f, -0.107422f,
+0.201172f, -0.081543f, 0.224609f, -0.0683594f, 0.248047f, -0.0551758f, 0.281738f,
+-0.0551758f, 0.310547f, -0.0551758f, 0.335938f, -0.0646973f, 0.361328f, -0.0742188f,
+0.380371f, -0.0983887f, 0.399414f, -0.122559f, 0.4104f, -0.164307f, 0.421387f, -0.206055f,
+0.421387f, -0.270508f, 0.510254f, -0.448242f, 0.487305f, -0.452148f, 0.462158f, -0.454834f,
+0.437012f, -0.45752f, 0.406738f, -0.45752f, 0.365723f, -0.45752f, 0.333008f, -0.440918f,
+0.300293f, -0.424316f, 0.277832f, -0.395752f, 0.255371f, -0.367188f, 0.243408f, -0.329102f,
+0.231445f, -0.291016f, 0.231445f, -0.248047f, 0.231445f, 0, 0.143555f, 0, 0.143555f,
+-0.342285f, 0.143555f, -0.369629f, 0.140625f, -0.397949f, 0.137695f, -0.42627f, 0.133789f,
+-0.451416f, 0.129883f, -0.476562f, 0.125488f, -0.496582f, 0.121094f, -0.516602f,
+0.118164f, -0.52832f, 0.20166f, -0.52832f, 0.205078f, -0.516602f, 0.20874f, -0.501465f,
+0.212402f, -0.486328f, 0.21582f, -0.469971f, 0.219238f, -0.453613f, 0.22168f, -0.437012f,
+0.224121f, -0.42041f, 0.225098f, -0.40625f, 0.227539f, -0.40625f, 0.241211f, -0.436523f,
+0.256348f, -0.460938f, 0.271484f, -0.485352f, 0.292236f, -0.502441f, 0.312988f, -0.519531f,
+0.341309f, -0.528809f, 0.369629f, -0.538086f, 0.409668f, -0.538086f, 0.437012f, -0.538086f,
+0.463379f, -0.535645f, 0.489746f, -0.533203f, 0.510254f, -0.529785f, 0.517578f, -0.150879f,
+0.517578f, -0.11377f, 0.503174f, -0.0839844f, 0.48877f, -0.0541992f, 0.461426f, -0.0334473f,
+0.434082f, -0.0126953f, 0.394287f, -0.00146484f, 0.354492f, 0.00976562f, 0.303223f,
+0.00976562f, 0.257324f, 0.00976562f, 0.220459f, 0.00317383f, 0.183594f, -0.00341797f,
+0.155762f, -0.0185547f, 0.12793f, -0.0336914f, 0.109131f, -0.0588379f, 0.090332f,
+-0.0839844f, 0.081543f, -0.121094f, 0.15918f, -0.13623f, 0.165039f, -0.109375f, 0.177979f,
+-0.0935059f, 0.190918f, -0.0776367f, 0.209229f, -0.0693359f, 0.227539f, -0.0610352f,
+0.251465f, -0.0583496f, 0.275391f, -0.0556641f, 0.303223f, -0.0556641f, 0.331543f,
+-0.0556641f, 0.355713f, -0.0598145f, 0.379883f, -0.0639648f, 0.397461f, -0.0739746f,
+0.415039f, -0.0839844f, 0.425049f, -0.0998535f, 0.435059f, -0.115723f, 0.435059f,
+-0.13916f, 0.435059f, -0.163574f, 0.422607f, -0.178467f, 0.410156f, -0.193359f, 0.388672f,
+-0.203613f, 0.367188f, -0.213867f, 0.337646f, -0.221191f, 0.308105f, -0.228516f,
+0.273438f, -0.237793f, 0.242188f, -0.246094f, 0.211426f, -0.255859f, 0.180664f, -0.265625f,
+0.156494f, -0.281494f, 0.132324f, -0.297363f, 0.117432f, -0.321777f, 0.102539f, -0.346191f,
+0.102539f, -0.383789f, 0.102539f, -0.455566f, 0.154297f, -0.496094f, 0.206055f, -0.536621f,
+0.304199f, -0.536621f, 0.342773f, -0.536621f, 0.376465f, -0.529541f, 0.410156f, -0.522461f,
+0.436523f, -0.50708f, 0.462891f, -0.491699f, 0.480713f, -0.467529f, 0.498535f, -0.443359f,
+0.505371f, -0.409668f, 0.42627f, -0.399902f, 0.422852f, -0.421875f, 0.411621f, -0.435547f,
+0.400391f, -0.449219f, 0.384033f, -0.457275f, 0.367676f, -0.465332f, 0.347168f, -0.468262f,
+0.32666f, -0.471191f, 0.304199f, -0.471191f, 0.18457f, -0.471191f, 0.18457f, -0.397461f,
+0.18457f, -0.375f, 0.195068f, -0.361084f, 0.205566f, -0.347168f, 0.224609f, -0.337891f,
+0.243652f, -0.328613f, 0.27002f, -0.322021f, 0.296387f, -0.31543f, 0.328125f, -0.307129f,
+0.359863f, -0.299316f, 0.393311f, -0.289062f, 0.426758f, -0.278809f, 0.454346f, -0.261719f,
+0.481934f, -0.244629f, 0.499756f, -0.218018f, 0.517578f, -0.191406f, 0.517578f, -0.150879f,
+0.0927734f, -0.458984f, 0.0927734f, -0.52832f, 0.175781f, -0.52832f, 0.204102f, -0.666016f,
+0.262695f, -0.666016f, 0.262695f, -0.52832f, 0.473633f, -0.52832f, 0.473633f, -0.458984f,
+0.262695f, -0.458984f, 0.262695f, -0.140625f, 0.262695f, -0.102051f, 0.283447f, -0.0834961f,
+0.304199f, -0.0649414f, 0.351562f, -0.0649414f, 0.371094f, -0.0649414f, 0.391846f,
+-0.0666504f, 0.412598f, -0.0683594f, 0.431885f, -0.0708008f, 0.451172f, -0.0732422f,
+0.468018f, -0.0761719f, 0.484863f, -0.0791016f, 0.496582f, -0.081543f, 0.496582f,
+-0.0146484f, 0.48584f, -0.0117188f, 0.46875f, -0.0078125f, 0.45166f, -0.00390625f,
+0.43042f, -0.000488281f, 0.40918f, 0.00292969f, 0.384277f, 0.00537109f, 0.359375f,
+0.0078125f, 0.333008f, 0.0078125f, 0.253906f, 0.0078125f, 0.214355f, -0.0256348f,
+0.174805f, -0.059082f, 0.174805f, -0.131348f, 0.174805f, -0.458984f, 0.178223f, -0.52832f,
+0.178223f, -0.193359f, 0.178223f, -0.154785f, 0.183838f, -0.128906f, 0.189453f, -0.103027f,
+0.202393f, -0.0871582f, 0.215332f, -0.0712891f, 0.236084f, -0.0646973f, 0.256836f,
+-0.0581055f, 0.287598f, -0.0581055f, 0.318848f, -0.0581055f, 0.343994f, -0.0690918f,
+0.369141f, -0.0800781f, 0.386963f, -0.10083f, 0.404785f, -0.121582f, 0.414307f, -0.1521f,
+0.423828f, -0.182617f, 0.423828f, -0.222168f, 0.423828f, -0.52832f, 0.512207f, -0.52832f,
+0.512207f, -0.112793f, 0.512207f, -0.0961914f, 0.512451f, -0.0778809f, 0.512695f,
+-0.0595703f, 0.513184f, -0.0432129f, 0.513672f, -0.0268555f, 0.51416f, -0.0151367f,
+0.514648f, -0.00341797f, 0.515137f, 0, 0.432129f, 0, 0.431641f, -0.00244141f, 0.431152f,
+-0.0131836f, 0.430664f, -0.0239258f, 0.429932f, -0.0378418f, 0.429199f, -0.0517578f,
+0.428711f, -0.0661621f, 0.428223f, -0.0805664f, 0.428223f, -0.090332f, 0.426758f,
+-0.090332f, 0.414062f, -0.0673828f, 0.398926f, -0.0488281f, 0.383789f, -0.0302734f,
+0.36377f, -0.017334f, 0.34375f, -0.00439453f, 0.317871f, 0.00268555f, 0.291992f,
+0.00976562f, 0.257812f, 0.00976562f, 0.213867f, 0.00976562f, 0.182129f, -0.000976562f,
+0.150391f, -0.0117188f, 0.129883f, -0.0341797f, 0.109375f, -0.0566406f, 0.0998535f,
+-0.092041f, 0.090332f, -0.127441f, 0.090332f, -0.17627f, 0.090332f, -0.52832f, 0.349121f,
+0, 0.245117f, 0, 0.0336914f, -0.52832f, 0.132324f, -0.52832f, 0.263184f, -0.18457f,
+0.26709f, -0.173828f, 0.271484f, -0.158447f, 0.275879f, -0.143066f, 0.280762f, -0.126465f,
+0.285645f, -0.109863f, 0.289795f, -0.0944824f, 0.293945f, -0.0791016f, 0.296875f,
+-0.0688477f, 0.299805f, -0.0791016f, 0.304443f, -0.0944824f, 0.309082f, -0.109863f,
+0.313965f, -0.125977f, 0.318848f, -0.14209f, 0.323975f, -0.157471f, 0.329102f, -0.172852f,
+0.333008f, -0.183594f, 0.467773f, -0.52832f, 0.565918f, -0.52832f, 0.49707f, 0, 0.397461f,
+0, 0.327637f, -0.22998f, 0.32373f, -0.243164f, 0.318848f, -0.26001f, 0.313965f, -0.276855f,
+0.30957f, -0.29248f, 0.304199f, -0.310547f, 0.299805f, -0.328613f, 0.29541f, -0.310547f,
+0.290039f, -0.292969f, 0.285645f, -0.277832f, 0.280762f, -0.260498f, 0.275879f, -0.243164f,
+0.270996f, -0.228027f, 0.19873f, 0, 0.0996094f, 0, 0.0102539f, -0.52832f, 0.097168f,
+-0.52832f, 0.142578f, -0.231934f, 0.144043f, -0.220215f, 0.146729f, -0.199463f, 0.149414f,
+-0.178711f, 0.1521f, -0.155273f, 0.154785f, -0.131836f, 0.156738f, -0.109375f, 0.158691f,
+-0.0869141f, 0.158691f, -0.0727539f, 0.164062f, -0.0947266f, 0.169434f, -0.114746f,
+0.173828f, -0.131836f, 0.178711f, -0.149658f, 0.183594f, -0.16748f, 0.187012f, -0.177246f,
+0.25293f, -0.384277f, 0.347168f, -0.384277f, 0.410645f, -0.176758f, 0.413574f, -0.166992f,
+0.418213f, -0.149658f, 0.422852f, -0.132324f, 0.427246f, -0.115234f, 0.432617f, -0.0952148f,
+0.4375f, -0.0727539f, 0.4375f, -0.0874023f, 0.439453f, -0.109375f, 0.441406f, -0.131348f,
+0.444336f, -0.154541f, 0.447266f, -0.177734f, 0.450195f, -0.19873f, 0.453125f, -0.219727f,
+0.45459f, -0.231934f, 0.503906f, -0.52832f, 0.589844f, -0.52832f, 0.455078f, 0, 0.29834f,
+-0.216797f, 0.140625f, 0, 0.0458984f, 0, 0.248535f, -0.271484f, 0.0546875f, -0.52832f,
+0.151855f, -0.52832f, 0.29834f, -0.322754f, 0.443848f, -0.52832f, 0.541992f, -0.52832f,
+0.348145f, -0.272461f, 0.553223f, 0, 0.344238f, 0, 0.326172f, 0.0478516f, 0.306641f,
+0.0861816f, 0.287109f, 0.124512f, 0.263184f, 0.151611f, 0.239258f, 0.178711f, 0.209961f,
+0.193115f, 0.180664f, 0.20752f, 0.142578f, 0.20752f, 0.125977f, 0.20752f, 0.111816f,
+0.206543f, 0.0976562f, 0.205566f, 0.0820312f, 0.202148f, 0.0820312f, 0.13623f, 0.0913086f,
+0.137695f, 0.103027f, 0.138428f, 0.114746f, 0.13916f, 0.123047f, 0.13916f, 0.161621f,
+0.13916f, 0.195557f, 0.110352f, 0.229492f, 0.081543f, 0.25293f, 0.0185547f, 0.261719f,
+-0.00537109f, 0.0322266f, -0.52832f, 0.125977f, -0.52832f, 0.254883f, -0.214844f,
+0.260254f, -0.20166f, 0.268066f, -0.182373f, 0.275879f, -0.163086f, 0.283203f, -0.144287f,
+0.290527f, -0.125488f, 0.296143f, -0.110352f, 0.301758f, -0.0952148f, 0.302734f,
+-0.0908203f, 0.304199f, -0.0961914f, 0.309814f, -0.111084f, 0.31543f, -0.125977f,
+0.322754f, -0.144287f, 0.330078f, -0.162598f, 0.337646f, -0.181885f, 0.345215f, -0.201172f,
+0.351074f, -0.215332f, 0.474121f, -0.52832f, 0.566895f, -0.52832f, 0.0717773f, 0,
+0.0717773f, -0.0668945f, 0.404297f, -0.460449f, 0.0913086f, -0.460449f, 0.0913086f,
+-0.52832f, 0.503418f, -0.52832f, 0.503418f, -0.461426f, 0.17041f, -0.0678711f, 0.521484f,
+-0.0678711f, 0.521484f, 0, 0.388672f, 0.20752f, 0.356934f, 0.20752f, 0.330566f, 0.196777f,
+0.304199f, 0.186035f, 0.285156f, 0.166504f, 0.266113f, 0.146973f, 0.255615f, 0.119873f,
+0.245117f, 0.0927734f, 0.245117f, 0.0595703f, 0.245117f, -0.111816f, 0.245117f, -0.142578f,
+0.233643f, -0.163818f, 0.222168f, -0.185059f, 0.203125f, -0.198242f, 0.184082f, -0.211426f,
+0.159912f, -0.217773f, 0.135742f, -0.224121f, 0.11084f, -0.225098f, 0.11084f, -0.291992f,
+0.135742f, -0.292969f, 0.159912f, -0.299316f, 0.184082f, -0.305664f, 0.203125f, -0.319092f,
+0.222168f, -0.33252f, 0.233643f, -0.353516f, 0.245117f, -0.374512f, 0.245117f, -0.404785f,
+0.245117f, -0.57666f, 0.245117f, -0.61084f, 0.255615f, -0.638184f, 0.266113f, -0.665527f,
+0.285156f, -0.684814f, 0.304199f, -0.704102f, 0.330566f, -0.714355f, 0.356934f, -0.724609f,
+0.388672f, -0.724609f, 0.518066f, -0.724609f, 0.518066f, -0.656738f, 0.414062f, -0.656738f,
+0.39209f, -0.656738f, 0.376221f, -0.651611f, 0.360352f, -0.646484f, 0.350098f, -0.635254f,
+0.339844f, -0.624023f, 0.335205f, -0.605957f, 0.330566f, -0.587891f, 0.330566f, -0.561523f,
+0.330566f, -0.392578f, 0.330566f, -0.364746f, 0.320557f, -0.342285f, 0.310547f, -0.319824f,
+0.294434f, -0.302979f, 0.27832f, -0.286133f, 0.258057f, -0.275391f, 0.237793f, -0.264648f,
+0.217773f, -0.259766f, 0.217773f, -0.258789f, 0.23877f, -0.253906f, 0.259033f, -0.24292f,
+0.279297f, -0.231934f, 0.295166f, -0.215332f, 0.311035f, -0.19873f, 0.320801f, -0.176025f,
+0.330566f, -0.15332f, 0.330566f, -0.125f, 0.330566f, 0.0444336f, 0.330566f, 0.0961914f,
+0.350098f, 0.11792f, 0.369629f, 0.139648f, 0.414062f, 0.139648f, 0.518066f, 0.139648f,
+0.518066f, 0.20752f, 0.259277f, 0.20752f, 0.259277f, -0.724609f, 0.340332f, -0.724609f,
+0.340332f, 0.20752f, 0.081543f, 0.20752f, 0.081543f, 0.139648f, 0.185547f, 0.139648f,
+0.22998f, 0.139648f, 0.249756f, 0.11792f, 0.269531f, 0.0961914f, 0.269531f, 0.0444336f,
+0.269531f, -0.125f, 0.269531f, -0.15332f, 0.279297f, -0.176025f, 0.289062f, -0.19873f,
+0.304932f, -0.215332f, 0.320801f, -0.231934f, 0.34082f, -0.24292f, 0.36084f, -0.253906f,
+0.381836f, -0.258789f, 0.381836f, -0.259766f, 0.361816f, -0.264648f, 0.341797f, -0.275391f,
+0.321777f, -0.286133f, 0.305664f, -0.302979f, 0.289551f, -0.319824f, 0.279541f, -0.342285f,
+0.269531f, -0.364746f, 0.269531f, -0.392578f, 0.269531f, -0.561523f, 0.269531f, -0.587891f,
+0.264648f, -0.605957f, 0.259766f, -0.624023f, 0.249512f, -0.635254f, 0.239258f, -0.646484f,
+0.223389f, -0.651611f, 0.20752f, -0.656738f, 0.185547f, -0.656738f, 0.081543f, -0.656738f,
+0.081543f, -0.724609f, 0.210938f, -0.724609f, 0.242676f, -0.724609f, 0.269043f, -0.714355f,
+0.29541f, -0.704102f, 0.314453f, -0.684814f, 0.333496f, -0.665527f, 0.343994f, -0.638184f,
+0.354492f, -0.61084f, 0.354492f, -0.57666f, 0.354492f, -0.404785f, 0.354492f, -0.374512f,
+0.365967f, -0.353516f, 0.377441f, -0.33252f, 0.396484f, -0.319092f, 0.415527f, -0.305664f,
+0.439697f, -0.299316f, 0.463867f, -0.292969f, 0.48877f, -0.291992f, 0.48877f, -0.225098f,
+0.463867f, -0.224121f, 0.439697f, -0.217773f, 0.415527f, -0.211426f, 0.396484f, -0.198242f,
+0.377441f, -0.185059f, 0.365967f, -0.163818f, 0.354492f, -0.142578f, 0.354492f, -0.111816f,
+0.354492f, 0.0595703f, 0.354492f, 0.0927734f, 0.343994f, 0.119873f, 0.333496f, 0.146973f,
+0.314453f, 0.166504f, 0.29541f, 0.186035f, 0.269043f, 0.196777f, 0.242676f, 0.20752f,
+0.210938f, 0.20752f, 0.181152f, -0.394043f, 0.201172f, -0.394043f, 0.220459f, -0.390869f,
+0.239746f, -0.387695f, 0.258545f, -0.382812f, 0.277344f, -0.37793f, 0.295654f, -0.371582f,
+0.313965f, -0.365234f, 0.332031f, -0.358887f, 0.342285f, -0.355469f, 0.354492f, -0.351562f,
+0.366699f, -0.347656f, 0.37915f, -0.344238f, 0.391602f, -0.34082f, 0.404053f, -0.338867f,
+0.416504f, -0.336914f, 0.427734f, -0.336914f, 0.461426f, -0.336914f, 0.491455f, -0.349121f,
+0.521484f, -0.361328f, 0.546875f, -0.381836f, 0.546875f, -0.309082f, 0.531738f, -0.29834f,
+0.51709f, -0.290771f, 0.502441f, -0.283203f, 0.487549f, -0.278564f, 0.472656f, -0.273926f,
+0.456055f, -0.271973f, 0.439453f, -0.27002f, 0.419922f, -0.27002f, 0.38623f, -0.27002f,
+0.35083f, -0.280762f, 0.31543f, -0.291504f, 0.279785f, -0.304199f, 0.216797f, -0.326172f,
+0.173828f, -0.326172f, 0.155273f, -0.326172f, 0.139404f, -0.323242f, 0.123535f, -0.320312f,
+0.108887f, -0.314697f, 0.0942383f, -0.309082f, 0.0805664f, -0.30127f, 0.0668945f,
+-0.293457f, 0.0527344f, -0.283203f, 0.0527344f, -0.353027f, 0.0771484f, -0.371582f,
+0.109375f, -0.382812f, 0.141602f, -0.394043f, 0.181152f, -0.394043f
+};
+
+const unsigned char LiberationMonoNormalVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 5, 0, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1,
+1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoNormalCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoNormalWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoNormalCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoNormalCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoNormalMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.633301f, 0.00989532f,
+-0.0244141f, 0.608887f, 0.538086f, 0.0104446f, 0.0410156f, 0.23291f
+};
+
+const SkScalar LiberationMonoBoldPoints[] = {
+0.0620117f, 0, 0.0620117f, -0.366211f, 0.437988f, -0.366211f, 0.437988f, 0, 0.375f,
+-0.304199f, 0.125f, -0.304199f, 0.125f, -0.0629883f, 0.375f, -0.0629883f, 0.356445f,
+-0.208008f, 0.244141f, -0.208008f, 0.228516f, -0.658691f, 0.37207f, -0.658691f, 0.228516f,
+0, 0.228516f, -0.131836f, 0.369141f, -0.131836f, 0.369141f, 0, 0.459961f, -0.412109f,
+0.362793f, -0.412109f, 0.344727f, -0.725098f, 0.479004f, -0.725098f, 0.237305f, -0.412109f,
+0.140137f, -0.412109f, 0.12207f, -0.725098f, 0.255371f, -0.725098f, 0.464355f, -0.407715f,
+0.430664f, -0.249512f, 0.546387f, -0.249512f, 0.546387f, -0.176758f, 0.414551f, -0.176758f,
+0.376465f, 0, 0.300781f, 0, 0.339355f, -0.176758f, 0.188477f, -0.176758f, 0.150391f,
+0, 0.0756836f, 0, 0.11377f, -0.176758f, 0.0288086f, -0.176758f, 0.0288086f, -0.249512f,
+0.129395f, -0.249512f, 0.163574f, -0.407715f, 0.0527344f, -0.407715f, 0.0527344f,
+-0.47998f, 0.179199f, -0.47998f, 0.217773f, -0.658691f, 0.29248f, -0.658691f, 0.254395f,
+-0.47998f, 0.404785f, -0.47998f, 0.443359f, -0.658691f, 0.518066f, -0.658691f, 0.47998f,
+-0.47998f, 0.570312f, -0.47998f, 0.570312f, -0.407715f, 0.238281f, -0.407715f, 0.204102f,
+-0.249512f, 0.35498f, -0.249512f, 0.38916f, -0.407715f, 0.5625f, -0.191895f, 0.5625f,
+-0.150391f, 0.548828f, -0.116455f, 0.535156f, -0.0825195f, 0.506592f, -0.0578613f,
+0.478027f, -0.0332031f, 0.433594f, -0.0187988f, 0.38916f, -0.00439453f, 0.327637f,
+-0.00195312f, 0.327637f, 0.0834961f, 0.274414f, 0.0834961f, 0.274414f, -0.000488281f,
+0.21875f, -0.00244141f, 0.17749f, -0.015625f, 0.13623f, -0.0288086f, 0.107178f, -0.0527344f,
+0.078125f, -0.0766602f, 0.0603027f, -0.111084f, 0.0424805f, -0.145508f, 0.0336914f,
+-0.189941f, 0.158691f, -0.212891f, 0.162598f, -0.189453f, 0.170166f, -0.170166f,
+0.177734f, -0.150879f, 0.190918f, -0.136719f, 0.204102f, -0.122559f, 0.224365f, -0.113525f,
+0.244629f, -0.104492f, 0.274414f, -0.101562f, 0.274414f, -0.29248f, 0.272949f, -0.293457f,
+0.26709f, -0.294678f, 0.26123f, -0.295898f, 0.259277f, -0.295898f, 0.221191f, -0.304688f,
+0.184814f, -0.317627f, 0.148438f, -0.330566f, 0.120117f, -0.352783f, 0.0917969f,
+-0.375f, 0.0744629f, -0.408936f, 0.0571289f, -0.442871f, 0.0571289f, -0.493652f,
+0.0571289f, -0.538086f, 0.072998f, -0.570068f, 0.0888672f, -0.602051f, 0.117676f,
+-0.623047f, 0.146484f, -0.644043f, 0.186523f, -0.654785f, 0.226562f, -0.665527f,
+0.274414f, -0.66748f, 0.274414f, -0.73291f, 0.327637f, -0.73291f, 0.327637f, -0.66748f,
+0.379883f, -0.665527f, 0.416992f, -0.653809f, 0.454102f, -0.64209f, 0.479736f, -0.62085f,
+0.505371f, -0.599609f, 0.521484f, -0.568604f, 0.537598f, -0.537598f, 0.547852f, -0.496582f,
+0.418945f, -0.477539f, 0.404297f, -0.561523f, 0.327637f, -0.571777f, 0.327637f, -0.399902f,
+0.330078f, -0.398926f, 0.332764f, -0.398926f, 0.335449f, -0.398926f, 0.338379f, -0.397949f,
+0.380371f, -0.388184f, 0.420654f, -0.375f, 0.460938f, -0.361816f, 0.492432f, -0.339355f,
+0.523926f, -0.316895f, 0.543213f, -0.281494f, 0.5625f, -0.246094f, 0.5625f, -0.191895f,
+0.274414f, -0.57373f, 0.248535f, -0.571777f, 0.231445f, -0.564941f, 0.214355f, -0.558105f,
+0.204102f, -0.547607f, 0.193848f, -0.537109f, 0.189453f, -0.523682f, 0.185059f, -0.510254f,
+0.185059f, -0.495605f, 0.185059f, -0.474609f, 0.19165f, -0.461182f, 0.198242f, -0.447754f,
+0.210205f, -0.438965f, 0.222168f, -0.430176f, 0.238525f, -0.424072f, 0.254883f, -0.417969f,
+0.274414f, -0.411621f, 0.435547f, -0.189941f, 0.435547f, -0.213867f, 0.427246f, -0.22876f,
+0.418945f, -0.243652f, 0.404297f, -0.25293f, 0.389648f, -0.262207f, 0.369873f, -0.268311f,
+0.350098f, -0.274414f, 0.327637f, -0.280762f, 0.327637f, -0.101562f, 0.379395f, -0.10498f,
+0.407471f, -0.125977f, 0.435547f, -0.146973f, 0.435547f, -0.189941f, 0.115234f, 0,
+0.0297852f, 0, 0.484863f, -0.660645f, 0.571289f, -0.660645f, 0.14209f, -0.664551f,
+0.17041f, -0.664551f, 0.195557f, -0.656982f, 0.220703f, -0.649414f, 0.239502f, -0.630615f,
+0.258301f, -0.611816f, 0.269287f, -0.580322f, 0.280273f, -0.548828f, 0.280273f, -0.500488f,
+0.280273f, -0.453613f, 0.269287f, -0.421875f, 0.258301f, -0.390137f, 0.239258f, -0.370605f,
+0.220215f, -0.351074f, 0.194824f, -0.342529f, 0.169434f, -0.333984f, 0.140137f, -0.333984f,
+0.11084f, -0.333984f, 0.0852051f, -0.342529f, 0.0595703f, -0.351074f, 0.0405273f,
+-0.370361f, 0.0214844f, -0.389648f, 0.0107422f, -0.421631f, 0, -0.453613f, 0, -0.500488f,
+0, -0.548828f, 0.0109863f, -0.580322f, 0.0219727f, -0.611816f, 0.0410156f, -0.630615f,
+0.0600586f, -0.649414f, 0.0859375f, -0.656982f, 0.111816f, -0.664551f, 0.14209f,
+-0.664551f, 0.194336f, -0.500488f, 0.194336f, -0.527832f, 0.190918f, -0.546631f,
+0.1875f, -0.56543f, 0.180664f, -0.576904f, 0.173828f, -0.588379f, 0.164062f, -0.593506f,
+0.154297f, -0.598633f, 0.141113f, -0.598633f, 0.11377f, -0.598633f, 0.0998535f, -0.576416f,
+0.0859375f, -0.554199f, 0.0859375f, -0.500488f, 0.0859375f, -0.447754f, 0.100098f,
+-0.425049f, 0.114258f, -0.402344f, 0.141113f, -0.402344f, 0.165527f, -0.402344f,
+0.179932f, -0.425049f, 0.194336f, -0.447754f, 0.194336f, -0.500488f, 0.462402f, -0.324707f,
+0.490723f, -0.324707f, 0.515869f, -0.317139f, 0.541016f, -0.30957f, 0.559814f, -0.290771f,
+0.578613f, -0.271973f, 0.5896f, -0.240479f, 0.600586f, -0.208984f, 0.600586f, -0.160645f,
+0.600586f, -0.11377f, 0.5896f, -0.0820312f, 0.578613f, -0.050293f, 0.55957f, -0.0307617f,
+0.540527f, -0.0112305f, 0.515137f, -0.00268555f, 0.489746f, 0.00585938f, 0.460449f,
+0.00585938f, 0.431152f, 0.00585938f, 0.405518f, -0.00268555f, 0.379883f, -0.0112305f,
+0.36084f, -0.0305176f, 0.341797f, -0.0498047f, 0.331055f, -0.0817871f, 0.320312f,
+-0.11377f, 0.320312f, -0.160645f, 0.320312f, -0.208984f, 0.331299f, -0.240479f, 0.342285f,
+-0.271973f, 0.361328f, -0.290771f, 0.380371f, -0.30957f, 0.40625f, -0.317139f, 0.432129f,
+-0.324707f, 0.462402f, -0.324707f, 0.514648f, -0.160645f, 0.514648f, -0.187988f,
+0.51123f, -0.206787f, 0.507812f, -0.225586f, 0.500977f, -0.237061f, 0.494141f, -0.248535f,
+0.484375f, -0.253662f, 0.474609f, -0.258789f, 0.461426f, -0.258789f, 0.434082f, -0.258789f,
+0.420166f, -0.236572f, 0.40625f, -0.214355f, 0.40625f, -0.160645f, 0.40625f, -0.10791f,
+0.42041f, -0.0852051f, 0.43457f, -0.0625f, 0.461426f, -0.0625f, 0.48584f, -0.0625f,
+0.500244f, -0.0852051f, 0.514648f, -0.10791f, 0.514648f, -0.160645f, 0.0117188f,
+-0.180176f, 0.0117188f, -0.214355f, 0.0231934f, -0.244385f, 0.034668f, -0.274414f,
+0.0546875f, -0.299805f, 0.074707f, -0.325195f, 0.101562f, -0.345459f, 0.128418f,
+-0.365723f, 0.15918f, -0.380371f, 0.144043f, -0.410645f, 0.134277f, -0.445312f, 0.124512f,
+-0.47998f, 0.124512f, -0.510742f, 0.124512f, -0.541504f, 0.134033f, -0.569092f, 0.143555f,
+-0.59668f, 0.164307f, -0.617432f, 0.185059f, -0.638184f, 0.21875f, -0.650391f, 0.252441f,
+-0.662598f, 0.300781f, -0.662598f, 0.336914f, -0.662598f, 0.366943f, -0.65332f, 0.396973f,
+-0.644043f, 0.418945f, -0.626221f, 0.440918f, -0.608398f, 0.453125f, -0.582764f,
+0.465332f, -0.557129f, 0.465332f, -0.523926f, 0.465332f, -0.490234f, 0.449951f, -0.463623f,
+0.43457f, -0.437012f, 0.409668f, -0.415527f, 0.384766f, -0.394043f, 0.352783f, -0.376221f,
+0.320801f, -0.358398f, 0.287109f, -0.342773f, 0.310059f, -0.302734f, 0.335449f, -0.266602f,
+0.36084f, -0.230469f, 0.391602f, -0.195312f, 0.410645f, -0.23291f, 0.423584f, -0.272217f,
+0.436523f, -0.311523f, 0.444336f, -0.353516f, 0.543945f, -0.340332f, 0.53418f, -0.285645f,
+0.515137f, -0.231201f, 0.496094f, -0.176758f, 0.468262f, -0.12793f, 0.489258f, -0.109863f,
+0.510498f, -0.101074f, 0.531738f, -0.0922852f, 0.550781f, -0.0922852f, 0.562012f,
+-0.0922852f, 0.574951f, -0.0944824f, 0.587891f, -0.0966797f, 0.596191f, -0.100586f,
+0.596191f, -0.00488281f, 0.586426f, 0.000488281f, 0.573486f, 0.00292969f, 0.560547f,
+0.00537109f, 0.549805f, 0.00537109f, 0.525879f, 0.00537109f, 0.505127f, 0.000732422f,
+0.484375f, -0.00390625f, 0.466309f, -0.0114746f, 0.448242f, -0.019043f, 0.432617f,
+-0.0292969f, 0.416992f, -0.0395508f, 0.40332f, -0.0507812f, 0.387695f, -0.0390625f,
+0.369141f, -0.0280762f, 0.350586f, -0.0170898f, 0.328613f, -0.00878906f, 0.306641f,
+-0.000488281f, 0.281494f, 0.00439453f, 0.256348f, 0.00927734f, 0.228027f, 0.00927734f,
+0.170898f, 0.00927734f, 0.129883f, -0.00512695f, 0.0888672f, -0.0195312f, 0.0625f,
+-0.0449219f, 0.0361328f, -0.0703125f, 0.0239258f, -0.10498f, 0.0117188f, -0.139648f,
+0.0117188f, -0.180176f, 0.327637f, -0.116699f, 0.291504f, -0.156738f, 0.259033f,
+-0.200684f, 0.226562f, -0.244629f, 0.199707f, -0.29248f, 0.185547f, -0.28418f, 0.172852f,
+-0.272949f, 0.160156f, -0.261719f, 0.150635f, -0.247803f, 0.141113f, -0.233887f,
+0.135742f, -0.217285f, 0.130371f, -0.200684f, 0.130371f, -0.182129f, 0.130371f, -0.160645f,
+0.136475f, -0.141846f, 0.142578f, -0.123047f, 0.155273f, -0.109131f, 0.167969f, -0.0952148f,
+0.187256f, -0.0874023f, 0.206543f, -0.0795898f, 0.23291f, -0.0795898f, 0.263672f,
+-0.0795898f, 0.287842f, -0.0915527f, 0.312012f, -0.103516f, 0.327637f, -0.116699f,
+0.36084f, -0.522949f, 0.36084f, -0.549805f, 0.345703f, -0.56665f, 0.330566f, -0.583496f,
+0.299805f, -0.583496f, 0.263672f, -0.583496f, 0.244873f, -0.563232f, 0.226074f, -0.542969f,
+0.226074f, -0.509766f, 0.226074f, -0.487305f, 0.233154f, -0.463867f, 0.240234f, -0.44043f,
+0.251465f, -0.419434f, 0.273438f, -0.429688f, 0.293457f, -0.440186f, 0.313477f, -0.450684f,
+0.328369f, -0.462891f, 0.343262f, -0.475098f, 0.352051f, -0.48999f, 0.36084f, -0.504883f,
+0.36084f, -0.522949f, 0.348633f, -0.412109f, 0.251465f, -0.412109f, 0.233398f, -0.725098f,
+0.366699f, -0.725098f, 0.312988f, 0.20752f, 0.275391f, 0.15332f, 0.248047f, 0.0996094f,
+0.220703f, 0.0458984f, 0.202881f, -0.0107422f, 0.185059f, -0.0673828f, 0.176514f,
+-0.128662f, 0.167969f, -0.189941f, 0.167969f, -0.259277f, 0.167969f, -0.329102f,
+0.176514f, -0.389893f, 0.185059f, -0.450684f, 0.202881f, -0.50708f, 0.220703f, -0.563477f,
+0.248047f, -0.616943f, 0.275391f, -0.67041f, 0.312988f, -0.724609f, 0.450195f, -0.724609f,
+0.411133f, -0.667969f, 0.383301f, -0.612793f, 0.355469f, -0.557617f, 0.337646f, -0.500977f,
+0.319824f, -0.444336f, 0.311523f, -0.384521f, 0.303223f, -0.324707f, 0.303223f, -0.258789f,
+0.303223f, -0.192383f, 0.311523f, -0.132568f, 0.319824f, -0.0727539f, 0.337646f,
+-0.0161133f, 0.355469f, 0.0405273f, 0.383301f, 0.095459f, 0.411133f, 0.150391f, 0.450195f,
+0.20752f, 0.149902f, 0.20752f, 0.188965f, 0.150391f, 0.216797f, 0.095459f, 0.244629f,
+0.0405273f, 0.262451f, -0.0161133f, 0.280273f, -0.0727539f, 0.288574f, -0.132568f,
+0.296875f, -0.192383f, 0.296875f, -0.258789f, 0.296875f, -0.324707f, 0.288574f, -0.384521f,
+0.280273f, -0.444336f, 0.262451f, -0.500977f, 0.244629f, -0.557617f, 0.216797f, -0.612793f,
+0.188965f, -0.667969f, 0.149902f, -0.724609f, 0.287109f, -0.724609f, 0.324707f, -0.67041f,
+0.352051f, -0.616943f, 0.379395f, -0.563477f, 0.397217f, -0.50708f, 0.415039f, -0.450684f,
+0.423584f, -0.389893f, 0.432129f, -0.329102f, 0.432129f, -0.259277f, 0.432129f, -0.189941f,
+0.423584f, -0.128662f, 0.415039f, -0.0673828f, 0.397217f, -0.0107422f, 0.379395f,
+0.0458984f, 0.352051f, 0.0996094f, 0.324707f, 0.15332f, 0.287109f, 0.20752f, 0.344727f,
+-0.590332f, 0.459473f, -0.641113f, 0.492676f, -0.544922f, 0.370605f, -0.515137f,
+0.461426f, -0.411133f, 0.371582f, -0.352051f, 0.300293f, -0.475098f, 0.227539f, -0.352051f,
+0.136719f, -0.412109f, 0.229492f, -0.515137f, 0.107422f, -0.544922f, 0.140625f, -0.641113f,
+0.257324f, -0.590332f, 0.248535f, -0.724121f, 0.353516f, -0.724121f, 0.354492f, -0.277832f,
+0.354492f, -0.0786133f, 0.244141f, -0.0786133f, 0.244141f, -0.277832f, 0.0493164f,
+-0.277832f, 0.0493164f, -0.387207f, 0.244141f, -0.387207f, 0.244141f, -0.586426f,
+0.354492f, -0.586426f, 0.354492f, -0.387207f, 0.550781f, -0.387207f, 0.550781f, -0.277832f,
+0.125977f, 0.177246f, 0.208496f, -0.145996f, 0.362305f, -0.145996f, 0.210449f, 0.177246f,
+0.158203f, -0.199707f, 0.158203f, -0.318848f, 0.441406f, -0.318848f, 0.441406f, -0.199707f,
+0.229492f, 0, 0.229492f, -0.148926f, 0.370605f, -0.148926f, 0.370605f, 0, 0.043457f,
+0.00976562f, 0.444336f, -0.724609f, 0.555664f, -0.724609f, 0.156738f, 0.00976562f,
+0.537598f, -0.32959f, 0.537598f, -0.236328f, 0.519531f, -0.171631f, 0.501465f, -0.106934f,
+0.469482f, -0.0666504f, 0.4375f, -0.0263672f, 0.393799f, -0.00830078f, 0.350098f,
+0.00976562f, 0.29834f, 0.00976562f, 0.246582f, 0.00976562f, 0.203125f, -0.00805664f,
+0.159668f, -0.0258789f, 0.128418f, -0.0661621f, 0.097168f, -0.106445f, 0.0795898f,
+-0.171143f, 0.0620117f, -0.23584f, 0.0620117f, -0.32959f, 0.0620117f, -0.427734f,
+0.0793457f, -0.493164f, 0.0966797f, -0.558594f, 0.128418f, -0.597656f, 0.160156f,
+-0.636719f, 0.204346f, -0.652832f, 0.248535f, -0.668945f, 0.302246f, -0.668945f,
+0.352539f, -0.668945f, 0.395752f, -0.652832f, 0.438965f, -0.636719f, 0.470459f, -0.597656f,
+0.501953f, -0.558594f, 0.519775f, -0.493164f, 0.537598f, -0.427734f, 0.537598f, -0.32959f,
+0.399902f, -0.32959f, 0.399902f, -0.396973f, 0.394531f, -0.441406f, 0.38916f, -0.48584f,
+0.377441f, -0.512695f, 0.365723f, -0.539551f, 0.346924f, -0.550537f, 0.328125f, -0.561523f,
+0.30127f, -0.561523f, 0.272461f, -0.561523f, 0.25293f, -0.550293f, 0.233398f, -0.539062f,
+0.221436f, -0.512207f, 0.209473f, -0.485352f, 0.204346f, -0.440674f, 0.199219f, -0.395996f,
+0.199219f, -0.32959f, 0.199219f, -0.26416f, 0.20459f, -0.219727f, 0.209961f, -0.175293f,
+0.22168f, -0.148193f, 0.233398f, -0.121094f, 0.252441f, -0.109619f, 0.271484f, -0.0981445f,
+0.299316f, -0.0981445f, 0.326172f, -0.0981445f, 0.345215f, -0.109619f, 0.364258f,
+-0.121094f, 0.376465f, -0.148193f, 0.388672f, -0.175293f, 0.394287f, -0.219727f,
+0.399902f, -0.26416f, 0.399902f, -0.32959f, 0.0727539f, 0, 0.0727539f, -0.102051f,
+0.262695f, -0.102051f, 0.262695f, -0.537109f, 0.253418f, -0.517578f, 0.233643f, -0.500244f,
+0.213867f, -0.48291f, 0.187744f, -0.470215f, 0.161621f, -0.45752f, 0.130615f, -0.449951f,
+0.0996094f, -0.442383f, 0.0673828f, -0.442383f, 0.0673828f, -0.546875f, 0.103516f,
+-0.546875f, 0.134766f, -0.555176f, 0.166016f, -0.563477f, 0.191895f, -0.578369f,
+0.217773f, -0.593262f, 0.237549f, -0.61377f, 0.257324f, -0.634277f, 0.27002f, -0.658691f,
+0.399902f, -0.658691f, 0.399902f, -0.102051f, 0.557617f, -0.102051f, 0.557617f, 0,
+0.0600586f, 0, 0.0600586f, -0.0952148f, 0.0776367f, -0.133789f, 0.101318f, -0.166504f,
+0.125f, -0.199219f, 0.151611f, -0.227783f, 0.178223f, -0.256348f, 0.206299f, -0.280762f,
+0.234375f, -0.305176f, 0.260986f, -0.326904f, 0.287598f, -0.348633f, 0.311523f, -0.368652f,
+0.335449f, -0.388672f, 0.353027f, -0.407715f, 0.370605f, -0.426758f, 0.381104f, -0.445557f,
+0.391602f, -0.464355f, 0.391602f, -0.484375f, 0.391602f, -0.519531f, 0.368652f, -0.539551f,
+0.345703f, -0.55957f, 0.30127f, -0.55957f, 0.257324f, -0.55957f, 0.234131f, -0.535889f,
+0.210938f, -0.512207f, 0.204102f, -0.464844f, 0.065918f, -0.472656f, 0.0708008f,
+-0.513184f, 0.0859375f, -0.548828f, 0.101074f, -0.584473f, 0.12915f, -0.611328f,
+0.157227f, -0.638184f, 0.199463f, -0.653564f, 0.241699f, -0.668945f, 0.300293f, -0.668945f,
+0.355957f, -0.668945f, 0.398926f, -0.655518f, 0.441895f, -0.64209f, 0.471191f, -0.618164f,
+0.500488f, -0.594238f, 0.515625f, -0.561523f, 0.530762f, -0.528809f, 0.530762f, -0.490234f,
+0.530762f, -0.446777f, 0.511719f, -0.410889f, 0.492676f, -0.375f, 0.462891f, -0.343506f,
+0.433105f, -0.312012f, 0.396729f, -0.283691f, 0.360352f, -0.255371f, 0.326172f, -0.228027f,
+0.291992f, -0.200684f, 0.263916f, -0.172607f, 0.23584f, -0.144531f, 0.222168f, -0.112793f,
+0.541504f, -0.112793f, 0.541504f, 0, 0.549316f, -0.183594f, 0.549316f, -0.139648f,
+0.533203f, -0.103516f, 0.51709f, -0.0673828f, 0.485596f, -0.0419922f, 0.454102f,
+-0.0166016f, 0.407471f, -0.00268555f, 0.36084f, 0.0112305f, 0.300293f, 0.0112305f,
+0.23291f, 0.0112305f, 0.186523f, -0.00488281f, 0.140137f, -0.0209961f, 0.110352f,
+-0.0476074f, 0.0805664f, -0.0742188f, 0.0651855f, -0.108643f, 0.0498047f, -0.143066f,
+0.0454102f, -0.179688f, 0.185059f, -0.191895f, 0.190918f, -0.147461f, 0.218506f,
+-0.123779f, 0.246094f, -0.100098f, 0.299805f, -0.100098f, 0.324219f, -0.100098f,
+0.344482f, -0.106201f, 0.364746f, -0.112305f, 0.378906f, -0.124023f, 0.393066f, -0.135742f,
+0.400879f, -0.152832f, 0.408691f, -0.169922f, 0.408691f, -0.191895f, 0.408691f, -0.210449f,
+0.402344f, -0.224121f, 0.395996f, -0.237793f, 0.385254f, -0.247559f, 0.374512f, -0.257324f,
+0.360596f, -0.263428f, 0.34668f, -0.269531f, 0.331543f, -0.273193f, 0.316406f, -0.276855f,
+0.301025f, -0.278076f, 0.285645f, -0.279297f, 0.271973f, -0.279297f, 0.224121f, -0.279297f,
+0.224121f, -0.390137f, 0.269043f, -0.390137f, 0.289551f, -0.390137f, 0.311523f, -0.393799f,
+0.333496f, -0.397461f, 0.351562f, -0.407227f, 0.369629f, -0.416992f, 0.381104f, -0.433594f,
+0.392578f, -0.450195f, 0.392578f, -0.476074f, 0.392578f, -0.494629f, 0.385742f, -0.509766f,
+0.378906f, -0.524902f, 0.366211f, -0.536133f, 0.353516f, -0.547363f, 0.335449f, -0.553467f,
+0.317383f, -0.55957f, 0.294922f, -0.55957f, 0.25293f, -0.55957f, 0.225586f, -0.539795f,
+0.198242f, -0.52002f, 0.194336f, -0.477051f, 0.0571289f, -0.486816f, 0.0629883f,
+-0.535156f, 0.0839844f, -0.56958f, 0.10498f, -0.604004f, 0.136963f, -0.625977f, 0.168945f,
+-0.647949f, 0.210205f, -0.658447f, 0.251465f, -0.668945f, 0.297363f, -0.668945f,
+0.35791f, -0.668945f, 0.4021f, -0.654541f, 0.446289f, -0.640137f, 0.475098f, -0.615967f,
+0.503906f, -0.591797f, 0.517822f, -0.559814f, 0.531738f, -0.527832f, 0.531738f, -0.493164f,
+0.531738f, -0.465332f, 0.522949f, -0.440674f, 0.51416f, -0.416016f, 0.496338f, -0.395996f,
+0.478516f, -0.375977f, 0.450684f, -0.361328f, 0.422852f, -0.34668f, 0.384766f, -0.339355f,
+0.384766f, -0.337402f, 0.427246f, -0.33252f, 0.458496f, -0.318115f, 0.489746f, -0.303711f,
+0.509766f, -0.283203f, 0.529785f, -0.262695f, 0.539551f, -0.237061f, 0.549316f, -0.211426f,
+0.549316f, -0.183594f, 0.478516f, -0.140137f, 0.478516f, 0, 0.347656f, 0, 0.347656f,
+-0.140137f, 0.034668f, -0.140137f, 0.034668f, -0.243164f, 0.325195f, -0.658691f,
+0.478516f, -0.658691f, 0.478516f, -0.242188f, 0.570312f, -0.242188f, 0.570312f, -0.140137f,
+0.347656f, -0.442871f, 0.347656f, -0.451172f, 0.3479f, -0.4646f, 0.348145f, -0.478027f,
+0.348877f, -0.492188f, 0.349609f, -0.506348f, 0.350342f, -0.519287f, 0.351074f, -0.532227f,
+0.352051f, -0.539551f, 0.349609f, -0.53418f, 0.344238f, -0.52417f, 0.338867f, -0.51416f,
+0.332275f, -0.502686f, 0.325684f, -0.491211f, 0.318604f, -0.47998f, 0.311523f, -0.46875f,
+0.306152f, -0.460449f, 0.149902f, -0.242188f, 0.347656f, -0.242188f, 0.54834f, -0.22168f,
+0.54834f, -0.172852f, 0.531982f, -0.130371f, 0.515625f, -0.0878906f, 0.483398f, -0.0568848f,
+0.451172f, -0.0258789f, 0.403564f, -0.00805664f, 0.355957f, 0.00976562f, 0.293457f,
+0.00976562f, 0.23584f, 0.00976562f, 0.192871f, -0.00415039f, 0.149902f, -0.0180664f,
+0.120361f, -0.0427246f, 0.0908203f, -0.0673828f, 0.0739746f, -0.100586f, 0.0571289f,
+-0.133789f, 0.0507812f, -0.171875f, 0.187988f, -0.183105f, 0.191895f, -0.166992f,
+0.198975f, -0.151855f, 0.206055f, -0.136719f, 0.21875f, -0.125f, 0.231445f, -0.113281f,
+0.25f, -0.106201f, 0.268555f, -0.0991211f, 0.294922f, -0.0991211f, 0.320801f, -0.0991211f,
+0.341553f, -0.106934f, 0.362305f, -0.114746f, 0.376953f, -0.129883f, 0.391602f, -0.14502f,
+0.399414f, -0.16748f, 0.407227f, -0.189941f, 0.407227f, -0.21875f, 0.407227f, -0.244141f,
+0.399658f, -0.264893f, 0.39209f, -0.285645f, 0.378174f, -0.300293f, 0.364258f, -0.314941f,
+0.343994f, -0.322754f, 0.32373f, -0.330566f, 0.297852f, -0.330566f, 0.263672f, -0.330566f,
+0.241699f, -0.317627f, 0.219727f, -0.304688f, 0.20459f, -0.286133f, 0.0708008f, -0.286133f,
+0.0947266f, -0.658691f, 0.508301f, -0.658691f, 0.508301f, -0.556641f, 0.219238f,
+-0.556641f, 0.208008f, -0.397461f, 0.228516f, -0.415527f, 0.259766f, -0.428467f,
+0.291016f, -0.441406f, 0.33252f, -0.441406f, 0.383301f, -0.441406f, 0.42334f, -0.425049f,
+0.463379f, -0.408691f, 0.491211f, -0.379395f, 0.519043f, -0.350098f, 0.533691f, -0.309814f,
+0.54834f, -0.269531f, 0.54834f, -0.22168f, 0.544434f, -0.217773f, 0.544434f, -0.168457f,
+0.529785f, -0.126709f, 0.515137f, -0.0849609f, 0.486084f, -0.0546875f, 0.457031f,
+-0.0244141f, 0.413574f, -0.00732422f, 0.370117f, 0.00976562f, 0.312988f, 0.00976562f,
+0.252441f, 0.00976562f, 0.205322f, -0.0136719f, 0.158203f, -0.0371094f, 0.126221f,
+-0.0810547f, 0.0942383f, -0.125f, 0.0776367f, -0.1875f, 0.0610352f, -0.25f, 0.0610352f,
+-0.328125f, 0.0610352f, -0.500977f, 0.127197f, -0.584961f, 0.193359f, -0.668945f,
+0.316406f, -0.668945f, 0.357422f, -0.668945f, 0.391113f, -0.6604f, 0.424805f, -0.651855f,
+0.451172f, -0.632812f, 0.477539f, -0.61377f, 0.496094f, -0.58374f, 0.514648f, -0.553711f,
+0.525879f, -0.510742f, 0.396484f, -0.492676f, 0.386719f, -0.528809f, 0.364746f, -0.544678f,
+0.342773f, -0.560547f, 0.313477f, -0.560547f, 0.257812f, -0.560547f, 0.226562f, -0.507568f,
+0.195312f, -0.45459f, 0.195312f, -0.352539f, 0.217285f, -0.38916f, 0.256348f, -0.408691f,
+0.29541f, -0.428223f, 0.344727f, -0.428223f, 0.390137f, -0.428223f, 0.427002f, -0.41333f,
+0.463867f, -0.398438f, 0.48999f, -0.371094f, 0.516113f, -0.34375f, 0.530273f, -0.304932f,
+0.544434f, -0.266113f, 0.544434f, -0.217773f, 0.406738f, -0.213867f, 0.406738f, -0.23877f,
+0.400391f, -0.259521f, 0.394043f, -0.280273f, 0.381104f, -0.29541f, 0.368164f, -0.310547f,
+0.349121f, -0.318848f, 0.330078f, -0.327148f, 0.305176f, -0.327148f, 0.287109f, -0.327148f,
+0.269043f, -0.321289f, 0.250977f, -0.31543f, 0.236816f, -0.303223f, 0.222656f, -0.291016f,
+0.213867f, -0.272461f, 0.205078f, -0.253906f, 0.205078f, -0.228516f, 0.205078f, -0.20166f,
+0.212402f, -0.177979f, 0.219727f, -0.154297f, 0.233154f, -0.13623f, 0.246582f, -0.118164f,
+0.265625f, -0.107666f, 0.284668f, -0.097168f, 0.308594f, -0.097168f, 0.331543f, -0.097168f,
+0.349854f, -0.105469f, 0.368164f, -0.11377f, 0.380859f, -0.12915f, 0.393555f, -0.144531f,
+0.400146f, -0.166016f, 0.406738f, -0.1875f, 0.406738f, -0.213867f, 0.533203f, -0.549805f,
+0.483398f, -0.481934f, 0.441895f, -0.415771f, 0.400391f, -0.349609f, 0.370361f, -0.282227f,
+0.340332f, -0.214844f, 0.32373f, -0.144775f, 0.307129f, -0.074707f, 0.307129f, 0,
+0.164062f, 0, 0.164062f, -0.0742188f, 0.182373f, -0.14502f, 0.200684f, -0.21582f,
+0.23291f, -0.283691f, 0.265137f, -0.351562f, 0.309326f, -0.416992f, 0.353516f, -0.482422f,
+0.405762f, -0.545898f, 0.0639648f, -0.545898f, 0.0639648f, -0.658691f, 0.533203f,
+-0.658691f, 0.546875f, -0.186523f, 0.546875f, -0.14502f, 0.532227f, -0.109131f, 0.517578f,
+-0.0732422f, 0.487305f, -0.046875f, 0.457031f, -0.0205078f, 0.410645f, -0.00537109f,
+0.364258f, 0.00976562f, 0.300293f, 0.00976562f, 0.236816f, 0.00976562f, 0.190186f,
+-0.00537109f, 0.143555f, -0.0205078f, 0.113037f, -0.046875f, 0.0825195f, -0.0732422f,
+0.0678711f, -0.108887f, 0.0532227f, -0.144531f, 0.0532227f, -0.185547f, 0.0532227f,
+-0.220215f, 0.0649414f, -0.248047f, 0.0766602f, -0.275879f, 0.0961914f, -0.295898f,
+0.115723f, -0.315918f, 0.141113f, -0.328369f, 0.166504f, -0.34082f, 0.193359f, -0.345215f,
+0.193359f, -0.347168f, 0.164551f, -0.353516f, 0.141602f, -0.367676f, 0.118652f, -0.381836f,
+0.102539f, -0.401367f, 0.0864258f, -0.420898f, 0.0778809f, -0.444824f, 0.0693359f,
+-0.46875f, 0.0693359f, -0.494141f, 0.0693359f, -0.532715f, 0.0842285f, -0.564697f,
+0.0991211f, -0.59668f, 0.12793f, -0.619873f, 0.156738f, -0.643066f, 0.199463f, -0.656006f,
+0.242188f, -0.668945f, 0.29834f, -0.668945f, 0.358398f, -0.668945f, 0.4021f, -0.655762f,
+0.445801f, -0.642578f, 0.474121f, -0.619141f, 0.502441f, -0.595703f, 0.516113f, -0.563477f,
+0.529785f, -0.53125f, 0.529785f, -0.493164f, 0.529785f, -0.46875f, 0.52124f, -0.445312f,
+0.512695f, -0.421875f, 0.496582f, -0.4021f, 0.480469f, -0.382324f, 0.457275f, -0.368164f,
+0.434082f, -0.354004f, 0.404785f, -0.348145f, 0.404785f, -0.346191f, 0.435059f, -0.341309f,
+0.461182f, -0.328613f, 0.487305f, -0.315918f, 0.506348f, -0.295654f, 0.525391f, -0.275391f,
+0.536133f, -0.248047f, 0.546875f, -0.220703f, 0.546875f, -0.186523f, 0.388672f, -0.48584f,
+0.388672f, -0.503906f, 0.384277f, -0.519775f, 0.379883f, -0.535645f, 0.369629f, -0.547363f,
+0.359375f, -0.559082f, 0.342041f, -0.565918f, 0.324707f, -0.572754f, 0.29834f, -0.572754f,
+0.272949f, -0.572754f, 0.255859f, -0.565918f, 0.23877f, -0.559082f, 0.228516f, -0.547363f,
+0.218262f, -0.535645f, 0.213867f, -0.519775f, 0.209473f, -0.503906f, 0.209473f, -0.48584f,
+0.209473f, -0.470703f, 0.213135f, -0.45459f, 0.216797f, -0.438477f, 0.226562f, -0.425049f,
+0.236328f, -0.411621f, 0.253906f, -0.403076f, 0.271484f, -0.394531f, 0.299316f, -0.394531f,
+0.328613f, -0.394531f, 0.346436f, -0.40332f, 0.364258f, -0.412109f, 0.373535f, -0.425537f,
+0.382812f, -0.438965f, 0.385742f, -0.455078f, 0.388672f, -0.471191f, 0.388672f, -0.48584f,
+0.404785f, -0.197754f, 0.404785f, -0.216309f, 0.400146f, -0.234131f, 0.395508f, -0.251953f,
+0.383545f, -0.266357f, 0.371582f, -0.280762f, 0.350586f, -0.289551f, 0.32959f, -0.29834f,
+0.297363f, -0.29834f, 0.268066f, -0.29834f, 0.248291f, -0.289551f, 0.228516f, -0.280762f,
+0.216553f, -0.266113f, 0.20459f, -0.251465f, 0.199463f, -0.233154f, 0.194336f, -0.214844f,
+0.194336f, -0.195801f, 0.194336f, -0.172363f, 0.199463f, -0.152588f, 0.20459f, -0.132812f,
+0.217041f, -0.118164f, 0.229492f, -0.103516f, 0.25f, -0.0952148f, 0.270508f, -0.0869141f,
+0.30127f, -0.0869141f, 0.332031f, -0.0869141f, 0.352051f, -0.095459f, 0.37207f, -0.104004f,
+0.383789f, -0.118896f, 0.395508f, -0.133789f, 0.400146f, -0.154053f, 0.404785f, -0.174316f,
+0.404785f, -0.197754f, 0.540039f, -0.340332f, 0.540039f, -0.254395f, 0.522949f, -0.188965f,
+0.505859f, -0.123535f, 0.473145f, -0.0793457f, 0.44043f, -0.0351562f, 0.392578f,
+-0.0126953f, 0.344727f, 0.00976562f, 0.283203f, 0.00976562f, 0.23877f, 0.00976562f,
+0.203369f, 0.000488281f, 0.167969f, -0.00878906f, 0.141602f, -0.0283203f, 0.115234f,
+-0.0478516f, 0.0969238f, -0.0786133f, 0.0786133f, -0.109375f, 0.0678711f, -0.151855f,
+0.196777f, -0.169922f, 0.206543f, -0.133301f, 0.22876f, -0.115723f, 0.250977f, -0.0981445f,
+0.284668f, -0.0981445f, 0.340332f, -0.0981445f, 0.372314f, -0.14917f, 0.404297f,
+-0.200195f, 0.405273f, -0.302246f, 0.395508f, -0.283203f, 0.379395f, -0.268555f,
+0.363281f, -0.253906f, 0.343018f, -0.244141f, 0.322754f, -0.234375f, 0.299805f, -0.229248f,
+0.276855f, -0.224121f, 0.253418f, -0.224121f, 0.208496f, -0.224121f, 0.171875f, -0.23999f,
+0.135254f, -0.255859f, 0.109375f, -0.284668f, 0.0834961f, -0.313477f, 0.0695801f,
+-0.354492f, 0.0556641f, -0.395508f, 0.0556641f, -0.445801f, 0.0556641f, -0.498047f,
+0.0720215f, -0.539307f, 0.0883789f, -0.580566f, 0.119141f, -0.609375f, 0.149902f,
+-0.638184f, 0.19458f, -0.653564f, 0.239258f, -0.668945f, 0.295898f, -0.668945f, 0.415039f,
+-0.668945f, 0.477539f, -0.587891f, 0.540039f, -0.506836f, 0.540039f, -0.340332f,
+0.39502f, -0.429199f, 0.39502f, -0.456055f, 0.388428f, -0.47998f, 0.381836f, -0.503906f,
+0.368652f, -0.521973f, 0.355469f, -0.540039f, 0.336426f, -0.550781f, 0.317383f, -0.561523f,
+0.29248f, -0.561523f, 0.269531f, -0.561523f, 0.251465f, -0.552979f, 0.233398f, -0.544434f,
+0.220703f, -0.529053f, 0.208008f, -0.513672f, 0.201416f, -0.492188f, 0.194824f, -0.470703f,
+0.194824f, -0.444824f, 0.194824f, -0.420898f, 0.201172f, -0.39917f, 0.20752f, -0.377441f,
+0.219727f, -0.361328f, 0.231934f, -0.345215f, 0.250488f, -0.335693f, 0.269043f, -0.326172f,
+0.292969f, -0.326172f, 0.312012f, -0.326172f, 0.330322f, -0.33252f, 0.348633f, -0.338867f,
+0.363037f, -0.351807f, 0.377441f, -0.364746f, 0.38623f, -0.384033f, 0.39502f, -0.40332f,
+0.39502f, -0.429199f, 0.229492f, 0, 0.229492f, -0.148926f, 0.370605f, -0.148926f,
+0.370605f, 0, 0.229492f, -0.380859f, 0.229492f, -0.529785f, 0.370605f, -0.529785f,
+0.370605f, -0.380859f, 0.233887f, -0.380859f, 0.233887f, -0.529785f, 0.375f, -0.529785f,
+0.375f, -0.380859f, 0.15918f, 0.177246f, 0.241699f, -0.145996f, 0.395508f, -0.145996f,
+0.243652f, 0.177246f, 0.0493164f, -0.251953f, 0.0493164f, -0.40918f, 0.550781f, -0.600098f,
+0.550781f, -0.48877f, 0.144043f, -0.330078f, 0.550781f, -0.171875f, 0.550781f, -0.0610352f,
+0.0493164f, -0.411133f, 0.0493164f, -0.52002f, 0.550781f, -0.52002f, 0.550781f, -0.411133f,
+0.0493164f, -0.14209f, 0.0493164f, -0.25f, 0.550781f, -0.25f, 0.550781f, -0.14209f,
+0.0493164f, -0.0610352f, 0.0493164f, -0.171875f, 0.455566f, -0.330078f, 0.0493164f,
+-0.48877f, 0.0493164f, -0.600098f, 0.550781f, -0.40918f, 0.550781f, -0.251953f, 0.543457f,
+-0.481445f, 0.543457f, -0.452148f, 0.534912f, -0.429199f, 0.526367f, -0.40625f, 0.512207f,
+-0.387451f, 0.498047f, -0.368652f, 0.47998f, -0.353271f, 0.461914f, -0.337891f, 0.442871f,
+-0.323975f, 0.423828f, -0.310059f, 0.405518f, -0.296875f, 0.387207f, -0.283691f,
+0.372559f, -0.268799f, 0.35791f, -0.253906f, 0.348633f, -0.236816f, 0.339355f, -0.219727f,
+0.338379f, -0.198242f, 0.208008f, -0.198242f, 0.210449f, -0.240234f, 0.22583f, -0.269775f,
+0.241211f, -0.299316f, 0.263184f, -0.321533f, 0.285156f, -0.34375f, 0.310059f, -0.36084f,
+0.334961f, -0.37793f, 0.356201f, -0.394775f, 0.377441f, -0.411621f, 0.391357f, -0.430664f,
+0.405273f, -0.449707f, 0.405273f, -0.475586f, 0.405273f, -0.493164f, 0.398193f, -0.508301f,
+0.391113f, -0.523438f, 0.377197f, -0.534668f, 0.363281f, -0.545898f, 0.343262f, -0.552246f,
+0.323242f, -0.558594f, 0.297363f, -0.558594f, 0.272461f, -0.558594f, 0.251465f, -0.551025f,
+0.230469f, -0.543457f, 0.2146f, -0.529785f, 0.19873f, -0.516113f, 0.188477f, -0.496582f,
+0.178223f, -0.477051f, 0.175293f, -0.453613f, 0.0361328f, -0.459473f, 0.0419922f,
+-0.50293f, 0.0603027f, -0.541016f, 0.0786133f, -0.579102f, 0.110352f, -0.607422f,
+0.14209f, -0.635742f, 0.188232f, -0.652344f, 0.234375f, -0.668945f, 0.29541f, -0.668945f,
+0.354004f, -0.668945f, 0.399902f, -0.655273f, 0.445801f, -0.641602f, 0.477783f, -0.616943f,
+0.509766f, -0.592285f, 0.526611f, -0.557861f, 0.543457f, -0.523438f, 0.543457f, -0.481445f,
+0.204102f, 0, 0.204102f, -0.131836f, 0.345215f, -0.131836f, 0.345215f, 0, 0.580566f,
+-0.368652f, 0.580566f, -0.29834f, 0.570557f, -0.23999f, 0.560547f, -0.181641f, 0.541504f,
+-0.139648f, 0.522461f, -0.0976562f, 0.494629f, -0.0742188f, 0.466797f, -0.0507812f,
+0.431641f, -0.0507812f, 0.416992f, -0.0507812f, 0.404297f, -0.0546875f, 0.391602f,
+-0.0585938f, 0.38208f, -0.067627f, 0.372559f, -0.0766602f, 0.367188f, -0.0913086f,
+0.361816f, -0.105957f, 0.361816f, -0.127441f, 0.361816f, -0.128418f, 0.361816f, -0.131836f,
+0.361816f, -0.135254f, 0.362061f, -0.138916f, 0.362305f, -0.142578f, 0.362549f, -0.145996f,
+0.362793f, -0.149414f, 0.362793f, -0.150879f, 0.359863f, -0.150879f, 0.352539f, -0.131836f,
+0.341309f, -0.11377f, 0.330078f, -0.0957031f, 0.315674f, -0.0817871f, 0.30127f, -0.0678711f,
+0.283447f, -0.0593262f, 0.265625f, -0.0507812f, 0.245117f, -0.0507812f, 0.214355f,
+-0.0507812f, 0.193359f, -0.0666504f, 0.172363f, -0.0825195f, 0.159424f, -0.108643f,
+0.146484f, -0.134766f, 0.140869f, -0.168701f, 0.135254f, -0.202637f, 0.135254f, -0.23877f,
+0.135254f, -0.275879f, 0.140869f, -0.3125f, 0.146484f, -0.349121f, 0.157227f, -0.382324f,
+0.167969f, -0.415527f, 0.183838f, -0.444092f, 0.199707f, -0.472656f, 0.219482f, -0.493408f,
+0.239258f, -0.51416f, 0.263184f, -0.525879f, 0.287109f, -0.537598f, 0.314453f, -0.537598f,
+0.33252f, -0.537598f, 0.346191f, -0.53125f, 0.359863f, -0.524902f, 0.369629f, -0.513672f,
+0.379395f, -0.502441f, 0.385498f, -0.487061f, 0.391602f, -0.47168f, 0.394531f, -0.453125f,
+0.396973f, -0.453125f, 0.413086f, -0.526855f, 0.479004f, -0.526855f, 0.430664f, -0.279297f,
+0.426758f, -0.258789f, 0.423096f, -0.239014f, 0.419434f, -0.219238f, 0.416748f, -0.201416f,
+0.414062f, -0.183594f, 0.412598f, -0.168701f, 0.411133f, -0.153809f, 0.411133f, -0.143555f,
+0.411133f, -0.132324f, 0.413086f, -0.125732f, 0.415039f, -0.119141f, 0.418213f, -0.115723f,
+0.421387f, -0.112305f, 0.425781f, -0.111328f, 0.430176f, -0.110352f, 0.435059f, -0.110352f,
+0.453613f, -0.110352f, 0.468506f, -0.128906f, 0.483398f, -0.147461f, 0.494141f, -0.181152f,
+0.504883f, -0.214844f, 0.510742f, -0.262451f, 0.516602f, -0.310059f, 0.516602f, -0.367676f,
+0.516602f, -0.429199f, 0.50415f, -0.483154f, 0.491699f, -0.537109f, 0.467529f, -0.577148f,
+0.443359f, -0.617188f, 0.407959f, -0.640137f, 0.372559f, -0.663086f, 0.327148f, -0.663086f,
+0.288574f, -0.663086f, 0.255859f, -0.648438f, 0.223145f, -0.633789f, 0.196777f, -0.606934f,
+0.17041f, -0.580078f, 0.149902f, -0.54248f, 0.129395f, -0.504883f, 0.115723f, -0.459229f,
+0.102051f, -0.413574f, 0.0949707f, -0.36084f, 0.0878906f, -0.308105f, 0.0878906f,
+-0.250977f, 0.0878906f, -0.177734f, 0.101807f, -0.117676f, 0.115723f, -0.0576172f,
+0.142334f, -0.0146484f, 0.168945f, 0.0283203f, 0.20752f, 0.052002f, 0.246094f, 0.0756836f,
+0.294922f, 0.0756836f, 0.32373f, 0.0756836f, 0.348633f, 0.0695801f, 0.373535f, 0.0634766f,
+0.395264f, 0.0532227f, 0.416992f, 0.0429688f, 0.436768f, 0.0288086f, 0.456543f, 0.0146484f,
+0.475098f, -0.00146484f, 0.509766f, 0.0458984f, 0.48877f, 0.0639648f, 0.465088f,
+0.0805664f, 0.441406f, 0.097168f, 0.414307f, 0.110107f, 0.387207f, 0.123047f, 0.356445f,
+0.130615f, 0.325684f, 0.138184f, 0.290039f, 0.138184f, 0.228027f, 0.138184f, 0.178223f,
+0.110596f, 0.128418f, 0.0830078f, 0.09375f, 0.0322266f, 0.059082f, -0.0185547f, 0.0402832f,
+-0.090332f, 0.0214844f, -0.162109f, 0.0214844f, -0.250977f, 0.0214844f, -0.353027f,
+0.0419922f, -0.439697f, 0.0625f, -0.526367f, 0.101807f, -0.589844f, 0.141113f, -0.65332f,
+0.197998f, -0.688965f, 0.254883f, -0.724609f, 0.328125f, -0.724609f, 0.39209f, -0.724609f,
+0.439697f, -0.695801f, 0.487305f, -0.666992f, 0.518555f, -0.618164f, 0.549805f, -0.569336f,
+0.565186f, -0.504883f, 0.580566f, -0.44043f, 0.580566f, -0.368652f, 0.368652f, -0.382812f,
+0.368652f, -0.432129f, 0.355225f, -0.455078f, 0.341797f, -0.478027f, 0.31543f, -0.478027f,
+0.290527f, -0.478027f, 0.27124f, -0.456055f, 0.251953f, -0.434082f, 0.238525f, -0.399658f,
+0.225098f, -0.365234f, 0.218018f, -0.322998f, 0.210938f, -0.280762f, 0.210938f, -0.239746f,
+0.210938f, -0.21582f, 0.212646f, -0.192871f, 0.214355f, -0.169922f, 0.219482f, -0.1521f,
+0.224609f, -0.134277f, 0.233643f, -0.123291f, 0.242676f, -0.112305f, 0.256836f, -0.112305f,
+0.274902f, -0.112305f, 0.290771f, -0.124512f, 0.306641f, -0.136719f, 0.319336f, -0.159912f,
+0.332031f, -0.183105f, 0.341797f, -0.216064f, 0.351562f, -0.249023f, 0.35791f, -0.290527f,
+0.359375f, -0.299805f, 0.361328f, -0.3125f, 0.363281f, -0.325195f, 0.36499f, -0.338379f,
+0.366699f, -0.351562f, 0.367676f, -0.363525f, 0.368652f, -0.375488f, 0.368652f, -0.382812f,
+0.600098f, 0, 0.456543f, 0, 0.411621f, -0.161133f, 0.188965f, -0.161133f, 0.144043f,
+0, 0, 0, 0.216309f, -0.658691f, 0.384277f, -0.658691f, 0.300293f, -0.569824f, 0.299316f,
+-0.564941f, 0.296631f, -0.552734f, 0.293945f, -0.540527f, 0.290039f, -0.524902f,
+0.286133f, -0.509277f, 0.281494f, -0.490967f, 0.276855f, -0.472656f, 0.271973f, -0.455078f,
+0.219238f, -0.269531f, 0.381348f, -0.269531f, 0.328613f, -0.455078f, 0.32373f, -0.472656f,
+0.319092f, -0.490967f, 0.314453f, -0.509277f, 0.310547f, -0.524902f, 0.306641f, -0.540527f,
+0.303955f, -0.552734f, 0.30127f, -0.564941f, 0.300293f, -0.569824f, 0.579102f, -0.187988f,
+0.579102f, -0.137695f, 0.560547f, -0.102051f, 0.541992f, -0.0664062f, 0.510742f,
+-0.0437012f, 0.479492f, -0.0209961f, 0.438232f, -0.010498f, 0.396973f, 0, 0.351074f,
+0, 0.0668945f, 0, 0.0668945f, -0.658691f, 0.323242f, -0.658691f, 0.374023f, -0.658691f,
+0.414062f, -0.648682f, 0.454102f, -0.638672f, 0.481934f, -0.618164f, 0.509766f, -0.597656f,
+0.524658f, -0.566406f, 0.539551f, -0.535156f, 0.539551f, -0.493164f, 0.539551f, -0.437012f,
+0.507324f, -0.398682f, 0.475098f, -0.360352f, 0.408203f, -0.346191f, 0.491699f, -0.337402f,
+0.5354f, -0.296387f, 0.579102f, -0.255371f, 0.579102f, -0.187988f, 0.394531f, -0.473633f,
+0.394531f, -0.516113f, 0.372559f, -0.533936f, 0.350586f, -0.551758f, 0.312988f, -0.551758f,
+0.210938f, -0.551758f, 0.210938f, -0.395996f, 0.313965f, -0.395996f, 0.353516f, -0.395996f,
+0.374023f, -0.415527f, 0.394531f, -0.435059f, 0.394531f, -0.473633f, 0.434082f, -0.200195f,
+0.434082f, -0.225586f, 0.425781f, -0.242676f, 0.41748f, -0.259766f, 0.403564f, -0.270264f,
+0.389648f, -0.280762f, 0.371338f, -0.285156f, 0.353027f, -0.289551f, 0.333008f, -0.289551f,
+0.210938f, -0.289551f, 0.210938f, -0.106934f, 0.336426f, -0.106934f, 0.355957f, -0.106934f,
+0.373779f, -0.111328f, 0.391602f, -0.115723f, 0.405029f, -0.126221f, 0.418457f, -0.136719f,
+0.42627f, -0.154785f, 0.434082f, -0.172852f, 0.434082f, -0.200195f, 0.185547f, -0.33252f,
+0.185547f, -0.222656f, 0.219727f, -0.163086f, 0.253906f, -0.103516f, 0.321777f, -0.103516f,
+0.34375f, -0.103516f, 0.361816f, -0.112305f, 0.379883f, -0.121094f, 0.394287f, -0.136963f,
+0.408691f, -0.152832f, 0.419678f, -0.174805f, 0.430664f, -0.196777f, 0.438965f, -0.222656f,
+0.572266f, -0.197266f, 0.557129f, -0.148926f, 0.534424f, -0.110596f, 0.511719f, -0.0722656f,
+0.480713f, -0.0456543f, 0.449707f, -0.019043f, 0.409912f, -0.00463867f, 0.370117f,
+0.00976562f, 0.320312f, 0.00976562f, 0.246094f, 0.00976562f, 0.192871f, -0.0148926f,
+0.139648f, -0.0395508f, 0.105469f, -0.0844727f, 0.0712891f, -0.129395f, 0.0551758f,
+-0.192383f, 0.0390625f, -0.255371f, 0.0390625f, -0.33252f, 0.0390625f, -0.414062f,
+0.0556641f, -0.476562f, 0.0722656f, -0.539062f, 0.106689f, -0.582031f, 0.141113f,
+-0.625f, 0.193359f, -0.646973f, 0.245605f, -0.668945f, 0.316406f, -0.668945f, 0.367188f,
+-0.668945f, 0.406494f, -0.654785f, 0.445801f, -0.640625f, 0.475342f, -0.615479f,
+0.504883f, -0.590332f, 0.525391f, -0.55542f, 0.545898f, -0.520508f, 0.558594f, -0.479004f,
+0.425781f, -0.446777f, 0.419434f, -0.470215f, 0.409424f, -0.490234f, 0.399414f, -0.510254f,
+0.385742f, -0.524902f, 0.37207f, -0.539551f, 0.355225f, -0.547607f, 0.338379f, -0.555664f,
+0.318359f, -0.555664f, 0.251953f, -0.555664f, 0.21875f, -0.499268f, 0.185547f, -0.442871f,
+0.185547f, -0.33252f, 0.561035f, -0.334473f, 0.561035f, -0.252441f, 0.541504f, -0.189941f,
+0.521973f, -0.127441f, 0.484863f, -0.0852051f, 0.447754f, -0.0429688f, 0.393799f,
+-0.0214844f, 0.339844f, 0, 0.271484f, 0, 0.065918f, 0, 0.065918f, -0.658691f, 0.242188f,
+-0.658691f, 0.319336f, -0.658691f, 0.378906f, -0.639648f, 0.438477f, -0.620605f,
+0.479004f, -0.581055f, 0.519531f, -0.541504f, 0.540283f, -0.480225f, 0.561035f, -0.418945f,
+0.561035f, -0.334473f, 0.416016f, -0.334473f, 0.416016f, -0.391602f, 0.405273f, -0.431885f,
+0.394531f, -0.472168f, 0.372803f, -0.497803f, 0.351074f, -0.523438f, 0.317871f, -0.5354f,
+0.284668f, -0.547363f, 0.239746f, -0.547363f, 0.209961f, -0.547363f, 0.209961f, -0.111328f,
+0.259766f, -0.111328f, 0.338867f, -0.111328f, 0.377441f, -0.167236f, 0.416016f, -0.223145f,
+0.416016f, -0.334473f, 0.0668945f, 0, 0.0668945f, -0.658691f, 0.539551f, -0.658691f,
+0.539551f, -0.547363f, 0.210938f, -0.547363f, 0.210938f, -0.38916f, 0.509766f, -0.38916f,
+0.509766f, -0.277832f, 0.210938f, -0.277832f, 0.210938f, -0.111328f, 0.55957f, -0.111328f,
+0.55957f, 0, 0.225586f, -0.547363f, 0.225586f, -0.359863f, 0.528809f, -0.359863f,
+0.528809f, -0.248535f, 0.225586f, -0.248535f, 0.225586f, 0, 0.081543f, 0, 0.081543f,
+-0.658691f, 0.540039f, -0.658691f, 0.540039f, -0.547363f, 0.550781f, -0.090332f,
+0.532227f, -0.074707f, 0.507568f, -0.0571289f, 0.48291f, -0.0395508f, 0.452393f,
+-0.0246582f, 0.421875f, -0.00976562f, 0.38623f, 0, 0.350586f, 0.00976562f, 0.310059f,
+0.00976562f, 0.241211f, 0.00976562f, 0.190186f, -0.0158691f, 0.13916f, -0.0415039f,
+0.105469f, -0.0869141f, 0.0717773f, -0.132324f, 0.0554199f, -0.195068f, 0.0390625f,
+-0.257812f, 0.0390625f, -0.33252f, 0.0390625f, -0.414062f, 0.0551758f, -0.476807f,
+0.0712891f, -0.539551f, 0.104736f, -0.582275f, 0.138184f, -0.625f, 0.189453f, -0.646973f,
+0.240723f, -0.668945f, 0.311523f, -0.668945f, 0.360352f, -0.668945f, 0.397217f, -0.655762f,
+0.434082f, -0.642578f, 0.461182f, -0.618408f, 0.488281f, -0.594238f, 0.506836f, -0.560547f,
+0.525391f, -0.526855f, 0.537109f, -0.48584f, 0.40332f, -0.459473f, 0.390137f, -0.508301f,
+0.367188f, -0.531982f, 0.344238f, -0.555664f, 0.312988f, -0.555664f, 0.277832f, -0.555664f,
+0.253418f, -0.54126f, 0.229004f, -0.526855f, 0.213867f, -0.498779f, 0.19873f, -0.470703f,
+0.191895f, -0.428955f, 0.185059f, -0.387207f, 0.185059f, -0.33252f, 0.185059f, -0.223633f,
+0.217773f, -0.164551f, 0.250488f, -0.105469f, 0.317383f, -0.105469f, 0.335938f, -0.105469f,
+0.352295f, -0.109619f, 0.368652f, -0.11377f, 0.381592f, -0.119385f, 0.394531f, -0.125f,
+0.404053f, -0.131104f, 0.413574f, -0.137207f, 0.418945f, -0.141602f, 0.418945f, -0.256348f,
+0.285156f, -0.256348f, 0.285156f, -0.362793f, 0.550781f, -0.362793f, 0.388672f, 0,
+0.388672f, -0.280273f, 0.211426f, -0.280273f, 0.211426f, 0, 0.0673828f, 0, 0.0673828f,
+-0.658691f, 0.211426f, -0.658691f, 0.211426f, -0.399414f, 0.388672f, -0.399414f,
+0.388672f, -0.658691f, 0.532715f, -0.658691f, 0.532715f, 0, 0.0766602f, -0.658691f,
+0.523926f, -0.658691f, 0.523926f, -0.547363f, 0.369629f, -0.547363f, 0.369629f, -0.111328f,
+0.523926f, -0.111328f, 0.523926f, 0, 0.0766602f, 0, 0.0766602f, -0.111328f, 0.230957f,
+-0.111328f, 0.230957f, -0.547363f, 0.0766602f, -0.547363f, 0.275391f, 0.00976562f,
+0.227051f, 0.00976562f, 0.188477f, -0.00390625f, 0.149902f, -0.0175781f, 0.121582f,
+-0.0439453f, 0.0932617f, -0.0703125f, 0.0751953f, -0.108643f, 0.0571289f, -0.146973f,
+0.0498047f, -0.196289f, 0.191895f, -0.217285f, 0.20166f, -0.159668f, 0.223633f, -0.131348f,
+0.245605f, -0.103027f, 0.276367f, -0.103027f, 0.312012f, -0.103027f, 0.333008f, -0.131836f,
+0.354004f, -0.160645f, 0.354004f, -0.214355f, 0.354004f, -0.545898f, 0.207031f, -0.545898f,
+0.207031f, -0.658691f, 0.497559f, -0.658691f, 0.497559f, -0.217773f, 0.497559f, -0.165527f,
+0.482666f, -0.123291f, 0.467773f, -0.0810547f, 0.439209f, -0.0515137f, 0.410645f,
+-0.0219727f, 0.369385f, -0.00610352f, 0.328125f, 0.00976562f, 0.275391f, 0.00976562f,
+0.430176f, 0, 0.272461f, -0.271973f, 0.210449f, -0.202637f, 0.210449f, 0, 0.0664062f,
+0, 0.0664062f, -0.658691f, 0.210449f, -0.658691f, 0.210449f, -0.366211f, 0.42334f,
+-0.658691f, 0.59082f, -0.658691f, 0.366211f, -0.375977f, 0.600098f, 0, 0.103027f,
+0, 0.103027f, -0.658691f, 0.24707f, -0.658691f, 0.24707f, -0.111328f, 0.547852f,
+-0.111328f, 0.547852f, 0, 0.443359f, 0, 0.443359f, -0.423828f, 0.443359f, -0.44873f,
+0.44458f, -0.474609f, 0.445801f, -0.500488f, 0.447266f, -0.521973f, 0.449219f, -0.546875f,
+0.451172f, -0.570801f, 0.444336f, -0.537109f, 0.437988f, -0.505859f, 0.435059f, -0.492676f,
+0.432129f, -0.478516f, 0.429199f, -0.464355f, 0.42627f, -0.450928f, 0.42334f, -0.4375f,
+0.42041f, -0.425537f, 0.41748f, -0.413574f, 0.414551f, -0.404297f, 0.354004f, -0.175781f,
+0.247559f, -0.175781f, 0.186035f, -0.404297f, 0.184082f, -0.411621f, 0.181152f, -0.422852f,
+0.178223f, -0.434082f, 0.175293f, -0.447266f, 0.172363f, -0.460449f, 0.169189f, -0.474609f,
+0.166016f, -0.48877f, 0.163086f, -0.502441f, 0.15625f, -0.534668f, 0.148926f, -0.570801f,
+0.150391f, -0.547363f, 0.152344f, -0.521973f, 0.153809f, -0.5f, 0.154785f, -0.474365f,
+0.155762f, -0.44873f, 0.155762f, -0.423828f, 0.155762f, 0, 0.0483398f, 0, 0.0483398f,
+-0.658691f, 0.217773f, -0.658691f, 0.283691f, -0.415039f, 0.287598f, -0.402344f,
+0.290771f, -0.383301f, 0.293945f, -0.364258f, 0.296387f, -0.346191f, 0.299316f, -0.325195f,
+0.302246f, -0.302246f, 0.305176f, -0.325195f, 0.308594f, -0.346191f, 0.311523f, -0.364258f,
+0.314941f, -0.383057f, 0.318359f, -0.401855f, 0.321777f, -0.414551f, 0.388184f, -0.658691f,
+0.551758f, -0.658691f, 0.551758f, 0, 0.365234f, 0, 0.177734f, -0.493164f, 0.181641f,
+-0.458008f, 0.18457f, -0.425781f, 0.186035f, -0.412109f, 0.187256f, -0.397461f, 0.188477f,
+-0.382812f, 0.189453f, -0.368896f, 0.19043f, -0.35498f, 0.190918f, -0.342529f, 0.191406f,
+-0.330078f, 0.191406f, -0.320312f, 0.191406f, 0, 0.065918f, 0, 0.065918f, -0.658691f,
+0.230469f, -0.658691f, 0.422363f, -0.152344f, 0.418457f, -0.185059f, 0.415527f, -0.217285f,
+0.413086f, -0.245117f, 0.410889f, -0.275635f, 0.408691f, -0.306152f, 0.408691f, -0.330566f,
+0.408691f, -0.658691f, 0.53418f, -0.658691f, 0.53418f, 0, 0.564941f, -0.331543f,
+0.564941f, -0.163086f, 0.496582f, -0.0766602f, 0.428223f, 0.00976562f, 0.300293f,
+0.00976562f, 0.172363f, 0.00976562f, 0.10376f, -0.0766602f, 0.0351562f, -0.163086f,
+0.0351562f, -0.331543f, 0.0351562f, -0.5f, 0.10376f, -0.584473f, 0.172363f, -0.668945f,
+0.300293f, -0.668945f, 0.428223f, -0.668945f, 0.496582f, -0.584473f, 0.564941f, -0.5f,
+0.564941f, -0.331543f, 0.418945f, -0.331543f, 0.418945f, -0.445312f, 0.38916f, -0.500488f,
+0.359375f, -0.555664f, 0.300293f, -0.555664f, 0.241211f, -0.555664f, 0.211182f, -0.499756f,
+0.181152f, -0.443848f, 0.181152f, -0.331543f, 0.181152f, -0.219238f, 0.211182f, -0.161377f,
+0.241211f, -0.103516f, 0.300293f, -0.103516f, 0.359375f, -0.103516f, 0.38916f, -0.161377f,
+0.418945f, -0.219238f, 0.418945f, -0.331543f, 0.557617f, -0.450684f, 0.557617f, -0.40625f,
+0.542725f, -0.366455f, 0.527832f, -0.32666f, 0.49707f, -0.296875f, 0.466309f, -0.26709f,
+0.418945f, -0.249756f, 0.371582f, -0.232422f, 0.306641f, -0.232422f, 0.210449f, -0.232422f,
+0.210449f, 0, 0.0664062f, 0, 0.0664062f, -0.658691f, 0.300781f, -0.658691f, 0.366699f,
+-0.658691f, 0.415039f, -0.644287f, 0.463379f, -0.629883f, 0.495117f, -0.603027f,
+0.526855f, -0.576172f, 0.542236f, -0.537598f, 0.557617f, -0.499023f, 0.557617f, -0.450684f,
+0.412598f, -0.448242f, 0.412598f, -0.501465f, 0.380615f, -0.52417f, 0.348633f, -0.546875f,
+0.284668f, -0.546875f, 0.210449f, -0.546875f, 0.210449f, -0.343262f, 0.288574f, -0.343262f,
+0.353027f, -0.343262f, 0.382812f, -0.369873f, 0.412598f, -0.396484f, 0.412598f, -0.448242f,
+0.564941f, -0.331543f, 0.564941f, -0.190918f, 0.517822f, -0.10791f, 0.470703f, -0.0249023f,
+0.380371f, 0, 0.390137f, 0.0268555f, 0.40332f, 0.0444336f, 0.416504f, 0.0620117f,
+0.432861f, 0.0722656f, 0.449219f, 0.0825195f, 0.46875f, 0.0866699f, 0.488281f, 0.0908203f,
+0.510254f, 0.0908203f, 0.524414f, 0.0908203f, 0.540039f, 0.0888672f, 0.555664f, 0.0869141f,
+0.570312f, 0.0844727f, 0.570312f, 0.183105f, 0.543945f, 0.188965f, 0.515137f, 0.192871f,
+0.486328f, 0.196777f, 0.452148f, 0.196777f, 0.405762f, 0.196777f, 0.37085f, 0.182617f,
+0.335938f, 0.168457f, 0.310303f, 0.142822f, 0.284668f, 0.117188f, 0.266602f, 0.081543f,
+0.248535f, 0.0458984f, 0.235352f, 0.00341797f, 0.137695f, -0.0170898f, 0.0864258f,
+-0.101074f, 0.0351562f, -0.185059f, 0.0351562f, -0.331543f, 0.0351562f, -0.5f, 0.10376f,
+-0.584473f, 0.172363f, -0.668945f, 0.300293f, -0.668945f, 0.428223f, -0.668945f,
+0.496582f, -0.584473f, 0.564941f, -0.5f, 0.564941f, -0.331543f, 0.418945f, -0.331543f,
+0.418945f, -0.445312f, 0.38916f, -0.500488f, 0.359375f, -0.555664f, 0.300293f, -0.555664f,
+0.241211f, -0.555664f, 0.211182f, -0.499756f, 0.181152f, -0.443848f, 0.181152f, -0.331543f,
+0.181152f, -0.219238f, 0.211182f, -0.161377f, 0.241211f, -0.103516f, 0.300293f, -0.103516f,
+0.359375f, -0.103516f, 0.38916f, -0.161377f, 0.418945f, -0.219238f, 0.418945f, -0.331543f,
+0.437012f, 0, 0.29541f, -0.251465f, 0.210938f, -0.251465f, 0.210938f, 0, 0.0668945f,
+0, 0.0668945f, -0.658691f, 0.308105f, -0.658691f, 0.437012f, -0.658691f, 0.500977f,
+-0.608398f, 0.564941f, -0.558105f, 0.564941f, -0.463379f, 0.564941f, -0.427246f,
+0.554688f, -0.397949f, 0.544434f, -0.368652f, 0.526367f, -0.346436f, 0.508301f, -0.324219f,
+0.483398f, -0.30835f, 0.458496f, -0.29248f, 0.428711f, -0.283691f, 0.599121f, 0,
+0.419922f, -0.45752f, 0.419922f, -0.482422f, 0.411377f, -0.499512f, 0.402832f, -0.516602f,
+0.386719f, -0.5271f, 0.370605f, -0.537598f, 0.346924f, -0.542236f, 0.323242f, -0.546875f,
+0.292969f, -0.546875f, 0.210938f, -0.546875f, 0.210938f, -0.363281f, 0.296875f, -0.363281f,
+0.361328f, -0.363281f, 0.390625f, -0.387451f, 0.419922f, -0.411621f, 0.419922f, -0.45752f,
+0.568848f, -0.190918f, 0.568848f, -0.147949f, 0.552246f, -0.111084f, 0.535645f, -0.0742188f,
+0.501953f, -0.0473633f, 0.468262f, -0.0205078f, 0.41748f, -0.00537109f, 0.366699f,
+0.00976562f, 0.29834f, 0.00976562f, 0.183594f, 0.00976562f, 0.111328f, -0.0385742f,
+0.0390625f, -0.0869141f, 0.0185547f, -0.179199f, 0.157715f, -0.197266f, 0.168945f,
+-0.151367f, 0.20459f, -0.124756f, 0.240234f, -0.0981445f, 0.302246f, -0.0981445f,
+0.331543f, -0.0981445f, 0.354736f, -0.102539f, 0.37793f, -0.106934f, 0.394531f, -0.116699f,
+0.411133f, -0.126465f, 0.419922f, -0.142822f, 0.428711f, -0.15918f, 0.428711f, -0.182617f,
+0.428711f, -0.208984f, 0.41333f, -0.22583f, 0.397949f, -0.242676f, 0.374268f, -0.253662f,
+0.350586f, -0.264648f, 0.321777f, -0.271729f, 0.292969f, -0.278809f, 0.266113f, -0.286133f,
+0.243164f, -0.29248f, 0.218018f, -0.300049f, 0.192871f, -0.307617f, 0.168945f, -0.318359f,
+0.14502f, -0.329102f, 0.123535f, -0.343506f, 0.102051f, -0.35791f, 0.0859375f, -0.37793f,
+0.0698242f, -0.397949f, 0.0603027f, -0.424072f, 0.0507812f, -0.450195f, 0.0507812f,
+-0.483887f, 0.0507812f, -0.531738f, 0.0715332f, -0.56665f, 0.0922852f, -0.601562f,
+0.126953f, -0.624268f, 0.161621f, -0.646973f, 0.206543f, -0.657959f, 0.251465f, -0.668945f,
+0.300293f, -0.668945f, 0.409668f, -0.668945f, 0.471191f, -0.625732f, 0.532715f, -0.58252f,
+0.550781f, -0.491699f, 0.411133f, -0.477539f, 0.400391f, -0.521973f, 0.372559f, -0.544434f,
+0.344727f, -0.566895f, 0.297363f, -0.566895f, 0.266602f, -0.566895f, 0.246338f, -0.560791f,
+0.226074f, -0.554688f, 0.213623f, -0.544189f, 0.201172f, -0.533691f, 0.196045f, -0.520264f,
+0.190918f, -0.506836f, 0.190918f, -0.492188f, 0.190918f, -0.46875f, 0.203125f, -0.453369f,
+0.215332f, -0.437988f, 0.235107f, -0.427734f, 0.254883f, -0.41748f, 0.280518f, -0.4104f,
+0.306152f, -0.40332f, 0.33252f, -0.396484f, 0.358398f, -0.390137f, 0.385742f, -0.38208f,
+0.413086f, -0.374023f, 0.439453f, -0.363037f, 0.46582f, -0.352051f, 0.489258f, -0.337158f,
+0.512695f, -0.322266f, 0.530273f, -0.301758f, 0.547852f, -0.28125f, 0.55835f, -0.253906f,
+0.568848f, -0.226562f, 0.568848f, -0.190918f, 0.37207f, -0.547363f, 0.37207f, 0,
+0.228027f, 0, 0.228027f, -0.547363f, 0.0297852f, -0.547363f, 0.0297852f, -0.658691f,
+0.570312f, -0.658691f, 0.570312f, -0.547363f, 0.29248f, 0.00976562f, 0.239258f, 0.00976562f,
+0.196533f, -0.00366211f, 0.153809f, -0.0170898f, 0.124268f, -0.0480957f, 0.0947266f,
+-0.0791016f, 0.0788574f, -0.130371f, 0.0629883f, -0.181641f, 0.0629883f, -0.257812f,
+0.0629883f, -0.658691f, 0.207031f, -0.658691f, 0.207031f, -0.259277f, 0.207031f,
+-0.21582f, 0.211914f, -0.185791f, 0.216797f, -0.155762f, 0.227295f, -0.137451f, 0.237793f,
+-0.119141f, 0.254883f, -0.111084f, 0.271973f, -0.103027f, 0.296387f, -0.103027f,
+0.320801f, -0.103027f, 0.338867f, -0.111572f, 0.356934f, -0.120117f, 0.369141f, -0.13916f,
+0.381348f, -0.158203f, 0.387207f, -0.188965f, 0.393066f, -0.219727f, 0.393066f, -0.26416f,
+0.393066f, -0.658691f, 0.537109f, -0.658691f, 0.537109f, -0.265137f, 0.537109f, -0.188965f,
+0.52002f, -0.136475f, 0.50293f, -0.0839844f, 0.470947f, -0.0515137f, 0.438965f, -0.019043f,
+0.393799f, -0.00463867f, 0.348633f, 0.00976562f, 0.29248f, 0.00976562f, 0.374023f,
+0, 0.228027f, 0, 0.00146484f, -0.658691f, 0.151855f, -0.658691f, 0.265625f, -0.280273f,
+0.272461f, -0.258301f, 0.278809f, -0.235352f, 0.285156f, -0.212402f, 0.290527f, -0.193359f,
+0.296387f, -0.170898f, 0.301758f, -0.150391f, 0.306641f, -0.17041f, 0.312012f, -0.192383f,
+0.316895f, -0.210938f, 0.323486f, -0.234131f, 0.330078f, -0.257324f, 0.336914f, -0.280273f,
+0.450195f, -0.658691f, 0.599121f, -0.658691f, 0.49707f, 0, 0.375977f, 0, 0.344727f,
+-0.130371f, 0.342285f, -0.139648f, 0.338867f, -0.152344f, 0.335449f, -0.165039f,
+0.331787f, -0.179443f, 0.328125f, -0.193848f, 0.324463f, -0.209229f, 0.320801f, -0.224609f,
+0.317383f, -0.239258f, 0.309082f, -0.273438f, 0.300781f, -0.310547f, 0.291992f, -0.272949f,
+0.283691f, -0.23877f, 0.280273f, -0.224121f, 0.276611f, -0.20874f, 0.272949f, -0.193359f,
+0.269287f, -0.178955f, 0.265625f, -0.164551f, 0.262207f, -0.1521f, 0.258789f, -0.139648f,
+0.256348f, -0.130371f, 0.224121f, 0, 0.103027f, 0, 0, -0.658691f, 0.126465f, -0.658691f,
+0.169922f, -0.319336f, 0.172363f, -0.300293f, 0.173828f, -0.277832f, 0.175293f, -0.255371f,
+0.17627f, -0.235352f, 0.177246f, -0.211914f, 0.177734f, -0.189453f, 0.180664f, -0.207031f,
+0.185059f, -0.226562f, 0.188965f, -0.243652f, 0.193848f, -0.264893f, 0.19873f, -0.286133f,
+0.20459f, -0.308594f, 0.25293f, -0.474121f, 0.348145f, -0.474121f, 0.396484f, -0.308594f,
+0.402832f, -0.286621f, 0.407471f, -0.265381f, 0.412109f, -0.244141f, 0.416016f, -0.227051f,
+0.42041f, -0.20752f, 0.42334f, -0.189453f, 0.423828f, -0.189453f, 0.424316f, -0.202637f,
+0.424805f, -0.21582f, 0.425781f, -0.235352f, 0.426758f, -0.254883f, 0.428223f, -0.277588f,
+0.429688f, -0.300293f, 0.432129f, -0.319336f, 0.473145f, -0.658691f, 0.599609f, -0.658691f,
+0.44873f, 0, 0.300781f, -0.240723f, 0.152344f, 0, 0, 0, 0.224121f, -0.347168f, 0.0200195f,
+-0.658691f, 0.172363f, -0.658691f, 0.300781f, -0.44873f, 0.428711f, -0.658691f, 0.580078f,
+-0.658691f, 0.371094f, -0.347168f, 0.600098f, 0, 0.371582f, -0.271484f, 0.371582f,
+0, 0.228027f, 0, 0.228027f, -0.271484f, 0.00146484f, -0.658691f, 0.152344f, -0.658691f,
+0.298828f, -0.382324f, 0.447266f, -0.658691f, 0.598145f, -0.658691f, 0.555664f, 0,
+0.0424805f, 0, 0.0424805f, -0.102051f, 0.370117f, -0.545898f, 0.0795898f, -0.545898f,
+0.0795898f, -0.658691f, 0.535645f, -0.658691f, 0.535645f, -0.558594f, 0.208008f,
+-0.112793f, 0.555664f, -0.112793f, 0.182129f, 0.20752f, 0.182129f, -0.724609f, 0.476074f,
+-0.724609f, 0.476074f, -0.631836f, 0.312012f, -0.631836f, 0.312012f, 0.114258f, 0.476074f,
+0.114258f, 0.476074f, 0.20752f, 0.443359f, 0.00976562f, 0.0444336f, -0.724609f, 0.155762f,
+-0.724609f, 0.556641f, 0.00976562f, 0.124023f, 0.20752f, 0.124023f, 0.114258f, 0.288086f,
+0.114258f, 0.288086f, -0.631836f, 0.124023f, -0.631836f, 0.124023f, -0.724609f, 0.417969f,
+-0.724609f, 0.417969f, 0.20752f, 0.450195f, -0.250977f, 0.291016f, -0.618164f, 0.132812f,
+-0.250977f, 0.0219727f, -0.250977f, 0.212891f, -0.687988f, 0.370117f, -0.687988f,
+0.562012f, -0.250977f, -0.00244141f, 0.107422f, -0.00244141f, 0.0605469f, 0.602051f,
+0.0605469f, 0.602051f, 0.107422f, 0.335449f, -0.578125f, 0.169434f, -0.690918f, 0.169434f,
+-0.711914f, 0.29541f, -0.711914f, 0.418457f, -0.593262f, 0.418457f, -0.578125f, 0.214355f,
+0.00976562f, 0.17627f, 0.00976562f, 0.14624f, -0.000732422f, 0.116211f, -0.0112305f,
+0.0952148f, -0.0314941f, 0.0742188f, -0.0517578f, 0.0629883f, -0.081543f, 0.0517578f,
+-0.111328f, 0.0517578f, -0.149414f, 0.0517578f, -0.196289f, 0.0673828f, -0.228271f,
+0.0830078f, -0.260254f, 0.110352f, -0.280029f, 0.137695f, -0.299805f, 0.175049f,
+-0.308838f, 0.212402f, -0.317871f, 0.255371f, -0.318359f, 0.364258f, -0.320312f,
+0.364258f, -0.347168f, 0.364258f, -0.375977f, 0.359131f, -0.395264f, 0.354004f, -0.414551f,
+0.344727f, -0.426758f, 0.335449f, -0.438965f, 0.322021f, -0.444092f, 0.308594f, -0.449219f,
+0.291992f, -0.449219f, 0.276855f, -0.449219f, 0.26416f, -0.445801f, 0.251465f, -0.442383f,
+0.242188f, -0.433838f, 0.23291f, -0.425293f, 0.227051f, -0.410889f, 0.221191f, -0.396484f,
+0.21875f, -0.374512f, 0.0756836f, -0.381348f, 0.081543f, -0.416016f, 0.0964355f,
+-0.44458f, 0.111328f, -0.473145f, 0.137939f, -0.494141f, 0.164551f, -0.515137f, 0.204102f,
+-0.526611f, 0.243652f, -0.538086f, 0.297852f, -0.538086f, 0.396484f, -0.538086f,
+0.448975f, -0.489746f, 0.501465f, -0.441406f, 0.501465f, -0.347656f, 0.501465f, -0.15625f,
+0.501465f, -0.137695f, 0.503174f, -0.123047f, 0.504883f, -0.108398f, 0.509521f, -0.0983887f,
+0.51416f, -0.0883789f, 0.522705f, -0.083252f, 0.53125f, -0.078125f, 0.544922f, -0.078125f,
+0.560547f, -0.078125f, 0.575195f, -0.0810547f, 0.575195f, -0.00683594f, 0.562988f,
+-0.00390625f, 0.553223f, -0.00146484f, 0.543457f, 0.000976562f, 0.533691f, 0.00244141f,
+0.523926f, 0.00390625f, 0.512939f, 0.00488281f, 0.501953f, 0.00585938f, 0.487305f,
+0.00585938f, 0.435547f, 0.00585938f, 0.410889f, -0.0195312f, 0.38623f, -0.0449219f,
+0.381348f, -0.0942383f, 0.378418f, -0.0942383f, 0.364746f, -0.0698242f, 0.348877f,
+-0.0505371f, 0.333008f, -0.03125f, 0.313232f, -0.0178223f, 0.293457f, -0.00439453f,
+0.269043f, 0.00268555f, 0.244629f, 0.00976562f, 0.214355f, 0.00976562f, 0.364258f,
+-0.244629f, 0.298828f, -0.243652f, 0.276855f, -0.243164f, 0.257812f, -0.240479f,
+0.23877f, -0.237793f, 0.224854f, -0.229248f, 0.210938f, -0.220703f, 0.202881f, -0.204346f,
+0.194824f, -0.187988f, 0.194824f, -0.160156f, 0.194824f, -0.122559f, 0.209717f, -0.104248f,
+0.224609f, -0.0859375f, 0.253418f, -0.0859375f, 0.279785f, -0.0859375f, 0.300293f,
+-0.097168f, 0.320801f, -0.108398f, 0.335205f, -0.126709f, 0.349609f, -0.14502f, 0.356934f,
+-0.168945f, 0.364258f, -0.192871f, 0.364258f, -0.217773f, 0.0683594f, 0, 0.0693359f,
+-0.0166016f, 0.0708008f, -0.0466309f, 0.0722656f, -0.0766602f, 0.0722656f, -0.115234f,
+0.0722656f, -0.724609f, 0.209473f, -0.724609f, 0.209473f, -0.532227f, 0.209473f,
+-0.52002f, 0.209229f, -0.506836f, 0.208984f, -0.493652f, 0.208984f, -0.481445f, 0.208984f,
+-0.469238f, 0.20874f, -0.459717f, 0.208496f, -0.450195f, 0.208496f, -0.445312f, 0.209473f,
+-0.445312f, 0.221191f, -0.471191f, 0.238525f, -0.489014f, 0.255859f, -0.506836f,
+0.276367f, -0.517822f, 0.296875f, -0.528809f, 0.31958f, -0.533691f, 0.342285f, -0.538574f,
+0.364258f, -0.538574f, 0.413574f, -0.538574f, 0.449219f, -0.518066f, 0.484863f, -0.497559f,
+0.507812f, -0.460938f, 0.530762f, -0.424316f, 0.541748f, -0.374023f, 0.552734f, -0.32373f,
+0.552734f, -0.263672f, 0.552734f, -0.20459f, 0.540039f, -0.154541f, 0.527344f, -0.104492f,
+0.50293f, -0.0678711f, 0.478516f, -0.03125f, 0.442383f, -0.0107422f, 0.40625f, 0.00976562f,
+0.359863f, 0.00976562f, 0.337402f, 0.00976562f, 0.315918f, 0.00463867f, 0.294434f,
+-0.000488281f, 0.274902f, -0.0119629f, 0.255371f, -0.0234375f, 0.239014f, -0.0415039f,
+0.222656f, -0.0595703f, 0.210449f, -0.0859375f, 0.208496f, -0.0859375f, 0.208496f,
+-0.0756836f, 0.207764f, -0.0625f, 0.207031f, -0.0493164f, 0.206055f, -0.0366211f,
+0.205078f, -0.0239258f, 0.203613f, -0.013916f, 0.202148f, -0.00390625f, 0.201172f,
+0, 0.20752f, -0.26709f, 0.20752f, -0.214355f, 0.217285f, -0.178955f, 0.227051f, -0.143555f,
+0.242432f, -0.122559f, 0.257812f, -0.101562f, 0.276123f, -0.0927734f, 0.294434f,
+-0.0839844f, 0.311523f, -0.0839844f, 0.358398f, -0.0839844f, 0.384033f, -0.128906f,
+0.409668f, -0.173828f, 0.409668f, -0.263672f, 0.409668f, -0.312012f, 0.402588f, -0.346436f,
+0.395508f, -0.380859f, 0.382568f, -0.402832f, 0.369629f, -0.424805f, 0.351318f, -0.435059f,
+0.333008f, -0.445312f, 0.310547f, -0.445312f, 0.292969f, -0.445312f, 0.274902f, -0.437012f,
+0.256836f, -0.428711f, 0.241699f, -0.408447f, 0.226562f, -0.388184f, 0.217041f, -0.35376f,
+0.20752f, -0.319336f, 0.20752f, -0.26709f, 0.304688f, 0.00976562f, 0.241699f, 0.00976562f,
+0.19458f, -0.00976562f, 0.147461f, -0.0292969f, 0.116211f, -0.0649414f, 0.0849609f,
+-0.100586f, 0.0693359f, -0.150635f, 0.0537109f, -0.200684f, 0.0537109f, -0.26123f,
+0.0537109f, -0.327148f, 0.0708008f, -0.378662f, 0.0878906f, -0.430176f, 0.120117f,
+-0.465576f, 0.152344f, -0.500977f, 0.199463f, -0.519531f, 0.246582f, -0.538086f,
+0.306641f, -0.538086f, 0.35791f, -0.538086f, 0.397705f, -0.524414f, 0.4375f, -0.510742f,
+0.466309f, -0.487061f, 0.495117f, -0.463379f, 0.512939f, -0.431152f, 0.530762f, -0.398926f,
+0.537598f, -0.361816f, 0.399414f, -0.35498f, 0.393555f, -0.395508f, 0.370117f, -0.419678f,
+0.34668f, -0.443848f, 0.303711f, -0.443848f, 0.248535f, -0.443848f, 0.223145f, -0.398438f,
+0.197754f, -0.353027f, 0.197754f, -0.266602f, 0.197754f, -0.0839844f, 0.305664f,
+-0.0839844f, 0.344727f, -0.0839844f, 0.371094f, -0.108643f, 0.397461f, -0.133301f,
+0.403809f, -0.182129f, 0.541504f, -0.175781f, 0.536621f, -0.13916f, 0.519287f, -0.105713f,
+0.501953f, -0.0722656f, 0.472412f, -0.0466309f, 0.442871f, -0.0209961f, 0.400879f,
+-0.00561523f, 0.358887f, 0.00976562f, 0.304688f, 0.00976562f, 0.398926f, 0, 0.397949f,
+-0.00390625f, 0.396729f, -0.013916f, 0.395508f, -0.0239258f, 0.394287f, -0.0366211f,
+0.393066f, -0.0493164f, 0.392334f, -0.0625f, 0.391602f, -0.0756836f, 0.391602f, -0.0859375f,
+0.389648f, -0.0859375f, 0.36377f, -0.0336914f, 0.325684f, -0.0119629f, 0.287598f,
+0.00976562f, 0.235352f, 0.00976562f, 0.188965f, 0.00976562f, 0.153809f, -0.0107422f,
+0.118652f, -0.03125f, 0.0949707f, -0.067627f, 0.0712891f, -0.104004f, 0.0593262f,
+-0.154053f, 0.0473633f, -0.204102f, 0.0473633f, -0.263184f, 0.0473633f, -0.323242f,
+0.059082f, -0.373535f, 0.0708008f, -0.423828f, 0.0947266f, -0.460205f, 0.118652f,
+-0.496582f, 0.155029f, -0.516846f, 0.191406f, -0.537109f, 0.240723f, -0.537109f,
+0.262695f, -0.537109f, 0.284668f, -0.532227f, 0.306641f, -0.527344f, 0.326416f, -0.516357f,
+0.346191f, -0.505371f, 0.362549f, -0.487549f, 0.378906f, -0.469727f, 0.390625f, -0.443848f,
+0.391602f, -0.443848f, 0.391602f, -0.44873f, 0.391357f, -0.458252f, 0.391113f, -0.467773f,
+0.391113f, -0.47998f, 0.391113f, -0.492188f, 0.390869f, -0.505371f, 0.390625f, -0.518555f,
+0.390625f, -0.530762f, 0.390625f, -0.724609f, 0.527832f, -0.724609f, 0.527832f, -0.115234f,
+0.527832f, -0.0766602f, 0.529297f, -0.0466309f, 0.530762f, -0.0166016f, 0.531738f,
+0, 0.392578f, -0.266602f, 0.392578f, -0.318848f, 0.383057f, -0.353271f, 0.373535f,
+-0.387695f, 0.358398f, -0.407715f, 0.343262f, -0.427734f, 0.325195f, -0.435791f,
+0.307129f, -0.443848f, 0.289551f, -0.443848f, 0.26709f, -0.443848f, 0.248779f, -0.433594f,
+0.230469f, -0.42334f, 0.217529f, -0.401611f, 0.20459f, -0.379883f, 0.19751f, -0.345703f,
+0.19043f, -0.311523f, 0.19043f, -0.263184f, 0.19043f, -0.17334f, 0.216064f, -0.128662f,
+0.241699f, -0.0839844f, 0.288574f, -0.0839844f, 0.305664f, -0.0839844f, 0.323975f,
+-0.0927734f, 0.342285f, -0.101562f, 0.357666f, -0.122559f, 0.373047f, -0.143555f,
+0.382812f, -0.178711f, 0.392578f, -0.213867f, 0.392578f, -0.266602f, 0.305664f, 0.00976562f,
+0.248535f, 0.00976562f, 0.201172f, -0.00708008f, 0.153809f, -0.0239258f, 0.120117f,
+-0.0583496f, 0.0864258f, -0.0927734f, 0.067627f, -0.144775f, 0.0488281f, -0.196777f,
+0.0488281f, -0.266602f, 0.0488281f, -0.342285f, 0.0705566f, -0.394043f, 0.0922852f,
+-0.445801f, 0.128418f, -0.477783f, 0.164551f, -0.509766f, 0.211182f, -0.523926f,
+0.257812f, -0.538086f, 0.307617f, -0.538086f, 0.370117f, -0.538086f, 0.415771f, -0.516357f,
+0.461426f, -0.494629f, 0.491699f, -0.455566f, 0.521973f, -0.416504f, 0.536621f, -0.362061f,
+0.55127f, -0.307617f, 0.55127f, -0.241699f, 0.55127f, -0.237793f, 0.192871f, -0.237793f,
+0.192871f, -0.20459f, 0.200439f, -0.176025f, 0.208008f, -0.147461f, 0.2229f, -0.126709f,
+0.237793f, -0.105957f, 0.260254f, -0.0939941f, 0.282715f, -0.0820312f, 0.3125f, -0.0820312f,
+0.348633f, -0.0820312f, 0.376465f, -0.0974121f, 0.404297f, -0.112793f, 0.414062f,
+-0.14502f, 0.543457f, -0.133789f, 0.534668f, -0.111328f, 0.517334f, -0.0859375f,
+0.5f, -0.0605469f, 0.47168f, -0.0393066f, 0.443359f, -0.0180664f, 0.402588f, -0.00415039f,
+0.361816f, 0.00976562f, 0.305664f, 0.00976562f, 0.305664f, -0.45166f, 0.284668f,
+-0.45166f, 0.264893f, -0.44458f, 0.245117f, -0.4375f, 0.229736f, -0.422119f, 0.214355f,
+-0.406738f, 0.20459f, -0.382324f, 0.194824f, -0.35791f, 0.193848f, -0.32373f, 0.418457f,
+-0.32373f, 0.416504f, -0.355469f, 0.406982f, -0.379395f, 0.397461f, -0.40332f, 0.382568f,
+-0.419434f, 0.367676f, -0.435547f, 0.3479f, -0.443604f, 0.328125f, -0.45166f, 0.305664f,
+-0.45166f, 0.318848f, -0.435547f, 0.318848f, 0, 0.182129f, 0, 0.182129f, -0.435547f,
+0.0571289f, -0.435547f, 0.0571289f, -0.52832f, 0.182129f, -0.52832f, 0.182129f, -0.568848f,
+0.182129f, -0.599121f, 0.190674f, -0.629395f, 0.199219f, -0.659668f, 0.222168f, -0.684082f,
+0.245117f, -0.708496f, 0.285156f, -0.723877f, 0.325195f, -0.739258f, 0.388184f, -0.739258f,
+0.437988f, -0.739258f, 0.478271f, -0.734863f, 0.518555f, -0.730469f, 0.547852f, -0.725586f,
+0.547852f, -0.635742f, 0.51709f, -0.639648f, 0.482178f, -0.642334f, 0.447266f, -0.64502f,
+0.412109f, -0.64502f, 0.383789f, -0.64502f, 0.365723f, -0.638672f, 0.347656f, -0.632324f,
+0.337158f, -0.62085f, 0.32666f, -0.609375f, 0.322754f, -0.593018f, 0.318848f, -0.57666f,
+0.318848f, -0.556152f, 0.318848f, -0.52832f, 0.535156f, -0.52832f, 0.535156f, -0.435547f,
+0.300781f, 0.211914f, 0.252441f, 0.211914f, 0.2146f, 0.201416f, 0.176758f, 0.190918f,
+0.149658f, 0.172119f, 0.122559f, 0.15332f, 0.105713f, 0.127197f, 0.0888672f, 0.101074f,
+0.0825195f, 0.0698242f, 0.219727f, 0.0537109f, 0.227051f, 0.0854492f, 0.25f, 0.104004f,
+0.272949f, 0.122559f, 0.304688f, 0.122559f, 0.325195f, 0.122559f, 0.343506f, 0.115479f,
+0.361816f, 0.108398f, 0.375488f, 0.092041f, 0.38916f, 0.0756836f, 0.396973f, 0.048584f,
+0.404785f, 0.0214844f, 0.404785f, -0.0180664f, 0.404785f, -0.0317383f, 0.404785f,
+-0.0466309f, 0.404785f, -0.0615234f, 0.405273f, -0.0742188f, 0.405762f, -0.0888672f,
+0.405762f, -0.103027f, 0.404785f, -0.103027f, 0.380859f, -0.0517578f, 0.338867f,
+-0.0288086f, 0.296875f, -0.00585938f, 0.244629f, -0.00585938f, 0.198242f, -0.00585938f,
+0.163574f, -0.0249023f, 0.128906f, -0.0439453f, 0.105957f, -0.0783691f, 0.0830078f,
+-0.112793f, 0.0717773f, -0.161133f, 0.0605469f, -0.209473f, 0.0605469f, -0.268555f,
+0.0605469f, -0.32959f, 0.0725098f, -0.378906f, 0.0844727f, -0.428223f, 0.108643f,
+-0.463379f, 0.132812f, -0.498535f, 0.169434f, -0.517578f, 0.206055f, -0.536621f,
+0.254883f, -0.536621f, 0.277344f, -0.536621f, 0.299316f, -0.531494f, 0.321289f, -0.526367f,
+0.34082f, -0.515137f, 0.360352f, -0.503906f, 0.376709f, -0.486084f, 0.393066f, -0.468262f,
+0.404785f, -0.443359f, 0.407227f, -0.443359f, 0.407227f, -0.453613f, 0.407959f, -0.467041f,
+0.408691f, -0.480469f, 0.409668f, -0.49292f, 0.410645f, -0.505371f, 0.411865f, -0.515137f,
+0.413086f, -0.524902f, 0.414062f, -0.52832f, 0.543945f, -0.52832f, 0.542969f, -0.510742f,
+0.541992f, -0.479004f, 0.541016f, -0.447266f, 0.541016f, -0.40625f, 0.541016f, -0.0161133f,
+0.541016f, 0.0415039f, 0.524414f, 0.0842285f, 0.507812f, 0.126953f, 0.476807f, 0.155273f,
+0.445801f, 0.183594f, 0.401367f, 0.197754f, 0.356934f, 0.211914f, 0.300781f, 0.211914f,
+0.405762f, -0.271484f, 0.405762f, -0.321289f, 0.39624f, -0.354248f, 0.386719f, -0.387207f,
+0.371826f, -0.406738f, 0.356934f, -0.42627f, 0.338867f, -0.434326f, 0.320801f, -0.442383f,
+0.303711f, -0.442383f, 0.28125f, -0.442383f, 0.262695f, -0.432373f, 0.244141f, -0.422363f,
+0.230957f, -0.401123f, 0.217773f, -0.379883f, 0.210693f, -0.347168f, 0.203613f, -0.314453f,
+0.203613f, -0.268555f, 0.203613f, -0.183594f, 0.22998f, -0.142334f, 0.256348f, -0.101074f,
+0.302734f, -0.101074f, 0.319824f, -0.101074f, 0.338135f, -0.108398f, 0.356445f, -0.115723f,
+0.371338f, -0.13501f, 0.38623f, -0.154297f, 0.395996f, -0.187256f, 0.405762f, -0.220215f,
+0.405762f, -0.271484f, 0.205078f, -0.422852f, 0.23291f, -0.483398f, 0.274902f, -0.510742f,
+0.316895f, -0.538086f, 0.375f, -0.538086f, 0.422852f, -0.538086f, 0.454346f, -0.522461f,
+0.48584f, -0.506836f, 0.504639f, -0.479492f, 0.523438f, -0.452148f, 0.53125f, -0.415039f,
+0.539062f, -0.37793f, 0.539062f, -0.334961f, 0.539062f, 0, 0.402344f, 0, 0.402344f,
+-0.303223f, 0.402344f, -0.333984f, 0.398926f, -0.358398f, 0.395508f, -0.382812f,
+0.38623f, -0.399902f, 0.376953f, -0.416992f, 0.360352f, -0.426025f, 0.34375f, -0.435059f,
+0.317871f, -0.435059f, 0.292969f, -0.435059f, 0.272705f, -0.424072f, 0.252441f, -0.413086f,
+0.237793f, -0.392822f, 0.223145f, -0.372559f, 0.215088f, -0.344482f, 0.207031f, -0.316406f,
+0.207031f, -0.282715f, 0.207031f, 0, 0.0698242f, 0, 0.0698242f, -0.724609f, 0.207031f,
+-0.724609f, 0.207031f, -0.526855f, 0.207031f, -0.51123f, 0.206543f, -0.495361f, 0.206055f,
+-0.479492f, 0.205322f, -0.465576f, 0.20459f, -0.45166f, 0.204102f, -0.44043f, 0.203613f,
+-0.429199f, 0.203125f, -0.422852f, 0.387695f, -0.0927734f, 0.560059f, -0.0927734f,
+0.560059f, 0, 0.0576172f, 0, 0.0576172f, -0.0927734f, 0.250488f, -0.0927734f, 0.250488f,
+-0.435547f, 0.108887f, -0.435547f, 0.108887f, -0.52832f, 0.387695f, -0.52832f, 0.250488f,
+-0.623535f, 0.250488f, -0.724609f, 0.387695f, -0.724609f, 0.387695f, -0.623535f,
+0.421875f, 0.00634766f, 0.421875f, 0.0595703f, 0.40332f, 0.0976562f, 0.384766f, 0.135742f,
+0.353516f, 0.160156f, 0.322266f, 0.18457f, 0.281738f, 0.196045f, 0.241211f, 0.20752f,
+0.197754f, 0.20752f, 0.177734f, 0.20752f, 0.157715f, 0.205811f, 0.137695f, 0.204102f,
+0.119141f, 0.201172f, 0.100586f, 0.198242f, 0.0847168f, 0.19458f, 0.0688477f, 0.190918f,
+0.0571289f, 0.186523f, 0.0571289f, 0.0839844f, 0.0786133f, 0.0893555f, 0.112305f,
+0.0949707f, 0.145996f, 0.100586f, 0.185547f, 0.100586f, 0.206543f, 0.100586f, 0.224609f,
+0.0964355f, 0.242676f, 0.0922852f, 0.255859f, 0.0805664f, 0.269043f, 0.0688477f,
+0.276611f, 0.0483398f, 0.28418f, 0.027832f, 0.28418f, -0.00488281f, 0.28418f, -0.435547f,
+0.111328f, -0.435547f, 0.111328f, -0.52832f, 0.421875f, -0.52832f, 0.284668f, -0.623535f,
+0.284668f, -0.724609f, 0.421875f, -0.724609f, 0.421875f, -0.623535f, 0.421875f, 0,
+0.280762f, -0.239258f, 0.22168f, -0.198242f, 0.22168f, 0, 0.0844727f, 0, 0.0844727f,
+-0.724609f, 0.22168f, -0.724609f, 0.22168f, -0.30957f, 0.410156f, -0.52832f, 0.557617f,
+-0.52832f, 0.37207f, -0.322266f, 0.571777f, 0, 0.387695f, -0.0927734f, 0.560059f,
+-0.0927734f, 0.560059f, 0, 0.0576172f, 0, 0.0576172f, -0.0927734f, 0.250488f, -0.0927734f,
+0.250488f, -0.631836f, 0.108887f, -0.631836f, 0.108887f, -0.724609f, 0.387695f, -0.724609f,
+0.244629f, 0, 0.244629f, -0.321289f, 0.244629f, -0.358398f, 0.242432f, -0.383301f,
+0.240234f, -0.408203f, 0.235352f, -0.423096f, 0.230469f, -0.437988f, 0.222168f, -0.444336f,
+0.213867f, -0.450684f, 0.202148f, -0.450684f, 0.189941f, -0.450684f, 0.179932f, -0.438721f,
+0.169922f, -0.426758f, 0.163086f, -0.405029f, 0.15625f, -0.383301f, 0.152344f, -0.352539f,
+0.148438f, -0.321777f, 0.148438f, -0.28418f, 0.148438f, 0, 0.0366211f, 0, 0.0366211f,
+-0.415527f, 0.0366211f, -0.432129f, 0.036377f, -0.450439f, 0.0361328f, -0.46875f,
+0.0356445f, -0.485107f, 0.0351562f, -0.501465f, 0.034668f, -0.513184f, 0.0341797f,
+-0.524902f, 0.0336914f, -0.52832f, 0.135742f, -0.52832f, 0.13623f, -0.525879f, 0.136719f,
+-0.515869f, 0.137207f, -0.505859f, 0.137695f, -0.49292f, 0.138184f, -0.47998f, 0.138428f,
+-0.466309f, 0.138672f, -0.452637f, 0.138672f, -0.442871f, 0.139648f, -0.442871f,
+0.145996f, -0.461914f, 0.154785f, -0.479248f, 0.163574f, -0.496582f, 0.176025f, -0.509766f,
+0.188477f, -0.522949f, 0.205566f, -0.530518f, 0.222656f, -0.538086f, 0.245117f, -0.538086f,
+0.288086f, -0.538086f, 0.309326f, -0.514648f, 0.330566f, -0.491211f, 0.339844f, -0.442383f,
+0.34082f, -0.442383f, 0.349609f, -0.465332f, 0.360107f, -0.483154f, 0.370605f, -0.500977f,
+0.384277f, -0.513184f, 0.397949f, -0.525391f, 0.415527f, -0.531738f, 0.433105f, -0.538086f,
+0.456055f, -0.538086f, 0.48584f, -0.538086f, 0.506348f, -0.527344f, 0.526855f, -0.516602f,
+0.539551f, -0.494141f, 0.552246f, -0.47168f, 0.557861f, -0.436523f, 0.563477f, -0.401367f,
+0.563477f, -0.352051f, 0.563477f, 0, 0.452148f, 0, 0.452148f, -0.321289f, 0.452148f,
+-0.358398f, 0.449951f, -0.383301f, 0.447754f, -0.408203f, 0.442871f, -0.423096f,
+0.437988f, -0.437988f, 0.429688f, -0.444336f, 0.421387f, -0.450684f, 0.409668f, -0.450684f,
+0.384766f, -0.450684f, 0.370361f, -0.411377f, 0.355957f, -0.37207f, 0.355957f, -0.293457f,
+0.355957f, 0, 0.402344f, 0, 0.402344f, -0.302246f, 0.402344f, -0.371094f, 0.383545f,
+-0.40332f, 0.364746f, -0.435547f, 0.318848f, -0.435547f, 0.293945f, -0.435547f, 0.273438f,
+-0.424561f, 0.25293f, -0.413574f, 0.238281f, -0.393311f, 0.223633f, -0.373047f, 0.215332f,
+-0.344971f, 0.207031f, -0.316895f, 0.207031f, -0.283203f, 0.207031f, 0, 0.0698242f,
+0, 0.0698242f, -0.410156f, 0.0698242f, -0.427246f, 0.0695801f, -0.445312f, 0.0693359f,
+-0.463379f, 0.0686035f, -0.479736f, 0.0678711f, -0.496094f, 0.0673828f, -0.509033f,
+0.0668945f, -0.521973f, 0.065918f, -0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f,
+0.19873f, -0.509521f, 0.199707f, -0.496582f, 0.200684f, -0.480957f, 0.20166f, -0.465332f,
+0.202393f, -0.449707f, 0.203125f, -0.434082f, 0.203125f, -0.42334f, 0.205078f, -0.42334f,
+0.23291f, -0.483887f, 0.274902f, -0.51123f, 0.316895f, -0.538574f, 0.375f, -0.538574f,
+0.417969f, -0.538574f, 0.448975f, -0.524658f, 0.47998f, -0.510742f, 0.5f, -0.484619f,
+0.52002f, -0.458496f, 0.529541f, -0.420898f, 0.539062f, -0.383301f, 0.539062f, -0.335449f,
+0.539062f, 0, 0.555176f, -0.264648f, 0.555176f, -0.204102f, 0.540039f, -0.153809f,
+0.524902f, -0.103516f, 0.493408f, -0.0671387f, 0.461914f, -0.0307617f, 0.41333f,
+-0.010498f, 0.364746f, 0.00976562f, 0.297852f, 0.00976562f, 0.233398f, 0.00976562f,
+0.186035f, -0.0102539f, 0.138672f, -0.0302734f, 0.107178f, -0.0664062f, 0.0756836f,
+-0.102539f, 0.0603027f, -0.153076f, 0.0449219f, -0.203613f, 0.0449219f, -0.264648f,
+0.0449219f, -0.32373f, 0.0595703f, -0.373779f, 0.0742188f, -0.423828f, 0.105225f,
+-0.460449f, 0.13623f, -0.49707f, 0.184814f, -0.517578f, 0.233398f, -0.538086f, 0.300781f,
+-0.538086f, 0.37207f, -0.538086f, 0.420654f, -0.517578f, 0.469238f, -0.49707f, 0.499268f,
+-0.460693f, 0.529297f, -0.424316f, 0.542236f, -0.374268f, 0.555176f, -0.324219f,
+0.555176f, -0.264648f, 0.411621f, -0.264648f, 0.411621f, -0.311523f, 0.405518f, -0.345459f,
+0.399414f, -0.379395f, 0.386475f, -0.401367f, 0.373535f, -0.42334f, 0.352783f, -0.433594f,
+0.332031f, -0.443848f, 0.302734f, -0.443848f, 0.242188f, -0.443848f, 0.215576f, -0.400879f,
+0.188965f, -0.35791f, 0.188965f, -0.264648f, 0.188965f, -0.17041f, 0.216064f, -0.127197f,
+0.243164f, -0.0839844f, 0.296387f, -0.0839844f, 0.32666f, -0.0839844f, 0.348633f,
+-0.0944824f, 0.370605f, -0.10498f, 0.384521f, -0.126953f, 0.398438f, -0.148926f,
+0.405029f, -0.183105f, 0.411621f, -0.217285f, 0.411621f, -0.264648f, 0.201172f, -0.52832f,
+0.202148f, -0.524902f, 0.203613f, -0.514648f, 0.205078f, -0.504395f, 0.206055f, -0.491699f,
+0.207031f, -0.479004f, 0.207764f, -0.46582f, 0.208496f, -0.452637f, 0.208496f, -0.442383f,
+0.210449f, -0.442383f, 0.223633f, -0.46875f, 0.240967f, -0.487061f, 0.258301f, -0.505371f,
+0.27832f, -0.516846f, 0.29834f, -0.52832f, 0.320312f, -0.533447f, 0.342285f, -0.538574f,
+0.364746f, -0.538574f, 0.411133f, -0.538574f, 0.446289f, -0.518066f, 0.481445f, -0.497559f,
+0.505127f, -0.460938f, 0.528809f, -0.424316f, 0.540771f, -0.374268f, 0.552734f, -0.324219f,
+0.552734f, -0.265137f, 0.552734f, -0.205078f, 0.541016f, -0.154785f, 0.529297f, -0.104492f,
+0.505371f, -0.0678711f, 0.481445f, -0.03125f, 0.445068f, -0.0107422f, 0.408691f,
+0.00976562f, 0.359375f, 0.00976562f, 0.337402f, 0.00976562f, 0.31543f, 0.00488281f,
+0.293457f, 0, 0.273682f, -0.0109863f, 0.253906f, -0.0219727f, 0.237549f, -0.0397949f,
+0.221191f, -0.0576172f, 0.209473f, -0.0834961f, 0.208496f, -0.0834961f, 0.208496f,
+-0.0786133f, 0.20874f, -0.0690918f, 0.208984f, -0.0595703f, 0.208984f, -0.0473633f,
+0.208984f, -0.0351562f, 0.209229f, -0.0219727f, 0.209473f, -0.00878906f, 0.209473f,
+0.00341797f, 0.209473f, 0.20752f, 0.0722656f, 0.20752f, 0.0722656f, -0.413086f, 0.0722656f,
+-0.45166f, 0.0708008f, -0.481689f, 0.0693359f, -0.511719f, 0.0683594f, -0.52832f,
+0.20752f, -0.261719f, 0.20752f, -0.209473f, 0.217041f, -0.175049f, 0.226562f, -0.140625f,
+0.241699f, -0.120361f, 0.256836f, -0.100098f, 0.274902f, -0.0917969f, 0.292969f,
+-0.0834961f, 0.310547f, -0.0834961f, 0.333008f, -0.0834961f, 0.351318f, -0.09375f,
+0.369629f, -0.104004f, 0.382568f, -0.125977f, 0.395508f, -0.147949f, 0.402588f, -0.182373f,
+0.409668f, -0.216797f, 0.409668f, -0.265137f, 0.409668f, -0.35498f, 0.384033f, -0.399902f,
+0.358398f, -0.444824f, 0.311523f, -0.444824f, 0.294434f, -0.444824f, 0.276123f, -0.436035f,
+0.257812f, -0.427246f, 0.242432f, -0.40625f, 0.227051f, -0.385254f, 0.217285f, -0.349854f,
+0.20752f, -0.314453f, 0.20752f, -0.261719f, 0.531738f, -0.52832f, 0.530762f, -0.511719f,
+0.529297f, -0.481689f, 0.527832f, -0.45166f, 0.527832f, -0.413086f, 0.527832f, 0.20752f,
+0.390625f, 0.20752f, 0.390625f, 0.00341797f, 0.390625f, -0.00878906f, 0.390869f,
+-0.0219727f, 0.391113f, -0.0351562f, 0.391113f, -0.0473633f, 0.391113f, -0.0595703f,
+0.391357f, -0.0690918f, 0.391602f, -0.0786133f, 0.391602f, -0.0834961f, 0.390625f,
+-0.0834961f, 0.378906f, -0.0576172f, 0.361572f, -0.0397949f, 0.344238f, -0.0219727f,
+0.32373f, -0.0109863f, 0.303223f, 0, 0.280518f, 0.00488281f, 0.257812f, 0.00976562f,
+0.23584f, 0.00976562f, 0.186523f, 0.00976562f, 0.150879f, -0.0107422f, 0.115234f,
+-0.03125f, 0.0922852f, -0.0678711f, 0.0693359f, -0.104492f, 0.0583496f, -0.154785f,
+0.0473633f, -0.205078f, 0.0473633f, -0.265137f, 0.0473633f, -0.324219f, 0.0600586f,
+-0.374268f, 0.0727539f, -0.424316f, 0.0974121f, -0.460938f, 0.12207f, -0.497559f,
+0.157959f, -0.518066f, 0.193848f, -0.538574f, 0.240234f, -0.538574f, 0.262695f, -0.538574f,
+0.283936f, -0.533447f, 0.305176f, -0.52832f, 0.324219f, -0.516846f, 0.343262f, -0.505371f,
+0.359863f, -0.487061f, 0.376465f, -0.46875f, 0.389648f, -0.442383f, 0.391602f, -0.442383f,
+0.391602f, -0.452637f, 0.392334f, -0.46582f, 0.393066f, -0.479004f, 0.394287f, -0.491699f,
+0.395508f, -0.504395f, 0.396729f, -0.514648f, 0.397949f, -0.524902f, 0.398926f, -0.52832f,
+0.392578f, -0.261719f, 0.392578f, -0.314453f, 0.382812f, -0.349854f, 0.373047f, -0.385254f,
+0.357666f, -0.40625f, 0.342285f, -0.427246f, 0.323975f, -0.436035f, 0.305664f, -0.444824f,
+0.288574f, -0.444824f, 0.241699f, -0.444824f, 0.216064f, -0.399902f, 0.19043f, -0.35498f,
+0.19043f, -0.265137f, 0.19043f, -0.216797f, 0.19751f, -0.182373f, 0.20459f, -0.147949f,
+0.217529f, -0.125977f, 0.230469f, -0.104004f, 0.248779f, -0.09375f, 0.26709f, -0.0834961f,
+0.289551f, -0.0834961f, 0.307129f, -0.0834961f, 0.325195f, -0.0917969f, 0.343262f,
+-0.100098f, 0.358398f, -0.120361f, 0.373535f, -0.140625f, 0.383057f, -0.175049f,
+0.392578f, -0.209473f, 0.392578f, -0.261719f, 0.527832f, -0.414062f, 0.504883f, -0.417969f,
+0.479736f, -0.420654f, 0.45459f, -0.42334f, 0.424316f, -0.42334f, 0.383301f, -0.42334f,
+0.352295f, -0.406738f, 0.321289f, -0.390137f, 0.300537f, -0.361572f, 0.279785f, -0.333008f,
+0.269287f, -0.294922f, 0.258789f, -0.256836f, 0.258789f, -0.213867f, 0.258789f, 0,
+0.12207f, 0, 0.12207f, -0.342285f, 0.12207f, -0.369629f, 0.119141f, -0.397949f, 0.116211f,
+-0.42627f, 0.112305f, -0.451416f, 0.108398f, -0.476562f, 0.104004f, -0.496582f, 0.0996094f,
+-0.516602f, 0.0966797f, -0.52832f, 0.229004f, -0.52832f, 0.231934f, -0.517578f, 0.235352f,
+-0.50415f, 0.23877f, -0.490723f, 0.241699f, -0.47583f, 0.244629f, -0.460938f, 0.247314f,
+-0.445801f, 0.25f, -0.430664f, 0.251465f, -0.416992f, 0.253418f, -0.416992f, 0.263672f,
+-0.444824f, 0.277588f, -0.467285f, 0.291504f, -0.489746f, 0.312012f, -0.505371f,
+0.33252f, -0.520996f, 0.36084f, -0.529541f, 0.38916f, -0.538086f, 0.427246f, -0.538086f,
+0.45459f, -0.538086f, 0.480957f, -0.535645f, 0.507324f, -0.533203f, 0.527832f, -0.529785f,
+0.539062f, -0.154297f, 0.539062f, -0.116211f, 0.523193f, -0.0859375f, 0.507324f,
+-0.0556641f, 0.477051f, -0.0344238f, 0.446777f, -0.0131836f, 0.402832f, -0.00170898f,
+0.358887f, 0.00976562f, 0.302734f, 0.00976562f, 0.252441f, 0.00976562f, 0.211914f,
+0.00244141f, 0.171387f, -0.00488281f, 0.140869f, -0.0217285f, 0.110352f, -0.0385742f,
+0.0898438f, -0.0654297f, 0.0693359f, -0.0922852f, 0.059082f, -0.131836f, 0.179688f,
+-0.149902f, 0.185547f, -0.12793f, 0.195801f, -0.114258f, 0.206055f, -0.100586f, 0.221191f,
+-0.0932617f, 0.236328f, -0.0859375f, 0.256592f, -0.0834961f, 0.276855f, -0.0810547f,
+0.302734f, -0.0810547f, 0.326172f, -0.0810547f, 0.346436f, -0.0837402f, 0.366699f,
+-0.0864258f, 0.381592f, -0.0930176f, 0.396484f, -0.0996094f, 0.404785f, -0.111572f,
+0.413086f, -0.123535f, 0.413086f, -0.141602f, 0.413086f, -0.162109f, 0.401123f, -0.174072f,
+0.38916f, -0.186035f, 0.368408f, -0.193604f, 0.347656f, -0.201172f, 0.31958f, -0.206787f,
+0.291504f, -0.212402f, 0.259766f, -0.219727f, 0.226562f, -0.227051f, 0.194336f, -0.237305f,
+0.162109f, -0.247559f, 0.136719f, -0.265137f, 0.111328f, -0.282715f, 0.0957031f,
+-0.309814f, 0.0800781f, -0.336914f, 0.0800781f, -0.378418f, 0.0800781f, -0.416016f,
+0.0947266f, -0.445557f, 0.109375f, -0.475098f, 0.137695f, -0.49585f, 0.166016f, -0.516602f,
+0.207764f, -0.527588f, 0.249512f, -0.538574f, 0.303711f, -0.538574f, 0.34668f, -0.538574f,
+0.383789f, -0.530518f, 0.420898f, -0.522461f, 0.450195f, -0.505127f, 0.479492f, -0.487793f,
+0.499268f, -0.460938f, 0.519043f, -0.434082f, 0.526855f, -0.395996f, 0.405273f, -0.383301f,
+0.401855f, -0.402344f, 0.393066f, -0.414795f, 0.384277f, -0.427246f, 0.371338f, -0.43457f,
+0.358398f, -0.441895f, 0.341309f, -0.44458f, 0.324219f, -0.447266f, 0.303711f, -0.447266f,
+0.254883f, -0.447266f, 0.230469f, -0.434814f, 0.206055f, -0.422363f, 0.206055f, -0.393066f,
+0.206055f, -0.375f, 0.216064f, -0.364258f, 0.226074f, -0.353516f, 0.244385f, -0.346436f,
+0.262695f, -0.339355f, 0.287842f, -0.334229f, 0.312988f, -0.329102f, 0.342773f, -0.321777f,
+0.379395f, -0.313965f, 0.414795f, -0.303467f, 0.450195f, -0.292969f, 0.477783f, -0.274658f,
+0.505371f, -0.256348f, 0.522217f, -0.227539f, 0.539062f, -0.19873f, 0.539062f, -0.154297f,
+0.160156f, -0.435547f, 0.0786133f, -0.435547f, 0.0786133f, -0.52832f, 0.166992f,
+-0.52832f, 0.209961f, -0.666016f, 0.295898f, -0.666016f, 0.295898f, -0.52832f, 0.483887f,
+-0.52832f, 0.483887f, -0.435547f, 0.295898f, -0.435547f, 0.295898f, -0.176758f, 0.295898f,
+-0.15918f, 0.297119f, -0.143066f, 0.29834f, -0.126953f, 0.306396f, -0.114502f, 0.314453f,
+-0.102051f, 0.331787f, -0.0944824f, 0.349121f, -0.0869141f, 0.380859f, -0.0869141f,
+0.412109f, -0.0869141f, 0.443359f, -0.090332f, 0.474609f, -0.09375f, 0.505371f, -0.100098f,
+0.505371f, -0.00927734f, 0.487305f, -0.00634766f, 0.469482f, -0.00341797f, 0.45166f,
+-0.000488281f, 0.432861f, 0.00170898f, 0.414062f, 0.00390625f, 0.393066f, 0.00512695f,
+0.37207f, 0.00634766f, 0.347168f, 0.00634766f, 0.305176f, 0.00634766f, 0.274902f,
+-0.000732422f, 0.244629f, -0.0078125f, 0.223877f, -0.0200195f, 0.203125f, -0.0322266f,
+0.190186f, -0.0488281f, 0.177246f, -0.0654297f, 0.17041f, -0.0842285f, 0.163574f,
+-0.103027f, 0.161377f, -0.123535f, 0.15918f, -0.144043f, 0.15918f, -0.164062f, 0.203125f,
+-0.52832f, 0.203125f, -0.231934f, 0.203125f, -0.201172f, 0.208008f, -0.175537f, 0.212891f,
+-0.149902f, 0.223145f, -0.131592f, 0.233398f, -0.113281f, 0.249268f, -0.103027f,
+0.265137f, -0.0927734f, 0.287109f, -0.0927734f, 0.308105f, -0.0927734f, 0.32666f,
+-0.10376f, 0.345215f, -0.114746f, 0.358887f, -0.13501f, 0.372559f, -0.155273f, 0.380371f,
+-0.18335f, 0.388184f, -0.211426f, 0.388184f, -0.245117f, 0.388184f, -0.52832f, 0.525391f,
+-0.52832f, 0.525391f, -0.118164f, 0.525391f, -0.101562f, 0.525635f, -0.083252f, 0.525879f,
+-0.0649414f, 0.526611f, -0.048584f, 0.527344f, -0.0322266f, 0.528076f, -0.0192871f,
+0.528809f, -0.00634766f, 0.529297f, 0, 0.398438f, 0, 0.397949f, -0.00585938f, 0.396729f,
+-0.0187988f, 0.395508f, -0.0317383f, 0.394775f, -0.0473633f, 0.394043f, -0.0629883f,
+0.393311f, -0.0786133f, 0.392578f, -0.0942383f, 0.392578f, -0.10498f, 0.390137f,
+-0.10498f, 0.362793f, -0.0449219f, 0.321777f, -0.0175781f, 0.280762f, 0.00976562f,
+0.22998f, 0.00976562f, 0.184082f, 0.00976562f, 0.152832f, -0.00585938f, 0.121582f,
+-0.0214844f, 0.102295f, -0.048584f, 0.0830078f, -0.0756836f, 0.0744629f, -0.112793f,
+0.065918f, -0.149902f, 0.065918f, -0.192871f, 0.065918f, -0.52832f, 0.37793f, 0,
+0.213867f, 0, 0.0151367f, -0.52832f, 0.160156f, -0.52832f, 0.262207f, -0.224609f,
+0.266602f, -0.209961f, 0.271484f, -0.193604f, 0.276367f, -0.177246f, 0.280762f, -0.161133f,
+0.285156f, -0.14502f, 0.289307f, -0.129883f, 0.293457f, -0.114746f, 0.296875f, -0.102539f,
+0.299805f, -0.114258f, 0.304199f, -0.12915f, 0.308594f, -0.144043f, 0.313232f, -0.160156f,
+0.317871f, -0.17627f, 0.322998f, -0.192383f, 0.328125f, -0.208496f, 0.333008f, -0.223145f,
+0.438965f, -0.52832f, 0.58252f, -0.52832f, 0.501953f, 0, 0.382812f, 0, 0.312988f,
+-0.22998f, 0.305176f, -0.255371f, 0.302246f, -0.268066f, 0.300293f, -0.275391f, 0.299805f,
+-0.279785f, 0.299316f, -0.275391f, 0.297363f, -0.268555f, 0.295898f, -0.262695f,
+0.293213f, -0.25293f, 0.290527f, -0.243164f, 0.285645f, -0.228027f, 0.213379f, 0,
+0.0947266f, 0, 0.00537109f, -0.52832f, 0.116699f, -0.52832f, 0.157227f, -0.231934f,
+0.160156f, -0.208496f, 0.16333f, -0.179443f, 0.166504f, -0.150391f, 0.166504f, -0.121582f,
+0.168457f, -0.129883f, 0.170898f, -0.13916f, 0.17334f, -0.147461f, 0.176025f, -0.157471f,
+0.178711f, -0.16748f, 0.182129f, -0.177246f, 0.25293f, -0.398926f, 0.347168f, -0.398926f,
+0.415527f, -0.176758f, 0.418457f, -0.166992f, 0.421143f, -0.157471f, 0.423828f, -0.147949f,
+0.425781f, -0.139648f, 0.427734f, -0.130371f, 0.429688f, -0.121582f, 0.429688f, -0.150879f,
+0.433105f, -0.178955f, 0.436523f, -0.207031f, 0.439941f, -0.231934f, 0.484375f, -0.52832f,
+0.594727f, -0.52832f, 0.426758f, 0, 0.298828f, -0.191406f, 0.169922f, 0, 0.0239258f,
+0, 0.222168f, -0.272949f, 0.0332031f, -0.52832f, 0.181152f, -0.52832f, 0.298828f,
+-0.355469f, 0.416016f, -0.52832f, 0.564941f, -0.52832f, 0.375977f, -0.274414f, 0.575684f,
+0, 0.362305f, 0.027832f, 0.344238f, 0.0742188f, 0.324707f, 0.108154f, 0.305176f,
+0.14209f, 0.28125f, 0.164062f, 0.257324f, 0.186035f, 0.227539f, 0.196777f, 0.197754f,
+0.20752f, 0.158691f, 0.20752f, 0.137207f, 0.20752f, 0.113525f, 0.206055f, 0.0898438f,
+0.20459f, 0.0698242f, 0.201172f, 0.0698242f, 0.103516f, 0.074707f, 0.104492f, 0.0812988f,
+0.10498f, 0.0878906f, 0.105469f, 0.0947266f, 0.106201f, 0.101562f, 0.106934f, 0.108154f,
+0.107178f, 0.114746f, 0.107422f, 0.119629f, 0.107422f, 0.139648f, 0.107422f, 0.155273f,
+0.103027f, 0.170898f, 0.0986328f, 0.183594f, 0.0883789f, 0.196289f, 0.078125f, 0.207275f,
+0.0610352f, 0.218262f, 0.0439453f, 0.228516f, 0.0180664f, 0.237305f, -0.00537109f,
+0.0185547f, -0.52832f, 0.163574f, -0.52832f, 0.256348f, -0.270996f, 0.258301f, -0.265625f,
+0.262451f, -0.25293f, 0.266602f, -0.240234f, 0.271729f, -0.223877f, 0.276855f, -0.20752f,
+0.282227f, -0.189453f, 0.287598f, -0.171387f, 0.29248f, -0.155029f, 0.297363f, -0.138672f,
+0.300781f, -0.125977f, 0.304199f, -0.113281f, 0.305664f, -0.10791f, 0.306641f, -0.113281f,
+0.310059f, -0.125732f, 0.313477f, -0.138184f, 0.317627f, -0.154053f, 0.321777f, -0.169922f,
+0.32666f, -0.1875f, 0.331543f, -0.205078f, 0.335938f, -0.221191f, 0.340332f, -0.237305f,
+0.343994f, -0.250244f, 0.347656f, -0.263184f, 0.349609f, -0.269043f, 0.4375f, -0.52832f,
+0.581055f, -0.52832f, 0.0673828f, 0, 0.0673828f, -0.097168f, 0.345703f, -0.429199f,
+0.0874023f, -0.429199f, 0.0874023f, -0.52832f, 0.501953f, -0.52832f, 0.501953f, -0.430176f,
+0.225098f, -0.100098f, 0.525879f, -0.100098f, 0.525879f, 0, 0.350586f, 0.20752f,
+0.316895f, 0.20752f, 0.290283f, 0.197266f, 0.263672f, 0.187012f, 0.244873f, 0.168213f,
+0.226074f, 0.149414f, 0.216309f, 0.122314f, 0.206543f, 0.0952148f, 0.206543f, 0.0615234f,
+0.206543f, -0.0986328f, 0.206543f, -0.129395f, 0.19873f, -0.150635f, 0.190918f, -0.171875f,
+0.17627f, -0.185059f, 0.161621f, -0.198242f, 0.140869f, -0.204102f, 0.120117f, -0.209961f,
+0.0947266f, -0.210449f, 0.0947266f, -0.305664f, 0.120605f, -0.306641f, 0.141357f,
+-0.312744f, 0.162109f, -0.318848f, 0.176514f, -0.332031f, 0.190918f, -0.345215f,
+0.19873f, -0.366455f, 0.206543f, -0.387695f, 0.206543f, -0.418457f, 0.206543f, -0.578613f,
+0.206543f, -0.649902f, 0.244873f, -0.687256f, 0.283203f, -0.724609f, 0.350586f, -0.724609f,
+0.510254f, -0.724609f, 0.510254f, -0.631836f, 0.418457f, -0.631836f, 0.374023f, -0.631836f,
+0.354248f, -0.606445f, 0.334473f, -0.581055f, 0.334473f, -0.529785f, 0.334473f, -0.382812f,
+0.334473f, -0.35791f, 0.326416f, -0.337158f, 0.318359f, -0.316406f, 0.304688f, -0.300781f,
+0.291016f, -0.285156f, 0.272461f, -0.274658f, 0.253906f, -0.26416f, 0.233398f, -0.259766f,
+0.233398f, -0.257812f, 0.254395f, -0.25293f, 0.272949f, -0.242432f, 0.291504f, -0.231934f,
+0.305176f, -0.216064f, 0.318848f, -0.200195f, 0.32666f, -0.179932f, 0.334473f, -0.159668f,
+0.334473f, -0.134766f, 0.334473f, 0.012207f, 0.334473f, 0.0639648f, 0.354248f, 0.0891113f,
+0.374023f, 0.114258f, 0.418457f, 0.114258f, 0.510254f, 0.114258f, 0.510254f, 0.20752f,
+0.23584f, 0.222168f, 0.23584f, -0.724609f, 0.36377f, -0.724609f, 0.36377f, 0.222168f,
+0.0898438f, 0.20752f, 0.0898438f, 0.114258f, 0.181641f, 0.114258f, 0.226074f, 0.114258f,
+0.24585f, 0.0891113f, 0.265625f, 0.0639648f, 0.265625f, 0.012207f, 0.265625f, -0.134766f,
+0.265625f, -0.159668f, 0.273438f, -0.179932f, 0.28125f, -0.200195f, 0.294922f, -0.216064f,
+0.308594f, -0.231934f, 0.327148f, -0.242432f, 0.345703f, -0.25293f, 0.366699f, -0.257812f,
+0.366699f, -0.259766f, 0.346191f, -0.26416f, 0.327637f, -0.274658f, 0.309082f, -0.285156f,
+0.29541f, -0.300781f, 0.281738f, -0.316406f, 0.273682f, -0.337158f, 0.265625f, -0.35791f,
+0.265625f, -0.382812f, 0.265625f, -0.529785f, 0.265625f, -0.581055f, 0.24585f, -0.606445f,
+0.226074f, -0.631836f, 0.181641f, -0.631836f, 0.0898438f, -0.631836f, 0.0898438f,
+-0.724609f, 0.249512f, -0.724609f, 0.316895f, -0.724609f, 0.355225f, -0.687256f,
+0.393555f, -0.649902f, 0.393555f, -0.578613f, 0.393555f, -0.418457f, 0.393555f, -0.387695f,
+0.401367f, -0.366455f, 0.40918f, -0.345215f, 0.423584f, -0.332031f, 0.437988f, -0.318848f,
+0.45874f, -0.312744f, 0.479492f, -0.306641f, 0.505371f, -0.305664f, 0.505371f, -0.210449f,
+0.47998f, -0.209961f, 0.459229f, -0.204102f, 0.438477f, -0.198242f, 0.423828f, -0.185059f,
+0.40918f, -0.171875f, 0.401367f, -0.150635f, 0.393555f, -0.129395f, 0.393555f, -0.0986328f,
+0.393555f, 0.0615234f, 0.393555f, 0.0952148f, 0.383789f, 0.122314f, 0.374023f, 0.149414f,
+0.355225f, 0.168213f, 0.336426f, 0.187012f, 0.309814f, 0.197266f, 0.283203f, 0.20752f,
+0.249512f, 0.20752f, 0.422852f, -0.251953f, 0.38623f, -0.251953f, 0.35083f, -0.262207f,
+0.31543f, -0.272461f, 0.278809f, -0.285156f, 0.246582f, -0.296387f, 0.219971f, -0.302246f,
+0.193359f, -0.308105f, 0.170898f, -0.308105f, 0.151855f, -0.308105f, 0.135498f, -0.305176f,
+0.119141f, -0.302246f, 0.104248f, -0.296631f, 0.0893555f, -0.291016f, 0.0751953f,
+-0.283203f, 0.0610352f, -0.275391f, 0.0463867f, -0.265137f, 0.0463867f, -0.369141f,
+0.0712891f, -0.387695f, 0.104492f, -0.398926f, 0.137695f, -0.410156f, 0.178711f,
+-0.410156f, 0.19873f, -0.410156f, 0.21875f, -0.406982f, 0.23877f, -0.403809f, 0.258301f,
+-0.398682f, 0.277832f, -0.393555f, 0.296875f, -0.386963f, 0.315918f, -0.380371f,
+0.334473f, -0.374023f, 0.356445f, -0.366211f, 0.382568f, -0.359619f, 0.408691f, -0.353027f,
+0.432129f, -0.353027f, 0.465332f, -0.353027f, 0.496582f, -0.365234f, 0.527832f, -0.377441f,
+0.553223f, -0.397949f, 0.553223f, -0.291016f, 0.537598f, -0.280273f, 0.522705f, -0.272705f,
+0.507812f, -0.265137f, 0.492432f, -0.260498f, 0.477051f, -0.255859f, 0.459961f, -0.253906f,
+0.442871f, -0.251953f, 0.422852f, -0.251953f
+};
+
+const unsigned char LiberationMonoBoldVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1,
+1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoBoldCharCodes[] = {
+0, 32, 33, 34, 35, 36,
+37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoBoldWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoBoldCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoBoldCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoBoldMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.641602f, 0.010025f, -0.0268555f,
+0.614746f, 0.538086f, 0.0104446f, 0.100098f, 0.23291f
+};
+
+const SkScalar LiberationMonoItalicPoints[] = {
+0.0717773f, 0, 0.0717773f, -0.658691f, 0.52832f, -0.658691f, 0.52832f, 0, 0.470215f,
+-0.600586f, 0.129883f, -0.600586f, 0.129883f, -0.0581055f, 0.470215f, -0.0581055f,
+0.322754f, -0.193848f, 0.250488f, -0.193848f, 0.329102f, -0.658203f, 0.424805f, -0.658203f,
+0.200195f, 0, 0.219238f, -0.0981445f, 0.313965f, -0.0981445f, 0.294922f, 0, 0.472168f,
+-0.412598f, 0.402832f, -0.412598f, 0.443848f, -0.724609f, 0.553223f, -0.724609f,
+0.25293f, -0.412598f, 0.184082f, -0.412598f, 0.224609f, -0.724609f, 0.333984f, -0.724609f,
+0.481934f, -0.406738f, 0.418945f, -0.251953f, 0.545898f, -0.251953f, 0.535645f, -0.199219f,
+0.397461f, -0.199219f, 0.315918f, 0, 0.262207f, 0, 0.342773f, -0.199219f, 0.165527f,
+-0.199219f, 0.0859375f, 0, 0.0322266f, 0, 0.111816f, -0.199219f, 0.0136719f, -0.199219f,
+0.0239258f, -0.251953f, 0.133789f, -0.251953f, 0.196777f, -0.406738f, 0.0791016f,
+-0.406738f, 0.0893555f, -0.459473f, 0.217773f, -0.459473f, 0.299805f, -0.658691f,
+0.353516f, -0.658691f, 0.271973f, -0.459473f, 0.449219f, -0.459473f, 0.530762f, -0.658691f,
+0.584473f, -0.658691f, 0.50293f, -0.459473f, 0.605957f, -0.459473f, 0.595703f, -0.406738f,
+0.251953f, -0.406738f, 0.187988f, -0.251953f, 0.364746f, -0.251953f, 0.427734f, -0.406738f,
+0.546387f, -0.185547f, 0.539062f, -0.148926f, 0.519531f, -0.117676f, 0.5f, -0.0864258f,
+0.467529f, -0.0632324f, 0.435059f, -0.0400391f, 0.389648f, -0.026123f, 0.344238f,
+-0.012207f, 0.285645f, -0.00976562f, 0.270508f, 0.0688477f, 0.208008f, 0.0688477f,
+0.223145f, -0.00976562f, 0.118652f, -0.0131836f, 0.0681152f, -0.0583496f, 0.0175781f,
+-0.103516f, 0.0170898f, -0.185059f, 0.103516f, -0.203125f, 0.103516f, -0.176758f,
+0.110352f, -0.154541f, 0.117188f, -0.132324f, 0.132812f, -0.115723f, 0.148438f, -0.0991211f,
+0.173828f, -0.0891113f, 0.199219f, -0.0791016f, 0.236328f, -0.0771484f, 0.282715f,
+-0.315918f, 0.27832f, -0.316895f, 0.275391f, -0.317871f, 0.268555f, -0.319824f, 0.237793f,
+-0.327637f, 0.208496f, -0.337646f, 0.179199f, -0.347656f, 0.15625f, -0.36377f, 0.133301f,
+-0.379883f, 0.119385f, -0.403564f, 0.105469f, -0.427246f, 0.105469f, -0.461914f,
+0.105469f, -0.470215f, 0.106445f, -0.479736f, 0.107422f, -0.489258f, 0.109375f, -0.499512f,
+0.117188f, -0.539551f, 0.138428f, -0.568604f, 0.159668f, -0.597656f, 0.191162f, -0.616943f,
+0.222656f, -0.63623f, 0.262939f, -0.645996f, 0.303223f, -0.655762f, 0.349121f, -0.657227f,
+0.361328f, -0.720703f, 0.423828f, -0.720703f, 0.411621f, -0.657227f, 0.460938f, -0.655273f,
+0.494385f, -0.644531f, 0.527832f, -0.633789f, 0.548828f, -0.614258f, 0.569824f, -0.594727f,
+0.579834f, -0.566162f, 0.589844f, -0.537598f, 0.592285f, -0.500488f, 0.504395f, -0.484375f,
+0.503906f, -0.507812f, 0.498047f, -0.5271f, 0.492188f, -0.546387f, 0.479736f, -0.560303f,
+0.467285f, -0.574219f, 0.44751f, -0.582275f, 0.427734f, -0.590332f, 0.398926f, -0.592285f,
+0.358398f, -0.384277f, 0.394531f, -0.375f, 0.429199f, -0.364258f, 0.463867f, -0.353516f,
+0.490967f, -0.336182f, 0.518066f, -0.318848f, 0.534424f, -0.292725f, 0.550781f, -0.266602f,
+0.550781f, -0.227051f, 0.550781f, -0.208496f, 0.546387f, -0.185547f, 0.192871f, -0.49707f,
+0.191895f, -0.491211f, 0.191162f, -0.48584f, 0.19043f, -0.480469f, 0.19043f, -0.475586f,
+0.19043f, -0.456055f, 0.19873f, -0.442627f, 0.207031f, -0.429199f, 0.221436f, -0.419922f,
+0.23584f, -0.410645f, 0.255371f, -0.404053f, 0.274902f, -0.397461f, 0.297363f, -0.391602f,
+0.336426f, -0.593262f, 0.30127f, -0.591797f, 0.275879f, -0.58374f, 0.250488f, -0.575684f,
+0.233398f, -0.562744f, 0.216309f, -0.549805f, 0.206543f, -0.532959f, 0.196777f, -0.516113f,
+0.192871f, -0.49707f, 0.462402f, -0.187012f, 0.463867f, -0.193848f, 0.464355f, -0.199707f,
+0.464844f, -0.205566f, 0.464844f, -0.210938f, 0.464844f, -0.233887f, 0.454834f, -0.249268f,
+0.444824f, -0.264648f, 0.427979f, -0.275146f, 0.411133f, -0.285645f, 0.38916f, -0.292725f,
+0.367188f, -0.299805f, 0.343262f, -0.306152f, 0.29834f, -0.0761719f, 0.330566f, -0.078125f,
+0.358154f, -0.0854492f, 0.385742f, -0.0927734f, 0.407227f, -0.106445f, 0.428711f,
+-0.120117f, 0.443115f, -0.140137f, 0.45752f, -0.160156f, 0.462402f, -0.187012f, 0.0566406f,
+0, -0.0141602f, 0, 0.569336f, -0.660645f, 0.641113f, -0.660645f, 0.220215f, -0.664551f,
+0.243652f, -0.664551f, 0.26416f, -0.659424f, 0.284668f, -0.654297f, 0.299805f, -0.641846f,
+0.314941f, -0.629395f, 0.323486f, -0.608887f, 0.332031f, -0.588379f, 0.332031f, -0.557129f,
+0.332031f, -0.532715f, 0.326172f, -0.500488f, 0.317383f, -0.453613f, 0.300049f, -0.421875f,
+0.282715f, -0.390137f, 0.26001f, -0.370605f, 0.237305f, -0.351074f, 0.210205f, -0.342529f,
+0.183105f, -0.333984f, 0.153809f, -0.333984f, 0.129395f, -0.333984f, 0.108398f, -0.339844f,
+0.0874023f, -0.345703f, 0.0722656f, -0.358887f, 0.0571289f, -0.37207f, 0.048584f,
+-0.393311f, 0.0400391f, -0.414551f, 0.0400391f, -0.445312f, 0.0400391f, -0.469727f,
+0.0458984f, -0.500488f, 0.0551758f, -0.548828f, 0.0722656f, -0.580322f, 0.0893555f,
+-0.611816f, 0.112061f, -0.630615f, 0.134766f, -0.649414f, 0.162354f, -0.656982f,
+0.189941f, -0.664551f, 0.220215f, -0.664551f, 0.254395f, -0.500488f, 0.260742f, -0.531738f,
+0.260742f, -0.553711f, 0.260742f, -0.570312f, 0.257324f, -0.581299f, 0.253906f, -0.592285f,
+0.247314f, -0.599121f, 0.240723f, -0.605957f, 0.231201f, -0.608887f, 0.22168f, -0.611816f,
+0.209473f, -0.611816f, 0.192383f, -0.611816f, 0.178223f, -0.606445f, 0.164062f, -0.601074f,
+0.152588f, -0.588135f, 0.141113f, -0.575195f, 0.132568f, -0.553955f, 0.124023f, -0.532715f,
+0.117676f, -0.500488f, 0.111816f, -0.471191f, 0.111816f, -0.450195f, 0.111816f, -0.416504f,
+0.125732f, -0.402832f, 0.139648f, -0.38916f, 0.165527f, -0.38916f, 0.181152f, -0.38916f,
+0.19458f, -0.394775f, 0.208008f, -0.400391f, 0.219238f, -0.413574f, 0.230469f, -0.426758f,
+0.239502f, -0.447998f, 0.248535f, -0.469238f, 0.254395f, -0.500488f, 0.474121f, -0.324707f,
+0.497559f, -0.324707f, 0.518066f, -0.31958f, 0.538574f, -0.314453f, 0.553711f, -0.302002f,
+0.568848f, -0.289551f, 0.577637f, -0.268799f, 0.586426f, -0.248047f, 0.586426f, -0.216797f,
+0.586426f, -0.192383f, 0.580566f, -0.160645f, 0.571289f, -0.11377f, 0.554199f, -0.0820312f,
+0.537109f, -0.050293f, 0.514404f, -0.0307617f, 0.491699f, -0.0112305f, 0.4646f, -0.00268555f,
+0.4375f, 0.00585938f, 0.408203f, 0.00585938f, 0.383789f, 0.00585938f, 0.362793f,
+0, 0.341797f, -0.00585938f, 0.32666f, -0.019043f, 0.311523f, -0.0322266f, 0.302979f,
+-0.0534668f, 0.294434f, -0.074707f, 0.294434f, -0.105469f, 0.294434f, -0.129883f,
+0.300293f, -0.160645f, 0.30957f, -0.208984f, 0.32666f, -0.240479f, 0.34375f, -0.271973f,
+0.366455f, -0.290771f, 0.38916f, -0.30957f, 0.416504f, -0.317139f, 0.443848f, -0.324707f,
+0.474121f, -0.324707f, 0.508789f, -0.160645f, 0.514648f, -0.192383f, 0.514648f, -0.213379f,
+0.514648f, -0.246582f, 0.501221f, -0.259277f, 0.487793f, -0.271973f, 0.463379f, -0.271973f,
+0.446289f, -0.271973f, 0.432129f, -0.266602f, 0.417969f, -0.26123f, 0.406738f, -0.248291f,
+0.395508f, -0.235352f, 0.386963f, -0.214111f, 0.378418f, -0.192871f, 0.37207f, -0.160645f,
+0.366211f, -0.131348f, 0.366211f, -0.110352f, 0.366211f, -0.0766602f, 0.380127f,
+-0.0629883f, 0.394043f, -0.0493164f, 0.419922f, -0.0493164f, 0.435547f, -0.0493164f,
+0.448975f, -0.0549316f, 0.462402f, -0.0605469f, 0.473633f, -0.0737305f, 0.484863f,
+-0.0869141f, 0.493896f, -0.108154f, 0.50293f, -0.129395f, 0.508789f, -0.160645f,
+0.471191f, 0.00585938f, 0.451172f, 0.00585938f, 0.433594f, 0.000732422f, 0.416016f,
+-0.00439453f, 0.401123f, -0.0129395f, 0.38623f, -0.0214844f, 0.374512f, -0.032959f,
+0.362793f, -0.0444336f, 0.354492f, -0.0571289f, 0.338379f, -0.0449219f, 0.318848f,
+-0.0327148f, 0.299316f, -0.0205078f, 0.276123f, -0.0112305f, 0.25293f, -0.00195312f,
+0.226807f, 0.00390625f, 0.200684f, 0.00976562f, 0.171875f, 0.00976562f, 0.126465f,
+0.00976562f, 0.0939941f, -0.000488281f, 0.0615234f, -0.0107422f, 0.0405273f, -0.029541f,
+0.0195312f, -0.0483398f, 0.00952148f, -0.0739746f, -0.000488281f, -0.0996094f, -0.000488281f,
+-0.130371f, -0.000488281f, -0.151367f, 0.00390625f, -0.174805f, 0.0112305f, -0.212402f,
+0.0280762f, -0.243164f, 0.0449219f, -0.273926f, 0.0690918f, -0.299072f, 0.0932617f,
+-0.324219f, 0.123047f, -0.343994f, 0.152832f, -0.36377f, 0.186035f, -0.379395f, 0.179688f,
+-0.397949f, 0.175781f, -0.421387f, 0.171875f, -0.444824f, 0.171875f, -0.469727f,
+0.171875f, -0.493652f, 0.17627f, -0.51709f, 0.182129f, -0.547363f, 0.197754f, -0.573975f,
+0.213379f, -0.600586f, 0.238525f, -0.620361f, 0.263672f, -0.640137f, 0.298096f, -0.651367f,
+0.33252f, -0.662598f, 0.375977f, -0.662598f, 0.40625f, -0.662598f, 0.430908f, -0.655762f,
+0.455566f, -0.648926f, 0.473145f, -0.635742f, 0.490723f, -0.622559f, 0.500488f, -0.603271f,
+0.510254f, -0.583984f, 0.510254f, -0.559082f, 0.510254f, -0.546387f, 0.507324f, -0.532227f,
+0.500488f, -0.497559f, 0.47876f, -0.471191f, 0.457031f, -0.444824f, 0.425049f, -0.423828f,
+0.393066f, -0.402832f, 0.354004f, -0.385742f, 0.314941f, -0.368652f, 0.273438f, -0.352539f,
+0.293457f, -0.300293f, 0.316406f, -0.253906f, 0.339355f, -0.20752f, 0.37207f, -0.162598f,
+0.400879f, -0.205078f, 0.425537f, -0.253418f, 0.450195f, -0.301758f, 0.47168f, -0.36084f,
+0.538086f, -0.339844f, 0.512695f, -0.271973f, 0.480469f, -0.216064f, 0.448242f, -0.160156f,
+0.415039f, -0.114258f, 0.431152f, -0.0878906f, 0.452393f, -0.0754395f, 0.473633f,
+-0.0629883f, 0.493164f, -0.0629883f, 0.505859f, -0.0629883f, 0.517822f, -0.0646973f,
+0.529785f, -0.0664062f, 0.541016f, -0.0708008f, 0.52832f, -0.00488281f, 0.515625f,
+0.000488281f, 0.501465f, 0.00317383f, 0.487305f, 0.00585938f, 0.471191f, 0.00585938f,
+0.432617f, -0.529785f, 0.434082f, -0.538086f, 0.434082f, -0.54541f, 0.434082f, -0.572266f,
+0.415283f, -0.587891f, 0.396484f, -0.603516f, 0.362793f, -0.603516f, 0.341309f, -0.603516f,
+0.322266f, -0.597412f, 0.303223f, -0.591309f, 0.288086f, -0.580078f, 0.272949f, -0.568848f,
+0.262451f, -0.55249f, 0.251953f, -0.536133f, 0.248047f, -0.515625f, 0.246094f, -0.506348f,
+0.245361f, -0.49707f, 0.244629f, -0.487793f, 0.244629f, -0.479004f, 0.244629f, -0.458008f,
+0.248291f, -0.439453f, 0.251953f, -0.420898f, 0.256836f, -0.40625f, 0.290527f, -0.419434f,
+0.320557f, -0.431641f, 0.350586f, -0.443848f, 0.374023f, -0.458008f, 0.397461f, -0.472168f,
+0.412842f, -0.489502f, 0.428223f, -0.506836f, 0.432617f, -0.529785f, 0.313965f, -0.105957f,
+0.280273f, -0.154785f, 0.251709f, -0.209717f, 0.223145f, -0.264648f, 0.20166f, -0.321289f,
+0.155762f, -0.298828f, 0.125732f, -0.262451f, 0.0957031f, -0.226074f, 0.0859375f,
+-0.176758f, 0.0830078f, -0.161621f, 0.0830078f, -0.147461f, 0.0830078f, -0.126953f,
+0.0893555f, -0.109863f, 0.0957031f, -0.0927734f, 0.108643f, -0.0803223f, 0.121582f,
+-0.0678711f, 0.141602f, -0.0610352f, 0.161621f, -0.0541992f, 0.188477f, -0.0541992f,
+0.20752f, -0.0541992f, 0.225586f, -0.0588379f, 0.243652f, -0.0634766f, 0.259766f,
+-0.0708008f, 0.275879f, -0.078125f, 0.289795f, -0.0874023f, 0.303711f, -0.0966797f,
+0.313965f, -0.105957f, 0.362793f, -0.412598f, 0.293945f, -0.412598f, 0.334473f, -0.724609f,
+0.443848f, -0.724609f, 0.257324f, -0.258789f, 0.242676f, -0.183594f, 0.242676f, -0.117188f,
+0.242676f, -0.074707f, 0.248779f, -0.0341797f, 0.254883f, 0.00634766f, 0.267334f,
+0.0461426f, 0.279785f, 0.0859375f, 0.298828f, 0.125977f, 0.317871f, 0.166016f, 0.343262f,
+0.20752f, 0.250488f, 0.20752f, 0.225586f, 0.167969f, 0.207031f, 0.12915f, 0.188477f,
+0.090332f, 0.176025f, 0.0507812f, 0.163574f, 0.0112305f, 0.157227f, -0.029541f, 0.150879f,
+-0.0703125f, 0.150879f, -0.114258f, 0.150879f, -0.182617f, 0.166016f, -0.259766f,
+0.179688f, -0.330078f, 0.202148f, -0.390869f, 0.224609f, -0.45166f, 0.25708f, -0.507568f,
+0.289551f, -0.563477f, 0.332764f, -0.616455f, 0.375977f, -0.669434f, 0.431641f, -0.724609f,
+0.524414f, -0.724609f, 0.466309f, -0.666992f, 0.422119f, -0.612061f, 0.37793f, -0.557129f,
+0.345703f, -0.500977f, 0.313477f, -0.444824f, 0.291992f, -0.385254f, 0.270508f, -0.325684f,
+0.257324f, -0.258789f, 0.431152f, -0.259766f, 0.41748f, -0.189453f, 0.395264f, -0.128174f,
+0.373047f, -0.0668945f, 0.34082f, -0.0107422f, 0.308594f, 0.0454102f, 0.265137f,
+0.098877f, 0.22168f, 0.152344f, 0.166016f, 0.20752f, 0.0722656f, 0.20752f, 0.130371f,
+0.149902f, 0.174805f, 0.0949707f, 0.219238f, 0.0400391f, 0.251709f, -0.0161133f,
+0.28418f, -0.0722656f, 0.305908f, -0.131836f, 0.327637f, -0.191406f, 0.34082f, -0.258789f,
+0.355469f, -0.333496f, 0.355469f, -0.398438f, 0.355469f, -0.441406f, 0.349121f, -0.482178f,
+0.342773f, -0.522949f, 0.330078f, -0.562744f, 0.317383f, -0.602539f, 0.29834f, -0.642822f,
+0.279297f, -0.683105f, 0.253418f, -0.724609f, 0.347168f, -0.724609f, 0.37207f, -0.685059f,
+0.390625f, -0.646729f, 0.40918f, -0.608398f, 0.421631f, -0.569336f, 0.434082f, -0.530273f,
+0.44043f, -0.48999f, 0.446777f, -0.449707f, 0.446777f, -0.40625f, 0.446777f, -0.37207f,
+0.442871f, -0.335693f, 0.438965f, -0.299316f, 0.431152f, -0.259766f, 0.38916f, -0.580078f,
+0.527832f, -0.630371f, 0.537109f, -0.565918f, 0.392578f, -0.530273f, 0.459473f, -0.408203f,
+0.394531f, -0.373047f, 0.345703f, -0.499023f, 0.245117f, -0.374023f, 0.193848f, -0.40918f,
+0.30957f, -0.530273f, 0.179688f, -0.565918f, 0.214355f, -0.631348f, 0.334961f, -0.579102f,
+0.356934f, -0.724121f, 0.42334f, -0.724121f, 0.335449f, -0.296875f, 0.335449f, -0.0878906f,
+0.263672f, -0.0878906f, 0.263672f, -0.296875f, 0.0566406f, -0.296875f, 0.0566406f,
+-0.368164f, 0.263672f, -0.368164f, 0.263672f, -0.577148f, 0.335449f, -0.577148f,
+0.335449f, -0.368164f, 0.54248f, -0.368164f, 0.54248f, -0.296875f, 0.0405273f, 0.177246f,
+0.186035f, -0.145996f, 0.31543f, -0.145996f, 0.100586f, 0.177246f, 0.155762f, -0.226562f,
+0.170898f, -0.304688f, 0.444336f, -0.304688f, 0.429199f, -0.226562f, 0.190918f, 0,
+0.219238f, -0.145996f, 0.333984f, -0.145996f, 0.305664f, 0, 0.00244141f, 0.00976562f,
+0.545898f, -0.724609f, 0.632812f, -0.724609f, 0.0913086f, 0.00976562f, 0.55127f,
+-0.32959f, 0.532715f, -0.234375f, 0.501465f, -0.169678f, 0.470215f, -0.10498f, 0.429932f,
+-0.0649414f, 0.389648f, -0.0249023f, 0.342285f, -0.00756836f, 0.294922f, 0.00976562f,
+0.245117f, 0.00976562f, 0.20459f, 0.00976562f, 0.17041f, -0.0012207f, 0.13623f, -0.012207f,
+0.111572f, -0.0371094f, 0.0869141f, -0.0620117f, 0.072998f, -0.102295f, 0.059082f,
+-0.142578f, 0.059082f, -0.200684f, 0.059082f, -0.228516f, 0.0627441f, -0.260742f,
+0.0664062f, -0.292969f, 0.0732422f, -0.32959f, 0.0927734f, -0.429199f, 0.123779f,
+-0.494629f, 0.154785f, -0.560059f, 0.194336f, -0.598877f, 0.233887f, -0.637695f,
+0.281006f, -0.65332f, 0.328125f, -0.668945f, 0.379883f, -0.668945f, 0.419434f, -0.668945f,
+0.453613f, -0.658936f, 0.487793f, -0.648926f, 0.512695f, -0.625244f, 0.537598f, -0.601562f,
+0.551758f, -0.562012f, 0.565918f, -0.522461f, 0.565918f, -0.463379f, 0.565918f, -0.43457f,
+0.5625f, -0.401367f, 0.559082f, -0.368164f, 0.55127f, -0.32959f, 0.461914f, -0.32959f,
+0.469727f, -0.370117f, 0.473633f, -0.402832f, 0.477539f, -0.435547f, 0.477539f, -0.462402f,
+0.477539f, -0.500488f, 0.469971f, -0.526611f, 0.462402f, -0.552734f, 0.447998f, -0.568359f,
+0.433594f, -0.583984f, 0.413086f, -0.59082f, 0.392578f, -0.597656f, 0.366211f, -0.597656f,
+0.329102f, -0.597656f, 0.29834f, -0.584717f, 0.267578f, -0.571777f, 0.242188f, -0.541016f,
+0.216797f, -0.510254f, 0.197021f, -0.45874f, 0.177246f, -0.407227f, 0.162109f, -0.32959f,
+0.147461f, -0.254395f, 0.147461f, -0.202637f, 0.147461f, -0.164062f, 0.155029f, -0.137207f,
+0.162598f, -0.110352f, 0.177246f, -0.09375f, 0.191895f, -0.0771484f, 0.212891f, -0.0695801f,
+0.233887f, -0.0620117f, 0.260254f, -0.0620117f, 0.294922f, -0.0620117f, 0.325195f,
+-0.0756836f, 0.355469f, -0.0893555f, 0.381104f, -0.120605f, 0.406738f, -0.151855f,
+0.427002f, -0.203125f, 0.447266f, -0.254395f, 0.461914f, -0.32959f, 0.0253906f, 0,
+0.0390625f, -0.0708008f, 0.253418f, -0.0708008f, 0.350586f, -0.569336f, 0.337402f,
+-0.549805f, 0.310791f, -0.532471f, 0.28418f, -0.515137f, 0.250977f, -0.502441f, 0.217773f,
+-0.489746f, 0.181641f, -0.482178f, 0.145508f, -0.474609f, 0.113281f, -0.474609f,
+0.127441f, -0.546875f, 0.163574f, -0.546875f, 0.200195f, -0.555176f, 0.236816f, -0.563477f,
+0.269775f, -0.578369f, 0.302734f, -0.593262f, 0.330078f, -0.61377f, 0.357422f, -0.634277f,
+0.375f, -0.658691f, 0.456055f, -0.658691f, 0.341797f, -0.0708008f, 0.51416f, -0.0708008f,
+0.500488f, 0, 0.019043f, 0, 0.0302734f, -0.0571289f, 0.0532227f, -0.0927734f, 0.0834961f,
+-0.124023f, 0.11377f, -0.155273f, 0.147461f, -0.183594f, 0.181152f, -0.211914f, 0.216797f,
+-0.237549f, 0.252441f, -0.263184f, 0.286621f, -0.287598f, 0.320801f, -0.312012f,
+0.351807f, -0.335693f, 0.382812f, -0.359375f, 0.407715f, -0.383301f, 0.432617f, -0.407227f,
+0.449219f, -0.432129f, 0.46582f, -0.457031f, 0.471191f, -0.483887f, 0.474121f, -0.498535f,
+0.474121f, -0.51123f, 0.474121f, -0.533203f, 0.466064f, -0.549316f, 0.458008f, -0.56543f,
+0.443604f, -0.575928f, 0.429199f, -0.586426f, 0.408691f, -0.591553f, 0.388184f, -0.59668f,
+0.363281f, -0.59668f, 0.310059f, -0.59668f, 0.268799f, -0.567627f, 0.227539f, -0.538574f,
+0.209473f, -0.480469f, 0.121582f, -0.48877f, 0.133301f, -0.525879f, 0.155029f, -0.558594f,
+0.176758f, -0.591309f, 0.20874f, -0.615967f, 0.240723f, -0.640625f, 0.282959f, -0.654785f,
+0.325195f, -0.668945f, 0.376953f, -0.668945f, 0.466797f, -0.668945f, 0.516602f, -0.633301f,
+0.566406f, -0.597656f, 0.566406f, -0.529297f, 0.566406f, -0.519531f, 0.565674f, -0.509766f,
+0.564941f, -0.5f, 0.5625f, -0.489258f, 0.555664f, -0.45459f, 0.537598f, -0.424072f,
+0.519531f, -0.393555f, 0.493652f, -0.365723f, 0.467773f, -0.337891f, 0.436035f, -0.312256f,
+0.404297f, -0.286621f, 0.370361f, -0.262695f, 0.336426f, -0.23877f, 0.302246f, -0.215332f,
+0.268066f, -0.191895f, 0.237305f, -0.168457f, 0.206543f, -0.14502f, 0.180908f, -0.121094f,
+0.155273f, -0.097168f, 0.138672f, -0.0712891f, 0.491699f, -0.0712891f, 0.478027f,
+0, 0.520508f, -0.180664f, 0.511719f, -0.13623f, 0.489502f, -0.10083f, 0.467285f,
+-0.0654297f, 0.432861f, -0.0410156f, 0.398438f, -0.0166016f, 0.352539f, -0.00341797f,
+0.306641f, 0.00976562f, 0.25f, 0.00976562f, 0.19043f, 0.00976562f, 0.150879f, -0.00415039f,
+0.111328f, -0.0180664f, 0.0878906f, -0.0415039f, 0.0644531f, -0.0649414f, 0.0546875f,
+-0.095459f, 0.0449219f, -0.125977f, 0.0449219f, -0.158691f, 0.0449219f, -0.163086f,
+0.0449219f, -0.167725f, 0.0449219f, -0.172363f, 0.0454102f, -0.176758f, 0.138184f,
+-0.185059f, 0.136719f, -0.157715f, 0.142822f, -0.135254f, 0.148926f, -0.112793f,
+0.163818f, -0.0966797f, 0.178711f, -0.0805664f, 0.203613f, -0.0717773f, 0.228516f,
+-0.0629883f, 0.26416f, -0.0629883f, 0.297363f, -0.0629883f, 0.325195f, -0.0708008f,
+0.353027f, -0.0786133f, 0.374268f, -0.09375f, 0.395508f, -0.108887f, 0.409668f, -0.131592f,
+0.423828f, -0.154297f, 0.429688f, -0.183594f, 0.431641f, -0.192871f, 0.431641f, -0.203613f,
+0.431641f, -0.230957f, 0.417236f, -0.249023f, 0.402832f, -0.26709f, 0.380859f, -0.277832f,
+0.358887f, -0.288574f, 0.332764f, -0.292969f, 0.306641f, -0.297363f, 0.283691f, -0.297363f,
+0.233887f, -0.297363f, 0.249023f, -0.373535f, 0.296875f, -0.373535f, 0.321777f, -0.373535f,
+0.349854f, -0.379639f, 0.37793f, -0.385742f, 0.402832f, -0.39917f, 0.427734f, -0.412598f,
+0.446289f, -0.434326f, 0.464844f, -0.456055f, 0.470703f, -0.486816f, 0.472168f, -0.493652f,
+0.472656f, -0.500244f, 0.473145f, -0.506836f, 0.473145f, -0.513184f, 0.473145f, -0.552734f,
+0.446045f, -0.574707f, 0.418945f, -0.59668f, 0.363281f, -0.59668f, 0.305176f, -0.59668f,
+0.263428f, -0.566895f, 0.22168f, -0.537109f, 0.205078f, -0.48291f, 0.118164f, -0.489746f,
+0.132324f, -0.535156f, 0.158447f, -0.568848f, 0.18457f, -0.602539f, 0.21875f, -0.624756f,
+0.25293f, -0.646973f, 0.293701f, -0.657959f, 0.334473f, -0.668945f, 0.37793f, -0.668945f,
+0.428223f, -0.668945f, 0.463867f, -0.658691f, 0.499512f, -0.648438f, 0.522217f, -0.630127f,
+0.544922f, -0.611816f, 0.555664f, -0.586914f, 0.566406f, -0.562012f, 0.566406f, -0.532715f,
+0.566406f, -0.523926f, 0.56543f, -0.514893f, 0.564453f, -0.505859f, 0.5625f, -0.496094f,
+0.557617f, -0.469238f, 0.543701f, -0.444092f, 0.529785f, -0.418945f, 0.507812f, -0.397949f,
+0.48584f, -0.376953f, 0.455811f, -0.361328f, 0.425781f, -0.345703f, 0.388184f, -0.338379f,
+0.387695f, -0.336426f, 0.421875f, -0.33252f, 0.447266f, -0.320801f, 0.472656f, -0.309082f,
+0.489502f, -0.291748f, 0.506348f, -0.274414f, 0.514648f, -0.25293f, 0.522949f, -0.231445f,
+0.522949f, -0.208008f, 0.522949f, -0.201172f, 0.522461f, -0.194336f, 0.521973f, -0.1875f,
+0.520508f, -0.180664f, 0.436523f, -0.155762f, 0.40625f, 0, 0.318359f, 0, 0.348633f,
+-0.155762f, 0.0292969f, -0.155762f, 0.0424805f, -0.224121f, 0.437012f, -0.658691f,
+0.53418f, -0.658691f, 0.450195f, -0.225098f, 0.541992f, -0.225098f, 0.52832f, -0.155762f,
+0.427734f, -0.563477f, 0.118164f, -0.225098f, 0.362305f, -0.225098f, 0.527344f, -0.216797f,
+0.518066f, -0.167969f, 0.494385f, -0.126221f, 0.470703f, -0.0844727f, 0.434082f,
+-0.0544434f, 0.397461f, -0.0244141f, 0.348389f, -0.00732422f, 0.299316f, 0.00976562f,
+0.239258f, 0.00976562f, 0.185059f, 0.00976562f, 0.147217f, -0.00292969f, 0.109375f,
+-0.015625f, 0.0859375f, -0.0378418f, 0.0625f, -0.0600586f, 0.0517578f, -0.0898438f,
+0.0410156f, -0.119629f, 0.0410156f, -0.153809f, 0.131836f, -0.164062f, 0.133301f,
+-0.144531f, 0.139648f, -0.126221f, 0.145996f, -0.10791f, 0.159912f, -0.0935059f,
+0.173828f, -0.0791016f, 0.197021f, -0.0705566f, 0.220215f, -0.0620117f, 0.255371f,
+-0.0620117f, 0.289551f, -0.0620117f, 0.319336f, -0.0725098f, 0.349121f, -0.0830078f,
+0.372559f, -0.102539f, 0.395996f, -0.12207f, 0.412354f, -0.150635f, 0.428711f, -0.179199f,
+0.436035f, -0.214844f, 0.438965f, -0.229492f, 0.438965f, -0.243164f, 0.438965f, -0.26709f,
+0.430908f, -0.287109f, 0.422852f, -0.307129f, 0.406982f, -0.321777f, 0.391113f, -0.336426f,
+0.367676f, -0.344482f, 0.344238f, -0.352539f, 0.313477f, -0.352539f, 0.291504f, -0.352539f,
+0.271973f, -0.348633f, 0.252441f, -0.344727f, 0.235596f, -0.337891f, 0.21875f, -0.331055f,
+0.204102f, -0.322021f, 0.189453f, -0.312988f, 0.17627f, -0.303223f, 0.090332f, -0.303223f,
+0.182129f, -0.658691f, 0.573242f, -0.658691f, 0.55957f, -0.587891f, 0.249512f, -0.587891f,
+0.194824f, -0.380371f, 0.222168f, -0.398438f, 0.259766f, -0.411377f, 0.297363f, -0.424316f,
+0.345703f, -0.424316f, 0.390137f, -0.424316f, 0.424805f, -0.412354f, 0.459473f, -0.400391f,
+0.483154f, -0.378906f, 0.506836f, -0.357422f, 0.519287f, -0.327393f, 0.531738f, -0.297363f,
+0.531738f, -0.26123f, 0.531738f, -0.240234f, 0.527344f, -0.216797f, 0.526367f, -0.217773f,
+0.51709f, -0.168945f, 0.494629f, -0.127197f, 0.472168f, -0.0854492f, 0.437988f, -0.0549316f,
+0.403809f, -0.0244141f, 0.358887f, -0.00732422f, 0.313965f, 0.00976562f, 0.259766f,
+0.00976562f, 0.211914f, 0.00976562f, 0.176514f, -0.00463867f, 0.141113f, -0.019043f,
+0.11792f, -0.0463867f, 0.0947266f, -0.0737305f, 0.083252f, -0.112793f, 0.0717773f,
+-0.151855f, 0.0717773f, -0.20166f, 0.0717773f, -0.25293f, 0.0834961f, -0.313477f,
+0.100586f, -0.399902f, 0.130127f, -0.466309f, 0.159668f, -0.532715f, 0.200195f, -0.577637f,
+0.240723f, -0.622559f, 0.290771f, -0.645752f, 0.34082f, -0.668945f, 0.398438f, -0.668945f,
+0.433594f, -0.668945f, 0.462891f, -0.661621f, 0.492188f, -0.654297f, 0.51416f, -0.637939f,
+0.536133f, -0.621582f, 0.550049f, -0.594727f, 0.563965f, -0.567871f, 0.567871f, -0.528809f,
+0.480469f, -0.513672f, 0.475586f, -0.558105f, 0.449463f, -0.577881f, 0.42334f, -0.597656f,
+0.383789f, -0.597656f, 0.347656f, -0.597656f, 0.315186f, -0.580811f, 0.282715f, -0.563965f,
+0.255859f, -0.53125f, 0.229004f, -0.498535f, 0.208496f, -0.450439f, 0.187988f, -0.402344f,
+0.175781f, -0.339355f, 0.208496f, -0.383789f, 0.256348f, -0.406982f, 0.304199f, -0.430176f,
+0.360352f, -0.430176f, 0.400879f, -0.430176f, 0.432617f, -0.418945f, 0.464355f, -0.407715f,
+0.486328f, -0.386719f, 0.508301f, -0.365723f, 0.52002f, -0.335938f, 0.531738f, -0.306152f,
+0.531738f, -0.269043f, 0.531738f, -0.246094f, 0.526367f, -0.217773f, 0.436035f, -0.213867f,
+0.438477f, -0.224609f, 0.439209f, -0.234375f, 0.439941f, -0.244141f, 0.439941f, -0.253906f,
+0.439941f, -0.27832f, 0.432861f, -0.29834f, 0.425781f, -0.318359f, 0.411621f, -0.33252f,
+0.397461f, -0.34668f, 0.376221f, -0.354492f, 0.35498f, -0.362305f, 0.326172f, -0.362305f,
+0.302246f, -0.362305f, 0.276123f, -0.354248f, 0.25f, -0.346191f, 0.227295f, -0.330322f,
+0.20459f, -0.314453f, 0.1875f, -0.290527f, 0.17041f, -0.266602f, 0.164062f, -0.234863f,
+0.159668f, -0.212402f, 0.159668f, -0.190918f, 0.159668f, -0.163574f, 0.166748f, -0.139893f,
+0.173828f, -0.116211f, 0.187988f, -0.0986328f, 0.202148f, -0.0810547f, 0.2229f, -0.0710449f,
+0.243652f, -0.0610352f, 0.270508f, -0.0610352f, 0.302246f, -0.0610352f, 0.32959f,
+-0.0720215f, 0.356934f, -0.0830078f, 0.378418f, -0.103027f, 0.399902f, -0.123047f,
+0.414795f, -0.151367f, 0.429688f, -0.179688f, 0.436035f, -0.213867f, 0.585449f, -0.59082f,
+0.525879f, -0.523438f, 0.469971f, -0.45166f, 0.414062f, -0.379883f, 0.36792f, -0.30542f,
+0.321777f, -0.230957f, 0.28833f, -0.154297f, 0.254883f, -0.0776367f, 0.239746f, 0,
+0.147949f, 0, 0.163086f, -0.0771484f, 0.19751f, -0.154053f, 0.231934f, -0.230957f,
+0.279053f, -0.305664f, 0.326172f, -0.380371f, 0.383057f, -0.45166f, 0.439941f, -0.522949f,
+0.5f, -0.587891f, 0.140137f, -0.587891f, 0.153809f, -0.658691f, 0.598633f, -0.658691f,
+0.518555f, -0.18457f, 0.510742f, -0.143555f, 0.48999f, -0.108154f, 0.469238f, -0.0727539f,
+0.435547f, -0.0463867f, 0.401855f, -0.0200195f, 0.354736f, -0.00512695f, 0.307617f,
+0.00976562f, 0.246582f, 0.00976562f, 0.193848f, 0.00976562f, 0.155762f, -0.00170898f,
+0.117676f, -0.0131836f, 0.0930176f, -0.0332031f, 0.0683594f, -0.0532227f, 0.0566406f,
+-0.0812988f, 0.0449219f, -0.109375f, 0.0449219f, -0.14209f, 0.0449219f, -0.162598f,
+0.0493164f, -0.183594f, 0.0561523f, -0.218262f, 0.0732422f, -0.246338f, 0.090332f,
+-0.274414f, 0.113281f, -0.294922f, 0.13623f, -0.31543f, 0.163574f, -0.328125f, 0.190918f,
+-0.34082f, 0.217773f, -0.345215f, 0.218262f, -0.347168f, 0.194824f, -0.353027f, 0.177246f,
+-0.364746f, 0.159668f, -0.376465f, 0.147705f, -0.392578f, 0.135742f, -0.408691f,
+0.129883f, -0.428223f, 0.124023f, -0.447754f, 0.124023f, -0.469238f, 0.124023f, -0.484863f,
+0.126953f, -0.5f, 0.133301f, -0.533203f, 0.153076f, -0.563721f, 0.172852f, -0.594238f,
+0.204834f, -0.617676f, 0.236816f, -0.641113f, 0.280029f, -0.655029f, 0.323242f, -0.668945f,
+0.376465f, -0.668945f, 0.42627f, -0.668945f, 0.461914f, -0.657959f, 0.497559f, -0.646973f,
+0.520752f, -0.62793f, 0.543945f, -0.608887f, 0.554932f, -0.58374f, 0.565918f, -0.558594f,
+0.565918f, -0.530273f, 0.565918f, -0.515137f, 0.562988f, -0.499023f, 0.558105f, -0.473633f,
+0.54541f, -0.449219f, 0.532715f, -0.424805f, 0.513184f, -0.404297f, 0.493652f, -0.383789f,
+0.468018f, -0.368896f, 0.442383f, -0.354004f, 0.411621f, -0.348145f, 0.411133f, -0.346191f,
+0.436035f, -0.342285f, 0.456543f, -0.332031f, 0.477051f, -0.321777f, 0.491699f, -0.305908f,
+0.506348f, -0.290039f, 0.514404f, -0.268799f, 0.522461f, -0.247559f, 0.522461f, -0.221191f,
+0.522461f, -0.212402f, 0.521484f, -0.203369f, 0.520508f, -0.194336f, 0.518555f, -0.18457f,
+0.470703f, -0.494141f, 0.473633f, -0.508301f, 0.473633f, -0.521484f, 0.473633f, -0.539551f,
+0.467773f, -0.554443f, 0.461914f, -0.569336f, 0.448975f, -0.580322f, 0.436035f, -0.591309f,
+0.415039f, -0.597412f, 0.394043f, -0.603516f, 0.36377f, -0.603516f, 0.32959f, -0.603516f,
+0.303711f, -0.594971f, 0.277832f, -0.586426f, 0.259766f, -0.571777f, 0.241699f, -0.557129f,
+0.230957f, -0.537109f, 0.220215f, -0.51709f, 0.21582f, -0.494141f, 0.213379f, -0.480469f,
+0.213379f, -0.467773f, 0.213379f, -0.45166f, 0.218262f, -0.436035f, 0.223145f, -0.42041f,
+0.235107f, -0.407959f, 0.24707f, -0.395508f, 0.268066f, -0.387939f, 0.289062f, -0.380371f,
+0.321289f, -0.380371f, 0.363281f, -0.380371f, 0.390381f, -0.391602f, 0.41748f, -0.402832f,
+0.434326f, -0.419678f, 0.451172f, -0.436523f, 0.459229f, -0.456543f, 0.467285f, -0.476562f,
+0.470703f, -0.494141f, 0.429199f, -0.192871f, 0.432129f, -0.207031f, 0.432129f, -0.220215f,
+0.432129f, -0.23877f, 0.426025f, -0.255859f, 0.419922f, -0.272949f, 0.405518f, -0.285889f,
+0.391113f, -0.298828f, 0.367188f, -0.306641f, 0.343262f, -0.314453f, 0.307617f, -0.314453f,
+0.269043f, -0.314453f, 0.23999f, -0.303711f, 0.210938f, -0.292969f, 0.19043f, -0.275391f,
+0.169922f, -0.257812f, 0.157959f, -0.23584f, 0.145996f, -0.213867f, 0.141602f, -0.190918f,
+0.139648f, -0.181152f, 0.138672f, -0.172119f, 0.137695f, -0.163086f, 0.137695f, -0.154297f,
+0.137695f, -0.132324f, 0.144531f, -0.114258f, 0.151367f, -0.0961914f, 0.166016f,
+-0.083252f, 0.180664f, -0.0703125f, 0.203857f, -0.0632324f, 0.227051f, -0.0561523f,
+0.260254f, -0.0561523f, 0.300781f, -0.0561523f, 0.329834f, -0.0661621f, 0.358887f,
+-0.0761719f, 0.37915f, -0.0944824f, 0.399414f, -0.112793f, 0.411377f, -0.137939f,
+0.42334f, -0.163086f, 0.429199f, -0.192871f, 0.546387f, -0.343262f, 0.529785f, -0.256836f,
+0.499512f, -0.190918f, 0.469238f, -0.125f, 0.428467f, -0.0803223f, 0.387695f, -0.0356445f,
+0.337158f, -0.0129395f, 0.286621f, 0.00976562f, 0.228516f, 0.00976562f, 0.188965f,
+0.00976562f, 0.158691f, 0.00170898f, 0.128418f, -0.00634766f, 0.106934f, -0.0234375f,
+0.0854492f, -0.0405273f, 0.0732422f, -0.0678711f, 0.0610352f, -0.0952148f, 0.0576172f,
+-0.133789f, 0.144531f, -0.146973f, 0.149414f, -0.102539f, 0.174316f, -0.0817871f,
+0.199219f, -0.0610352f, 0.243652f, -0.0610352f, 0.279785f, -0.0610352f, 0.312256f,
+-0.0776367f, 0.344727f, -0.0942383f, 0.37207f, -0.126465f, 0.399414f, -0.158691f,
+0.42041f, -0.206543f, 0.441406f, -0.254395f, 0.454102f, -0.317383f, 0.439453f, -0.294434f,
+0.417969f, -0.276367f, 0.396484f, -0.258301f, 0.371582f, -0.24585f, 0.34668f, -0.233398f,
+0.319336f, -0.226807f, 0.291992f, -0.220215f, 0.264648f, -0.220215f, 0.224609f, -0.220215f,
+0.193604f, -0.232422f, 0.162598f, -0.244629f, 0.141357f, -0.266602f, 0.120117f, -0.288574f,
+0.109131f, -0.31958f, 0.0981445f, -0.350586f, 0.0981445f, -0.388672f, 0.0981445f,
+-0.415527f, 0.104004f, -0.444824f, 0.11377f, -0.495605f, 0.137207f, -0.536865f, 0.160645f,
+-0.578125f, 0.195801f, -0.607422f, 0.230957f, -0.636719f, 0.276611f, -0.652832f,
+0.322266f, -0.668945f, 0.376465f, -0.668945f, 0.467773f, -0.668945f, 0.513672f, -0.618896f,
+0.55957f, -0.568848f, 0.55957f, -0.466309f, 0.55957f, -0.412109f, 0.546387f, -0.343262f,
+0.46582f, -0.420898f, 0.468262f, -0.433594f, 0.469482f, -0.445557f, 0.470703f, -0.45752f,
+0.470703f, -0.46875f, 0.470703f, -0.496094f, 0.463867f, -0.519531f, 0.457031f, -0.542969f,
+0.443359f, -0.560303f, 0.429688f, -0.577637f, 0.408936f, -0.587646f, 0.388184f, -0.597656f,
+0.359863f, -0.597656f, 0.328125f, -0.597656f, 0.300537f, -0.58667f, 0.272949f, -0.575684f,
+0.251465f, -0.55542f, 0.22998f, -0.535156f, 0.215088f, -0.50708f, 0.200195f, -0.479004f,
+0.193359f, -0.444824f, 0.188965f, -0.423828f, 0.188965f, -0.40332f, 0.188965f, -0.378906f,
+0.195557f, -0.35791f, 0.202148f, -0.336914f, 0.21582f, -0.321777f, 0.229492f, -0.306641f,
+0.250244f, -0.298096f, 0.270996f, -0.289551f, 0.298828f, -0.289551f, 0.323242f, -0.289551f,
+0.349854f, -0.297852f, 0.376465f, -0.306152f, 0.400146f, -0.32251f, 0.423828f, -0.338867f,
+0.44165f, -0.363525f, 0.459473f, -0.388184f, 0.46582f, -0.420898f, 0.190918f, 0,
+0.219238f, -0.145996f, 0.333984f, -0.145996f, 0.305664f, 0, 0.265137f, -0.382324f,
+0.293457f, -0.52832f, 0.408203f, -0.52832f, 0.379883f, -0.382324f, 0.265137f, -0.382324f,
+0.293457f, -0.52832f, 0.408203f, -0.52832f, 0.379883f, -0.382324f, 0.0859375f, 0.177246f,
+0.231445f, -0.145996f, 0.36084f, -0.145996f, 0.145996f, 0.177246f, 0.0566406f, -0.278809f,
+0.0566406f, -0.378906f, 0.54248f, -0.583008f, 0.54248f, -0.507812f, 0.123535f, -0.329102f,
+0.54248f, -0.149902f, 0.54248f, -0.0751953f, 0.0566406f, -0.417969f, 0.0566406f,
+-0.490234f, 0.54248f, -0.490234f, 0.54248f, -0.417969f, 0.0566406f, -0.167969f, 0.0566406f,
+-0.240234f, 0.54248f, -0.240234f, 0.54248f, -0.167969f, 0.0566406f, -0.0751953f,
+0.0566406f, -0.149902f, 0.475586f, -0.329102f, 0.0566406f, -0.507812f, 0.0566406f,
+-0.583008f, 0.54248f, -0.378906f, 0.54248f, -0.278809f, 0.567871f, -0.489258f, 0.559082f,
+-0.444336f, 0.537354f, -0.413574f, 0.515625f, -0.382812f, 0.487305f, -0.359619f,
+0.458984f, -0.336426f, 0.427734f, -0.317871f, 0.396484f, -0.299316f, 0.368408f, -0.279297f,
+0.340332f, -0.259277f, 0.319336f, -0.234619f, 0.29834f, -0.209961f, 0.290527f, -0.174316f,
+0.205078f, -0.174316f, 0.214844f, -0.217773f, 0.236816f, -0.248047f, 0.258789f, -0.27832f,
+0.286865f, -0.30127f, 0.314941f, -0.324219f, 0.345703f, -0.342773f, 0.376465f, -0.361328f,
+0.403809f, -0.381348f, 0.431152f, -0.401367f, 0.451172f, -0.426025f, 0.471191f, -0.450684f,
+0.478027f, -0.485352f, 0.480469f, -0.499023f, 0.480469f, -0.508789f, 0.480469f, -0.55127f,
+0.44751f, -0.573486f, 0.414551f, -0.595703f, 0.355469f, -0.595703f, 0.322266f, -0.595703f,
+0.293457f, -0.586426f, 0.264648f, -0.577148f, 0.241211f, -0.559814f, 0.217773f, -0.54248f,
+0.200684f, -0.517822f, 0.183594f, -0.493164f, 0.174316f, -0.462891f, 0.0859375f,
+-0.46875f, 0.100098f, -0.512695f, 0.125488f, -0.549561f, 0.150879f, -0.586426f, 0.186523f,
+-0.612793f, 0.222168f, -0.63916f, 0.268066f, -0.654053f, 0.313965f, -0.668945f, 0.368652f,
+-0.668945f, 0.415527f, -0.668945f, 0.453125f, -0.659668f, 0.490723f, -0.650391f,
+0.51709f, -0.632324f, 0.543457f, -0.614258f, 0.557617f, -0.587646f, 0.571777f, -0.561035f,
+0.571777f, -0.526367f, 0.571777f, -0.517578f, 0.570801f, -0.508301f, 0.569824f, -0.499023f,
+0.567871f, -0.489258f, 0.16748f, 0, 0.186523f, -0.0981445f, 0.281738f, -0.0981445f,
+0.262695f, 0, 0.601074f, -0.368652f, 0.587402f, -0.29834f, 0.565918f, -0.23999f,
+0.544434f, -0.181641f, 0.51709f, -0.139648f, 0.489746f, -0.0976562f, 0.45752f, -0.0742188f,
+0.425293f, -0.0507812f, 0.390137f, -0.0507812f, 0.37793f, -0.0507812f, 0.367432f,
+-0.0534668f, 0.356934f, -0.0561523f, 0.349365f, -0.0625f, 0.341797f, -0.0688477f,
+0.337402f, -0.0788574f, 0.333008f, -0.0888672f, 0.333008f, -0.103516f, 0.333008f,
+-0.108887f, 0.333496f, -0.114746f, 0.333984f, -0.120605f, 0.335449f, -0.127441f,
+0.335449f, -0.128418f, 0.336182f, -0.131104f, 0.336914f, -0.133789f, 0.337646f, -0.136719f,
+0.338379f, -0.139648f, 0.338867f, -0.14209f, 0.339355f, -0.144531f, 0.339844f, -0.145996f,
+0.336914f, -0.145996f, 0.326172f, -0.126953f, 0.311523f, -0.109619f, 0.296875f, -0.0922852f,
+0.279785f, -0.0791016f, 0.262695f, -0.065918f, 0.243408f, -0.0583496f, 0.224121f,
+-0.0507812f, 0.203613f, -0.0507812f, 0.181152f, -0.0507812f, 0.165771f, -0.0595703f,
+0.150391f, -0.0683594f, 0.140869f, -0.0834961f, 0.131348f, -0.0986328f, 0.126953f,
+-0.119385f, 0.122559f, -0.140137f, 0.122559f, -0.164062f, 0.122559f, -0.181641f,
+0.124512f, -0.200439f, 0.126465f, -0.219238f, 0.130371f, -0.23877f, 0.137695f, -0.275879f,
+0.150391f, -0.3125f, 0.163086f, -0.349121f, 0.18042f, -0.382324f, 0.197754f, -0.415527f,
+0.21875f, -0.444092f, 0.239746f, -0.472656f, 0.263916f, -0.493408f, 0.288086f, -0.51416f,
+0.314209f, -0.525879f, 0.340332f, -0.537598f, 0.367676f, -0.537598f, 0.388184f, -0.537598f,
+0.401855f, -0.531006f, 0.415527f, -0.524414f, 0.424072f, -0.512939f, 0.432617f, -0.501465f,
+0.436523f, -0.486084f, 0.44043f, -0.470703f, 0.440918f, -0.453125f, 0.443359f, -0.453125f,
+0.473633f, -0.526855f, 0.530273f, -0.526855f, 0.433594f, -0.279297f, 0.425781f, -0.258789f,
+0.418457f, -0.239014f, 0.411133f, -0.219238f, 0.404785f, -0.201416f, 0.398438f, -0.183594f,
+0.394043f, -0.168701f, 0.389648f, -0.153809f, 0.387695f, -0.143555f, 0.386719f, -0.137695f,
+0.38623f, -0.132812f, 0.385742f, -0.12793f, 0.385742f, -0.124023f, 0.385742f, -0.110352f,
+0.390625f, -0.105469f, 0.395508f, -0.100586f, 0.40332f, -0.100586f, 0.422852f, -0.100586f,
+0.442627f, -0.120117f, 0.462402f, -0.139648f, 0.480469f, -0.175049f, 0.498535f, -0.210449f,
+0.514404f, -0.259521f, 0.530273f, -0.308594f, 0.541504f, -0.367676f, 0.551758f, -0.421387f,
+0.551758f, -0.46875f, 0.551758f, -0.512695f, 0.542725f, -0.549316f, 0.533691f, -0.585938f,
+0.515625f, -0.612305f, 0.497559f, -0.638672f, 0.469971f, -0.65332f, 0.442383f, -0.667969f,
+0.405762f, -0.667969f, 0.366699f, -0.667969f, 0.330322f, -0.653076f, 0.293945f, -0.638184f,
+0.261719f, -0.611084f, 0.229492f, -0.583984f, 0.201172f, -0.546143f, 0.172852f, -0.508301f,
+0.149902f, -0.461914f, 0.126953f, -0.415527f, 0.109375f, -0.362061f, 0.0917969f,
+-0.308594f, 0.0805664f, -0.250977f, 0.0742188f, -0.21875f, 0.0712891f, -0.189453f,
+0.0683594f, -0.160156f, 0.0683594f, -0.133301f, 0.0683594f, -0.0839844f, 0.0786133f,
+-0.0444336f, 0.0888672f, -0.00488281f, 0.108887f, 0.0229492f, 0.128906f, 0.0507812f,
+0.158691f, 0.0656738f, 0.188477f, 0.0805664f, 0.228027f, 0.0805664f, 0.256836f, 0.0805664f,
+0.282959f, 0.0744629f, 0.309082f, 0.0683594f, 0.333008f, 0.0581055f, 0.356934f, 0.0478516f,
+0.37915f, 0.0336914f, 0.401367f, 0.0195312f, 0.42334f, 0.00341797f, 0.449707f, 0.0458984f,
+0.424805f, 0.0639648f, 0.397949f, 0.0805664f, 0.371094f, 0.097168f, 0.341553f, 0.110107f,
+0.312012f, 0.123047f, 0.279785f, 0.130615f, 0.247559f, 0.138184f, 0.211914f, 0.138184f,
+0.162109f, 0.138184f, 0.123535f, 0.120361f, 0.0849609f, 0.102539f, 0.0588379f, 0.0688477f,
+0.0327148f, 0.0351562f, 0.019043f, -0.0129395f, 0.00537109f, -0.0610352f, 0.00537109f,
+-0.121582f, 0.00537109f, -0.151367f, 0.00878906f, -0.183594f, 0.012207f, -0.21582f,
+0.019043f, -0.250977f, 0.0390625f, -0.353027f, 0.0761719f, -0.439697f, 0.113281f,
+-0.526367f, 0.164795f, -0.589844f, 0.216309f, -0.65332f, 0.280273f, -0.688965f, 0.344238f,
+-0.724609f, 0.41748f, -0.724609f, 0.468262f, -0.724609f, 0.505127f, -0.706299f, 0.541992f,
+-0.687988f, 0.565918f, -0.655273f, 0.589844f, -0.622559f, 0.601318f, -0.578369f,
+0.612793f, -0.53418f, 0.612793f, -0.481934f, 0.612793f, -0.427246f, 0.601074f, -0.368652f,
+0.401367f, -0.382812f, 0.405762f, -0.40625f, 0.405762f, -0.424316f, 0.405762f, -0.456055f,
+0.393311f, -0.471924f, 0.380859f, -0.487793f, 0.358887f, -0.487793f, 0.34082f, -0.487793f,
+0.323242f, -0.477051f, 0.305664f, -0.466309f, 0.289307f, -0.447998f, 0.272949f, -0.429688f,
+0.258545f, -0.405273f, 0.244141f, -0.380859f, 0.232178f, -0.353271f, 0.220215f, -0.325684f,
+0.210938f, -0.296631f, 0.20166f, -0.267578f, 0.196289f, -0.239746f, 0.187988f, -0.196777f,
+0.187988f, -0.165527f, 0.187988f, -0.13623f, 0.196533f, -0.119385f, 0.205078f, -0.102539f,
+0.225586f, -0.102539f, 0.244629f, -0.102539f, 0.264404f, -0.115967f, 0.28418f, -0.129395f,
+0.303223f, -0.153809f, 0.322266f, -0.178223f, 0.340088f, -0.213135f, 0.35791f, -0.248047f,
+0.373047f, -0.290527f, 0.376465f, -0.299805f, 0.380859f, -0.3125f, 0.385254f, -0.325195f,
+0.38916f, -0.338379f, 0.393066f, -0.351562f, 0.396484f, -0.363525f, 0.399902f, -0.375488f,
+0.401367f, -0.382812f, 0.453613f, 0, 0.422363f, -0.186523f, 0.147461f, -0.186523f,
+0.0444336f, 0, -0.0512695f, 0, 0.325684f, -0.658691f, 0.431641f, -0.658691f, 0.54834f,
+0, 0.381348f, -0.46582f, 0.378418f, -0.484375f, 0.375488f, -0.503418f, 0.372559f,
+-0.522461f, 0.370361f, -0.539551f, 0.368164f, -0.556641f, 0.366455f, -0.56958f, 0.364746f,
+-0.58252f, 0.36377f, -0.588379f, 0.36084f, -0.58252f, 0.354248f, -0.569336f, 0.347656f,
+-0.556152f, 0.338867f, -0.539062f, 0.330078f, -0.521973f, 0.320068f, -0.50293f, 0.310059f,
+-0.483887f, 0.300293f, -0.46582f, 0.186523f, -0.259277f, 0.412598f, -0.259277f, 0.547363f,
+-0.185547f, 0.537598f, -0.135254f, 0.510254f, -0.100098f, 0.48291f, -0.0649414f,
+0.443848f, -0.0427246f, 0.404785f, -0.0205078f, 0.356934f, -0.0102539f, 0.309082f,
+0, 0.258301f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.356934f, -0.658691f, 0.408203f,
+-0.658691f, 0.447998f, -0.651367f, 0.487793f, -0.644043f, 0.515381f, -0.628662f,
+0.542969f, -0.613281f, 0.557373f, -0.5896f, 0.571777f, -0.565918f, 0.571777f, -0.532715f,
+0.571777f, -0.515625f, 0.568359f, -0.499023f, 0.562988f, -0.47168f, 0.550049f, -0.447021f,
+0.537109f, -0.422363f, 0.51709f, -0.402588f, 0.49707f, -0.382812f, 0.469727f, -0.368408f,
+0.442383f, -0.354004f, 0.407715f, -0.347168f, 0.479004f, -0.338867f, 0.514893f, -0.304443f,
+0.550781f, -0.27002f, 0.550781f, -0.217773f, 0.550781f, -0.209961f, 0.549805f, -0.201904f,
+0.548828f, -0.193848f, 0.547363f, -0.185547f, 0.472168f, -0.487305f, 0.473145f, -0.493652f,
+0.473877f, -0.499023f, 0.474609f, -0.504395f, 0.474609f, -0.509766f, 0.474609f, -0.549316f,
+0.44165f, -0.56665f, 0.408691f, -0.583984f, 0.343262f, -0.583984f, 0.234375f, -0.583984f,
+0.195312f, -0.380859f, 0.305176f, -0.380859f, 0.344727f, -0.380859f, 0.374023f, -0.388428f,
+0.40332f, -0.395996f, 0.423584f, -0.409912f, 0.443848f, -0.423828f, 0.455566f, -0.443359f,
+0.467285f, -0.462891f, 0.472168f, -0.487305f, 0.45459f, -0.193848f, 0.455566f, -0.200684f,
+0.456299f, -0.206543f, 0.457031f, -0.212402f, 0.457031f, -0.217773f, 0.457031f, -0.241699f,
+0.446289f, -0.258789f, 0.435547f, -0.275879f, 0.415527f, -0.286865f, 0.395508f, -0.297852f,
+0.367432f, -0.302979f, 0.339355f, -0.308105f, 0.304199f, -0.308105f, 0.181152f, -0.308105f,
+0.135742f, -0.074707f, 0.265625f, -0.074707f, 0.30127f, -0.074707f, 0.332764f, -0.0803223f,
+0.364258f, -0.0859375f, 0.38916f, -0.0996094f, 0.414062f, -0.113281f, 0.430908f,
+-0.13623f, 0.447754f, -0.15918f, 0.45459f, -0.193848f, 0.166504f, -0.33252f, 0.160645f,
+-0.300781f, 0.157471f, -0.273193f, 0.154297f, -0.245605f, 0.154297f, -0.220703f,
+0.154297f, -0.145508f, 0.185303f, -0.105713f, 0.216309f, -0.065918f, 0.28418f, -0.065918f,
+0.314941f, -0.065918f, 0.341797f, -0.0776367f, 0.368652f, -0.0893555f, 0.391602f,
+-0.108398f, 0.414551f, -0.127441f, 0.433838f, -0.152344f, 0.453125f, -0.177246f,
+0.468262f, -0.203613f, 0.539551f, -0.171875f, 0.519043f, -0.137695f, 0.492676f, -0.105225f,
+0.466309f, -0.0727539f, 0.433105f, -0.0471191f, 0.399902f, -0.0214844f, 0.359131f,
+-0.00585938f, 0.318359f, 0.00976562f, 0.268555f, 0.00976562f, 0.213867f, 0.00976562f,
+0.173828f, -0.00610352f, 0.133789f, -0.0219727f, 0.107666f, -0.0515137f, 0.081543f,
+-0.0810547f, 0.0690918f, -0.123291f, 0.0566406f, -0.165527f, 0.0566406f, -0.218262f,
+0.0566406f, -0.270996f, 0.0683594f, -0.33252f, 0.0839844f, -0.413574f, 0.111816f,
+-0.476318f, 0.139648f, -0.539062f, 0.18042f, -0.581787f, 0.221191f, -0.624512f, 0.274658f,
+-0.646729f, 0.328125f, -0.668945f, 0.395508f, -0.668945f, 0.444824f, -0.668945f,
+0.479248f, -0.655518f, 0.513672f, -0.64209f, 0.536377f, -0.619385f, 0.559082f, -0.59668f,
+0.572021f, -0.567139f, 0.584961f, -0.537598f, 0.591309f, -0.505371f, 0.503418f, -0.473633f,
+0.5f, -0.496094f, 0.491699f, -0.517578f, 0.483398f, -0.539062f, 0.46875f, -0.555664f,
+0.454102f, -0.572266f, 0.432373f, -0.58252f, 0.410645f, -0.592773f, 0.381348f, -0.592773f,
+0.337891f, -0.592773f, 0.303711f, -0.576172f, 0.269531f, -0.55957f, 0.243164f, -0.526611f,
+0.216797f, -0.493652f, 0.197998f, -0.445068f, 0.179199f, -0.396484f, 0.166504f, -0.33252f,
+0.563477f, -0.335938f, 0.547363f, -0.253906f, 0.515625f, -0.191162f, 0.483887f, -0.128418f,
+0.438477f, -0.0859375f, 0.393066f, -0.043457f, 0.334961f, -0.0217285f, 0.276855f,
+0, 0.208496f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.307617f, -0.658691f, 0.37207f,
+-0.658691f, 0.421875f, -0.645508f, 0.47168f, -0.632324f, 0.505371f, -0.604736f, 0.539062f,
+-0.577148f, 0.556396f, -0.534912f, 0.57373f, -0.492676f, 0.57373f, -0.43457f, 0.57373f,
+-0.390137f, 0.563477f, -0.335938f, 0.469727f, -0.335938f, 0.474609f, -0.360352f,
+0.476807f, -0.381836f, 0.479004f, -0.40332f, 0.479004f, -0.422363f, 0.479004f, -0.506836f,
+0.432861f, -0.544678f, 0.386719f, -0.58252f, 0.293457f, -0.58252f, 0.234375f, -0.58252f,
+0.135742f, -0.0761719f, 0.214844f, -0.0761719f, 0.318359f, -0.0761719f, 0.381348f,
+-0.141113f, 0.444336f, -0.206055f, 0.469727f, -0.335938f, 0.027832f, 0, 0.155762f,
+-0.658691f, 0.604492f, -0.658691f, 0.589844f, -0.58252f, 0.234375f, -0.58252f, 0.194336f,
+-0.376465f, 0.520508f, -0.376465f, 0.505859f, -0.30127f, 0.179688f, -0.30127f, 0.135742f,
+-0.0761719f, 0.51123f, -0.0761719f, 0.496582f, 0, 0.25f, -0.58252f, 0.203125f, -0.341309f,
+0.533203f, -0.341309f, 0.518066f, -0.26416f, 0.187988f, -0.26416f, 0.136719f, 0,
+0.043457f, 0, 0.171387f, -0.658691f, 0.606445f, -0.658691f, 0.591797f, -0.58252f,
+0.499023f, -0.0649414f, 0.479492f, -0.0532227f, 0.453613f, -0.0400391f, 0.427734f,
+-0.0268555f, 0.396973f, -0.0158691f, 0.366211f, -0.00488281f, 0.331543f, 0.00244141f,
+0.296875f, 0.00976562f, 0.258789f, 0.00976562f, 0.206543f, 0.00976562f, 0.168457f,
+-0.00683594f, 0.130371f, -0.0234375f, 0.105469f, -0.0534668f, 0.0805664f, -0.0834961f,
+0.0686035f, -0.125977f, 0.0566406f, -0.168457f, 0.0566406f, -0.220215f, 0.0566406f,
+-0.272461f, 0.0683594f, -0.33252f, 0.0844727f, -0.414062f, 0.111816f, -0.476807f,
+0.13916f, -0.539551f, 0.179199f, -0.582275f, 0.219238f, -0.625f, 0.272217f, -0.646973f,
+0.325195f, -0.668945f, 0.39209f, -0.668945f, 0.440918f, -0.668945f, 0.475342f, -0.65625f,
+0.509766f, -0.643555f, 0.532471f, -0.621826f, 0.555176f, -0.600098f, 0.567871f, -0.570557f,
+0.580566f, -0.541016f, 0.585938f, -0.507324f, 0.49707f, -0.47998f, 0.48877f, -0.533691f,
+0.460693f, -0.563232f, 0.432617f, -0.592773f, 0.378418f, -0.592773f, 0.334473f, -0.592773f,
+0.300537f, -0.575928f, 0.266602f, -0.559082f, 0.240967f, -0.526123f, 0.215332f, -0.493164f,
+0.197266f, -0.44458f, 0.179199f, -0.395996f, 0.166504f, -0.33252f, 0.160645f, -0.30127f,
+0.157471f, -0.273926f, 0.154297f, -0.246582f, 0.154297f, -0.222168f, 0.154297f, -0.144531f,
+0.185547f, -0.105225f, 0.216797f, -0.065918f, 0.28125f, -0.065918f, 0.304688f, -0.065918f,
+0.325684f, -0.0700684f, 0.34668f, -0.0742188f, 0.364258f, -0.079834f, 0.381836f,
+-0.0854492f, 0.39502f, -0.0915527f, 0.408203f, -0.0976562f, 0.415527f, -0.102051f,
+0.447266f, -0.266113f, 0.304199f, -0.266113f, 0.319336f, -0.344238f, 0.553223f, -0.344238f,
+0.375977f, 0, 0.435059f, -0.304199f, 0.180176f, -0.304199f, 0.121094f, 0, 0.027832f,
+0, 0.155762f, -0.658691f, 0.249023f, -0.658691f, 0.195312f, -0.382324f, 0.450195f,
+-0.382324f, 0.503906f, -0.658691f, 0.597168f, -0.658691f, 0.469238f, 0, 0.175293f,
+-0.658691f, 0.577148f, -0.658691f, 0.5625f, -0.58252f, 0.408203f, -0.58252f, 0.30957f,
+-0.0761719f, 0.463867f, -0.0761719f, 0.449219f, 0, 0.0473633f, 0, 0.0620117f, -0.0761719f,
+0.216309f, -0.0761719f, 0.314941f, -0.58252f, 0.160645f, -0.58252f, 0.470215f, -0.205078f,
+0.460938f, -0.15625f, 0.44043f, -0.116455f, 0.419922f, -0.0766602f, 0.389893f, -0.048584f,
+0.359863f, -0.0205078f, 0.320312f, -0.00537109f, 0.280762f, 0.00976562f, 0.23291f,
+0.00976562f, 0.150391f, 0.00976562f, 0.109131f, -0.0327148f, 0.0678711f, -0.0751953f,
+0.0678711f, -0.166504f, 0.0678711f, -0.170898f, 0.162109f, -0.186035f, 0.161133f,
+-0.154785f, 0.166748f, -0.13208f, 0.172363f, -0.109375f, 0.183838f, -0.0947266f,
+0.195312f, -0.0800781f, 0.21167f, -0.072998f, 0.228027f, -0.065918f, 0.248047f, -0.065918f,
+0.298828f, -0.065918f, 0.331299f, -0.10083f, 0.36377f, -0.135742f, 0.376953f, -0.203125f,
+0.450684f, -0.58252f, 0.298828f, -0.58252f, 0.313477f, -0.658691f, 0.558105f, -0.658691f,
+0.438477f, 0, 0.26123f, -0.311523f, 0.165527f, -0.229004f, 0.121094f, 0, 0.027832f,
+0, 0.155762f, -0.658691f, 0.249023f, -0.658691f, 0.185059f, -0.330078f, 0.52832f,
+-0.658691f, 0.638184f, -0.658691f, 0.337891f, -0.379395f, 0.547852f, 0, 0.0644531f,
+0, 0.192383f, -0.658691f, 0.285645f, -0.658691f, 0.172363f, -0.0761719f, 0.500488f,
+-0.0761719f, 0.48584f, 0, 0.40625f, 0, 0.48877f, -0.423828f, 0.493652f, -0.44873f,
+0.499023f, -0.474609f, 0.504395f, -0.500488f, 0.509277f, -0.521973f, 0.514648f, -0.546875f,
+0.52002f, -0.570801f, 0.506348f, -0.543945f, 0.493164f, -0.518066f, 0.481934f, -0.496094f,
+0.469238f, -0.47168f, 0.456543f, -0.447266f, 0.446289f, -0.428711f, 0.324707f, -0.214844f,
+0.257812f, -0.214844f, 0.218262f, -0.428711f, 0.216797f, -0.436035f, 0.215332f, -0.446045f,
+0.213867f, -0.456055f, 0.212158f, -0.467529f, 0.210449f, -0.479004f, 0.20874f, -0.490967f,
+0.207031f, -0.50293f, 0.205566f, -0.514648f, 0.202148f, -0.541504f, 0.19873f, -0.570801f,
+0.194824f, -0.547363f, 0.19043f, -0.521973f, 0.186523f, -0.5f, 0.181885f, -0.474365f,
+0.177246f, -0.44873f, 0.172363f, -0.423828f, 0.0898438f, 0, 0.0117188f, 0, 0.139648f,
+-0.658691f, 0.255371f, -0.658691f, 0.299316f, -0.419922f, 0.301758f, -0.408691f,
+0.303711f, -0.389893f, 0.305664f, -0.371094f, 0.307129f, -0.352539f, 0.309082f, -0.331055f,
+0.310547f, -0.307129f, 0.321289f, -0.330078f, 0.331543f, -0.351074f, 0.340332f, -0.369141f,
+0.350098f, -0.388184f, 0.359863f, -0.407227f, 0.366699f, -0.419434f, 0.503418f, -0.658691f,
+0.613281f, -0.658691f, 0.485352f, 0, 0.356934f, 0, 0.210449f, -0.551758f, 0.208496f,
+-0.530762f, 0.206055f, -0.508789f, 0.203613f, -0.490234f, 0.200684f, -0.468506f,
+0.197754f, -0.446777f, 0.193848f, -0.427734f, 0.11084f, 0, 0.027832f, 0, 0.155762f,
+-0.658691f, 0.26416f, -0.658691f, 0.414062f, -0.103027f, 0.415527f, -0.122559f, 0.417969f,
+-0.14502f, 0.42041f, -0.164062f, 0.42334f, -0.187988f, 0.42627f, -0.211914f, 0.431152f,
+-0.236816f, 0.513184f, -0.658691f, 0.597168f, -0.658691f, 0.469238f, 0, 0.562988f,
+-0.33252f, 0.546875f, -0.248047f, 0.517334f, -0.184082f, 0.487793f, -0.120117f, 0.447021f,
+-0.0769043f, 0.40625f, -0.0336914f, 0.355469f, -0.0119629f, 0.304688f, 0.00976562f,
+0.246094f, 0.00976562f, 0.147461f, 0.00976562f, 0.0986328f, -0.0471191f, 0.0498047f,
+-0.104004f, 0.0498047f, -0.209961f, 0.0498047f, -0.265137f, 0.0629883f, -0.33252f,
+0.0795898f, -0.416992f, 0.108398f, -0.47998f, 0.137207f, -0.542969f, 0.177002f, -0.584961f,
+0.216797f, -0.626953f, 0.267578f, -0.647949f, 0.318359f, -0.668945f, 0.378906f, -0.668945f,
+0.475586f, -0.668945f, 0.525879f, -0.61499f, 0.576172f, -0.561035f, 0.576172f, -0.453125f,
+0.576172f, -0.399414f, 0.562988f, -0.33252f, 0.464844f, -0.33252f, 0.471191f, -0.365234f,
+0.474365f, -0.393311f, 0.477539f, -0.421387f, 0.477539f, -0.445801f, 0.477539f, -0.52002f,
+0.448975f, -0.556396f, 0.42041f, -0.592773f, 0.364258f, -0.592773f, 0.288086f, -0.592773f,
+0.237549f, -0.528564f, 0.187012f, -0.464355f, 0.161133f, -0.33252f, 0.154785f, -0.299805f,
+0.151611f, -0.27124f, 0.148438f, -0.242676f, 0.148438f, -0.217773f, 0.148438f, -0.14209f,
+0.176758f, -0.104004f, 0.205078f, -0.065918f, 0.26123f, -0.065918f, 0.34082f, -0.065918f,
+0.390137f, -0.134277f, 0.439453f, -0.202637f, 0.464844f, -0.33252f, 0.584961f, -0.461426f,
+0.577148f, -0.42041f, 0.555176f, -0.382568f, 0.533203f, -0.344727f, 0.498047f, -0.31543f,
+0.462891f, -0.286133f, 0.415039f, -0.268555f, 0.367188f, -0.250977f, 0.307129f, -0.250977f,
+0.169922f, -0.250977f, 0.121094f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.380371f,
+-0.658691f, 0.433594f, -0.658691f, 0.4729f, -0.647949f, 0.512207f, -0.637207f, 0.538086f,
+-0.617188f, 0.563965f, -0.597168f, 0.57666f, -0.568848f, 0.589355f, -0.540527f, 0.589355f,
+-0.505371f, 0.589355f, -0.484375f, 0.584961f, -0.461426f, 0.490723f, -0.459961f,
+0.493652f, -0.475586f, 0.493652f, -0.489258f, 0.493652f, -0.536133f, 0.458984f, -0.560059f,
+0.424316f, -0.583984f, 0.354492f, -0.583984f, 0.234375f, -0.583984f, 0.184082f, -0.324707f,
+0.308105f, -0.324707f, 0.348145f, -0.324707f, 0.379639f, -0.335205f, 0.411133f, -0.345703f,
+0.434082f, -0.36377f, 0.457031f, -0.381836f, 0.471191f, -0.406738f, 0.485352f, -0.431641f,
+0.490723f, -0.459961f, 0.562988f, -0.33252f, 0.549316f, -0.260742f, 0.525635f, -0.203369f,
+0.501953f, -0.145996f, 0.469971f, -0.104004f, 0.437988f, -0.0620117f, 0.398438f,
+-0.0354004f, 0.358887f, -0.00878906f, 0.3125f, 0.00195312f, 0.320801f, 0.0634766f,
+0.348145f, 0.0913086f, 0.375488f, 0.119141f, 0.424805f, 0.119141f, 0.438477f, 0.119141f,
+0.454346f, 0.117188f, 0.470215f, 0.115234f, 0.481934f, 0.112793f, 0.469238f, 0.178223f,
+0.449707f, 0.182617f, 0.427002f, 0.185791f, 0.404297f, 0.188965f, 0.380371f, 0.188965f,
+0.338867f, 0.188965f, 0.309814f, 0.176514f, 0.280762f, 0.164062f, 0.261719f, 0.140869f,
+0.242676f, 0.117676f, 0.231934f, 0.0839844f, 0.221191f, 0.050293f, 0.216309f, 0.0078125f,
+0.132812f, -0.000488281f, 0.0913086f, -0.0566406f, 0.0498047f, -0.112793f, 0.0498047f,
+-0.209961f, 0.0498047f, -0.265137f, 0.0629883f, -0.33252f, 0.0795898f, -0.416992f,
+0.108398f, -0.47998f, 0.137207f, -0.542969f, 0.177002f, -0.584961f, 0.216797f, -0.626953f,
+0.267578f, -0.647949f, 0.318359f, -0.668945f, 0.378906f, -0.668945f, 0.475586f, -0.668945f,
+0.525879f, -0.61499f, 0.576172f, -0.561035f, 0.576172f, -0.453125f, 0.576172f, -0.399414f,
+0.562988f, -0.33252f, 0.464844f, -0.33252f, 0.471191f, -0.365234f, 0.474365f, -0.393311f,
+0.477539f, -0.421387f, 0.477539f, -0.445801f, 0.477539f, -0.52002f, 0.448975f, -0.556396f,
+0.42041f, -0.592773f, 0.364258f, -0.592773f, 0.288086f, -0.592773f, 0.237549f, -0.528564f,
+0.187012f, -0.464355f, 0.161133f, -0.33252f, 0.154785f, -0.299805f, 0.151611f, -0.27124f,
+0.148438f, -0.242676f, 0.148438f, -0.217773f, 0.148438f, -0.14209f, 0.176758f, -0.104004f,
+0.205078f, -0.065918f, 0.26123f, -0.065918f, 0.34082f, -0.065918f, 0.390137f, -0.134277f,
+0.439453f, -0.202637f, 0.464844f, -0.33252f, 0.416016f, 0, 0.291992f, -0.280762f,
+0.175781f, -0.280762f, 0.121094f, 0, 0.027832f, 0, 0.155762f, -0.658691f, 0.391113f,
+-0.658691f, 0.493164f, -0.658691f, 0.543213f, -0.621582f, 0.593262f, -0.584473f,
+0.593262f, -0.517578f, 0.593262f, -0.498535f, 0.588867f, -0.476562f, 0.583008f, -0.446289f,
+0.567627f, -0.41626f, 0.552246f, -0.38623f, 0.526855f, -0.361084f, 0.501465f, -0.335938f,
+0.466064f, -0.317383f, 0.430664f, -0.298828f, 0.384766f, -0.291504f, 0.523438f, 0,
+0.494629f, -0.475098f, 0.496094f, -0.481934f, 0.496582f, -0.488525f, 0.49707f, -0.495117f,
+0.49707f, -0.500977f, 0.49707f, -0.583984f, 0.367188f, -0.583984f, 0.234375f, -0.583984f,
+0.189941f, -0.354492f, 0.32666f, -0.354492f, 0.367188f, -0.354492f, 0.396484f, -0.364258f,
+0.425781f, -0.374023f, 0.446045f, -0.390381f, 0.466309f, -0.406738f, 0.478027f, -0.428711f,
+0.489746f, -0.450684f, 0.494629f, -0.475098f, 0.534668f, -0.180664f, 0.526855f, -0.13916f,
+0.504883f, -0.104248f, 0.48291f, -0.0693359f, 0.446777f, -0.0439453f, 0.410645f,
+-0.0185547f, 0.360352f, -0.00439453f, 0.310059f, 0.00976562f, 0.244629f, 0.00976562f,
+0.130371f, 0.00976562f, 0.0754395f, -0.0351562f, 0.0205078f, -0.0800781f, 0.0195312f,
+-0.165039f, 0.113281f, -0.183105f, 0.11377f, -0.15625f, 0.121338f, -0.134277f, 0.128906f,
+-0.112305f, 0.14624f, -0.0964355f, 0.163574f, -0.0805664f, 0.19165f, -0.0717773f,
+0.219727f, -0.0629883f, 0.26123f, -0.0629883f, 0.296387f, -0.0629883f, 0.32666f,
+-0.0695801f, 0.356934f, -0.0761719f, 0.380615f, -0.090332f, 0.404297f, -0.104492f,
+0.420166f, -0.126465f, 0.436035f, -0.148438f, 0.441895f, -0.179199f, 0.442871f, -0.185059f,
+0.443604f, -0.19043f, 0.444336f, -0.195801f, 0.444336f, -0.201172f, 0.444336f, -0.228027f,
+0.43042f, -0.245361f, 0.416504f, -0.262695f, 0.393799f, -0.274414f, 0.371094f, -0.286133f,
+0.342773f, -0.293945f, 0.314453f, -0.301758f, 0.285645f, -0.309082f, 0.264648f, -0.314941f,
+0.243652f, -0.321045f, 0.222656f, -0.327148f, 0.203125f, -0.335205f, 0.183594f, -0.343262f,
+0.166992f, -0.35376f, 0.150391f, -0.364258f, 0.137939f, -0.378418f, 0.125488f, -0.392578f,
+0.118408f, -0.411621f, 0.111328f, -0.430664f, 0.111328f, -0.455078f, 0.111328f, -0.463867f,
+0.112305f, -0.473389f, 0.113281f, -0.48291f, 0.115234f, -0.493164f, 0.124512f, -0.540039f,
+0.148438f, -0.573486f, 0.172363f, -0.606934f, 0.207275f, -0.628174f, 0.242188f, -0.649414f,
+0.286133f, -0.65918f, 0.330078f, -0.668945f, 0.378906f, -0.668945f, 0.435547f, -0.668945f,
+0.473633f, -0.658936f, 0.511719f, -0.648926f, 0.535156f, -0.628906f, 0.558594f, -0.608887f,
+0.56958f, -0.579346f, 0.580566f, -0.549805f, 0.58252f, -0.510742f, 0.487793f, -0.494629f,
+0.487305f, -0.519531f, 0.480469f, -0.539062f, 0.473633f, -0.558594f, 0.458984f, -0.571777f,
+0.444336f, -0.584961f, 0.421143f, -0.591797f, 0.397949f, -0.598633f, 0.364746f, -0.598633f,
+0.325684f, -0.598633f, 0.297607f, -0.590576f, 0.269531f, -0.58252f, 0.250732f, -0.568604f,
+0.231934f, -0.554688f, 0.221436f, -0.535645f, 0.210938f, -0.516602f, 0.206543f, -0.494629f,
+0.205566f, -0.489258f, 0.205078f, -0.484131f, 0.20459f, -0.479004f, 0.20459f, -0.474609f,
+0.20459f, -0.45166f, 0.216064f, -0.437012f, 0.227539f, -0.422363f, 0.24707f, -0.412354f,
+0.266602f, -0.402344f, 0.29248f, -0.395264f, 0.318359f, -0.388184f, 0.347168f, -0.380371f,
+0.381836f, -0.371094f, 0.416016f, -0.360352f, 0.450195f, -0.349609f, 0.477539f, -0.33252f,
+0.504883f, -0.31543f, 0.521973f, -0.289062f, 0.539062f, -0.262695f, 0.539062f, -0.222168f,
+0.539062f, -0.203613f, 0.534668f, -0.180664f, 0.408203f, -0.58252f, 0.294922f, 0,
+0.202148f, 0, 0.31543f, -0.58252f, 0.0991211f, -0.58252f, 0.11377f, -0.658691f, 0.63916f,
+-0.658691f, 0.624512f, -0.58252f, 0.524902f, -0.239258f, 0.511719f, -0.172363f, 0.488281f,
+-0.125f, 0.464844f, -0.0776367f, 0.430176f, -0.0476074f, 0.395508f, -0.0175781f,
+0.348633f, -0.00390625f, 0.301758f, 0.00976562f, 0.242188f, 0.00976562f, 0.195312f,
+0.00976562f, 0.160156f, 0.0012207f, 0.125f, -0.00732422f, 0.101318f, -0.026123f,
+0.0776367f, -0.0449219f, 0.0656738f, -0.074707f, 0.0537109f, -0.104492f, 0.0537109f,
+-0.146973f, 0.0537109f, -0.18457f, 0.0629883f, -0.230469f, 0.145996f, -0.658691f,
+0.239258f, -0.658691f, 0.158691f, -0.243164f, 0.153809f, -0.218262f, 0.151367f, -0.197754f,
+0.148926f, -0.177246f, 0.148926f, -0.160156f, 0.148926f, -0.110352f, 0.173584f, -0.0881348f,
+0.198242f, -0.065918f, 0.256348f, -0.065918f, 0.296875f, -0.065918f, 0.325928f, -0.0756836f,
+0.35498f, -0.0854492f, 0.375732f, -0.107178f, 0.396484f, -0.128906f, 0.4104f, -0.164062f,
+0.424316f, -0.199219f, 0.434082f, -0.249512f, 0.513672f, -0.658691f, 0.606445f, -0.658691f,
+0.296875f, 0, 0.200195f, 0, 0.081543f, -0.658691f, 0.179688f, -0.658691f, 0.250488f,
+-0.218262f, 0.253906f, -0.196289f, 0.256592f, -0.172607f, 0.259277f, -0.148926f,
+0.26123f, -0.128418f, 0.263184f, -0.10498f, 0.265137f, -0.0820312f, 0.275391f, -0.104004f,
+0.286621f, -0.127441f, 0.296387f, -0.147461f, 0.30835f, -0.171387f, 0.320312f, -0.195312f,
+0.33252f, -0.218262f, 0.573242f, -0.658691f, 0.671387f, -0.658691f, 0.445801f, 0,
+0.344238f, 0, 0.330078f, -0.188965f, 0.32959f, -0.198242f, 0.328613f, -0.210938f,
+0.327637f, -0.223633f, 0.326904f, -0.238037f, 0.326172f, -0.252441f, 0.325439f, -0.267822f,
+0.324707f, -0.283203f, 0.324219f, -0.297852f, 0.322754f, -0.332031f, 0.321289f, -0.369141f,
+0.305664f, -0.331543f, 0.290527f, -0.297363f, 0.28418f, -0.282715f, 0.277344f, -0.267334f,
+0.270508f, -0.251953f, 0.26416f, -0.237549f, 0.257812f, -0.223145f, 0.251953f, -0.210693f,
+0.246094f, -0.198242f, 0.241699f, -0.188965f, 0.15332f, 0, 0.0517578f, 0, 0.0766602f,
+-0.658691f, 0.168945f, -0.658691f, 0.143066f, -0.250977f, 0.140625f, -0.219238f,
+0.137695f, -0.188965f, 0.134766f, -0.158691f, 0.132324f, -0.134766f, 0.129395f, -0.106934f,
+0.126465f, -0.0820312f, 0.140625f, -0.115723f, 0.154785f, -0.148438f, 0.160645f,
+-0.162598f, 0.167236f, -0.17749f, 0.173828f, -0.192383f, 0.180176f, -0.207031f, 0.186523f,
+-0.22168f, 0.192627f, -0.235107f, 0.19873f, -0.248535f, 0.203613f, -0.259766f, 0.294922f,
+-0.45459f, 0.380371f, -0.45459f, 0.395508f, -0.259766f, 0.396484f, -0.249023f, 0.397461f,
+-0.235352f, 0.398438f, -0.22168f, 0.39917f, -0.207275f, 0.399902f, -0.192871f, 0.400635f,
+-0.177979f, 0.401367f, -0.163086f, 0.401855f, -0.148926f, 0.40332f, -0.116211f, 0.404297f,
+-0.0820312f, 0.404785f, -0.0820312f, 0.409424f, -0.0986328f, 0.414062f, -0.115234f,
+0.421387f, -0.140137f, 0.428711f, -0.165039f, 0.437256f, -0.194824f, 0.445801f, -0.224609f,
+0.454102f, -0.250977f, 0.583984f, -0.658691f, 0.67627f, -0.658691f, 0.328125f, -0.408203f,
+0.539062f, -0.658691f, 0.63916f, -0.658691f, 0.365723f, -0.344238f, 0.53125f, 0,
+0.431152f, 0, 0.302734f, -0.279785f, 0.0664062f, 0, -0.0336914f, 0, 0.265625f, -0.344238f,
+0.114258f, -0.658691f, 0.214355f, -0.658691f, 0.350098f, -0.285156f, 0.294434f, 0,
+0.202637f, 0, 0.258301f, -0.285156f, 0.0942383f, -0.658691f, 0.194336f, -0.658691f,
+0.318848f, -0.360352f, 0.558594f, -0.658691f, 0.658691f, -0.658691f, 0.512695f, 0,
+-0.015625f, 0, -0.00195312f, -0.0698242f, 0.49707f, -0.58252f, 0.133301f, -0.58252f,
+0.147949f, -0.658691f, 0.617676f, -0.658691f, 0.604492f, -0.59082f, 0.10498f, -0.0761719f,
+0.527344f, -0.0761719f, 0.108398f, 0.20752f, 0.289551f, -0.724609f, 0.556641f, -0.724609f,
+0.543457f, -0.656738f, 0.364258f, -0.656738f, 0.209473f, 0.139648f, 0.388672f, 0.139648f,
+0.375488f, 0.20752f, 0.401855f, 0.00976562f, 0.145508f, -0.724609f, 0.232422f, -0.724609f,
+0.490723f, 0.00976562f, 0.0400391f, 0.20752f, 0.0532227f, 0.139648f, 0.232422f, 0.139648f,
+0.387207f, -0.656738f, 0.208008f, -0.656738f, 0.221191f, -0.724609f, 0.488281f, -0.724609f,
+0.307129f, 0.20752f, 0.449707f, -0.21582f, 0.365234f, -0.60791f, 0.129883f, -0.21582f,
+0.0556641f, -0.21582f, 0.326172f, -0.658691f, 0.425293f, -0.658691f, 0.524902f, -0.21582f,
+-0.074707f, 0.107422f, -0.0654297f, 0.0605469f, 0.539062f, 0.0605469f, 0.529785f,
+0.107422f, 0.405273f, -0.586426f, 0.280762f, -0.69873f, 0.283691f, -0.712891f, 0.379883f,
+-0.712891f, 0.467773f, -0.596191f, 0.46582f, -0.586426f, 0.49707f, -0.0541992f, 0.504395f,
+-0.0541992f, 0.511963f, -0.0551758f, 0.519531f, -0.0561523f, 0.526367f, -0.0576172f,
+0.515625f, -0.00292969f, 0.498535f, 0.000976562f, 0.481689f, 0.00292969f, 0.464844f,
+0.00488281f, 0.446289f, 0.00488281f, 0.403809f, 0.00488281f, 0.385986f, -0.0136719f,
+0.368164f, -0.0322266f, 0.368164f, -0.0693359f, 0.368164f, -0.0766602f, 0.368896f,
+-0.0847168f, 0.369629f, -0.0927734f, 0.370605f, -0.101074f, 0.367676f, -0.101074f,
+0.349121f, -0.0756836f, 0.328613f, -0.0551758f, 0.308105f, -0.034668f, 0.283691f,
+-0.0202637f, 0.259277f, -0.00585938f, 0.22998f, 0.00195312f, 0.200684f, 0.00976562f,
+0.164551f, 0.00976562f, 0.0996094f, 0.00976562f, 0.067627f, -0.0205078f, 0.0356445f,
+-0.0507812f, 0.0356445f, -0.104004f, 0.0356445f, -0.124023f, 0.0400391f, -0.147461f,
+0.050293f, -0.199707f, 0.0759277f, -0.233154f, 0.101562f, -0.266602f, 0.136475f,
+-0.285645f, 0.171387f, -0.304688f, 0.212646f, -0.312256f, 0.253906f, -0.319824f,
+0.29541f, -0.320312f, 0.410645f, -0.322266f, 0.416504f, -0.351074f, 0.418945f, -0.363281f,
+0.420166f, -0.374023f, 0.421387f, -0.384766f, 0.421387f, -0.394531f, 0.421387f, -0.436035f,
+0.398926f, -0.453613f, 0.376465f, -0.471191f, 0.331543f, -0.471191f, 0.307129f, -0.471191f,
+0.286621f, -0.467529f, 0.266113f, -0.463867f, 0.25f, -0.454346f, 0.233887f, -0.444824f,
+0.221924f, -0.428467f, 0.209961f, -0.412109f, 0.20166f, -0.387207f, 0.111328f, -0.395508f,
+0.122559f, -0.426758f, 0.140869f, -0.452881f, 0.15918f, -0.479004f, 0.187256f, -0.498047f,
+0.215332f, -0.51709f, 0.254395f, -0.527588f, 0.293457f, -0.538086f, 0.345703f, -0.538086f,
+0.429199f, -0.538086f, 0.470459f, -0.504883f, 0.511719f, -0.47168f, 0.511719f, -0.407715f,
+0.511719f, -0.396484f, 0.510498f, -0.384766f, 0.509277f, -0.373047f, 0.506836f, -0.360352f,
+0.462891f, -0.132812f, 0.458496f, -0.111816f, 0.458496f, -0.0957031f, 0.458496f,
+-0.0751953f, 0.467285f, -0.0646973f, 0.476074f, -0.0541992f, 0.49707f, -0.0541992f,
+0.200195f, -0.0571289f, 0.240723f, -0.0571289f, 0.273682f, -0.0725098f, 0.306641f,
+-0.0878906f, 0.330811f, -0.111328f, 0.35498f, -0.134766f, 0.370117f, -0.163086f,
+0.385254f, -0.191406f, 0.390137f, -0.217285f, 0.398926f, -0.260742f, 0.305664f, -0.258789f,
+0.278809f, -0.258301f, 0.250977f, -0.254639f, 0.223145f, -0.250977f, 0.198975f, -0.239258f,
+0.174805f, -0.227539f, 0.156982f, -0.205322f, 0.13916f, -0.183105f, 0.131836f, -0.145996f,
+0.129395f, -0.132324f, 0.129395f, -0.122559f, 0.129395f, -0.0922852f, 0.147217f,
+-0.074707f, 0.165039f, -0.0571289f, 0.200195f, -0.0571289f, 0.532715f, -0.266602f,
+0.505859f, -0.12793f, 0.442871f, -0.059082f, 0.379883f, 0.00976562f, 0.287598f, 0.00976562f,
+0.230957f, 0.00976562f, 0.193604f, -0.0112305f, 0.15625f, -0.0322266f, 0.14209f,
+-0.0800781f, 0.141113f, -0.0800781f, 0.138672f, -0.0673828f, 0.135498f, -0.0539551f,
+0.132324f, -0.0405273f, 0.129395f, -0.0292969f, 0.126465f, -0.0180664f, 0.124268f,
+-0.0100098f, 0.12207f, -0.00195312f, 0.121094f, 0, 0.0361328f, 0, 0.0375977f, -0.00439453f,
+0.0400391f, -0.0148926f, 0.0424805f, -0.0253906f, 0.0456543f, -0.0400391f, 0.0488281f,
+-0.0546875f, 0.0527344f, -0.0722656f, 0.0566406f, -0.0898438f, 0.0600586f, -0.108887f,
+0.179688f, -0.724609f, 0.267578f, -0.724609f, 0.227539f, -0.518066f, 0.225098f, -0.503906f,
+0.221924f, -0.48999f, 0.21875f, -0.476074f, 0.216309f, -0.465332f, 0.213379f, -0.452637f,
+0.210938f, -0.441406f, 0.212891f, -0.441406f, 0.246094f, -0.492676f, 0.291992f, -0.515869f,
+0.337891f, -0.539062f, 0.39502f, -0.539062f, 0.469238f, -0.539062f, 0.506836f, -0.497559f,
+0.544434f, -0.456055f, 0.544434f, -0.371582f, 0.544434f, -0.326172f, 0.532715f, -0.266602f,
+0.441406f, -0.263672f, 0.446777f, -0.291504f, 0.449463f, -0.315186f, 0.452148f, -0.338867f,
+0.452148f, -0.359375f, 0.452148f, -0.417969f, 0.428955f, -0.44458f, 0.405762f, -0.471191f,
+0.35791f, -0.471191f, 0.325684f, -0.471191f, 0.297852f, -0.460205f, 0.27002f, -0.449219f,
+0.246826f, -0.424072f, 0.223633f, -0.398926f, 0.206055f, -0.357666f, 0.188477f, -0.316406f,
+0.176758f, -0.255859f, 0.171875f, -0.230957f, 0.169678f, -0.209961f, 0.16748f, -0.188965f,
+0.16748f, -0.171387f, 0.16748f, -0.138672f, 0.175049f, -0.116211f, 0.182617f, -0.09375f,
+0.196777f, -0.0803223f, 0.210938f, -0.0668945f, 0.230957f, -0.0610352f, 0.250977f,
+-0.0551758f, 0.275879f, -0.0551758f, 0.306641f, -0.0551758f, 0.332275f, -0.0664062f,
+0.35791f, -0.0776367f, 0.378418f, -0.102539f, 0.398926f, -0.127441f, 0.414795f, -0.167236f,
+0.430664f, -0.207031f, 0.441406f, -0.263672f, 0.0634766f, -0.264648f, 0.0791016f,
+-0.344238f, 0.110352f, -0.396973f, 0.141602f, -0.449707f, 0.181885f, -0.480957f,
+0.222168f, -0.512207f, 0.268799f, -0.525146f, 0.31543f, -0.538086f, 0.361816f, -0.538086f,
+0.409668f, -0.538086f, 0.445068f, -0.525879f, 0.480469f, -0.513672f, 0.503418f, -0.492432f,
+0.526367f, -0.471191f, 0.537598f, -0.442383f, 0.548828f, -0.413574f, 0.548828f, -0.380371f,
+0.454102f, -0.373535f, 0.455078f, -0.41748f, 0.428711f, -0.443359f, 0.402344f, -0.469238f,
+0.344727f, -0.469238f, 0.302734f, -0.469238f, 0.271729f, -0.455811f, 0.240723f, -0.442383f,
+0.218262f, -0.416748f, 0.195801f, -0.391113f, 0.180908f, -0.353271f, 0.166016f, -0.31543f,
+0.15625f, -0.266602f, 0.146973f, -0.220215f, 0.146973f, -0.181641f, 0.146973f, -0.152344f,
+0.15332f, -0.12915f, 0.159668f, -0.105957f, 0.173828f, -0.090332f, 0.187988f, -0.074707f,
+0.210205f, -0.0664062f, 0.232422f, -0.0581055f, 0.26416f, -0.0581055f, 0.316895f,
+-0.0581055f, 0.356689f, -0.0839844f, 0.396484f, -0.109863f, 0.415039f, -0.163086f,
+0.506836f, -0.157227f, 0.496094f, -0.124512f, 0.473633f, -0.0942383f, 0.451172f,
+-0.0639648f, 0.418945f, -0.0410156f, 0.386719f, -0.0180664f, 0.345215f, -0.00415039f,
+0.303711f, 0.00976562f, 0.254883f, 0.00976562f, 0.200684f, 0.00976562f, 0.162598f,
+-0.00415039f, 0.124512f, -0.0180664f, 0.100586f, -0.0432129f, 0.0766602f, -0.0683594f,
+0.0656738f, -0.103271f, 0.0546875f, -0.138184f, 0.0546875f, -0.180176f, 0.0546875f,
+-0.220215f, 0.0634766f, -0.264648f, 0.38623f, -0.0849609f, 0.352539f, -0.0336914f,
+0.30835f, -0.010498f, 0.26416f, 0.0126953f, 0.205078f, 0.0126953f, 0.12793f, 0.0126953f,
+0.0913086f, -0.0280762f, 0.0546875f, -0.0688477f, 0.0546875f, -0.151855f, 0.0546875f,
+-0.199219f, 0.0664062f, -0.259766f, 0.120605f, -0.536133f, 0.311523f, -0.536133f,
+0.370605f, -0.536133f, 0.406494f, -0.515137f, 0.442383f, -0.494141f, 0.457031f, -0.446289f,
+0.458008f, -0.446289f, 0.458496f, -0.44873f, 0.460205f, -0.458984f, 0.461914f, -0.469238f,
+0.464111f, -0.481445f, 0.466309f, -0.493652f, 0.468262f, -0.504639f, 0.470215f, -0.515625f,
+0.471191f, -0.52002f, 0.510742f, -0.724609f, 0.598633f, -0.724609f, 0.479004f, -0.108887f,
+0.475586f, -0.0898438f, 0.472412f, -0.0722656f, 0.469238f, -0.0546875f, 0.466797f,
+-0.0400391f, 0.464355f, -0.0253906f, 0.462891f, -0.0148926f, 0.461426f, -0.00439453f,
+0.460938f, 0, 0.376953f, 0, 0.376465f, -0.00195312f, 0.377441f, -0.0107422f, 0.378418f,
+-0.0195312f, 0.379883f, -0.0317383f, 0.381348f, -0.0439453f, 0.383789f, -0.0581055f,
+0.38623f, -0.0722656f, 0.388672f, -0.0849609f, 0.158203f, -0.262695f, 0.152832f,
+-0.233398f, 0.149902f, -0.209229f, 0.146973f, -0.185059f, 0.146973f, -0.164551f,
+0.146973f, -0.107422f, 0.169678f, -0.0812988f, 0.192383f, -0.0551758f, 0.241211f,
+-0.0551758f, 0.274902f, -0.0551758f, 0.303223f, -0.0668945f, 0.331543f, -0.0786133f,
+0.354248f, -0.104248f, 0.376953f, -0.129883f, 0.394043f, -0.170898f, 0.411133f, -0.211914f,
+0.422852f, -0.270508f, 0.427734f, -0.29541f, 0.430176f, -0.316406f, 0.432617f, -0.337402f,
+0.432617f, -0.355469f, 0.432617f, -0.387207f, 0.425293f, -0.409424f, 0.417969f, -0.431641f,
+0.404053f, -0.445312f, 0.390137f, -0.458984f, 0.369873f, -0.465088f, 0.349609f, -0.471191f,
+0.323242f, -0.471191f, 0.291992f, -0.471191f, 0.266357f, -0.459961f, 0.240723f, -0.44873f,
+0.220459f, -0.423828f, 0.200195f, -0.398926f, 0.184814f, -0.359131f, 0.169434f, -0.319336f,
+0.158203f, -0.262695f, 0.153809f, -0.245605f, 0.150879f, -0.22998f, 0.14917f, -0.215332f,
+0.147461f, -0.200684f, 0.147461f, -0.186523f, 0.147461f, -0.157227f, 0.154541f, -0.133057f,
+0.161621f, -0.108887f, 0.17627f, -0.0917969f, 0.190918f, -0.074707f, 0.212646f, -0.0654297f,
+0.234375f, -0.0561523f, 0.263672f, -0.0561523f, 0.290527f, -0.0561523f, 0.314453f,
+-0.0622559f, 0.338379f, -0.0683594f, 0.358643f, -0.0791016f, 0.378906f, -0.0898438f,
+0.394043f, -0.104736f, 0.40918f, -0.119629f, 0.418457f, -0.137207f, 0.491211f, -0.115234f,
+0.479004f, -0.0932617f, 0.458984f, -0.0710449f, 0.438965f, -0.0488281f, 0.409668f,
+-0.0310059f, 0.380371f, -0.0131836f, 0.341064f, -0.00170898f, 0.301758f, 0.00976562f,
+0.250977f, 0.00976562f, 0.20459f, 0.00976562f, 0.168457f, -0.00219727f, 0.132324f,
+-0.0141602f, 0.107422f, -0.0380859f, 0.0825195f, -0.0620117f, 0.0695801f, -0.0976562f,
+0.0566406f, -0.133301f, 0.0566406f, -0.180664f, 0.0566406f, -0.221191f, 0.065918f,
+-0.267578f, 0.0805664f, -0.34375f, 0.109863f, -0.395508f, 0.13916f, -0.447266f, 0.177979f,
+-0.479004f, 0.216797f, -0.510742f, 0.262207f, -0.524414f, 0.307617f, -0.538086f,
+0.354492f, -0.538086f, 0.405273f, -0.538086f, 0.440918f, -0.525146f, 0.476562f, -0.512207f,
+0.499268f, -0.488037f, 0.521973f, -0.463867f, 0.532471f, -0.429688f, 0.542969f, -0.395508f,
+0.542969f, -0.353027f, 0.542969f, -0.308594f, 0.532715f, -0.257324f, 0.530762f, -0.245605f,
+0.342773f, -0.473145f, 0.320312f, -0.473145f, 0.294434f, -0.466064f, 0.268555f, -0.458984f,
+0.244141f, -0.440918f, 0.219727f, -0.422852f, 0.199463f, -0.391846f, 0.179199f, -0.36084f,
+0.167969f, -0.312988f, 0.453125f, -0.312988f, 0.454102f, -0.322754f, 0.45459f, -0.331299f,
+0.455078f, -0.339844f, 0.455078f, -0.348145f, 0.455078f, -0.383789f, 0.446289f, -0.407715f,
+0.4375f, -0.431641f, 0.422363f, -0.446289f, 0.407227f, -0.460938f, 0.386719f, -0.467041f,
+0.366211f, -0.473145f, 0.342773f, -0.473145f, 0.321289f, -0.458984f, 0.231934f, 0,
+0.144043f, 0, 0.233398f, -0.458984f, 0.105469f, -0.458984f, 0.118652f, -0.52832f,
+0.246582f, -0.52832f, 0.249023f, -0.540527f, 0.258789f, -0.589844f, 0.276611f, -0.624756f,
+0.294434f, -0.659668f, 0.322998f, -0.681885f, 0.351562f, -0.704102f, 0.392334f, -0.714355f,
+0.433105f, -0.724609f, 0.48877f, -0.724609f, 0.50293f, -0.724609f, 0.522217f, -0.723877f,
+0.541504f, -0.723145f, 0.561035f, -0.72168f, 0.580566f, -0.720215f, 0.597412f, -0.718262f,
+0.614258f, -0.716309f, 0.624023f, -0.714355f, 0.610352f, -0.643555f, 0.602051f, -0.64502f,
+0.584717f, -0.646484f, 0.567383f, -0.647949f, 0.54834f, -0.64917f, 0.529297f, -0.650391f,
+0.511719f, -0.651123f, 0.494141f, -0.651855f, 0.484863f, -0.651855f, 0.452637f, -0.651855f,
+0.427734f, -0.646973f, 0.402832f, -0.64209f, 0.384766f, -0.628906f, 0.366699f, -0.615723f,
+0.354736f, -0.592773f, 0.342773f, -0.569824f, 0.335449f, -0.533203f, 0.334473f, -0.52832f,
+0.574219f, -0.52832f, 0.561035f, -0.458984f, 0.208984f, 0.207031f, 0.165039f, 0.207031f,
+0.133301f, 0.197754f, 0.101562f, 0.188477f, 0.0808105f, 0.171143f, 0.0600586f, 0.153809f,
+0.0498047f, 0.129883f, 0.0395508f, 0.105957f, 0.0385742f, 0.0766602f, 0.130859f,
+0.0644531f, 0.131836f, 0.101074f, 0.155762f, 0.12085f, 0.179688f, 0.140625f, 0.224609f,
+0.140625f, 0.252441f, 0.140625f, 0.276367f, 0.132324f, 0.300293f, 0.124023f, 0.31958f,
+0.105713f, 0.338867f, 0.0874023f, 0.353271f, 0.0581055f, 0.367676f, 0.0288086f, 0.375488f,
+-0.0131836f, 0.37793f, -0.0258789f, 0.381104f, -0.0419922f, 0.384277f, -0.0581055f,
+0.387207f, -0.0727539f, 0.390625f, -0.0898438f, 0.394043f, -0.10791f, 0.393066f,
+-0.10791f, 0.379883f, -0.0883789f, 0.362061f, -0.0698242f, 0.344238f, -0.0512695f,
+0.321045f, -0.0371094f, 0.297852f, -0.0229492f, 0.269287f, -0.0144043f, 0.240723f,
+-0.00585938f, 0.205566f, -0.00585938f, 0.129395f, -0.00585938f, 0.0939941f, -0.0441895f,
+0.0585938f, -0.0825195f, 0.0585938f, -0.160156f, 0.0585938f, -0.183594f, 0.0617676f,
+-0.210449f, 0.0649414f, -0.237305f, 0.0708008f, -0.268066f, 0.0830078f, -0.332031f,
+0.103027f, -0.381836f, 0.123047f, -0.431641f, 0.153076f, -0.466064f, 0.183105f, -0.500488f,
+0.223877f, -0.518555f, 0.264648f, -0.536621f, 0.318359f, -0.536621f, 0.373535f, -0.536621f,
+0.40918f, -0.510986f, 0.444824f, -0.485352f, 0.45752f, -0.437988f, 0.458984f, -0.437988f,
+0.461426f, -0.450195f, 0.465088f, -0.465332f, 0.46875f, -0.480469f, 0.472168f, -0.493896f,
+0.475586f, -0.507324f, 0.478516f, -0.51709f, 0.481445f, -0.526855f, 0.482422f, -0.52832f,
+0.565918f, -0.52832f, 0.564941f, -0.523926f, 0.5625f, -0.513428f, 0.560059f, -0.50293f,
+0.556641f, -0.488281f, 0.553223f, -0.473633f, 0.549561f, -0.455811f, 0.545898f, -0.437988f,
+0.541992f, -0.418945f, 0.463379f, -0.015625f, 0.441895f, 0.0952148f, 0.379395f, 0.151123f,
+0.316895f, 0.207031f, 0.208984f, 0.207031f, 0.425293f, -0.269043f, 0.433105f, -0.308105f,
+0.433105f, -0.340332f, 0.433105f, -0.375488f, 0.424561f, -0.400391f, 0.416016f, -0.425293f,
+0.401611f, -0.441162f, 0.387207f, -0.457031f, 0.368164f, -0.464111f, 0.349121f, -0.471191f,
+0.327637f, -0.471191f, 0.294922f, -0.471191f, 0.268799f, -0.460205f, 0.242676f, -0.449219f,
+0.222412f, -0.425049f, 0.202148f, -0.400879f, 0.187256f, -0.362549f, 0.172363f, -0.324219f,
+0.161621f, -0.269043f, 0.15625f, -0.240234f, 0.15332f, -0.216553f, 0.150391f, -0.192871f,
+0.150391f, -0.17334f, 0.150391f, -0.144531f, 0.156494f, -0.125f, 0.162598f, -0.105469f,
+0.175049f, -0.0932617f, 0.1875f, -0.0810547f, 0.205811f, -0.0759277f, 0.224121f,
+-0.0708008f, 0.248047f, -0.0708008f, 0.273926f, -0.0708008f, 0.300781f, -0.0812988f,
+0.327637f, -0.0917969f, 0.351807f, -0.115234f, 0.375977f, -0.138672f, 0.395264f,
+-0.176514f, 0.414551f, -0.214355f, 0.425293f, -0.269043f, 0.179688f, -0.724609f,
+0.268066f, -0.724609f, 0.231445f, -0.53418f, 0.226562f, -0.509766f, 0.220215f, -0.485107f,
+0.213867f, -0.460449f, 0.208008f, -0.437988f, 0.209473f, -0.437988f, 0.242188f, -0.484375f,
+0.286865f, -0.51123f, 0.331543f, -0.538086f, 0.394531f, -0.538086f, 0.462402f, -0.538086f,
+0.499023f, -0.507812f, 0.535645f, -0.477539f, 0.535645f, -0.411621f, 0.535645f, -0.383789f,
+0.529297f, -0.352051f, 0.460938f, 0, 0.372559f, 0, 0.438477f, -0.339355f, 0.443848f,
+-0.367676f, 0.443848f, -0.387207f, 0.443848f, -0.411621f, 0.4375f, -0.42749f, 0.431152f,
+-0.443359f, 0.419434f, -0.452881f, 0.407715f, -0.462402f, 0.391602f, -0.466309f,
+0.375488f, -0.470215f, 0.356445f, -0.470215f, 0.327637f, -0.470215f, 0.300293f, -0.459229f,
+0.272949f, -0.448242f, 0.250244f, -0.42749f, 0.227539f, -0.406738f, 0.210938f, -0.376221f,
+0.194336f, -0.345703f, 0.186523f, -0.306152f, 0.126953f, 0, 0.0390625f, 0, 0.326172f,
+-0.0693359f, 0.511719f, -0.0693359f, 0.498047f, 0, 0.0185547f, 0, 0.0322266f, -0.0693359f,
+0.238281f, -0.0693359f, 0.313965f, -0.458984f, 0.158203f, -0.458984f, 0.171387f,
+-0.52832f, 0.415039f, -0.52832f, 0.337402f, -0.630859f, 0.355469f, -0.724609f, 0.453125f,
+-0.724609f, 0.435059f, -0.630859f, 0.354492f, 0.0136719f, 0.344238f, 0.0668945f,
+0.31958f, 0.10376f, 0.294922f, 0.140625f, 0.261475f, 0.163818f, 0.228027f, 0.187012f,
+0.187988f, 0.197266f, 0.147949f, 0.20752f, 0.105957f, 0.20752f, 0.0859375f, 0.20752f,
+0.0661621f, 0.205811f, 0.0463867f, 0.204102f, 0.0285645f, 0.201172f, 0.0107422f,
+0.198242f, -0.00439453f, 0.19458f, -0.0195312f, 0.190918f, -0.0302734f, 0.186523f,
+-0.0170898f, 0.118164f, -0.00683594f, 0.120605f, 0.00732422f, 0.123535f, 0.0214844f,
+0.126465f, 0.0383301f, 0.128906f, 0.0551758f, 0.131348f, 0.0742188f, 0.133057f, 0.0932617f,
+0.134766f, 0.112793f, 0.134766f, 0.140137f, 0.134766f, 0.165039f, 0.12793f, 0.189941f,
+0.121094f, 0.210449f, 0.106201f, 0.230957f, 0.0913086f, 0.245605f, 0.0681152f, 0.260254f,
+0.0449219f, 0.266602f, 0.012207f, 0.358398f, -0.458984f, 0.159668f, -0.458984f, 0.172852f,
+-0.52832f, 0.459473f, -0.52832f, 0.381836f, -0.630859f, 0.399902f, -0.724609f, 0.497559f,
+-0.724609f, 0.479492f, -0.630859f, 0.39502f, 0, 0.263672f, -0.243652f, 0.189941f,
+-0.195801f, 0.151855f, 0, 0.0639648f, 0, 0.20459f, -0.724609f, 0.29248f, -0.724609f,
+0.20459f, -0.271973f, 0.486328f, -0.52832f, 0.589355f, -0.52832f, 0.331055f, -0.30127f,
+0.498047f, 0, 0.321777f, -0.0693359f, 0.507324f, -0.0693359f, 0.493652f, 0, 0.0141602f,
+0, 0.027832f, -0.0693359f, 0.233887f, -0.0693359f, 0.347656f, -0.655273f, 0.206543f,
+-0.655273f, 0.219727f, -0.724609f, 0.44873f, -0.724609f, 0.208008f, 0, 0.272949f,
+-0.334961f, 0.27832f, -0.361816f, 0.281006f, -0.382324f, 0.283691f, -0.402832f, 0.283691f,
+-0.418457f, 0.283691f, -0.447266f, 0.273926f, -0.45874f, 0.26416f, -0.470215f, 0.243652f,
+-0.470215f, 0.227539f, -0.470215f, 0.212402f, -0.457764f, 0.197266f, -0.445312f,
+0.183594f, -0.422607f, 0.169922f, -0.399902f, 0.158936f, -0.36792f, 0.147949f, -0.335938f,
+0.140137f, -0.296387f, 0.0825195f, 0, 0, 0, 0.0805664f, -0.415527f, 0.0839844f, -0.432129f,
+0.0871582f, -0.450439f, 0.090332f, -0.46875f, 0.0930176f, -0.485107f, 0.0957031f,
+-0.501465f, 0.0976562f, -0.513184f, 0.0996094f, -0.524902f, 0.0996094f, -0.52832f,
+0.172363f, -0.52832f, 0.172363f, -0.525879f, 0.170898f, -0.515869f, 0.169434f, -0.505859f,
+0.16748f, -0.49292f, 0.165527f, -0.47998f, 0.163086f, -0.466309f, 0.160645f, -0.452637f,
+0.158691f, -0.442871f, 0.159668f, -0.442871f, 0.169922f, -0.461914f, 0.181885f, -0.479248f,
+0.193848f, -0.496582f, 0.208984f, -0.509766f, 0.224121f, -0.522949f, 0.242676f, -0.530518f,
+0.26123f, -0.538086f, 0.283691f, -0.538086f, 0.32666f, -0.538086f, 0.343506f, -0.514648f,
+0.360352f, -0.491211f, 0.359863f, -0.442383f, 0.36084f, -0.442383f, 0.374023f, -0.465332f,
+0.387939f, -0.483154f, 0.401855f, -0.500977f, 0.417969f, -0.513184f, 0.434082f, -0.525391f,
+0.452881f, -0.531738f, 0.47168f, -0.538086f, 0.494629f, -0.538086f, 0.537598f, -0.538086f,
+0.557129f, -0.515625f, 0.57666f, -0.493164f, 0.57666f, -0.444336f, 0.57666f, -0.425293f,
+0.573975f, -0.402588f, 0.571289f, -0.379883f, 0.565918f, -0.352051f, 0.497559f, 0,
+0.415527f, 0, 0.480469f, -0.334961f, 0.48584f, -0.361816f, 0.488525f, -0.382324f,
+0.491211f, -0.402832f, 0.491211f, -0.418457f, 0.491211f, -0.447266f, 0.481445f, -0.45874f,
+0.47168f, -0.470215f, 0.451172f, -0.470215f, 0.419434f, -0.470215f, 0.392334f, -0.428955f,
+0.365234f, -0.387695f, 0.349609f, -0.306152f, 0.290039f, 0, 0.372559f, 0, 0.438477f,
+-0.339355f, 0.443848f, -0.367676f, 0.443848f, -0.387207f, 0.443848f, -0.411621f,
+0.4375f, -0.42749f, 0.431152f, -0.443359f, 0.419434f, -0.452881f, 0.407715f, -0.462402f,
+0.391602f, -0.466309f, 0.375488f, -0.470215f, 0.356445f, -0.470215f, 0.327637f, -0.470215f,
+0.300293f, -0.459229f, 0.272949f, -0.448242f, 0.250244f, -0.42749f, 0.227539f, -0.406738f,
+0.210938f, -0.376221f, 0.194336f, -0.345703f, 0.186523f, -0.306152f, 0.126953f, 0,
+0.0390625f, 0, 0.119629f, -0.415527f, 0.123047f, -0.432129f, 0.126221f, -0.450439f,
+0.129395f, -0.46875f, 0.13208f, -0.485107f, 0.134766f, -0.501465f, 0.136719f, -0.513184f,
+0.138672f, -0.524902f, 0.138672f, -0.52832f, 0.22168f, -0.52832f, 0.22168f, -0.525879f,
+0.220215f, -0.515137f, 0.21875f, -0.504395f, 0.216797f, -0.490479f, 0.214844f, -0.476562f,
+0.212402f, -0.462158f, 0.209961f, -0.447754f, 0.208008f, -0.437988f, 0.209473f, -0.437988f,
+0.242676f, -0.484375f, 0.288086f, -0.51123f, 0.333496f, -0.538086f, 0.397949f, -0.538086f,
+0.464844f, -0.538086f, 0.500488f, -0.508545f, 0.536133f, -0.479004f, 0.536133f, -0.414062f,
+0.536133f, -0.399902f, 0.534424f, -0.384521f, 0.532715f, -0.369141f, 0.529297f, -0.352051f,
+0.460938f, 0, 0.535645f, -0.264648f, 0.522461f, -0.195312f, 0.496094f, -0.143799f,
+0.469727f, -0.0922852f, 0.432373f, -0.0581055f, 0.39502f, -0.0239258f, 0.347412f,
+-0.00708008f, 0.299805f, 0.00976562f, 0.244141f, 0.00976562f, 0.200195f, 0.00976562f,
+0.165039f, -0.00170898f, 0.129883f, -0.0131836f, 0.105225f, -0.0366211f, 0.0805664f,
+-0.0600586f, 0.067627f, -0.0957031f, 0.0546875f, -0.131348f, 0.0546875f, -0.179199f,
+0.0546875f, -0.217773f, 0.0634766f, -0.264648f, 0.090332f, -0.400879f, 0.165283f,
+-0.469482f, 0.240234f, -0.538086f, 0.353516f, -0.538086f, 0.450684f, -0.538086f,
+0.498047f, -0.493164f, 0.54541f, -0.448242f, 0.54541f, -0.357422f, 0.54541f, -0.336426f,
+0.543213f, -0.313477f, 0.541016f, -0.290527f, 0.535645f, -0.264648f, 0.443359f, -0.264648f,
+0.448242f, -0.290039f, 0.450684f, -0.311523f, 0.453125f, -0.333008f, 0.453125f, -0.351562f,
+0.453125f, -0.386719f, 0.445068f, -0.409912f, 0.437012f, -0.433105f, 0.422363f, -0.447266f,
+0.407715f, -0.461426f, 0.387451f, -0.467285f, 0.367188f, -0.473145f, 0.342285f, -0.473145f,
+0.310547f, -0.473145f, 0.281738f, -0.463135f, 0.25293f, -0.453125f, 0.22876f, -0.428955f,
+0.20459f, -0.404785f, 0.186035f, -0.364746f, 0.16748f, -0.324707f, 0.155762f, -0.264648f,
+0.150879f, -0.240723f, 0.148926f, -0.220215f, 0.146973f, -0.199707f, 0.146973f, -0.182129f,
+0.146973f, -0.145508f, 0.155518f, -0.121094f, 0.164062f, -0.0966797f, 0.178955f,
+-0.0820312f, 0.193848f, -0.0673828f, 0.213623f, -0.0612793f, 0.233398f, -0.0551758f,
+0.255859f, -0.0551758f, 0.287598f, -0.0551758f, 0.316406f, -0.0646973f, 0.345215f,
+-0.0742188f, 0.369385f, -0.0981445f, 0.393555f, -0.12207f, 0.412598f, -0.162598f,
+0.431641f, -0.203125f, 0.443359f, -0.264648f, 0.532715f, -0.266602f, 0.520996f, -0.206543f,
+0.501465f, -0.155762f, 0.481934f, -0.10498f, 0.452393f, -0.0683594f, 0.422852f, -0.0317383f,
+0.38208f, -0.0109863f, 0.341309f, 0.00976562f, 0.287598f, 0.00976562f, 0.260742f,
+0.00976562f, 0.237061f, 0.00488281f, 0.213379f, 0, 0.194824f, -0.0107422f, 0.17627f,
+-0.0214844f, 0.163086f, -0.0385742f, 0.149902f, -0.0556641f, 0.143555f, -0.0800781f,
+0.141113f, -0.0800781f, 0.141113f, -0.0791016f, 0.140137f, -0.0715332f, 0.13916f,
+-0.0639648f, 0.137207f, -0.0527344f, 0.135254f, -0.0415039f, 0.132812f, -0.0273438f,
+0.130371f, -0.0131836f, 0.127441f, 0.000976562f, 0.0869141f, 0.20752f, -0.00146484f,
+0.20752f, 0.120605f, -0.418945f, 0.124512f, -0.438477f, 0.127686f, -0.456543f, 0.130859f,
+-0.474609f, 0.133057f, -0.489014f, 0.135254f, -0.503418f, 0.136719f, -0.513672f,
+0.138184f, -0.523926f, 0.138672f, -0.52832f, 0.224121f, -0.52832f, 0.224121f, -0.526855f,
+0.223389f, -0.517822f, 0.222656f, -0.508789f, 0.220947f, -0.496094f, 0.219238f, -0.483398f,
+0.217041f, -0.46875f, 0.214844f, -0.454102f, 0.212402f, -0.441406f, 0.214355f, -0.441406f,
+0.231445f, -0.466797f, 0.250488f, -0.485352f, 0.269531f, -0.503906f, 0.291504f, -0.515869f,
+0.313477f, -0.527832f, 0.338867f, -0.533447f, 0.364258f, -0.539062f, 0.394531f, -0.539062f,
+0.435547f, -0.539062f, 0.464111f, -0.527588f, 0.492676f, -0.516113f, 0.510498f, -0.494873f,
+0.52832f, -0.473633f, 0.536621f, -0.443359f, 0.544922f, -0.413086f, 0.544922f, -0.375f,
+0.544922f, -0.350098f, 0.541748f, -0.323242f, 0.538574f, -0.296387f, 0.532715f, -0.266602f,
+0.441895f, -0.266602f, 0.453125f, -0.322754f, 0.453125f, -0.362793f, 0.453125f, -0.415527f,
+0.431396f, -0.443359f, 0.409668f, -0.471191f, 0.358398f, -0.471191f, 0.32959f, -0.471191f,
+0.30249f, -0.462158f, 0.275391f, -0.453125f, 0.251953f, -0.429443f, 0.228516f, -0.405762f,
+0.209229f, -0.36377f, 0.189941f, -0.321777f, 0.177246f, -0.255859f, 0.16748f, -0.205566f,
+0.16748f, -0.170898f, 0.16748f, -0.13916f, 0.174805f, -0.116943f, 0.182129f, -0.0947266f,
+0.196045f, -0.0810547f, 0.209961f, -0.0673828f, 0.230225f, -0.0612793f, 0.250488f,
+-0.0551758f, 0.276367f, -0.0551758f, 0.312012f, -0.0551758f, 0.338623f, -0.0690918f,
+0.365234f, -0.0830078f, 0.38501f, -0.109863f, 0.404785f, -0.136719f, 0.418457f, -0.17627f,
+0.432129f, -0.21582f, 0.441895f, -0.266602f, 0.311035f, -0.536133f, 0.343262f, -0.536133f,
+0.367188f, -0.530762f, 0.391113f, -0.525391f, 0.408203f, -0.51416f, 0.425293f, -0.50293f,
+0.437012f, -0.486084f, 0.44873f, -0.469238f, 0.456055f, -0.446289f, 0.457031f, -0.446289f,
+0.459473f, -0.458496f, 0.462646f, -0.472412f, 0.46582f, -0.486328f, 0.469238f, -0.498291f,
+0.472656f, -0.510254f, 0.475342f, -0.518799f, 0.478027f, -0.527344f, 0.479004f, -0.528809f,
+0.564453f, -0.528809f, 0.562988f, -0.524414f, 0.560547f, -0.514648f, 0.558105f, -0.504883f,
+0.554443f, -0.488281f, 0.550781f, -0.47168f, 0.545898f, -0.447754f, 0.541016f, -0.423828f,
+0.534668f, -0.391113f, 0.417969f, 0.20752f, 0.32959f, 0.20752f, 0.371582f, -0.00683594f,
+0.374023f, -0.0195312f, 0.377197f, -0.0336914f, 0.380371f, -0.0478516f, 0.382812f,
+-0.0605469f, 0.385742f, -0.0751953f, 0.38916f, -0.0888672f, 0.388184f, -0.0888672f,
+0.371094f, -0.0639648f, 0.352295f, -0.0449219f, 0.333496f, -0.0258789f, 0.311279f,
+-0.0129395f, 0.289062f, 0, 0.262939f, 0.00634766f, 0.236816f, 0.0126953f, 0.205078f,
+0.0126953f, 0.12793f, 0.0126953f, 0.0913086f, -0.0283203f, 0.0546875f, -0.0693359f,
+0.0546875f, -0.151855f, 0.0546875f, -0.199219f, 0.0664062f, -0.259766f, 0.0932617f,
+-0.397461f, 0.153809f, -0.466797f, 0.214355f, -0.536133f, 0.311035f, -0.536133f,
+0.422852f, -0.270508f, 0.427734f, -0.294922f, 0.429932f, -0.315674f, 0.432129f, -0.336426f,
+0.432129f, -0.354004f, 0.432129f, -0.387207f, 0.424561f, -0.409668f, 0.416992f, -0.432129f,
+0.402832f, -0.445801f, 0.388672f, -0.459473f, 0.368408f, -0.465332f, 0.348145f, -0.471191f,
+0.323242f, -0.471191f, 0.290039f, -0.471191f, 0.26416f, -0.45874f, 0.238281f, -0.446289f,
+0.218018f, -0.420654f, 0.197754f, -0.39502f, 0.183105f, -0.355713f, 0.168457f, -0.316406f,
+0.158203f, -0.262695f, 0.152832f, -0.234863f, 0.150146f, -0.211182f, 0.147461f, -0.1875f,
+0.147461f, -0.166992f, 0.147461f, -0.11084f, 0.169678f, -0.0830078f, 0.191895f, -0.0551758f,
+0.241211f, -0.0551758f, 0.27002f, -0.0551758f, 0.297363f, -0.0646973f, 0.324707f,
+-0.0742188f, 0.348389f, -0.0983887f, 0.37207f, -0.122559f, 0.391113f, -0.164307f,
+0.410156f, -0.206055f, 0.422852f, -0.270508f, 0.545898f, -0.448242f, 0.523926f, -0.452148f,
+0.499268f, -0.454834f, 0.474609f, -0.45752f, 0.444336f, -0.45752f, 0.40332f, -0.45752f,
+0.367432f, -0.440918f, 0.331543f, -0.424316f, 0.303467f, -0.395752f, 0.275391f, -0.367188f,
+0.256104f, -0.329102f, 0.236816f, -0.291016f, 0.228516f, -0.248047f, 0.180176f, 0,
+0.0922852f, 0, 0.158691f, -0.342285f, 0.165527f, -0.379395f, 0.168213f, -0.416748f,
+0.170898f, -0.454102f, 0.170898f, -0.483398f, 0.170898f, -0.497559f, 0.17041f, -0.509033f,
+0.169922f, -0.520508f, 0.169434f, -0.52832f, 0.25293f, -0.52832f, 0.254395f, -0.516113f,
+0.255127f, -0.499756f, 0.255859f, -0.483398f, 0.255859f, -0.46582f, 0.255859f, -0.450195f,
+0.255127f, -0.435059f, 0.254395f, -0.419922f, 0.25293f, -0.40625f, 0.255371f, -0.40625f,
+0.274902f, -0.436523f, 0.294678f, -0.460938f, 0.314453f, -0.485352f, 0.338623f, -0.502441f,
+0.362793f, -0.519531f, 0.392822f, -0.528809f, 0.422852f, -0.538086f, 0.462891f, -0.538086f,
+0.490234f, -0.538086f, 0.516357f, -0.535645f, 0.54248f, -0.533203f, 0.562012f, -0.529785f,
+0.495605f, -0.150879f, 0.488281f, -0.11377f, 0.468262f, -0.0839844f, 0.448242f, -0.0541992f,
+0.416748f, -0.0334473f, 0.385254f, -0.0126953f, 0.343262f, -0.00146484f, 0.30127f,
+0.00976562f, 0.25f, 0.00976562f, 0.204102f, 0.00976562f, 0.168457f, 0.00317383f,
+0.132812f, -0.00341797f, 0.10791f, -0.0185547f, 0.0830078f, -0.0336914f, 0.0693359f,
+-0.0588379f, 0.0556641f, -0.0839844f, 0.0537109f, -0.121094f, 0.134277f, -0.13623f,
+0.135254f, -0.109375f, 0.14502f, -0.0935059f, 0.154785f, -0.0776367f, 0.171631f,
+-0.0693359f, 0.188477f, -0.0610352f, 0.21167f, -0.0583496f, 0.234863f, -0.0556641f,
+0.262695f, -0.0556641f, 0.291016f, -0.0556641f, 0.315918f, -0.0598145f, 0.34082f,
+-0.0639648f, 0.360352f, -0.0739746f, 0.379883f, -0.0839844f, 0.393066f, -0.0998535f,
+0.40625f, -0.115723f, 0.410645f, -0.13916f, 0.412109f, -0.147461f, 0.412109f, -0.153809f,
+0.412109f, -0.172852f, 0.400879f, -0.185303f, 0.389648f, -0.197754f, 0.370361f, -0.206543f,
+0.351074f, -0.215332f, 0.324951f, -0.222412f, 0.298828f, -0.229492f, 0.268555f, -0.237793f,
+0.241699f, -0.245117f, 0.215576f, -0.253662f, 0.189453f, -0.262207f, 0.168945f, -0.275146f,
+0.148438f, -0.288086f, 0.135742f, -0.307373f, 0.123047f, -0.32666f, 0.123047f, -0.355469f,
+0.123047f, -0.368652f, 0.125977f, -0.383789f, 0.132812f, -0.419922f, 0.151611f, -0.448242f,
+0.17041f, -0.476562f, 0.199707f, -0.496094f, 0.229004f, -0.515625f, 0.268799f, -0.526123f,
+0.308594f, -0.536621f, 0.357422f, -0.536621f, 0.395996f, -0.536621f, 0.428223f, -0.529541f,
+0.460449f, -0.522461f, 0.483887f, -0.50708f, 0.507324f, -0.491699f, 0.520508f, -0.467529f,
+0.533691f, -0.443359f, 0.533691f, -0.409668f, 0.452637f, -0.399902f, 0.453125f, -0.421875f,
+0.444824f, -0.435547f, 0.436523f, -0.449219f, 0.421875f, -0.457275f, 0.407227f, -0.465332f,
+0.387207f, -0.468262f, 0.367188f, -0.471191f, 0.344727f, -0.471191f, 0.225098f, -0.471191f,
+0.210449f, -0.397461f, 0.208984f, -0.389648f, 0.208984f, -0.382812f, 0.208984f, -0.365234f,
+0.218506f, -0.35376f, 0.228027f, -0.342285f, 0.245117f, -0.334473f, 0.262207f, -0.32666f,
+0.285645f, -0.320557f, 0.309082f, -0.314453f, 0.336426f, -0.307129f, 0.36377f, -0.299805f,
+0.392578f, -0.290771f, 0.421387f, -0.281738f, 0.444824f, -0.267578f, 0.468262f, -0.253418f,
+0.483398f, -0.232178f, 0.498535f, -0.210938f, 0.498535f, -0.178711f, 0.498535f, -0.165527f,
+0.495605f, -0.150879f, 0.130859f, -0.458984f, 0.144043f, -0.52832f, 0.227051f, -0.52832f,
+0.282227f, -0.666016f, 0.34082f, -0.666016f, 0.313965f, -0.52832f, 0.524902f, -0.52832f,
+0.511719f, -0.458984f, 0.300781f, -0.458984f, 0.23877f, -0.140625f, 0.237793f, -0.134766f,
+0.237061f, -0.129395f, 0.236328f, -0.124023f, 0.236328f, -0.119141f, 0.236328f, -0.0913086f,
+0.254883f, -0.078125f, 0.273438f, -0.0649414f, 0.312988f, -0.0649414f, 0.33252f,
+-0.0649414f, 0.353516f, -0.0666504f, 0.374512f, -0.0683594f, 0.394287f, -0.0708008f,
+0.414062f, -0.0732422f, 0.431396f, -0.0761719f, 0.44873f, -0.0791016f, 0.460938f,
+-0.081543f, 0.448242f, -0.0146484f, 0.437012f, -0.0117188f, 0.419189f, -0.0078125f,
+0.401367f, -0.00390625f, 0.379395f, -0.000488281f, 0.357422f, 0.00292969f, 0.332031f,
+0.00537109f, 0.306641f, 0.0078125f, 0.280273f, 0.0078125f, 0.212402f, 0.0078125f,
+0.178711f, -0.0163574f, 0.14502f, -0.0405273f, 0.14502f, -0.0922852f, 0.14502f, -0.101074f,
+0.145752f, -0.11084f, 0.146484f, -0.120605f, 0.148926f, -0.131348f, 0.212891f, -0.458984f,
+0.229492f, -0.52832f, 0.164551f, -0.193359f, 0.161133f, -0.175781f, 0.159424f, -0.160889f,
+0.157715f, -0.145996f, 0.157715f, -0.133301f, 0.157715f, -0.112305f, 0.162842f, -0.0979004f,
+0.167969f, -0.0834961f, 0.178955f, -0.074707f, 0.189941f, -0.065918f, 0.207031f,
+-0.0620117f, 0.224121f, -0.0581055f, 0.247559f, -0.0581055f, 0.278809f, -0.0581055f,
+0.306152f, -0.0690918f, 0.333496f, -0.0800781f, 0.355225f, -0.10083f, 0.376953f,
+-0.121582f, 0.392578f, -0.1521f, 0.408203f, -0.182617f, 0.415527f, -0.222168f, 0.475098f,
+-0.52832f, 0.563477f, -0.52832f, 0.48291f, -0.112793f, 0.479492f, -0.0961914f, 0.476318f,
+-0.0778809f, 0.473145f, -0.0595703f, 0.470459f, -0.0432129f, 0.467773f, -0.0268555f,
+0.46582f, -0.0151367f, 0.463867f, -0.00341797f, 0.463867f, 0, 0.380859f, 0, 0.380859f,
+-0.00244141f, 0.382324f, -0.0131836f, 0.383789f, -0.0239258f, 0.385986f, -0.0378418f,
+0.388184f, -0.0517578f, 0.390381f, -0.0661621f, 0.392578f, -0.0805664f, 0.394531f,
+-0.090332f, 0.393066f, -0.090332f, 0.375977f, -0.0673828f, 0.357178f, -0.0488281f,
+0.338379f, -0.0302734f, 0.315674f, -0.017334f, 0.292969f, -0.00439453f, 0.265869f,
+0.00268555f, 0.23877f, 0.00976562f, 0.20459f, 0.00976562f, 0.133301f, 0.00976562f,
+0.0996094f, -0.0185547f, 0.065918f, -0.046875f, 0.065918f, -0.108887f, 0.065918f,
+-0.138184f, 0.0732422f, -0.17627f, 0.141602f, -0.52832f, 0.297852f, 0, 0.193848f,
+0, 0.0849609f, -0.52832f, 0.183594f, -0.52832f, 0.247559f, -0.18457f, 0.249023f,
+-0.173828f, 0.250732f, -0.158447f, 0.252441f, -0.143066f, 0.253906f, -0.126465f,
+0.255371f, -0.109863f, 0.256592f, -0.0944824f, 0.257812f, -0.0791016f, 0.258789f,
+-0.0688477f, 0.26416f, -0.0791016f, 0.271484f, -0.0944824f, 0.278809f, -0.109863f,
+0.287109f, -0.125977f, 0.29541f, -0.14209f, 0.303467f, -0.157471f, 0.311523f, -0.172852f,
+0.317383f, -0.183594f, 0.519043f, -0.52832f, 0.617188f, -0.52832f, 0.445801f, 0,
+0.346191f, 0, 0.321289f, -0.22998f, 0.319824f, -0.243164f, 0.318359f, -0.26001f,
+0.316895f, -0.276855f, 0.31543f, -0.29248f, 0.313477f, -0.310547f, 0.3125f, -0.328613f,
+0.304688f, -0.310547f, 0.295898f, -0.292969f, 0.288574f, -0.277832f, 0.280273f, -0.260498f,
+0.271973f, -0.243164f, 0.26416f, -0.228027f, 0.147461f, 0, 0.0483398f, 0, 0.0615234f,
+-0.52832f, 0.148438f, -0.52832f, 0.13623f, -0.231934f, 0.135742f, -0.220215f, 0.134277f,
+-0.199463f, 0.132812f, -0.178711f, 0.130859f, -0.155273f, 0.128906f, -0.131836f,
+0.126709f, -0.109375f, 0.124512f, -0.0869141f, 0.121582f, -0.0727539f, 0.131836f,
+-0.0947266f, 0.140625f, -0.114746f, 0.148438f, -0.131836f, 0.156738f, -0.149658f,
+0.165039f, -0.16748f, 0.17041f, -0.177246f, 0.276367f, -0.384277f, 0.370605f, -0.384277f,
+0.393555f, -0.176758f, 0.394531f, -0.166992f, 0.395752f, -0.149658f, 0.396973f, -0.132324f,
+0.397949f, -0.115234f, 0.399414f, -0.0952148f, 0.400391f, -0.0727539f, 0.40332f,
+-0.0874023f, 0.409668f, -0.109375f, 0.416016f, -0.131348f, 0.42334f, -0.154541f,
+0.430664f, -0.177734f, 0.4375f, -0.19873f, 0.444336f, -0.219727f, 0.448242f, -0.231934f,
+0.555176f, -0.52832f, 0.641113f, -0.52832f, 0.403809f, 0, 0.289062f, -0.216797f,
+0.0893555f, 0, -0.00537109f, 0, 0.25f, -0.271484f, 0.105957f, -0.52832f, 0.203125f,
+-0.52832f, 0.30957f, -0.322754f, 0.495117f, -0.52832f, 0.593262f, -0.52832f, 0.349609f,
+-0.272461f, 0.501953f, 0, 0.292969f, 0, 0.265137f, 0.0478516f, 0.238281f, 0.0861816f,
+0.211426f, 0.124512f, 0.182373f, 0.151611f, 0.15332f, 0.178711f, 0.121094f, 0.193115f,
+0.0888672f, 0.20752f, 0.0507812f, 0.20752f, 0.0341797f, 0.20752f, 0.0205078f, 0.206543f,
+0.00683594f, 0.205566f, -0.00830078f, 0.202148f, 0.00439453f, 0.13623f, 0.0131836f,
+0.137695f, 0.0249023f, 0.138428f, 0.0366211f, 0.13916f, 0.0449219f, 0.13916f, 0.0834961f,
+0.13916f, 0.123047f, 0.110352f, 0.162598f, 0.081543f, 0.198242f, 0.0185547f, 0.211426f,
+-0.00537109f, 0.0834961f, -0.52832f, 0.177246f, -0.52832f, 0.245605f, -0.214844f,
+0.248535f, -0.20166f, 0.252441f, -0.182373f, 0.256348f, -0.163086f, 0.26001f, -0.144287f,
+0.263672f, -0.125488f, 0.266357f, -0.110352f, 0.269043f, -0.0952148f, 0.269043f,
+-0.0908203f, 0.271484f, -0.0961914f, 0.280029f, -0.111084f, 0.288574f, -0.125977f,
+0.299561f, -0.144287f, 0.310547f, -0.162598f, 0.322021f, -0.181885f, 0.333496f, -0.201172f,
+0.341797f, -0.215332f, 0.525391f, -0.52832f, 0.618164f, -0.52832f, 0.0205078f, 0,
+0.0336914f, -0.0668945f, 0.442383f, -0.460449f, 0.129395f, -0.460449f, 0.142578f,
+-0.52832f, 0.554688f, -0.52832f, 0.541992f, -0.461426f, 0.132324f, -0.0678711f, 0.483398f,
+-0.0678711f, 0.470215f, 0, 0.296875f, 0.20752f, 0.269531f, 0.20752f, 0.247559f, 0.199463f,
+0.225586f, 0.191406f, 0.210205f, 0.176758f, 0.194824f, 0.162109f, 0.186768f, 0.141113f,
+0.178711f, 0.120117f, 0.178711f, 0.0942383f, 0.178711f, 0.0859375f, 0.179443f, 0.0773926f,
+0.180176f, 0.0688477f, 0.182129f, 0.0595703f, 0.21582f, -0.111816f, 0.216797f, -0.118652f,
+0.217529f, -0.124756f, 0.218262f, -0.130859f, 0.218262f, -0.13623f, 0.218262f, -0.160156f,
+0.20874f, -0.176514f, 0.199219f, -0.192871f, 0.183105f, -0.203369f, 0.166992f, -0.213867f,
+0.14624f, -0.218994f, 0.125488f, -0.224121f, 0.103516f, -0.225098f, 0.116211f, -0.291992f,
+0.141602f, -0.292969f, 0.166992f, -0.299316f, 0.192383f, -0.305664f, 0.213867f, -0.319092f,
+0.235352f, -0.33252f, 0.250977f, -0.353516f, 0.266602f, -0.374512f, 0.272461f, -0.404785f,
+0.306152f, -0.57666f, 0.312988f, -0.61084f, 0.328613f, -0.638184f, 0.344238f, -0.665527f,
+0.366943f, -0.684814f, 0.389648f, -0.704102f, 0.417969f, -0.714355f, 0.446289f, -0.724609f,
+0.478027f, -0.724609f, 0.607422f, -0.724609f, 0.594238f, -0.656738f, 0.490234f, -0.656738f,
+0.468262f, -0.656738f, 0.451416f, -0.651611f, 0.43457f, -0.646484f, 0.422363f, -0.635254f,
+0.410156f, -0.624023f, 0.401855f, -0.605957f, 0.393555f, -0.587891f, 0.388672f, -0.561523f,
+0.355469f, -0.392578f, 0.350098f, -0.364746f, 0.335693f, -0.342285f, 0.321289f, -0.319824f,
+0.302002f, -0.302979f, 0.282715f, -0.286133f, 0.260254f, -0.275391f, 0.237793f, -0.264648f,
+0.216797f, -0.259766f, 0.216797f, -0.258789f, 0.234375f, -0.254395f, 0.250488f, -0.245361f,
+0.266602f, -0.236328f, 0.279053f, -0.2229f, 0.291504f, -0.209473f, 0.298828f, -0.19165f,
+0.306152f, -0.173828f, 0.306152f, -0.151367f, 0.306152f, -0.14502f, 0.305664f, -0.138428f,
+0.305176f, -0.131836f, 0.303711f, -0.125f, 0.270508f, 0.0444336f, 0.268555f, 0.0546875f,
+0.267578f, 0.0637207f, 0.266602f, 0.0727539f, 0.266602f, 0.0805664f, 0.266602f, 0.112305f,
+0.283203f, 0.125977f, 0.299805f, 0.139648f, 0.335449f, 0.139648f, 0.439453f, 0.139648f,
+0.42627f, 0.20752f, 0.259277f, 0.20752f, 0.259277f, -0.724609f, 0.340332f, -0.724609f,
+0.340332f, 0.20752f, -0.0102539f, 0.20752f, 0.00292969f, 0.139648f, 0.106934f, 0.139648f,
+0.151367f, 0.139648f, 0.175537f, 0.11792f, 0.199707f, 0.0961914f, 0.209473f, 0.0444336f,
+0.242676f, -0.125f, 0.248047f, -0.15332f, 0.262207f, -0.176025f, 0.276367f, -0.19873f,
+0.29541f, -0.215332f, 0.314453f, -0.231934f, 0.33667f, -0.24292f, 0.358887f, -0.253906f,
+0.380859f, -0.258789f, 0.380859f, -0.259766f, 0.36377f, -0.26416f, 0.3479f, -0.272949f,
+0.332031f, -0.281738f, 0.31958f, -0.29541f, 0.307129f, -0.309082f, 0.299561f, -0.326904f,
+0.291992f, -0.344727f, 0.291992f, -0.367188f, 0.291992f, -0.373047f, 0.292725f, -0.379395f,
+0.293457f, -0.385742f, 0.294434f, -0.392578f, 0.327637f, -0.561523f, 0.32959f, -0.571777f,
+0.330566f, -0.580811f, 0.331543f, -0.589844f, 0.331543f, -0.597656f, 0.331543f, -0.629883f,
+0.314453f, -0.643311f, 0.297363f, -0.656738f, 0.261719f, -0.656738f, 0.157715f, -0.656738f,
+0.170898f, -0.724609f, 0.300293f, -0.724609f, 0.355469f, -0.724609f, 0.387207f, -0.694824f,
+0.418945f, -0.665039f, 0.418945f, -0.612305f, 0.418945f, -0.604004f, 0.418213f, -0.595215f,
+0.41748f, -0.586426f, 0.415527f, -0.57666f, 0.381836f, -0.404785f, 0.380859f, -0.397949f,
+0.380127f, -0.39209f, 0.379395f, -0.38623f, 0.379395f, -0.380859f, 0.379395f, -0.357422f,
+0.388916f, -0.341064f, 0.398438f, -0.324707f, 0.414307f, -0.313965f, 0.430176f, -0.303223f,
+0.450928f, -0.298096f, 0.47168f, -0.292969f, 0.494141f, -0.291992f, 0.481445f, -0.225098f,
+0.456055f, -0.224121f, 0.430664f, -0.217773f, 0.405273f, -0.211426f, 0.383789f, -0.198242f,
+0.362305f, -0.185059f, 0.34668f, -0.163818f, 0.331055f, -0.142578f, 0.325195f, -0.111816f,
+0.291504f, 0.0595703f, 0.285156f, 0.0927734f, 0.269287f, 0.119873f, 0.253418f, 0.146973f,
+0.230713f, 0.166504f, 0.208008f, 0.186035f, 0.179443f, 0.196777f, 0.150879f, 0.20752f,
+0.119141f, 0.20752f, 0.206543f, -0.394043f, 0.246094f, -0.394043f, 0.281738f, -0.382812f,
+0.317383f, -0.371582f, 0.350586f, -0.358887f, 0.370117f, -0.351562f, 0.394775f, -0.344238f,
+0.419434f, -0.336914f, 0.441895f, -0.336914f, 0.475586f, -0.336914f, 0.508057f, -0.349121f,
+0.540527f, -0.361328f, 0.569824f, -0.381836f, 0.555664f, -0.309082f, 0.538086f, -0.29834f,
+0.522217f, -0.290771f, 0.506348f, -0.283203f, 0.490234f, -0.278564f, 0.474121f, -0.273926f,
+0.457275f, -0.271973f, 0.44043f, -0.27002f, 0.420898f, -0.27002f, 0.387207f, -0.27002f,
+0.354004f, -0.280762f, 0.320801f, -0.291504f, 0.287598f, -0.304199f, 0.229004f, -0.326172f,
+0.186035f, -0.326172f, 0.16748f, -0.326172f, 0.150879f, -0.323242f, 0.134277f, -0.320312f,
+0.118652f, -0.314697f, 0.103027f, -0.309082f, 0.0878906f, -0.30127f, 0.0727539f,
+-0.293457f, 0.0566406f, -0.283203f, 0.0703125f, -0.353027f, 0.0981445f, -0.371582f,
+0.132568f, -0.382812f, 0.166992f, -0.394043f, 0.206543f, -0.394043f
+};
+
+const unsigned char LiberationMonoItalicVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5,
+0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
+101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoItalicWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoItalicMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.798828f, 0.0124817f,
+-0.0942383f, 0.70459f, 0.538086f, 0.0104446f, 0.0410156f, 0.23291f
+};
+
+const SkScalar LiberationMonoBoldItalicPoints[] = {
+0.0717773f, 0, 0.0717773f, -0.658691f, 0.52832f, -0.658691f, 0.52832f, 0, 0.470215f,
+-0.600586f, 0.129883f, -0.600586f, 0.129883f, -0.0581055f, 0.470215f, -0.0581055f,
+0.345703f, -0.208008f, 0.233398f, -0.208008f, 0.305176f, -0.658691f, 0.44873f, -0.658691f,
+0.177246f, 0, 0.202637f, -0.131836f, 0.343262f, -0.131836f, 0.317871f, 0, 0.48877f,
+-0.412109f, 0.391602f, -0.412109f, 0.43457f, -0.725098f, 0.568848f, -0.725098f, 0.266113f,
+-0.412109f, 0.168945f, -0.412109f, 0.211914f, -0.725098f, 0.345215f, -0.725098f,
+0.492188f, -0.407715f, 0.427734f, -0.249512f, 0.543457f, -0.249512f, 0.529297f, -0.176758f,
+0.397461f, -0.176758f, 0.325195f, 0, 0.249512f, 0, 0.322266f, -0.176758f, 0.171387f,
+-0.176758f, 0.0991211f, 0, 0.0244141f, 0, 0.0966797f, -0.176758f, 0.0117188f, -0.176758f,
+0.0258789f, -0.249512f, 0.126465f, -0.249512f, 0.191406f, -0.407715f, 0.0805664f,
+-0.407715f, 0.0947266f, -0.47998f, 0.221191f, -0.47998f, 0.294434f, -0.658691f, 0.369141f,
+-0.658691f, 0.296387f, -0.47998f, 0.446777f, -0.47998f, 0.52002f, -0.658691f, 0.594727f,
+-0.658691f, 0.521973f, -0.47998f, 0.612305f, -0.47998f, 0.598145f, -0.407715f, 0.266113f,
+-0.407715f, 0.201172f, -0.249512f, 0.352051f, -0.249512f, 0.416992f, -0.407715f,
+0.54834f, -0.191895f, 0.540527f, -0.150391f, 0.520264f, -0.116455f, 0.5f, -0.0825195f,
+0.466553f, -0.0578613f, 0.433105f, -0.0332031f, 0.385986f, -0.0187988f, 0.338867f,
+-0.00439453f, 0.276855f, -0.00195312f, 0.260254f, 0.0834961f, 0.207031f, 0.0834961f,
+0.223145f, -0.000488281f, 0.167969f, -0.00244141f, 0.129395f, -0.015625f, 0.0908203f,
+-0.0288086f, 0.0664062f, -0.0527344f, 0.0419922f, -0.0766602f, 0.0307617f, -0.111084f,
+0.0195312f, -0.145508f, 0.0195312f, -0.189941f, 0.148926f, -0.212891f, 0.148438f,
+-0.189453f, 0.1521f, -0.170166f, 0.155762f, -0.150879f, 0.16626f, -0.136719f, 0.176758f,
+-0.122559f, 0.195068f, -0.113525f, 0.213379f, -0.104492f, 0.242676f, -0.101562f,
+0.279785f, -0.29248f, 0.278809f, -0.293457f, 0.273193f, -0.294678f, 0.267578f, -0.295898f,
+0.265625f, -0.295898f, 0.233398f, -0.303711f, 0.203125f, -0.314697f, 0.172852f, -0.325684f,
+0.149414f, -0.343018f, 0.125977f, -0.360352f, 0.111572f, -0.385986f, 0.097168f, -0.411621f,
+0.097168f, -0.449219f, 0.097168f, -0.470703f, 0.102051f, -0.493652f, 0.11084f, -0.538086f,
+0.132812f, -0.570068f, 0.154785f, -0.602051f, 0.187744f, -0.623047f, 0.220703f, -0.644043f,
+0.262695f, -0.654785f, 0.304688f, -0.665527f, 0.353027f, -0.66748f, 0.365723f, -0.73291f,
+0.418945f, -0.73291f, 0.40625f, -0.66748f, 0.45752f, -0.665527f, 0.492432f, -0.653809f,
+0.527344f, -0.64209f, 0.549072f, -0.62085f, 0.570801f, -0.599609f, 0.581055f, -0.568604f,
+0.591309f, -0.537598f, 0.593262f, -0.496582f, 0.460449f, -0.477539f, 0.461914f, -0.561523f,
+0.387695f, -0.571777f, 0.354004f, -0.399902f, 0.356445f, -0.398926f, 0.359131f, -0.398926f,
+0.361816f, -0.398926f, 0.364258f, -0.397949f, 0.399902f, -0.38916f, 0.433838f, -0.378174f,
+0.467773f, -0.367188f, 0.494385f, -0.349121f, 0.520996f, -0.331055f, 0.537109f, -0.304199f,
+0.553223f, -0.277344f, 0.553223f, -0.236816f, 0.553223f, -0.226562f, 0.552002f, -0.215332f,
+0.550781f, -0.204102f, 0.54834f, -0.191895f, 0.334473f, -0.57373f, 0.308105f, -0.571777f,
+0.289795f, -0.564941f, 0.271484f, -0.558105f, 0.259033f, -0.547607f, 0.246582f, -0.537109f,
+0.239746f, -0.523682f, 0.23291f, -0.510254f, 0.22998f, -0.495605f, 0.228027f, -0.486328f,
+0.228027f, -0.477051f, 0.228027f, -0.461914f, 0.233887f, -0.451904f, 0.239746f, -0.441895f,
+0.249756f, -0.434814f, 0.259766f, -0.427734f, 0.273438f, -0.422607f, 0.287109f, -0.41748f,
+0.303223f, -0.411621f, 0.421387f, -0.189941f, 0.42334f, -0.199219f, 0.42334f, -0.208984f,
+0.42334f, -0.226562f, 0.416016f, -0.237793f, 0.408691f, -0.249023f, 0.395996f, -0.256836f,
+0.383301f, -0.264648f, 0.366699f, -0.269775f, 0.350098f, -0.274902f, 0.331055f, -0.280762f,
+0.295898f, -0.101562f, 0.348633f, -0.10498f, 0.380859f, -0.125977f, 0.413086f, -0.146973f,
+0.421387f, -0.189941f, 0.0639648f, 0, -0.0214844f, 0, 0.562012f, -0.660645f, 0.648438f,
+-0.660645f, 0.220215f, -0.664551f, 0.243652f, -0.664551f, 0.26416f, -0.659424f, 0.284668f,
+-0.654297f, 0.299805f, -0.641846f, 0.314941f, -0.629395f, 0.323486f, -0.608887f,
+0.332031f, -0.588379f, 0.332031f, -0.557129f, 0.332031f, -0.532715f, 0.326172f, -0.500488f,
+0.317383f, -0.453613f, 0.300049f, -0.421875f, 0.282715f, -0.390137f, 0.26001f, -0.370605f,
+0.237305f, -0.351074f, 0.210205f, -0.342529f, 0.183105f, -0.333984f, 0.153809f, -0.333984f,
+0.129395f, -0.333984f, 0.108398f, -0.339844f, 0.0874023f, -0.345703f, 0.0722656f,
+-0.358887f, 0.0571289f, -0.37207f, 0.048584f, -0.393311f, 0.0400391f, -0.414551f,
+0.0400391f, -0.445312f, 0.0400391f, -0.469727f, 0.0458984f, -0.500488f, 0.0551758f,
+-0.548828f, 0.0722656f, -0.580322f, 0.0893555f, -0.611816f, 0.112061f, -0.630615f,
+0.134766f, -0.649414f, 0.162354f, -0.656982f, 0.189941f, -0.664551f, 0.220215f, -0.664551f,
+0.240234f, -0.500488f, 0.243164f, -0.514648f, 0.244385f, -0.526611f, 0.245605f, -0.538574f,
+0.245605f, -0.54834f, 0.245605f, -0.576172f, 0.235352f, -0.587402f, 0.225098f, -0.598633f,
+0.206055f, -0.598633f, 0.178711f, -0.598633f, 0.160645f, -0.576416f, 0.142578f, -0.554199f,
+0.131836f, -0.500488f, 0.129395f, -0.486816f, 0.12793f, -0.475586f, 0.126465f, -0.464355f,
+0.126465f, -0.45459f, 0.126465f, -0.426758f, 0.136963f, -0.414551f, 0.147461f, -0.402344f,
+0.167969f, -0.402344f, 0.192383f, -0.402344f, 0.211182f, -0.425049f, 0.22998f, -0.447754f,
+0.240234f, -0.500488f, 0.474121f, -0.324707f, 0.497559f, -0.324707f, 0.518066f, -0.31958f,
+0.538574f, -0.314453f, 0.553711f, -0.302002f, 0.568848f, -0.289551f, 0.577637f, -0.268799f,
+0.586426f, -0.248047f, 0.586426f, -0.216797f, 0.586426f, -0.192383f, 0.580566f, -0.160645f,
+0.571289f, -0.11377f, 0.554199f, -0.0820312f, 0.537109f, -0.050293f, 0.514404f, -0.0307617f,
+0.491699f, -0.0112305f, 0.4646f, -0.00268555f, 0.4375f, 0.00585938f, 0.408203f, 0.00585938f,
+0.383789f, 0.00585938f, 0.362793f, 0, 0.341797f, -0.00585938f, 0.32666f, -0.019043f,
+0.311523f, -0.0322266f, 0.302979f, -0.0534668f, 0.294434f, -0.074707f, 0.294434f,
+-0.105469f, 0.294434f, -0.129883f, 0.300293f, -0.160645f, 0.30957f, -0.208984f, 0.32666f,
+-0.240479f, 0.34375f, -0.271973f, 0.366455f, -0.290771f, 0.38916f, -0.30957f, 0.416504f,
+-0.317139f, 0.443848f, -0.324707f, 0.474121f, -0.324707f, 0.494629f, -0.160645f,
+0.497559f, -0.174805f, 0.498779f, -0.186768f, 0.5f, -0.19873f, 0.5f, -0.208496f,
+0.5f, -0.236328f, 0.489746f, -0.247559f, 0.479492f, -0.258789f, 0.460449f, -0.258789f,
+0.433105f, -0.258789f, 0.415039f, -0.236572f, 0.396973f, -0.214355f, 0.38623f, -0.160645f,
+0.383789f, -0.146973f, 0.382324f, -0.135742f, 0.380859f, -0.124512f, 0.380859f, -0.114746f,
+0.380859f, -0.0869141f, 0.391357f, -0.074707f, 0.401855f, -0.0625f, 0.422363f, -0.0625f,
+0.446777f, -0.0625f, 0.465576f, -0.0852051f, 0.484375f, -0.10791f, 0.494629f, -0.160645f,
+-0.00439453f, -0.180176f, 0.00244141f, -0.214355f, 0.0197754f, -0.244385f, 0.0371094f,
+-0.274414f, 0.0620117f, -0.299805f, 0.0869141f, -0.325195f, 0.117676f, -0.345459f,
+0.148438f, -0.365723f, 0.181641f, -0.380371f, 0.175293f, -0.400879f, 0.171875f, -0.423096f,
+0.168457f, -0.445312f, 0.168457f, -0.467773f, 0.168457f, -0.479004f, 0.169434f, -0.489746f,
+0.17041f, -0.500488f, 0.172363f, -0.510742f, 0.178223f, -0.541504f, 0.193115f, -0.569092f,
+0.208008f, -0.59668f, 0.233154f, -0.617432f, 0.258301f, -0.638184f, 0.294189f, -0.650391f,
+0.330078f, -0.662598f, 0.378418f, -0.662598f, 0.410156f, -0.662598f, 0.436035f, -0.655273f,
+0.461914f, -0.647949f, 0.480469f, -0.633789f, 0.499023f, -0.619629f, 0.509033f, -0.599365f,
+0.519043f, -0.579102f, 0.519043f, -0.552734f, 0.519043f, -0.539551f, 0.516113f, -0.523926f,
+0.509766f, -0.490234f, 0.489258f, -0.463623f, 0.46875f, -0.437012f, 0.439453f, -0.415527f,
+0.410156f, -0.394043f, 0.374512f, -0.376221f, 0.338867f, -0.358398f, 0.302246f, -0.342773f,
+0.317383f, -0.302734f, 0.335693f, -0.266602f, 0.354004f, -0.230469f, 0.378418f, -0.195312f,
+0.404785f, -0.23291f, 0.425537f, -0.272217f, 0.446289f, -0.311523f, 0.461914f, -0.353516f,
+0.558594f, -0.340332f, 0.538086f, -0.285645f, 0.508545f, -0.231201f, 0.479004f, -0.176758f,
+0.441895f, -0.12793f, 0.458984f, -0.109863f, 0.47876f, -0.101074f, 0.498535f, -0.0922852f,
+0.517578f, -0.0922852f, 0.528809f, -0.0922852f, 0.541992f, -0.0944824f, 0.555176f,
+-0.0966797f, 0.564453f, -0.100586f, 0.545898f, -0.00488281f, 0.535156f, 0.000488281f,
+0.521729f, 0.00292969f, 0.508301f, 0.00537109f, 0.497559f, 0.00537109f, 0.473633f,
+0.00537109f, 0.453613f, 0.000732422f, 0.433594f, -0.00390625f, 0.416992f, -0.0114746f,
+0.400391f, -0.019043f, 0.386719f, -0.0292969f, 0.373047f, -0.0395508f, 0.361816f,
+-0.0507812f, 0.344238f, -0.0390625f, 0.323242f, -0.0280762f, 0.302246f, -0.0170898f,
+0.278809f, -0.00878906f, 0.255371f, -0.000488281f, 0.229248f, 0.00439453f, 0.203125f,
+0.00927734f, 0.174805f, 0.00927734f, 0.125977f, 0.00927734f, 0.0910645f, -0.0012207f,
+0.0561523f, -0.0117188f, 0.0339355f, -0.0307617f, 0.0117188f, -0.0498047f, 0.0012207f,
+-0.0761719f, -0.00927734f, -0.102539f, -0.00927734f, -0.134277f, -0.00927734f, -0.145508f,
+-0.00805664f, -0.156738f, -0.00683594f, -0.167969f, -0.00439453f, -0.180176f, 0.298828f,
+-0.116699f, 0.270996f, -0.156738f, 0.246826f, -0.200684f, 0.222656f, -0.244629f,
+0.205078f, -0.29248f, 0.188965f, -0.28418f, 0.174316f, -0.272949f, 0.159668f, -0.261719f,
+0.147461f, -0.247803f, 0.135254f, -0.233887f, 0.126709f, -0.217285f, 0.118164f, -0.200684f,
+0.114746f, -0.182129f, 0.113281f, -0.175293f, 0.112793f, -0.168945f, 0.112305f, -0.162598f,
+0.112305f, -0.15625f, 0.112305f, -0.139648f, 0.117188f, -0.125488f, 0.12207f, -0.111328f,
+0.132568f, -0.101074f, 0.143066f, -0.0908203f, 0.15918f, -0.0852051f, 0.175293f,
+-0.0795898f, 0.197266f, -0.0795898f, 0.212402f, -0.0795898f, 0.226807f, -0.0830078f,
+0.241211f, -0.0864258f, 0.25415f, -0.0915527f, 0.26709f, -0.0966797f, 0.278564f,
+-0.103516f, 0.290039f, -0.110352f, 0.298828f, -0.116699f, 0.411133f, -0.522949f,
+0.412598f, -0.53125f, 0.412598f, -0.538086f, 0.412598f, -0.558594f, 0.400146f, -0.571045f,
+0.387695f, -0.583496f, 0.361816f, -0.583496f, 0.325684f, -0.583496f, 0.302979f, -0.563232f,
+0.280273f, -0.542969f, 0.273926f, -0.509766f, 0.272461f, -0.50293f, 0.271973f, -0.49585f,
+0.271484f, -0.48877f, 0.271484f, -0.481445f, 0.271484f, -0.465332f, 0.27417f, -0.449463f,
+0.276855f, -0.433594f, 0.281738f, -0.419434f, 0.306152f, -0.429688f, 0.327881f, -0.440186f,
+0.349609f, -0.450684f, 0.366943f, -0.462891f, 0.384277f, -0.475098f, 0.395996f, -0.48999f,
+0.407715f, -0.504883f, 0.411133f, -0.522949f, 0.377441f, -0.412109f, 0.280273f, -0.412109f,
+0.323242f, -0.725098f, 0.456543f, -0.725098f, 0.221191f, 0.20752f, 0.185059f, 0.135254f,
+0.166992f, 0.0632324f, 0.148926f, -0.00878906f, 0.148926f, -0.0883789f, 0.148926f,
+-0.128418f, 0.153564f, -0.170654f, 0.158203f, -0.212891f, 0.166992f, -0.259277f,
+0.180664f, -0.329102f, 0.200928f, -0.389893f, 0.221191f, -0.450684f, 0.25f, -0.50708f,
+0.278809f, -0.563477f, 0.316406f, -0.616943f, 0.354004f, -0.67041f, 0.402344f, -0.724609f,
+0.539551f, -0.724609f, 0.489746f, -0.667969f, 0.451172f, -0.612793f, 0.412598f, -0.557617f,
+0.383789f, -0.500977f, 0.35498f, -0.444336f, 0.334961f, -0.384521f, 0.314941f, -0.324707f,
+0.302246f, -0.258789f, 0.293945f, -0.214355f, 0.289551f, -0.173828f, 0.285156f, -0.133301f,
+0.285156f, -0.0942383f, 0.285156f, -0.015625f, 0.303223f, 0.0578613f, 0.321289f,
+0.131348f, 0.358398f, 0.20752f, 0.0581055f, 0.20752f, 0.108398f, 0.150391f, 0.146973f,
+0.095459f, 0.185547f, 0.0405273f, 0.214355f, -0.0161133f, 0.243164f, -0.0727539f,
+0.263184f, -0.132568f, 0.283203f, -0.192383f, 0.295898f, -0.258789f, 0.304199f, -0.302734f,
+0.308594f, -0.343262f, 0.312988f, -0.383789f, 0.312988f, -0.422852f, 0.312988f, -0.501953f,
+0.294922f, -0.575195f, 0.276855f, -0.648438f, 0.239258f, -0.724609f, 0.376465f, -0.724609f,
+0.394531f, -0.688477f, 0.408203f, -0.652588f, 0.421875f, -0.616699f, 0.430908f, -0.580566f,
+0.439941f, -0.544434f, 0.44458f, -0.506836f, 0.449219f, -0.469238f, 0.449219f, -0.429688f,
+0.449219f, -0.390137f, 0.444824f, -0.3479f, 0.44043f, -0.305664f, 0.431152f, -0.259277f,
+0.417969f, -0.189941f, 0.397461f, -0.128662f, 0.376953f, -0.0673828f, 0.348145f,
+-0.0107422f, 0.319336f, 0.0458984f, 0.281494f, 0.0996094f, 0.243652f, 0.15332f, 0.195312f,
+0.20752f, 0.408203f, -0.590332f, 0.532715f, -0.641113f, 0.547363f, -0.544922f, 0.419434f,
+-0.515137f, 0.490234f, -0.411133f, 0.388672f, -0.352051f, 0.341309f, -0.475098f,
+0.244629f, -0.352051f, 0.165527f, -0.412109f, 0.27832f, -0.515137f, 0.162109f, -0.544922f,
+0.213867f, -0.641113f, 0.320801f, -0.590332f, 0.337891f, -0.724121f, 0.442871f, -0.724121f,
+0.354492f, -0.277832f, 0.354492f, -0.0786133f, 0.244141f, -0.0786133f, 0.244141f,
+-0.277832f, 0.0493164f, -0.277832f, 0.0493164f, -0.387207f, 0.244141f, -0.387207f,
+0.244141f, -0.586426f, 0.354492f, -0.586426f, 0.354492f, -0.387207f, 0.550781f, -0.387207f,
+0.550781f, -0.277832f, 0.0400391f, 0.177246f, 0.185547f, -0.145996f, 0.339355f, -0.145996f,
+0.124512f, 0.177246f, 0.145996f, -0.199707f, 0.168945f, -0.318848f, 0.452148f, -0.318848f,
+0.429199f, -0.199707f, 0.178223f, 0, 0.207031f, -0.148926f, 0.348145f, -0.148926f,
+0.319336f, 0, -0.00976562f, 0.00976562f, 0.533691f, -0.724609f, 0.64502f, -0.724609f,
+0.103516f, 0.00976562f, 0.550293f, -0.32959f, 0.532227f, -0.236328f, 0.501709f, -0.171631f,
+0.471191f, -0.106934f, 0.431396f, -0.0666504f, 0.391602f, -0.0263672f, 0.344238f,
+-0.00830078f, 0.296875f, 0.00976562f, 0.245117f, 0.00976562f, 0.203613f, 0.00976562f,
+0.169434f, -0.00170898f, 0.135254f, -0.0131836f, 0.111084f, -0.0380859f, 0.0869141f,
+-0.0629883f, 0.0737305f, -0.102783f, 0.0605469f, -0.142578f, 0.0605469f, -0.199219f,
+0.0605469f, -0.227539f, 0.0639648f, -0.26001f, 0.0673828f, -0.29248f, 0.074707f,
+-0.32959f, 0.09375f, -0.427734f, 0.124023f, -0.493164f, 0.154297f, -0.558594f, 0.193359f,
+-0.597656f, 0.232422f, -0.636719f, 0.279785f, -0.652832f, 0.327148f, -0.668945f,
+0.380859f, -0.668945f, 0.421387f, -0.668945f, 0.455078f, -0.658691f, 0.48877f, -0.648438f,
+0.513428f, -0.624756f, 0.538086f, -0.601074f, 0.551758f, -0.562012f, 0.56543f, -0.522949f,
+0.56543f, -0.464844f, 0.56543f, -0.406738f, 0.550293f, -0.32959f, 0.412598f, -0.32959f,
+0.421387f, -0.375f, 0.425781f, -0.409424f, 0.430176f, -0.443848f, 0.430176f, -0.470215f,
+0.430176f, -0.495605f, 0.425781f, -0.513184f, 0.421387f, -0.530762f, 0.412598f, -0.541504f,
+0.403809f, -0.552246f, 0.390625f, -0.556885f, 0.377441f, -0.561523f, 0.359375f, -0.561523f,
+0.330566f, -0.561523f, 0.308838f, -0.550293f, 0.287109f, -0.539062f, 0.27002f, -0.512207f,
+0.25293f, -0.485352f, 0.239014f, -0.440674f, 0.225098f, -0.395996f, 0.211914f, -0.32959f,
+0.203613f, -0.285156f, 0.199219f, -0.251465f, 0.194824f, -0.217773f, 0.194824f, -0.191895f,
+0.194824f, -0.140625f, 0.212402f, -0.119385f, 0.22998f, -0.0981445f, 0.26709f, -0.0981445f,
+0.293945f, -0.0981445f, 0.315186f, -0.109619f, 0.336426f, -0.121094f, 0.354004f,
+-0.148193f, 0.371582f, -0.175293f, 0.385742f, -0.219727f, 0.399902f, -0.26416f, 0.412598f,
+-0.32959f, 0.0214844f, 0, 0.0415039f, -0.102051f, 0.231445f, -0.102051f, 0.315918f,
+-0.537109f, 0.302734f, -0.517578f, 0.279785f, -0.500244f, 0.256836f, -0.48291f, 0.228027f,
+-0.470215f, 0.199219f, -0.45752f, 0.166748f, -0.449951f, 0.134277f, -0.442383f, 0.102051f,
+-0.442383f, 0.122559f, -0.546875f, 0.158691f, -0.546875f, 0.19165f, -0.555176f, 0.224609f,
+-0.563477f, 0.253174f, -0.578369f, 0.281738f, -0.593262f, 0.30542f, -0.61377f, 0.329102f,
+-0.634277f, 0.34668f, -0.658691f, 0.476562f, -0.658691f, 0.368652f, -0.102051f, 0.526367f,
+-0.102051f, 0.506348f, 0, 0.00878906f, 0, 0.0273438f, -0.0952148f, 0.0610352f, -0.146484f,
+0.102783f, -0.187988f, 0.144531f, -0.229492f, 0.187988f, -0.263916f, 0.231445f, -0.29834f,
+0.273438f, -0.327148f, 0.31543f, -0.355957f, 0.349609f, -0.38208f, 0.383789f, -0.408203f,
+0.406494f, -0.433105f, 0.429199f, -0.458008f, 0.43457f, -0.484375f, 0.436035f, -0.493164f,
+0.436035f, -0.501465f, 0.436035f, -0.528809f, 0.416748f, -0.544189f, 0.397461f, -0.55957f,
+0.358887f, -0.55957f, 0.314941f, -0.55957f, 0.287109f, -0.535889f, 0.259277f, -0.512207f,
+0.243164f, -0.464844f, 0.106445f, -0.472656f, 0.119141f, -0.513184f, 0.141357f, -0.548828f,
+0.163574f, -0.584473f, 0.196777f, -0.611328f, 0.22998f, -0.638184f, 0.275146f, -0.653564f,
+0.320312f, -0.668945f, 0.378906f, -0.668945f, 0.428223f, -0.668945f, 0.465576f, -0.658203f,
+0.50293f, -0.647461f, 0.527832f, -0.628418f, 0.552734f, -0.609375f, 0.56543f, -0.582764f,
+0.578125f, -0.556152f, 0.578125f, -0.524414f, 0.578125f, -0.506836f, 0.574707f, -0.490234f,
+0.566406f, -0.446777f, 0.540283f, -0.410889f, 0.51416f, -0.375f, 0.478271f, -0.343506f,
+0.442383f, -0.312012f, 0.400635f, -0.283691f, 0.358887f, -0.255371f, 0.319336f, -0.228027f,
+0.279785f, -0.200684f, 0.246094f, -0.172607f, 0.212402f, -0.144531f, 0.192871f, -0.112793f,
+0.512207f, -0.112793f, 0.490234f, 0, 0.533691f, -0.183594f, 0.524902f, -0.139648f,
+0.501953f, -0.103516f, 0.479004f, -0.0673828f, 0.442383f, -0.0419922f, 0.405762f,
+-0.0166016f, 0.356689f, -0.00268555f, 0.307617f, 0.0112305f, 0.24707f, 0.0112305f,
+0.184082f, 0.0112305f, 0.142334f, -0.00292969f, 0.100586f, -0.0170898f, 0.0751953f,
+-0.0407715f, 0.0498047f, -0.0644531f, 0.0393066f, -0.095459f, 0.0288086f, -0.126465f,
+0.0288086f, -0.160645f, 0.0288086f, -0.165527f, 0.0288086f, -0.170166f, 0.0288086f,
+-0.174805f, 0.0292969f, -0.179688f, 0.170898f, -0.191895f, 0.168457f, -0.147461f,
+0.191406f, -0.123779f, 0.214355f, -0.100098f, 0.268066f, -0.100098f, 0.29248f, -0.100098f,
+0.313721f, -0.106201f, 0.334961f, -0.112305f, 0.351562f, -0.124023f, 0.368164f, -0.135742f,
+0.37915f, -0.152832f, 0.390137f, -0.169922f, 0.394531f, -0.191895f, 0.395508f, -0.196289f,
+0.395996f, -0.200684f, 0.396484f, -0.205078f, 0.396484f, -0.208984f, 0.396484f, -0.230957f,
+0.384521f, -0.244873f, 0.372559f, -0.258789f, 0.354492f, -0.266357f, 0.336426f, -0.273926f,
+0.314941f, -0.276611f, 0.293457f, -0.279297f, 0.274902f, -0.279297f, 0.227051f, -0.279297f,
+0.248535f, -0.390137f, 0.293457f, -0.390137f, 0.313965f, -0.390137f, 0.33667f, -0.393799f,
+0.359375f, -0.397461f, 0.379395f, -0.407227f, 0.399414f, -0.416992f, 0.414307f, -0.433594f,
+0.429199f, -0.450195f, 0.434082f, -0.476074f, 0.435547f, -0.484863f, 0.435547f, -0.492676f,
+0.435547f, -0.522949f, 0.414062f, -0.54126f, 0.392578f, -0.55957f, 0.352539f, -0.55957f,
+0.310059f, -0.55957f, 0.279297f, -0.539795f, 0.248535f, -0.52002f, 0.23584f, -0.477051f,
+0.100586f, -0.486816f, 0.115723f, -0.535156f, 0.143311f, -0.56958f, 0.170898f, -0.604004f,
+0.207275f, -0.625977f, 0.243652f, -0.647949f, 0.286865f, -0.658447f, 0.330078f, -0.668945f,
+0.375977f, -0.668945f, 0.429199f, -0.668945f, 0.467773f, -0.657715f, 0.506348f, -0.646484f,
+0.53125f, -0.626953f, 0.556152f, -0.607422f, 0.567871f, -0.581299f, 0.57959f, -0.555176f,
+0.57959f, -0.525391f, 0.57959f, -0.51709f, 0.578613f, -0.509277f, 0.577637f, -0.501465f,
+0.576172f, -0.493164f, 0.570801f, -0.465332f, 0.557373f, -0.440674f, 0.543945f, -0.416016f,
+0.521973f, -0.395996f, 0.5f, -0.375977f, 0.469482f, -0.361328f, 0.438965f, -0.34668f,
+0.399414f, -0.339355f, 0.398926f, -0.337402f, 0.435059f, -0.333008f, 0.461182f, -0.321777f,
+0.487305f, -0.310547f, 0.50415f, -0.293945f, 0.520996f, -0.277344f, 0.528809f, -0.256348f,
+0.536621f, -0.235352f, 0.536621f, -0.212402f, 0.536621f, -0.198242f, 0.533691f, -0.183594f,
+0.45459f, -0.140137f, 0.427246f, 0, 0.296387f, 0, 0.32373f, -0.140137f, 0.0107422f,
+-0.140137f, 0.0307617f, -0.243164f, 0.401855f, -0.658691f, 0.555176f, -0.658691f,
+0.474121f, -0.242188f, 0.565918f, -0.242188f, 0.546387f, -0.140137f, 0.382324f, -0.442871f,
+0.383789f, -0.451172f, 0.386963f, -0.4646f, 0.390137f, -0.478027f, 0.393311f, -0.492188f,
+0.396484f, -0.506348f, 0.399902f, -0.519287f, 0.40332f, -0.532227f, 0.405762f, -0.539551f,
+0.402344f, -0.53418f, 0.394775f, -0.52417f, 0.387207f, -0.51416f, 0.378418f, -0.502686f,
+0.369629f, -0.491211f, 0.360596f, -0.47998f, 0.351562f, -0.46875f, 0.344238f, -0.460449f,
+0.145508f, -0.242188f, 0.343262f, -0.242188f, 0.540039f, -0.22168f, 0.530762f, -0.172852f,
+0.505859f, -0.130371f, 0.480957f, -0.0878906f, 0.442871f, -0.0568848f, 0.404785f,
+-0.0258789f, 0.35376f, -0.00805664f, 0.302734f, 0.00976562f, 0.240234f, 0.00976562f,
+0.184082f, 0.00976562f, 0.144531f, -0.00366211f, 0.10498f, -0.0170898f, 0.0800781f,
+-0.0405273f, 0.0551758f, -0.0639648f, 0.0439453f, -0.0957031f, 0.0327148f, -0.127441f,
+0.0327148f, -0.164062f, 0.0327148f, -0.171875f, 0.172363f, -0.183105f, 0.172852f,
+-0.166992f, 0.177246f, -0.151855f, 0.181641f, -0.136719f, 0.191895f, -0.125f, 0.202148f,
+-0.113281f, 0.219238f, -0.106201f, 0.236328f, -0.0991211f, 0.262695f, -0.0991211f,
+0.288574f, -0.0991211f, 0.310791f, -0.106934f, 0.333008f, -0.114746f, 0.350586f,
+-0.129883f, 0.368164f, -0.14502f, 0.380371f, -0.16748f, 0.392578f, -0.189941f, 0.398438f,
+-0.21875f, 0.401367f, -0.233398f, 0.401367f, -0.24707f, 0.401367f, -0.285645f, 0.378174f,
+-0.308105f, 0.35498f, -0.330566f, 0.311035f, -0.330566f, 0.276855f, -0.330566f, 0.252197f,
+-0.317627f, 0.227539f, -0.304688f, 0.208984f, -0.286133f, 0.0751953f, -0.286133f,
+0.171387f, -0.658691f, 0.584961f, -0.658691f, 0.56543f, -0.556641f, 0.276367f, -0.556641f,
+0.233887f, -0.397461f, 0.258301f, -0.415527f, 0.291992f, -0.428467f, 0.325684f, -0.441406f,
+0.367188f, -0.441406f, 0.410645f, -0.441406f, 0.443848f, -0.429443f, 0.477051f, -0.41748f,
+0.499512f, -0.395508f, 0.521973f, -0.373535f, 0.533691f, -0.342773f, 0.54541f, -0.312012f,
+0.54541f, -0.274414f, 0.54541f, -0.25f, 0.540039f, -0.22168f, 0.535645f, -0.217773f,
+0.525879f, -0.168457f, 0.503174f, -0.126709f, 0.480469f, -0.0849609f, 0.445312f,
+-0.0546875f, 0.410156f, -0.0244141f, 0.363525f, -0.00732422f, 0.316895f, 0.00976562f,
+0.259766f, 0.00976562f, 0.210938f, 0.00976562f, 0.173828f, -0.00561523f, 0.136719f,
+-0.0209961f, 0.111816f, -0.0500488f, 0.0869141f, -0.0791016f, 0.0744629f, -0.12085f,
+0.0620117f, -0.162598f, 0.0620117f, -0.21582f, 0.0620117f, -0.267578f, 0.0737305f,
+-0.328125f, 0.090332f, -0.414551f, 0.119629f, -0.478516f, 0.148926f, -0.54248f, 0.189453f,
+-0.584961f, 0.22998f, -0.627441f, 0.281738f, -0.648193f, 0.333496f, -0.668945f, 0.39502f,
+-0.668945f, 0.436035f, -0.668945f, 0.468262f, -0.6604f, 0.500488f, -0.651855f, 0.522949f,
+-0.632812f, 0.54541f, -0.61377f, 0.558105f, -0.58374f, 0.570801f, -0.553711f, 0.57373f,
+-0.510742f, 0.440918f, -0.492676f, 0.438477f, -0.528809f, 0.419189f, -0.544678f,
+0.399902f, -0.560547f, 0.371094f, -0.560547f, 0.31543f, -0.560547f, 0.273926f, -0.507568f,
+0.232422f, -0.45459f, 0.212402f, -0.352539f, 0.241699f, -0.38916f, 0.284424f, -0.408691f,
+0.327148f, -0.428223f, 0.376465f, -0.428223f, 0.415527f, -0.428223f, 0.446045f, -0.417236f,
+0.476562f, -0.40625f, 0.497559f, -0.385986f, 0.518555f, -0.365723f, 0.529785f, -0.336426f,
+0.541016f, -0.307129f, 0.541016f, -0.270508f, 0.541016f, -0.257812f, 0.539551f, -0.244873f,
+0.538086f, -0.231934f, 0.535645f, -0.217773f, 0.396973f, -0.213867f, 0.398926f, -0.222168f,
+0.399658f, -0.230225f, 0.400391f, -0.238281f, 0.400391f, -0.245605f, 0.400391f, -0.282715f,
+0.379883f, -0.304932f, 0.359375f, -0.327148f, 0.317383f, -0.327148f, 0.299316f, -0.327148f,
+0.280029f, -0.321289f, 0.260742f, -0.31543f, 0.244385f, -0.303223f, 0.228027f, -0.291016f,
+0.215576f, -0.272461f, 0.203125f, -0.253906f, 0.198242f, -0.228516f, 0.196289f, -0.219727f,
+0.195557f, -0.211182f, 0.194824f, -0.202637f, 0.194824f, -0.194336f, 0.194824f, -0.173828f,
+0.200195f, -0.156006f, 0.205566f, -0.138184f, 0.21582f, -0.125f, 0.226074f, -0.111816f,
+0.241211f, -0.104492f, 0.256348f, -0.097168f, 0.276367f, -0.097168f, 0.299316f, -0.097168f,
+0.319092f, -0.105469f, 0.338867f, -0.11377f, 0.354492f, -0.12915f, 0.370117f, -0.144531f,
+0.381104f, -0.166016f, 0.39209f, -0.1875f, 0.396973f, -0.213867f, 0.588867f, -0.549805f,
+0.525879f, -0.481934f, 0.47168f, -0.415771f, 0.41748f, -0.349609f, 0.374268f, -0.282227f,
+0.331055f, -0.214844f, 0.300781f, -0.144775f, 0.270508f, -0.074707f, 0.255859f, 0,
+0.112793f, 0, 0.127441f, -0.0742188f, 0.159424f, -0.14502f, 0.191406f, -0.21582f,
+0.236816f, -0.283691f, 0.282227f, -0.351562f, 0.339111f, -0.416992f, 0.395996f, -0.482422f,
+0.460449f, -0.545898f, 0.118652f, -0.545898f, 0.140625f, -0.658691f, 0.609863f, -0.658691f,
+0.531738f, -0.186523f, 0.523926f, -0.14502f, 0.502197f, -0.109131f, 0.480469f, -0.0732422f,
+0.445068f, -0.046875f, 0.409668f, -0.0205078f, 0.360352f, -0.00537109f, 0.311035f,
+0.00976562f, 0.24707f, 0.00976562f, 0.191406f, 0.00976562f, 0.151123f, -0.00170898f,
+0.11084f, -0.0131836f, 0.0847168f, -0.0336914f, 0.0585938f, -0.0541992f, 0.0461426f,
+-0.0825195f, 0.0336914f, -0.11084f, 0.0336914f, -0.144531f, 0.0336914f, -0.164551f,
+0.0380859f, -0.185547f, 0.0449219f, -0.220215f, 0.0620117f, -0.248047f, 0.0791016f,
+-0.275879f, 0.102539f, -0.295898f, 0.125977f, -0.315918f, 0.153564f, -0.328369f,
+0.181152f, -0.34082f, 0.208984f, -0.345215f, 0.209473f, -0.347168f, 0.161621f, -0.358398f,
+0.136475f, -0.390625f, 0.111328f, -0.422852f, 0.111328f, -0.465332f, 0.111328f, -0.479492f,
+0.114258f, -0.494141f, 0.121582f, -0.532715f, 0.142578f, -0.564697f, 0.163574f, -0.59668f,
+0.197021f, -0.619873f, 0.230469f, -0.643066f, 0.275635f, -0.656006f, 0.320801f, -0.668945f,
+0.376953f, -0.668945f, 0.429199f, -0.668945f, 0.467285f, -0.658691f, 0.505371f, -0.648438f,
+0.530029f, -0.630127f, 0.554688f, -0.611816f, 0.566406f, -0.586426f, 0.578125f, -0.561035f,
+0.578125f, -0.530273f, 0.578125f, -0.521484f, 0.577148f, -0.512207f, 0.576172f, -0.50293f,
+0.574219f, -0.493164f, 0.569336f, -0.46875f, 0.556396f, -0.445312f, 0.543457f, -0.421875f,
+0.523438f, -0.4021f, 0.503418f, -0.382324f, 0.477539f, -0.368164f, 0.45166f, -0.354004f,
+0.421387f, -0.348145f, 0.420898f, -0.346191f, 0.446289f, -0.342285f, 0.467285f, -0.332275f,
+0.488281f, -0.322266f, 0.503418f, -0.306396f, 0.518555f, -0.290527f, 0.526855f, -0.269287f,
+0.535156f, -0.248047f, 0.535156f, -0.22168f, 0.535156f, -0.203613f, 0.531738f, -0.186523f,
+0.431641f, -0.48584f, 0.432617f, -0.492676f, 0.43335f, -0.499023f, 0.434082f, -0.505371f,
+0.434082f, -0.51123f, 0.434082f, -0.524414f, 0.430176f, -0.535889f, 0.42627f, -0.547363f,
+0.41748f, -0.55542f, 0.408691f, -0.563477f, 0.394287f, -0.568115f, 0.379883f, -0.572754f,
+0.358398f, -0.572754f, 0.333008f, -0.572754f, 0.314697f, -0.565918f, 0.296387f, -0.559082f,
+0.283691f, -0.547363f, 0.270996f, -0.535645f, 0.263428f, -0.519775f, 0.255859f, -0.503906f,
+0.252441f, -0.48584f, 0.251465f, -0.479492f, 0.250732f, -0.473389f, 0.25f, -0.467285f,
+0.25f, -0.460449f, 0.25f, -0.447754f, 0.253418f, -0.435791f, 0.256836f, -0.423828f,
+0.265137f, -0.414795f, 0.273438f, -0.405762f, 0.288086f, -0.400146f, 0.302734f, -0.394531f,
+0.324707f, -0.394531f, 0.354004f, -0.394531f, 0.373535f, -0.40332f, 0.393066f, -0.412109f,
+0.405029f, -0.425537f, 0.416992f, -0.438965f, 0.422852f, -0.455078f, 0.428711f, -0.471191f,
+0.431641f, -0.48584f, 0.39209f, -0.197754f, 0.39502f, -0.210938f, 0.39502f, -0.224609f,
+0.39502f, -0.239258f, 0.390625f, -0.252686f, 0.38623f, -0.266113f, 0.375977f, -0.276123f,
+0.365723f, -0.286133f, 0.348145f, -0.292236f, 0.330566f, -0.29834f, 0.304199f, -0.29834f,
+0.274902f, -0.29834f, 0.253174f, -0.289551f, 0.231445f, -0.280762f, 0.216797f, -0.266113f,
+0.202148f, -0.251465f, 0.193604f, -0.233154f, 0.185059f, -0.214844f, 0.181152f, -0.195801f,
+0.177734f, -0.179199f, 0.177734f, -0.162598f, 0.177734f, -0.145996f, 0.182373f, -0.131836f,
+0.187012f, -0.117676f, 0.197754f, -0.10791f, 0.208496f, -0.0981445f, 0.225342f, -0.0925293f,
+0.242188f, -0.0869141f, 0.26709f, -0.0869141f, 0.297852f, -0.0869141f, 0.319336f,
+-0.095459f, 0.34082f, -0.104004f, 0.355469f, -0.118896f, 0.370117f, -0.133789f, 0.378906f,
+-0.154053f, 0.387695f, -0.174316f, 0.39209f, -0.197754f, 0.554688f, -0.340332f, 0.538086f,
+-0.254395f, 0.508301f, -0.188965f, 0.478516f, -0.123535f, 0.437256f, -0.0793457f,
+0.395996f, -0.0351562f, 0.34375f, -0.0126953f, 0.291504f, 0.00976562f, 0.22998f,
+0.00976562f, 0.185547f, 0.00976562f, 0.1521f, 0.000488281f, 0.118652f, -0.00878906f,
+0.0959473f, -0.0283203f, 0.0732422f, -0.0478516f, 0.060791f, -0.0786133f, 0.0483398f,
+-0.109375f, 0.0458984f, -0.151855f, 0.178711f, -0.169922f, 0.181152f, -0.133301f,
+0.199951f, -0.115723f, 0.21875f, -0.0981445f, 0.252441f, -0.0981445f, 0.307617f,
+-0.0981445f, 0.349854f, -0.149414f, 0.39209f, -0.200684f, 0.412598f, -0.302246f,
+0.398926f, -0.283203f, 0.379883f, -0.268555f, 0.36084f, -0.253906f, 0.338867f, -0.244141f,
+0.316895f, -0.234375f, 0.292969f, -0.229248f, 0.269043f, -0.224121f, 0.245605f, -0.224121f,
+0.20752f, -0.224121f, 0.177734f, -0.235596f, 0.147949f, -0.24707f, 0.127197f, -0.268311f,
+0.106445f, -0.289551f, 0.0957031f, -0.319824f, 0.0849609f, -0.350098f, 0.0849609f,
+-0.387695f, 0.0849609f, -0.415039f, 0.0908203f, -0.445801f, 0.101074f, -0.498047f,
+0.125488f, -0.539307f, 0.149902f, -0.580566f, 0.186279f, -0.609375f, 0.222656f, -0.638184f,
+0.270264f, -0.653564f, 0.317871f, -0.668945f, 0.374512f, -0.668945f, 0.469238f, -0.668945f,
+0.518555f, -0.617676f, 0.567871f, -0.566406f, 0.567871f, -0.461426f, 0.567871f, -0.407715f,
+0.554688f, -0.340332f, 0.427246f, -0.429199f, 0.429199f, -0.438965f, 0.430176f, -0.448242f,
+0.431152f, -0.45752f, 0.431152f, -0.466309f, 0.431152f, -0.486816f, 0.42627f, -0.50415f,
+0.421387f, -0.521484f, 0.411377f, -0.53418f, 0.401367f, -0.546875f, 0.38623f, -0.554199f,
+0.371094f, -0.561523f, 0.350586f, -0.561523f, 0.327637f, -0.561523f, 0.307861f, -0.552979f,
+0.288086f, -0.544434f, 0.272461f, -0.529053f, 0.256836f, -0.513672f, 0.24585f, -0.492188f,
+0.234863f, -0.470703f, 0.22998f, -0.444824f, 0.226562f, -0.429199f, 0.226562f, -0.412598f,
+0.226562f, -0.394043f, 0.231445f, -0.378174f, 0.236328f, -0.362305f, 0.246094f, -0.35083f,
+0.255859f, -0.339355f, 0.270508f, -0.332764f, 0.285156f, -0.326172f, 0.305176f, -0.326172f,
+0.324219f, -0.326172f, 0.34375f, -0.33252f, 0.363281f, -0.338867f, 0.380127f, -0.351807f,
+0.396973f, -0.364746f, 0.409668f, -0.384033f, 0.422363f, -0.40332f, 0.427246f, -0.429199f,
+0.178223f, 0, 0.207031f, -0.148926f, 0.348145f, -0.148926f, 0.319336f, 0, 0.252441f,
+-0.380859f, 0.28125f, -0.529785f, 0.422363f, -0.529785f, 0.393555f, -0.380859f, 0.256836f,
+-0.380859f, 0.285645f, -0.529785f, 0.426758f, -0.529785f, 0.397949f, -0.380859f,
+0.0732422f, 0.177246f, 0.21875f, -0.145996f, 0.372559f, -0.145996f, 0.157715f, 0.177246f,
+0.0493164f, -0.251953f, 0.0493164f, -0.40918f, 0.550781f, -0.600098f, 0.550781f,
+-0.48877f, 0.144043f, -0.330078f, 0.550781f, -0.171875f, 0.550781f, -0.0610352f,
+0.0493164f, -0.411133f, 0.0493164f, -0.52002f, 0.550781f, -0.52002f, 0.550781f, -0.411133f,
+0.0493164f, -0.14209f, 0.0493164f, -0.25f, 0.550781f, -0.25f, 0.550781f, -0.14209f,
+0.0493164f, -0.0610352f, 0.0493164f, -0.171875f, 0.455566f, -0.330078f, 0.0493164f,
+-0.48877f, 0.0493164f, -0.600098f, 0.550781f, -0.40918f, 0.550781f, -0.251953f, 0.585938f,
+-0.481445f, 0.578125f, -0.442383f, 0.557861f, -0.414062f, 0.537598f, -0.385742f,
+0.510742f, -0.36377f, 0.483887f, -0.341797f, 0.454346f, -0.323975f, 0.424805f, -0.306152f,
+0.398438f, -0.287598f, 0.37207f, -0.269043f, 0.352295f, -0.248047f, 0.33252f, -0.227051f,
+0.325684f, -0.198242f, 0.195312f, -0.198242f, 0.203125f, -0.229492f, 0.217285f, -0.253906f,
+0.231445f, -0.27832f, 0.249268f, -0.297607f, 0.26709f, -0.316895f, 0.287598f, -0.332031f,
+0.308105f, -0.347168f, 0.328857f, -0.360596f, 0.349609f, -0.374023f, 0.369141f, -0.386475f,
+0.388672f, -0.398926f, 0.404541f, -0.412109f, 0.42041f, -0.425293f, 0.431396f, -0.440674f,
+0.442383f, -0.456055f, 0.446289f, -0.475586f, 0.447754f, -0.483887f, 0.447754f, -0.490723f,
+0.447754f, -0.52002f, 0.424072f, -0.539307f, 0.400391f, -0.558594f, 0.354492f, -0.558594f,
+0.32959f, -0.558594f, 0.307129f, -0.551025f, 0.284668f, -0.543457f, 0.266113f, -0.529785f,
+0.247559f, -0.516113f, 0.233643f, -0.496582f, 0.219727f, -0.477051f, 0.212402f, -0.453613f,
+0.0742188f, -0.459473f, 0.0883789f, -0.50293f, 0.114014f, -0.541016f, 0.139648f,
+-0.579102f, 0.177002f, -0.607422f, 0.214355f, -0.635742f, 0.263672f, -0.652344f,
+0.312988f, -0.668945f, 0.374023f, -0.668945f, 0.42627f, -0.668945f, 0.466309f, -0.657959f,
+0.506348f, -0.646973f, 0.533691f, -0.627197f, 0.561035f, -0.607422f, 0.575195f, -0.579346f,
+0.589355f, -0.55127f, 0.589355f, -0.516602f, 0.589355f, -0.498535f, 0.585938f, -0.481445f,
+0.152832f, 0, 0.178223f, -0.131836f, 0.319336f, -0.131836f, 0.293945f, 0, 0.601074f,
+-0.368652f, 0.587402f, -0.29834f, 0.565918f, -0.23999f, 0.544434f, -0.181641f, 0.51709f,
+-0.139648f, 0.489746f, -0.0976562f, 0.45752f, -0.0742188f, 0.425293f, -0.0507812f,
+0.390137f, -0.0507812f, 0.37793f, -0.0507812f, 0.367432f, -0.0534668f, 0.356934f,
+-0.0561523f, 0.349365f, -0.0625f, 0.341797f, -0.0688477f, 0.337402f, -0.0788574f,
+0.333008f, -0.0888672f, 0.333008f, -0.103516f, 0.333008f, -0.108887f, 0.333496f,
+-0.114746f, 0.333984f, -0.120605f, 0.335449f, -0.127441f, 0.335449f, -0.128418f,
+0.336182f, -0.131836f, 0.336914f, -0.135254f, 0.337891f, -0.138916f, 0.338867f, -0.142578f,
+0.3396f, -0.145996f, 0.340332f, -0.149414f, 0.34082f, -0.150879f, 0.337891f, -0.150879f,
+0.327148f, -0.131836f, 0.312256f, -0.11377f, 0.297363f, -0.0957031f, 0.280273f, -0.0817871f,
+0.263184f, -0.0678711f, 0.243652f, -0.0593262f, 0.224121f, -0.0507812f, 0.203613f,
+-0.0507812f, 0.181152f, -0.0507812f, 0.165771f, -0.0595703f, 0.150391f, -0.0683594f,
+0.140869f, -0.0834961f, 0.131348f, -0.0986328f, 0.126953f, -0.119385f, 0.122559f,
+-0.140137f, 0.122559f, -0.164062f, 0.122559f, -0.181641f, 0.124512f, -0.200439f,
+0.126465f, -0.219238f, 0.130371f, -0.23877f, 0.137695f, -0.275879f, 0.150391f, -0.3125f,
+0.163086f, -0.349121f, 0.18042f, -0.382324f, 0.197754f, -0.415527f, 0.21875f, -0.444092f,
+0.239746f, -0.472656f, 0.263916f, -0.493408f, 0.288086f, -0.51416f, 0.314209f, -0.525879f,
+0.340332f, -0.537598f, 0.367676f, -0.537598f, 0.385742f, -0.537598f, 0.398193f, -0.53125f,
+0.410645f, -0.524902f, 0.418213f, -0.513672f, 0.425781f, -0.502441f, 0.428955f, -0.487061f,
+0.432129f, -0.47168f, 0.431152f, -0.453125f, 0.433594f, -0.453125f, 0.464355f, -0.526855f,
+0.530273f, -0.526855f, 0.433594f, -0.279297f, 0.425781f, -0.258789f, 0.418457f, -0.239014f,
+0.411133f, -0.219238f, 0.404785f, -0.201416f, 0.398438f, -0.183594f, 0.394043f, -0.168701f,
+0.389648f, -0.153809f, 0.387695f, -0.143555f, 0.38623f, -0.134766f, 0.38623f, -0.128906f,
+0.38623f, -0.116699f, 0.391602f, -0.113525f, 0.396973f, -0.110352f, 0.405273f, -0.110352f,
+0.423828f, -0.110352f, 0.442383f, -0.128906f, 0.460938f, -0.147461f, 0.478027f, -0.181152f,
+0.495117f, -0.214844f, 0.510254f, -0.262451f, 0.525391f, -0.310059f, 0.536621f, -0.367676f,
+0.546875f, -0.42041f, 0.546875f, -0.467773f, 0.546875f, -0.510742f, 0.538086f, -0.546631f,
+0.529297f, -0.58252f, 0.511719f, -0.608398f, 0.494141f, -0.634277f, 0.467529f, -0.648682f,
+0.440918f, -0.663086f, 0.404785f, -0.663086f, 0.347168f, -0.663086f, 0.296387f, -0.630859f,
+0.245605f, -0.598633f, 0.204102f, -0.542725f, 0.162598f, -0.486816f, 0.132324f, -0.411621f,
+0.102051f, -0.336426f, 0.0854492f, -0.250977f, 0.0791016f, -0.219238f, 0.0761719f,
+-0.190186f, 0.0732422f, -0.161133f, 0.0732422f, -0.134277f, 0.0732422f, -0.0859375f,
+0.083252f, -0.0471191f, 0.0932617f, -0.00830078f, 0.112793f, 0.019043f, 0.132324f,
+0.0463867f, 0.161621f, 0.0610352f, 0.190918f, 0.0756836f, 0.229004f, 0.0756836f,
+0.257812f, 0.0756836f, 0.283691f, 0.0695801f, 0.30957f, 0.0634766f, 0.333496f, 0.0532227f,
+0.357422f, 0.0429688f, 0.379883f, 0.0288086f, 0.402344f, 0.0146484f, 0.424316f, -0.00146484f,
+0.449707f, 0.0458984f, 0.424805f, 0.0639648f, 0.397949f, 0.0805664f, 0.371094f, 0.097168f,
+0.341553f, 0.110107f, 0.312012f, 0.123047f, 0.279785f, 0.130615f, 0.247559f, 0.138184f,
+0.211914f, 0.138184f, 0.162109f, 0.138184f, 0.123535f, 0.120361f, 0.0849609f, 0.102539f,
+0.0588379f, 0.0688477f, 0.0327148f, 0.0351562f, 0.019043f, -0.0129395f, 0.00537109f,
+-0.0610352f, 0.00537109f, -0.121582f, 0.00537109f, -0.151367f, 0.00878906f, -0.183594f,
+0.012207f, -0.21582f, 0.019043f, -0.250977f, 0.0390625f, -0.353027f, 0.0761719f,
+-0.439697f, 0.113281f, -0.526367f, 0.164795f, -0.589844f, 0.216309f, -0.65332f, 0.280273f,
+-0.688965f, 0.344238f, -0.724609f, 0.41748f, -0.724609f, 0.468262f, -0.724609f, 0.505127f,
+-0.706299f, 0.541992f, -0.687988f, 0.565918f, -0.655273f, 0.589844f, -0.622559f,
+0.601318f, -0.578369f, 0.612793f, -0.53418f, 0.612793f, -0.481934f, 0.612793f, -0.427246f,
+0.601074f, -0.368652f, 0.391602f, -0.382812f, 0.396484f, -0.407227f, 0.396484f, -0.42627f,
+0.396484f, -0.478027f, 0.356934f, -0.478027f, 0.332031f, -0.478027f, 0.308594f, -0.456055f,
+0.285156f, -0.434082f, 0.264893f, -0.399658f, 0.244629f, -0.365234f, 0.229492f, -0.322998f,
+0.214355f, -0.280762f, 0.206055f, -0.239746f, 0.202148f, -0.219727f, 0.199707f, -0.200684f,
+0.197266f, -0.181641f, 0.197266f, -0.165527f, 0.197266f, -0.14209f, 0.203857f, -0.127197f,
+0.210449f, -0.112305f, 0.227539f, -0.112305f, 0.245605f, -0.112305f, 0.263672f, -0.124512f,
+0.281738f, -0.136719f, 0.299072f, -0.159912f, 0.316406f, -0.183105f, 0.332764f, -0.216064f,
+0.349121f, -0.249023f, 0.363281f, -0.290527f, 0.366699f, -0.299805f, 0.371094f, -0.3125f,
+0.375488f, -0.325195f, 0.379395f, -0.338379f, 0.383301f, -0.351562f, 0.386719f, -0.363525f,
+0.390137f, -0.375488f, 0.391602f, -0.382812f, 0.548828f, 0, 0.405273f, 0, 0.391602f,
+-0.161133f, 0.168945f, -0.161133f, 0.0927734f, 0, -0.0512695f, 0, 0.292969f, -0.658691f,
+0.460938f, -0.658691f, 0.359863f, -0.569824f, 0.35791f, -0.564941f, 0.352783f, -0.552734f,
+0.347656f, -0.540527f, 0.34082f, -0.524902f, 0.333984f, -0.509277f, 0.325684f, -0.490967f,
+0.317383f, -0.472656f, 0.309082f, -0.455078f, 0.220215f, -0.269531f, 0.382324f, -0.269531f,
+0.365723f, -0.455078f, 0.364258f, -0.472656f, 0.363281f, -0.490967f, 0.362305f, -0.509277f,
+0.361572f, -0.524902f, 0.36084f, -0.540527f, 0.360352f, -0.552734f, 0.359863f, -0.564941f,
+0.359863f, -0.569824f, 0.564453f, -0.187988f, 0.554688f, -0.137695f, 0.529297f, -0.102051f,
+0.503906f, -0.0664062f, 0.468262f, -0.0437012f, 0.432617f, -0.0209961f, 0.38916f,
+-0.010498f, 0.345703f, 0, 0.299805f, 0, 0.015625f, 0, 0.143555f, -0.658691f, 0.399902f,
+-0.658691f, 0.444336f, -0.658691f, 0.479248f, -0.650879f, 0.51416f, -0.643066f, 0.53833f,
+-0.627441f, 0.5625f, -0.611816f, 0.575195f, -0.587646f, 0.587891f, -0.563477f, 0.587891f,
+-0.53125f, 0.587891f, -0.522461f, 0.586914f, -0.512939f, 0.585938f, -0.503418f, 0.583984f,
+-0.493164f, 0.573242f, -0.437012f, 0.533447f, -0.398682f, 0.493652f, -0.360352f,
+0.424316f, -0.346191f, 0.495117f, -0.338379f, 0.531494f, -0.306396f, 0.567871f, -0.274414f,
+0.567871f, -0.221191f, 0.567871f, -0.20459f, 0.564453f, -0.187988f, 0.435547f, -0.473633f,
+0.437988f, -0.487305f, 0.437988f, -0.496582f, 0.437988f, -0.526367f, 0.419678f, -0.539062f,
+0.401367f, -0.551758f, 0.369141f, -0.551758f, 0.26709f, -0.551758f, 0.236816f, -0.395996f,
+0.339844f, -0.395996f, 0.419922f, -0.395996f, 0.435547f, -0.473633f, 0.421875f, -0.200195f,
+0.424316f, -0.213867f, 0.424316f, -0.223145f, 0.424316f, -0.241699f, 0.41748f, -0.254395f,
+0.410645f, -0.26709f, 0.398926f, -0.274902f, 0.387207f, -0.282715f, 0.371338f, -0.286133f,
+0.355469f, -0.289551f, 0.337891f, -0.289551f, 0.21582f, -0.289551f, 0.180664f, -0.106934f,
+0.306152f, -0.106934f, 0.325684f, -0.106934f, 0.344238f, -0.111328f, 0.362793f, -0.115723f,
+0.378174f, -0.126221f, 0.393555f, -0.136719f, 0.405029f, -0.154785f, 0.416504f, -0.172852f,
+0.421875f, -0.200195f, 0.19873f, -0.33252f, 0.188477f, -0.279297f, 0.188477f, -0.237305f,
+0.188477f, -0.171875f, 0.213623f, -0.137695f, 0.23877f, -0.103516f, 0.290527f, -0.103516f,
+0.3125f, -0.103516f, 0.332275f, -0.112305f, 0.352051f, -0.121094f, 0.369629f, -0.136963f,
+0.387207f, -0.152832f, 0.402588f, -0.174805f, 0.417969f, -0.196777f, 0.431152f, -0.222656f,
+0.55957f, -0.197266f, 0.534668f, -0.148926f, 0.504639f, -0.110596f, 0.474609f, -0.0722656f,
+0.438232f, -0.0456543f, 0.401855f, -0.019043f, 0.359375f, -0.00463867f, 0.316895f,
+0.00976562f, 0.26709f, 0.00976562f, 0.20752f, 0.00976562f, 0.164551f, -0.00610352f,
+0.121582f, -0.0219727f, 0.0939941f, -0.0517578f, 0.0664062f, -0.081543f, 0.0534668f,
+-0.124023f, 0.0405273f, -0.166504f, 0.0405273f, -0.219238f, 0.0405273f, -0.271973f,
+0.0522461f, -0.33252f, 0.0683594f, -0.414062f, 0.097168f, -0.476562f, 0.125977f,
+-0.539062f, 0.168457f, -0.582031f, 0.210938f, -0.625f, 0.267578f, -0.646973f, 0.324219f,
+-0.668945f, 0.39502f, -0.668945f, 0.445801f, -0.668945f, 0.482422f, -0.654785f, 0.519043f,
+-0.640625f, 0.543701f, -0.615479f, 0.568359f, -0.590332f, 0.582031f, -0.55542f, 0.595703f,
+-0.520508f, 0.600586f, -0.479004f, 0.461426f, -0.446777f, 0.459473f, -0.470215f,
+0.453369f, -0.490234f, 0.447266f, -0.510254f, 0.436523f, -0.524902f, 0.425781f, -0.539551f,
+0.4104f, -0.547607f, 0.39502f, -0.555664f, 0.375f, -0.555664f, 0.308594f, -0.555664f,
+0.264404f, -0.499268f, 0.220215f, -0.442871f, 0.19873f, -0.33252f, 0.574707f, -0.334473f,
+0.558594f, -0.252441f, 0.5271f, -0.189941f, 0.495605f, -0.127441f, 0.450195f, -0.0852051f,
+0.404785f, -0.0429688f, 0.34668f, -0.0214844f, 0.288574f, 0, 0.220215f, 0, 0.0146484f,
+0, 0.142578f, -0.658691f, 0.318848f, -0.658691f, 0.383789f, -0.658691f, 0.433594f,
+-0.645264f, 0.483398f, -0.631836f, 0.51709f, -0.604248f, 0.550781f, -0.57666f, 0.568115f,
+-0.534424f, 0.585449f, -0.492188f, 0.585449f, -0.434082f, 0.585449f, -0.388184f,
+0.574707f, -0.334473f, 0.429688f, -0.334473f, 0.438477f, -0.379883f, 0.438477f, -0.414551f,
+0.438477f, -0.484863f, 0.402588f, -0.516113f, 0.366699f, -0.547363f, 0.294922f, -0.547363f,
+0.265137f, -0.547363f, 0.180176f, -0.111328f, 0.22998f, -0.111328f, 0.309082f, -0.111328f,
+0.358398f, -0.167236f, 0.407715f, -0.223145f, 0.429688f, -0.334473f, 0.015625f, 0,
+0.143555f, -0.658691f, 0.616211f, -0.658691f, 0.594727f, -0.547363f, 0.266113f, -0.547363f,
+0.235352f, -0.38916f, 0.53418f, -0.38916f, 0.512695f, -0.277832f, 0.213867f, -0.277832f,
+0.181152f, -0.111328f, 0.529785f, -0.111328f, 0.508301f, 0, 0.280762f, -0.547363f,
+0.244141f, -0.359863f, 0.547363f, -0.359863f, 0.525879f, -0.248535f, 0.222656f, -0.248535f,
+0.174316f, 0, 0.0302734f, 0, 0.158203f, -0.658691f, 0.616699f, -0.658691f, 0.595215f,
+-0.547363f, 0.51709f, -0.090332f, 0.495605f, -0.074707f, 0.467285f, -0.0571289f,
+0.438965f, -0.0395508f, 0.405762f, -0.0246582f, 0.372559f, -0.00976562f, 0.334961f,
+0, 0.297363f, 0.00976562f, 0.256836f, 0.00976562f, 0.201172f, 0.00976562f, 0.1604f,
+-0.00708008f, 0.119629f, -0.0239258f, 0.0932617f, -0.0546875f, 0.0668945f, -0.0854492f,
+0.0539551f, -0.128662f, 0.0410156f, -0.171875f, 0.0410156f, -0.224609f, 0.0410156f,
+-0.25f, 0.0439453f, -0.276855f, 0.046875f, -0.303711f, 0.0522461f, -0.33252f, 0.0683594f,
+-0.414062f, 0.0964355f, -0.476807f, 0.124512f, -0.539551f, 0.16626f, -0.582275f,
+0.208008f, -0.625f, 0.263672f, -0.646973f, 0.319336f, -0.668945f, 0.390137f, -0.668945f,
+0.438965f, -0.668945f, 0.473145f, -0.655762f, 0.507324f, -0.642578f, 0.529785f, -0.618408f,
+0.552246f, -0.594238f, 0.564209f, -0.560547f, 0.576172f, -0.526855f, 0.580078f, -0.48584f,
+0.441406f, -0.459473f, 0.4375f, -0.508301f, 0.419189f, -0.531982f, 0.400879f, -0.555664f,
+0.369629f, -0.555664f, 0.334473f, -0.555664f, 0.307129f, -0.54126f, 0.279785f, -0.526855f,
+0.259277f, -0.498779f, 0.23877f, -0.470703f, 0.223877f, -0.428955f, 0.208984f, -0.387207f,
+0.198242f, -0.33252f, 0.187988f, -0.27832f, 0.187988f, -0.23584f, 0.187988f, -0.171875f,
+0.212158f, -0.138672f, 0.236328f, -0.105469f, 0.286621f, -0.105469f, 0.305176f, -0.105469f,
+0.322266f, -0.109619f, 0.339355f, -0.11377f, 0.353516f, -0.119385f, 0.367676f, -0.125f,
+0.378418f, -0.131104f, 0.38916f, -0.137207f, 0.39502f, -0.141602f, 0.41748f, -0.256348f,
+0.283691f, -0.256348f, 0.304199f, -0.362793f, 0.569824f, -0.362793f, 0.337402f, 0,
+0.39209f, -0.280273f, 0.214844f, -0.280273f, 0.160156f, 0, 0.0161133f, 0, 0.144043f,
+-0.658691f, 0.288086f, -0.658691f, 0.237793f, -0.399414f, 0.415039f, -0.399414f,
+0.465332f, -0.658691f, 0.609375f, -0.658691f, 0.481445f, 0, 0.15332f, -0.658691f,
+0.600586f, -0.658691f, 0.579102f, -0.547363f, 0.424805f, -0.547363f, 0.339844f, -0.111328f,
+0.494141f, -0.111328f, 0.472656f, 0, 0.0253906f, 0, 0.046875f, -0.111328f, 0.201172f,
+-0.111328f, 0.286133f, -0.547363f, 0.131836f, -0.547363f, 0.222168f, 0.00976562f,
+0.129395f, 0.00976562f, 0.0827637f, -0.0397949f, 0.0361328f, -0.0893555f, 0.0361328f,
+-0.180664f, 0.0361328f, -0.18457f, 0.036377f, -0.188477f, 0.0366211f, -0.192383f,
+0.0366211f, -0.196289f, 0.182617f, -0.217285f, 0.181152f, -0.159668f, 0.197754f,
+-0.131348f, 0.214355f, -0.103027f, 0.245117f, -0.103027f, 0.280762f, -0.103027f,
+0.307373f, -0.131836f, 0.333984f, -0.160645f, 0.344238f, -0.214355f, 0.408691f, -0.545898f,
+0.261719f, -0.545898f, 0.283691f, -0.658691f, 0.574219f, -0.658691f, 0.48877f, -0.217773f,
+0.478516f, -0.165527f, 0.455322f, -0.123291f, 0.432129f, -0.0810547f, 0.397705f,
+-0.0515137f, 0.363281f, -0.0219727f, 0.319092f, -0.00610352f, 0.274902f, 0.00976562f,
+0.222168f, 0.00976562f, 0.378906f, 0, 0.273926f, -0.271973f, 0.19873f, -0.202637f,
+0.15918f, 0, 0.0151367f, 0, 0.143066f, -0.658691f, 0.287109f, -0.658691f, 0.230469f,
+-0.366211f, 0.5f, -0.658691f, 0.66748f, -0.658691f, 0.388184f, -0.375977f, 0.548828f,
+0, 0.0517578f, 0, 0.179688f, -0.658691f, 0.32373f, -0.658691f, 0.217285f, -0.111328f,
+0.518066f, -0.111328f, 0.496582f, 0, 0.39209f, 0, 0.474609f, -0.423828f, 0.479492f,
+-0.44873f, 0.48584f, -0.474609f, 0.492188f, -0.500488f, 0.497559f, -0.521973f, 0.503906f,
+-0.546875f, 0.510742f, -0.570801f, 0.498047f, -0.537109f, 0.485352f, -0.505859f,
+0.47998f, -0.492676f, 0.474365f, -0.478516f, 0.46875f, -0.464355f, 0.462891f, -0.450928f,
+0.457031f, -0.4375f, 0.45166f, -0.425537f, 0.446289f, -0.413574f, 0.441895f, -0.404297f,
+0.336914f, -0.175781f, 0.230469f, -0.175781f, 0.213379f, -0.404297f, 0.212891f, -0.411621f,
+0.212158f, -0.422852f, 0.211426f, -0.434082f, 0.210938f, -0.447266f, 0.210449f, -0.460449f,
+0.210205f, -0.474609f, 0.209961f, -0.48877f, 0.209473f, -0.502441f, 0.208496f, -0.534668f,
+0.208496f, -0.570801f, 0.206055f, -0.547363f, 0.202637f, -0.521973f, 0.199707f, -0.5f,
+0.195801f, -0.474365f, 0.191895f, -0.44873f, 0.187012f, -0.423828f, 0.104492f, 0,
+-0.00292969f, 0, 0.125f, -0.658691f, 0.294434f, -0.658691f, 0.312988f, -0.415039f,
+0.313477f, -0.410156f, 0.313721f, -0.404541f, 0.313965f, -0.398926f, 0.313965f, -0.39209f,
+0.313965f, -0.37793f, 0.313477f, -0.362061f, 0.312988f, -0.346191f, 0.312012f, -0.333008f,
+0.311035f, -0.317383f, 0.30957f, -0.302246f, 0.317383f, -0.325195f, 0.324707f, -0.346191f,
+0.331055f, -0.364258f, 0.338379f, -0.383057f, 0.345703f, -0.401855f, 0.351074f, -0.414551f,
+0.464844f, -0.658691f, 0.628418f, -0.658691f, 0.500488f, 0, 0.313965f, 0, 0.222168f,
+-0.493164f, 0.219727f, -0.458008f, 0.216309f, -0.425781f, 0.214844f, -0.412109f,
+0.213135f, -0.397461f, 0.211426f, -0.382812f, 0.209717f, -0.368896f, 0.208008f, -0.35498f,
+0.206299f, -0.342529f, 0.20459f, -0.330078f, 0.202637f, -0.320312f, 0.140137f, 0,
+0.0146484f, 0, 0.142578f, -0.658691f, 0.307129f, -0.658691f, 0.400879f, -0.152344f,
+0.40332f, -0.185059f, 0.406738f, -0.217285f, 0.409668f, -0.245117f, 0.41333f, -0.275635f,
+0.416992f, -0.306152f, 0.421875f, -0.330566f, 0.485352f, -0.658691f, 0.61084f, -0.658691f,
+0.48291f, 0, 0.578125f, -0.331543f, 0.54541f, -0.163086f, 0.460205f, -0.0766602f,
+0.375f, 0.00976562f, 0.24707f, 0.00976562f, 0.143066f, 0.00976562f, 0.0895996f, -0.0466309f,
+0.0361328f, -0.103027f, 0.0361328f, -0.214844f, 0.0361328f, -0.241211f, 0.0390625f,
+-0.270264f, 0.0419922f, -0.299316f, 0.0483398f, -0.331543f, 0.0810547f, -0.5f, 0.166016f,
+-0.584473f, 0.250977f, -0.668945f, 0.378906f, -0.668945f, 0.482422f, -0.668945f,
+0.536377f, -0.61377f, 0.590332f, -0.558594f, 0.590332f, -0.447754f, 0.590332f, -0.421387f,
+0.587402f, -0.392578f, 0.584473f, -0.36377f, 0.578125f, -0.331543f, 0.432129f, -0.331543f,
+0.443848f, -0.391602f, 0.443848f, -0.435547f, 0.443848f, -0.555664f, 0.356934f, -0.555664f,
+0.297852f, -0.555664f, 0.25708f, -0.499756f, 0.216309f, -0.443848f, 0.194336f, -0.331543f,
+0.182617f, -0.272461f, 0.182617f, -0.227539f, 0.182617f, -0.166016f, 0.204346f, -0.134766f,
+0.226074f, -0.103516f, 0.269043f, -0.103516f, 0.328125f, -0.103516f, 0.369141f, -0.161377f,
+0.410156f, -0.219238f, 0.432129f, -0.331543f, 0.59375f, -0.450684f, 0.584961f, -0.40625f,
+0.5625f, -0.366455f, 0.540039f, -0.32666f, 0.503662f, -0.296875f, 0.467285f, -0.26709f,
+0.416504f, -0.249756f, 0.365723f, -0.232422f, 0.300781f, -0.232422f, 0.20459f, -0.232422f,
+0.15918f, 0, 0.0151367f, 0, 0.143066f, -0.658691f, 0.377441f, -0.658691f, 0.43457f,
+-0.658691f, 0.476318f, -0.647949f, 0.518066f, -0.637207f, 0.54541f, -0.616943f, 0.572754f,
+-0.59668f, 0.585938f, -0.567383f, 0.599121f, -0.538086f, 0.599121f, -0.500977f, 0.599121f,
+-0.489258f, 0.597656f, -0.476562f, 0.596191f, -0.463867f, 0.59375f, -0.450684f, 0.448242f,
+-0.448242f, 0.451172f, -0.462891f, 0.451172f, -0.475098f, 0.451172f, -0.513672f,
+0.423096f, -0.530273f, 0.39502f, -0.546875f, 0.339844f, -0.546875f, 0.265625f, -0.546875f,
+0.226074f, -0.343262f, 0.304199f, -0.343262f, 0.368652f, -0.343262f, 0.403564f, -0.369873f,
+0.438477f, -0.396484f, 0.448242f, -0.448242f, 0.578125f, -0.331543f, 0.550781f, -0.190918f,
+0.487549f, -0.10791f, 0.424316f, -0.0249023f, 0.329102f, 0, 0.333496f, 0.0268555f,
+0.343506f, 0.0444336f, 0.353516f, 0.0620117f, 0.367676f, 0.0722656f, 0.381836f, 0.0825195f,
+0.400635f, 0.0866699f, 0.419434f, 0.0908203f, 0.441406f, 0.0908203f, 0.455566f, 0.0908203f,
+0.471436f, 0.0888672f, 0.487305f, 0.0869141f, 0.502441f, 0.0844727f, 0.483398f, 0.183105f,
+0.455566f, 0.188965f, 0.42627f, 0.192871f, 0.396973f, 0.196777f, 0.362793f, 0.196777f,
+0.316406f, 0.196777f, 0.284424f, 0.182617f, 0.252441f, 0.168457f, 0.231445f, 0.142822f,
+0.210449f, 0.117188f, 0.199463f, 0.081543f, 0.188477f, 0.0458984f, 0.183594f, 0.00341797f,
+0.110352f, -0.012207f, 0.0732422f, -0.0668945f, 0.0361328f, -0.121582f, 0.0361328f,
+-0.214355f, 0.0361328f, -0.240723f, 0.0390625f, -0.27002f, 0.0419922f, -0.299316f,
+0.0483398f, -0.331543f, 0.0810547f, -0.5f, 0.166016f, -0.584473f, 0.250977f, -0.668945f,
+0.378906f, -0.668945f, 0.482422f, -0.668945f, 0.536377f, -0.61377f, 0.590332f, -0.558594f,
+0.590332f, -0.447754f, 0.590332f, -0.421387f, 0.587402f, -0.392578f, 0.584473f, -0.36377f,
+0.578125f, -0.331543f, 0.432129f, -0.331543f, 0.443848f, -0.391602f, 0.443848f, -0.435547f,
+0.443848f, -0.555664f, 0.356934f, -0.555664f, 0.297852f, -0.555664f, 0.25708f, -0.499756f,
+0.216309f, -0.443848f, 0.194336f, -0.331543f, 0.182617f, -0.272461f, 0.182617f, -0.227539f,
+0.182617f, -0.166016f, 0.204346f, -0.134766f, 0.226074f, -0.103516f, 0.269043f, -0.103516f,
+0.328125f, -0.103516f, 0.369141f, -0.161377f, 0.410156f, -0.219238f, 0.432129f, -0.331543f,
+0.385742f, 0, 0.292969f, -0.251465f, 0.208496f, -0.251465f, 0.159668f, 0, 0.015625f,
+0, 0.143555f, -0.658691f, 0.384766f, -0.658691f, 0.49707f, -0.658691f, 0.552734f,
+-0.620361f, 0.608398f, -0.582031f, 0.608398f, -0.509277f, 0.608398f, -0.498535f,
+0.607178f, -0.487061f, 0.605957f, -0.475586f, 0.603516f, -0.463379f, 0.59668f, -0.427246f,
+0.580811f, -0.397949f, 0.564941f, -0.368652f, 0.54248f, -0.346436f, 0.52002f, -0.324219f,
+0.491943f, -0.30835f, 0.463867f, -0.29248f, 0.432617f, -0.283691f, 0.547852f, 0,
+0.45752f, -0.45752f, 0.458496f, -0.463867f, 0.459229f, -0.469238f, 0.459961f, -0.474609f,
+0.459961f, -0.47998f, 0.459961f, -0.51709f, 0.430908f, -0.531982f, 0.401855f, -0.546875f,
+0.348145f, -0.546875f, 0.266113f, -0.546875f, 0.230469f, -0.363281f, 0.316406f, -0.363281f,
+0.380859f, -0.363281f, 0.414795f, -0.387451f, 0.44873f, -0.411621f, 0.45752f, -0.45752f,
+0.554688f, -0.190918f, 0.546387f, -0.147949f, 0.522461f, -0.111084f, 0.498535f, -0.0742188f,
+0.459717f, -0.0473633f, 0.420898f, -0.0205078f, 0.367188f, -0.00537109f, 0.313477f,
+0.00976562f, 0.245117f, 0.00976562f, 0.187988f, 0.00976562f, 0.143311f, -0.00244141f,
+0.0986328f, -0.0146484f, 0.067627f, -0.0385742f, 0.0366211f, -0.0625f, 0.0200195f,
+-0.0979004f, 0.00341797f, -0.133301f, 0.00195312f, -0.179199f, 0.14502f, -0.197266f,
+0.147461f, -0.151367f, 0.177734f, -0.124756f, 0.208008f, -0.0981445f, 0.27002f, -0.0981445f,
+0.299316f, -0.0981445f, 0.323486f, -0.102539f, 0.347656f, -0.106934f, 0.365967f,
+-0.116699f, 0.384277f, -0.126465f, 0.396484f, -0.142822f, 0.408691f, -0.15918f, 0.413086f,
+-0.182617f, 0.414551f, -0.189941f, 0.414551f, -0.196777f, 0.414551f, -0.21875f, 0.400879f,
+-0.23291f, 0.387207f, -0.24707f, 0.366211f, -0.256836f, 0.345215f, -0.266602f, 0.31958f,
+-0.273193f, 0.293945f, -0.279785f, 0.270508f, -0.286133f, 0.240723f, -0.294434f,
+0.20874f, -0.305908f, 0.176758f, -0.317383f, 0.150391f, -0.335449f, 0.124023f, -0.353516f,
+0.106934f, -0.380127f, 0.0898438f, -0.406738f, 0.0898438f, -0.446289f, 0.0898438f,
+-0.462891f, 0.09375f, -0.483887f, 0.103027f, -0.531738f, 0.130371f, -0.56665f, 0.157715f,
+-0.601562f, 0.196777f, -0.624268f, 0.23584f, -0.646973f, 0.282959f, -0.657959f, 0.330078f,
+-0.668945f, 0.378906f, -0.668945f, 0.488281f, -0.668945f, 0.541504f, -0.625732f,
+0.594727f, -0.58252f, 0.595215f, -0.491699f, 0.452637f, -0.477539f, 0.450684f, -0.521973f,
+0.427246f, -0.544434f, 0.403809f, -0.566895f, 0.356445f, -0.566895f, 0.325684f, -0.566895f,
+0.303955f, -0.560791f, 0.282227f, -0.554688f, 0.268066f, -0.544189f, 0.253906f, -0.533691f,
+0.246094f, -0.520264f, 0.238281f, -0.506836f, 0.235352f, -0.492188f, 0.233887f, -0.484863f,
+0.233887f, -0.478027f, 0.233887f, -0.458984f, 0.244629f, -0.446289f, 0.255371f, -0.433594f,
+0.272949f, -0.424561f, 0.290527f, -0.415527f, 0.312744f, -0.40918f, 0.334961f, -0.402832f,
+0.358398f, -0.396484f, 0.380371f, -0.390625f, 0.403809f, -0.383545f, 0.427246f, -0.376465f,
+0.449463f, -0.367188f, 0.47168f, -0.35791f, 0.491455f, -0.345459f, 0.51123f, -0.333008f,
+0.526123f, -0.316406f, 0.541016f, -0.299805f, 0.549805f, -0.27832f, 0.558594f, -0.256836f,
+0.558594f, -0.229004f, 0.558594f, -0.220215f, 0.557617f, -0.210693f, 0.556641f, -0.201172f,
+0.554688f, -0.190918f, 0.427246f, -0.547363f, 0.320801f, 0, 0.176758f, 0, 0.283203f,
+-0.547363f, 0.0849609f, -0.547363f, 0.106445f, -0.658691f, 0.646973f, -0.658691f,
+0.625488f, -0.547363f, 0.239258f, 0.00976562f, 0.195312f, 0.00976562f, 0.160645f,
+0.000976562f, 0.125977f, -0.0078125f, 0.101562f, -0.027832f, 0.0771484f, -0.0478516f,
+0.064209f, -0.0805664f, 0.0512695f, -0.113281f, 0.0512695f, -0.161133f, 0.0512695f,
+-0.204102f, 0.0620117f, -0.257812f, 0.139648f, -0.658691f, 0.283691f, -0.658691f,
+0.206055f, -0.259277f, 0.201172f, -0.234863f, 0.198975f, -0.215088f, 0.196777f, -0.195312f,
+0.196777f, -0.179199f, 0.196777f, -0.137695f, 0.213379f, -0.120361f, 0.22998f, -0.103027f,
+0.265137f, -0.103027f, 0.289551f, -0.103027f, 0.309326f, -0.111572f, 0.329102f, -0.120117f,
+0.344971f, -0.13916f, 0.36084f, -0.158203f, 0.372559f, -0.188965f, 0.384277f, -0.219727f,
+0.393066f, -0.26416f, 0.469727f, -0.658691f, 0.61377f, -0.658691f, 0.537598f, -0.265137f,
+0.522461f, -0.188965f, 0.495117f, -0.136475f, 0.467773f, -0.0839844f, 0.429688f,
+-0.0515137f, 0.391602f, -0.019043f, 0.343506f, -0.00463867f, 0.29541f, 0.00976562f,
+0.239258f, 0.00976562f, 0.322754f, 0, 0.176758f, 0, 0.078125f, -0.658691f, 0.228516f,
+-0.658691f, 0.269043f, -0.280273f, 0.271484f, -0.258301f, 0.273438f, -0.235352f,
+0.275391f, -0.212402f, 0.276855f, -0.193359f, 0.278809f, -0.170898f, 0.279785f, -0.150391f,
+0.288574f, -0.17041f, 0.29834f, -0.192383f, 0.306641f, -0.210938f, 0.317627f, -0.234131f,
+0.328613f, -0.257324f, 0.340332f, -0.280273f, 0.526855f, -0.658691f, 0.675781f, -0.658691f,
+0.445801f, 0, 0.324707f, 0, 0.318848f, -0.130371f, 0.318359f, -0.139648f, 0.317383f,
+-0.152344f, 0.316406f, -0.165039f, 0.315674f, -0.179443f, 0.314941f, -0.193848f,
+0.314209f, -0.209229f, 0.313477f, -0.224609f, 0.312988f, -0.239258f, 0.311523f, -0.273438f,
+0.310059f, -0.310547f, 0.293945f, -0.272949f, 0.278809f, -0.23877f, 0.272461f, -0.224121f,
+0.265625f, -0.20874f, 0.258789f, -0.193359f, 0.252441f, -0.178955f, 0.246094f, -0.164551f,
+0.240479f, -0.1521f, 0.234863f, -0.139648f, 0.230469f, -0.130371f, 0.172852f, 0,
+0.0517578f, 0, 0.0766602f, -0.658691f, 0.203125f, -0.658691f, 0.180664f, -0.319336f,
+0.179688f, -0.300293f, 0.176514f, -0.277832f, 0.17334f, -0.255371f, 0.17041f, -0.235352f,
+0.166992f, -0.211914f, 0.163086f, -0.189453f, 0.169434f, -0.207031f, 0.177734f, -0.226562f,
+0.18457f, -0.243652f, 0.193848f, -0.264893f, 0.203125f, -0.286133f, 0.213379f, -0.308594f,
+0.293945f, -0.474121f, 0.38916f, -0.474121f, 0.405273f, -0.308594f, 0.407715f, -0.280762f,
+0.408203f, -0.254883f, 0.408691f, -0.229004f, 0.408691f, -0.211914f, 0.408691f, -0.189453f,
+0.40918f, -0.189453f, 0.412354f, -0.202637f, 0.415527f, -0.21582f, 0.420166f, -0.235352f,
+0.424805f, -0.254883f, 0.430908f, -0.277588f, 0.437012f, -0.300293f, 0.442871f, -0.319336f,
+0.549805f, -0.658691f, 0.67627f, -0.658691f, 0.397461f, 0, 0.296387f, -0.240723f,
+0.101074f, 0, -0.0512695f, 0, 0.240234f, -0.347168f, 0.0966797f, -0.658691f, 0.249023f,
+-0.658691f, 0.336914f, -0.44873f, 0.505371f, -0.658691f, 0.656738f, -0.658691f, 0.387207f,
+-0.347168f, 0.548828f, 0, 0.373047f, -0.271484f, 0.320312f, 0, 0.176758f, 0, 0.229492f,
+-0.271484f, 0.078125f, -0.658691f, 0.229004f, -0.658691f, 0.321777f, -0.382324f,
+0.523926f, -0.658691f, 0.674805f, -0.658691f, 0.504395f, 0, -0.00878906f, 0, 0.0112305f,
+-0.102051f, 0.424805f, -0.545898f, 0.134277f, -0.545898f, 0.15625f, -0.658691f, 0.612305f,
+-0.658691f, 0.592773f, -0.558594f, 0.178711f, -0.112793f, 0.526367f, -0.112793f,
+0.090332f, 0.20752f, 0.271484f, -0.724609f, 0.56543f, -0.724609f, 0.547852f, -0.631836f,
+0.383789f, -0.631836f, 0.23877f, 0.114258f, 0.402832f, 0.114258f, 0.384277f, 0.20752f,
+0.390137f, 0.00976562f, 0.133789f, -0.724609f, 0.245117f, -0.724609f, 0.503418f,
+0.00976562f, 0.0322266f, 0.20752f, 0.0507812f, 0.114258f, 0.214844f, 0.114258f, 0.359863f,
+-0.631836f, 0.195801f, -0.631836f, 0.213379f, -0.724609f, 0.507324f, -0.724609f,
+0.326172f, 0.20752f, 0.447754f, -0.250977f, 0.359863f, -0.618164f, 0.130371f, -0.250977f,
+0.0195312f, -0.250977f, 0.29541f, -0.687988f, 0.452637f, -0.687988f, 0.55957f, -0.250977f,
+-0.074707f, 0.107422f, -0.0654297f, 0.0605469f, 0.539062f, 0.0605469f, 0.529785f,
+0.107422f, 0.396484f, -0.578125f, 0.252441f, -0.690918f, 0.256348f, -0.711914f, 0.382324f,
+-0.711914f, 0.482422f, -0.593262f, 0.479492f, -0.578125f, 0.161133f, 0.00976562f,
+0.0957031f, 0.00976562f, 0.0603027f, -0.0205078f, 0.0249023f, -0.0507812f, 0.0249023f,
+-0.108398f, 0.0249023f, -0.127441f, 0.0292969f, -0.149414f, 0.0385742f, -0.196289f,
+0.0603027f, -0.228271f, 0.0820312f, -0.260254f, 0.113281f, -0.280029f, 0.144531f,
+-0.299805f, 0.183594f, -0.308838f, 0.222656f, -0.317871f, 0.266113f, -0.318359f,
+0.375488f, -0.320312f, 0.380371f, -0.347168f, 0.382812f, -0.358887f, 0.384033f, -0.369141f,
+0.385254f, -0.379395f, 0.385254f, -0.388184f, 0.385254f, -0.421875f, 0.369873f, -0.435547f,
+0.354492f, -0.449219f, 0.328125f, -0.449219f, 0.312988f, -0.449219f, 0.299805f, -0.445801f,
+0.286621f, -0.442383f, 0.275635f, -0.433838f, 0.264648f, -0.425293f, 0.255859f, -0.410889f,
+0.24707f, -0.396484f, 0.240234f, -0.374512f, 0.0986328f, -0.381348f, 0.11084f, -0.416016f,
+0.131348f, -0.44458f, 0.151855f, -0.473145f, 0.182617f, -0.494141f, 0.213379f, -0.515137f,
+0.255127f, -0.526611f, 0.296875f, -0.538086f, 0.351074f, -0.538086f, 0.435547f, -0.538086f,
+0.479248f, -0.502686f, 0.522949f, -0.467285f, 0.522949f, -0.398438f, 0.522949f, -0.375977f,
+0.517578f, -0.347656f, 0.480469f, -0.15625f, 0.478027f, -0.144043f, 0.476562f, -0.133545f,
+0.475098f, -0.123047f, 0.475098f, -0.114746f, 0.475098f, -0.0966797f, 0.482666f,
+-0.0874023f, 0.490234f, -0.078125f, 0.508789f, -0.078125f, 0.524414f, -0.078125f,
+0.539551f, -0.0810547f, 0.525391f, -0.00683594f, 0.512695f, -0.00390625f, 0.502441f,
+-0.00146484f, 0.492188f, 0.000976562f, 0.482178f, 0.00244141f, 0.472168f, 0.00390625f,
+0.460938f, 0.00488281f, 0.449707f, 0.00585938f, 0.435059f, 0.00585938f, 0.388672f,
+0.00585938f, 0.368164f, -0.0144043f, 0.347656f, -0.034668f, 0.347656f, -0.0742188f,
+0.347656f, -0.0791016f, 0.3479f, -0.0839844f, 0.348145f, -0.0888672f, 0.348633f,
+-0.0942383f, 0.345703f, -0.0942383f, 0.327148f, -0.0698242f, 0.307373f, -0.0505371f,
+0.287598f, -0.03125f, 0.265137f, -0.0178223f, 0.242676f, -0.00439453f, 0.217041f,
+0.00268555f, 0.191406f, 0.00976562f, 0.161133f, 0.00976562f, 0.360352f, -0.244629f,
+0.294922f, -0.243652f, 0.272949f, -0.243164f, 0.253418f, -0.240479f, 0.233887f, -0.237793f,
+0.218018f, -0.229248f, 0.202148f, -0.220703f, 0.191162f, -0.204346f, 0.180176f, -0.187988f,
+0.174805f, -0.160156f, 0.171875f, -0.145508f, 0.171875f, -0.133789f, 0.171875f, -0.0859375f,
+0.21875f, -0.0859375f, 0.245117f, -0.0859375f, 0.267822f, -0.097168f, 0.290527f,
+-0.108398f, 0.30835f, -0.126709f, 0.326172f, -0.14502f, 0.338379f, -0.168945f, 0.350586f,
+-0.192871f, 0.355469f, -0.217773f, 0.0170898f, 0, 0.0209961f, -0.0166016f, 0.0283203f,
+-0.0466309f, 0.0356445f, -0.0766602f, 0.043457f, -0.115234f, 0.161621f, -0.724609f,
+0.298828f, -0.724609f, 0.261719f, -0.532227f, 0.259277f, -0.52002f, 0.256592f, -0.506836f,
+0.253906f, -0.493652f, 0.251465f, -0.481445f, 0.249023f, -0.469238f, 0.246826f, -0.459717f,
+0.244629f, -0.450195f, 0.243652f, -0.445312f, 0.244629f, -0.445312f, 0.26123f, -0.471191f,
+0.281982f, -0.489014f, 0.302734f, -0.506836f, 0.325439f, -0.517822f, 0.348145f, -0.528809f,
+0.371826f, -0.533691f, 0.395508f, -0.538574f, 0.41748f, -0.538574f, 0.455566f, -0.538574f,
+0.483154f, -0.526123f, 0.510742f, -0.513672f, 0.528564f, -0.490479f, 0.546387f, -0.467285f,
+0.554932f, -0.435059f, 0.563477f, -0.402832f, 0.563477f, -0.363281f, 0.563477f, -0.340332f,
+0.560791f, -0.31543f, 0.558105f, -0.290527f, 0.552734f, -0.263672f, 0.541016f, -0.20459f,
+0.518555f, -0.154541f, 0.496094f, -0.104492f, 0.4646f, -0.0678711f, 0.433105f, -0.03125f,
+0.393066f, -0.0107422f, 0.353027f, 0.00976562f, 0.306641f, 0.00976562f, 0.28418f,
+0.00976562f, 0.263672f, 0.00463867f, 0.243164f, -0.000488281f, 0.22583f, -0.0119629f,
+0.208496f, -0.0234375f, 0.195557f, -0.0415039f, 0.182617f, -0.0595703f, 0.175781f,
+-0.0859375f, 0.173828f, -0.0859375f, 0.171875f, -0.0756836f, 0.168701f, -0.0625f,
+0.165527f, -0.0493164f, 0.161865f, -0.0366211f, 0.158203f, -0.0239258f, 0.155029f,
+-0.013916f, 0.151855f, -0.00390625f, 0.149902f, 0, 0.208008f, -0.26709f, 0.200195f,
+-0.226562f, 0.200195f, -0.194824f, 0.200195f, -0.163574f, 0.207031f, -0.14209f, 0.213867f,
+-0.120605f, 0.224609f, -0.10791f, 0.235352f, -0.0952148f, 0.249023f, -0.0895996f,
+0.262695f, -0.0839844f, 0.276367f, -0.0839844f, 0.323242f, -0.0839844f, 0.35791f,
+-0.128906f, 0.392578f, -0.173828f, 0.409668f, -0.263672f, 0.418457f, -0.310547f,
+0.418457f, -0.344727f, 0.418457f, -0.397461f, 0.39917f, -0.421387f, 0.379883f, -0.445312f,
+0.345703f, -0.445312f, 0.328125f, -0.445312f, 0.30835f, -0.437012f, 0.288574f, -0.428711f,
+0.269775f, -0.408447f, 0.250977f, -0.388184f, 0.234619f, -0.35376f, 0.218262f, -0.319336f,
+0.208008f, -0.26709f, 0.251465f, 0.00976562f, 0.199219f, 0.00976562f, 0.1604f, -0.00390625f,
+0.121582f, -0.0175781f, 0.0959473f, -0.0429688f, 0.0703125f, -0.0683594f, 0.0578613f,
+-0.104248f, 0.0454102f, -0.140137f, 0.0454102f, -0.18457f, 0.0454102f, -0.202637f,
+0.0473633f, -0.22168f, 0.0493164f, -0.240723f, 0.0532227f, -0.26123f, 0.065918f,
+-0.327148f, 0.0930176f, -0.378662f, 0.120117f, -0.430176f, 0.159424f, -0.465576f,
+0.19873f, -0.500977f, 0.249268f, -0.519531f, 0.299805f, -0.538086f, 0.359863f, -0.538086f,
+0.410645f, -0.538086f, 0.447754f, -0.524658f, 0.484863f, -0.51123f, 0.509033f, -0.487793f,
+0.533203f, -0.464355f, 0.544922f, -0.432617f, 0.556641f, -0.400879f, 0.556641f, -0.364258f,
+0.556641f, -0.361816f, 0.416992f, -0.35498f, 0.419434f, -0.395508f, 0.400635f, -0.419678f,
+0.381836f, -0.443848f, 0.338867f, -0.443848f, 0.283691f, -0.443848f, 0.249512f, -0.398438f,
+0.215332f, -0.353027f, 0.198242f, -0.266602f, 0.189453f, -0.222168f, 0.189453f, -0.187988f,
+0.189453f, -0.0839844f, 0.270508f, -0.0839844f, 0.30957f, -0.0839844f, 0.341064f,
+-0.108643f, 0.372559f, -0.133301f, 0.388184f, -0.182129f, 0.524414f, -0.175781f,
+0.512695f, -0.13916f, 0.48877f, -0.105713f, 0.464844f, -0.0722656f, 0.430176f, -0.0466309f,
+0.395508f, -0.0209961f, 0.350586f, -0.00561523f, 0.305664f, 0.00976562f, 0.251465f,
+0.00976562f, 0.347656f, 0, 0.347168f, -0.00390625f, 0.3479f, -0.013916f, 0.348633f,
+-0.0239258f, 0.350098f, -0.0366211f, 0.351562f, -0.0493164f, 0.353271f, -0.0625f,
+0.35498f, -0.0756836f, 0.356934f, -0.0859375f, 0.35498f, -0.0859375f, 0.336914f,
+-0.0595703f, 0.317383f, -0.0415039f, 0.297852f, -0.0234375f, 0.276367f, -0.0119629f,
+0.254883f, -0.000488281f, 0.231445f, 0.00463867f, 0.208008f, 0.00976562f, 0.182129f,
+0.00976562f, 0.145508f, 0.00976562f, 0.118164f, -0.00317383f, 0.0908203f, -0.0161133f,
+0.072998f, -0.0397949f, 0.0551758f, -0.0634766f, 0.0463867f, -0.0966797f, 0.0375977f,
+-0.129883f, 0.0375977f, -0.17041f, 0.0375977f, -0.192383f, 0.0400391f, -0.215332f,
+0.0424805f, -0.238281f, 0.0473633f, -0.263184f, 0.059082f, -0.323242f, 0.0805664f,
+-0.373535f, 0.102051f, -0.423828f, 0.133057f, -0.460205f, 0.164062f, -0.496582f,
+0.204346f, -0.516846f, 0.244629f, -0.537109f, 0.293945f, -0.537109f, 0.315918f, -0.537109f,
+0.336914f, -0.532227f, 0.35791f, -0.527344f, 0.375488f, -0.516357f, 0.393066f, -0.505371f,
+0.40625f, -0.487549f, 0.419434f, -0.469727f, 0.425781f, -0.443848f, 0.426758f, -0.443848f,
+0.427734f, -0.44873f, 0.429443f, -0.458252f, 0.431152f, -0.467773f, 0.433105f, -0.47998f,
+0.435059f, -0.492188f, 0.4375f, -0.505371f, 0.439941f, -0.518555f, 0.442383f, -0.530762f,
+0.47998f, -0.724609f, 0.617188f, -0.724609f, 0.499023f, -0.115234f, 0.491211f, -0.0766602f,
+0.487061f, -0.0466309f, 0.48291f, -0.0166016f, 0.480469f, 0, 0.393066f, -0.266602f,
+0.400879f, -0.307129f, 0.400879f, -0.338379f, 0.400879f, -0.369141f, 0.394287f, -0.389404f,
+0.387695f, -0.409668f, 0.376709f, -0.421631f, 0.365723f, -0.433594f, 0.352295f, -0.438721f,
+0.338867f, -0.443848f, 0.324707f, -0.443848f, 0.302246f, -0.443848f, 0.281982f, -0.433594f,
+0.261719f, -0.42334f, 0.244385f, -0.401611f, 0.227051f, -0.379883f, 0.213379f, -0.345703f,
+0.199707f, -0.311523f, 0.19043f, -0.263184f, 0.181641f, -0.21875f, 0.181641f, -0.18457f,
+0.181641f, -0.134277f, 0.199951f, -0.109131f, 0.218262f, -0.0839844f, 0.253418f,
+-0.0839844f, 0.270508f, -0.0839844f, 0.290527f, -0.0927734f, 0.310547f, -0.101562f,
+0.330078f, -0.122559f, 0.349609f, -0.143555f, 0.366211f, -0.178711f, 0.382812f, -0.213867f,
+0.393066f, -0.266602f, 0.252441f, 0.00976562f, 0.204102f, 0.00976562f, 0.165039f,
+-0.00244141f, 0.125977f, -0.0146484f, 0.0983887f, -0.0390625f, 0.0708008f, -0.0634766f,
+0.0559082f, -0.10083f, 0.0410156f, -0.138184f, 0.0410156f, -0.187988f, 0.0410156f,
+-0.206055f, 0.0432129f, -0.225586f, 0.0454102f, -0.245117f, 0.0493164f, -0.266602f,
+0.0639648f, -0.342285f, 0.0959473f, -0.394043f, 0.12793f, -0.445801f, 0.170166f,
+-0.477783f, 0.212402f, -0.509766f, 0.261719f, -0.523926f, 0.311035f, -0.538086f,
+0.36084f, -0.538086f, 0.411621f, -0.538086f, 0.448486f, -0.523682f, 0.485352f, -0.509277f,
+0.509277f, -0.482666f, 0.533203f, -0.456055f, 0.544922f, -0.418457f, 0.556641f, -0.380859f,
+0.556641f, -0.334473f, 0.556641f, -0.3125f, 0.554199f, -0.289551f, 0.551758f, -0.266602f,
+0.546875f, -0.241699f, 0.546387f, -0.237793f, 0.187988f, -0.237793f, 0.183105f, -0.213379f,
+0.183105f, -0.189453f, 0.183105f, -0.165527f, 0.188721f, -0.145752f, 0.194336f, -0.125977f,
+0.206055f, -0.111816f, 0.217773f, -0.0976562f, 0.235596f, -0.0898438f, 0.253418f,
+-0.0820312f, 0.277344f, -0.0820312f, 0.29541f, -0.0820312f, 0.3125f, -0.0859375f,
+0.32959f, -0.0898438f, 0.344482f, -0.0974121f, 0.359375f, -0.10498f, 0.371338f, -0.116943f,
+0.383301f, -0.128906f, 0.391113f, -0.14502f, 0.518066f, -0.133789f, 0.504883f, -0.111328f,
+0.482666f, -0.0859375f, 0.460449f, -0.0605469f, 0.427979f, -0.0393066f, 0.395508f,
+-0.0180664f, 0.352051f, -0.00415039f, 0.308594f, 0.00976562f, 0.252441f, 0.00976562f,
+0.342285f, -0.45166f, 0.321289f, -0.45166f, 0.300049f, -0.44458f, 0.278809f, -0.4375f,
+0.260498f, -0.422119f, 0.242188f, -0.406738f, 0.227783f, -0.382324f, 0.213379f, -0.35791f,
+0.205566f, -0.32373f, 0.430176f, -0.32373f, 0.431152f, -0.331055f, 0.431641f, -0.337891f,
+0.432129f, -0.344727f, 0.432129f, -0.351562f, 0.432129f, -0.401367f, 0.407227f, -0.426514f,
+0.382324f, -0.45166f, 0.342285f, -0.45166f, 0.352051f, -0.435547f, 0.267578f, 0,
+0.130859f, 0, 0.215332f, -0.435547f, 0.090332f, -0.435547f, 0.108398f, -0.52832f,
+0.233398f, -0.52832f, 0.241211f, -0.568848f, 0.24707f, -0.599121f, 0.261475f, -0.629395f,
+0.275879f, -0.659668f, 0.303711f, -0.684082f, 0.331543f, -0.708496f, 0.374512f, -0.723877f,
+0.41748f, -0.739258f, 0.480469f, -0.739258f, 0.530273f, -0.739258f, 0.569824f, -0.734863f,
+0.609375f, -0.730469f, 0.637695f, -0.725586f, 0.620117f, -0.635742f, 0.589844f, -0.639648f,
+0.555664f, -0.642334f, 0.521484f, -0.64502f, 0.486328f, -0.64502f, 0.458008f, -0.64502f,
+0.438721f, -0.638672f, 0.419434f, -0.632324f, 0.406738f, -0.62085f, 0.394043f, -0.609375f,
+0.386719f, -0.593018f, 0.379395f, -0.57666f, 0.375488f, -0.556152f, 0.370117f, -0.52832f,
+0.586426f, -0.52832f, 0.568359f, -0.435547f, 0.208496f, 0.211914f, 0.160156f, 0.211914f,
+0.124268f, 0.201416f, 0.0883789f, 0.190918f, 0.0649414f, 0.172119f, 0.0415039f, 0.15332f,
+0.0297852f, 0.127197f, 0.0180664f, 0.101074f, 0.0175781f, 0.0698242f, 0.158203f,
+0.0537109f, 0.15918f, 0.0854492f, 0.178467f, 0.104004f, 0.197754f, 0.122559f, 0.229492f,
+0.122559f, 0.25f, 0.122559f, 0.269775f, 0.115479f, 0.289551f, 0.108398f, 0.306396f,
+0.092041f, 0.323242f, 0.0756836f, 0.336182f, 0.048584f, 0.349121f, 0.0214844f, 0.356934f,
+-0.0180664f, 0.359863f, -0.0317383f, 0.363037f, -0.0466309f, 0.366211f, -0.0615234f,
+0.368652f, -0.0742188f, 0.371582f, -0.0888672f, 0.374512f, -0.103027f, 0.373535f,
+-0.103027f, 0.339844f, -0.0517578f, 0.293213f, -0.0288086f, 0.246582f, -0.00585938f,
+0.194336f, -0.00585938f, 0.157715f, -0.00585938f, 0.130859f, -0.0178223f, 0.104004f,
+-0.0297852f, 0.0864258f, -0.0517578f, 0.0688477f, -0.0737305f, 0.0603027f, -0.10498f,
+0.0517578f, -0.13623f, 0.0517578f, -0.175293f, 0.0517578f, -0.216797f, 0.0615234f,
+-0.268555f, 0.0732422f, -0.32959f, 0.0949707f, -0.378906f, 0.116699f, -0.428223f,
+0.147705f, -0.463379f, 0.178711f, -0.498535f, 0.218994f, -0.517578f, 0.259277f, -0.536621f,
+0.308105f, -0.536621f, 0.330566f, -0.536621f, 0.351562f, -0.531494f, 0.372559f, -0.526367f,
+0.389893f, -0.515137f, 0.407227f, -0.503906f, 0.420166f, -0.486084f, 0.433105f, -0.468262f,
+0.439453f, -0.443359f, 0.441895f, -0.443359f, 0.444336f, -0.453613f, 0.44751f, -0.467041f,
+0.450684f, -0.480469f, 0.454102f, -0.49292f, 0.45752f, -0.505371f, 0.460693f, -0.515137f,
+0.463867f, -0.524902f, 0.465332f, -0.52832f, 0.595215f, -0.52832f, 0.591309f, -0.510742f,
+0.583984f, -0.479004f, 0.57666f, -0.447266f, 0.568848f, -0.40625f, 0.492676f, -0.0161133f,
+0.481445f, 0.0415039f, 0.456787f, 0.0842285f, 0.432129f, 0.126953f, 0.395508f, 0.155273f,
+0.358887f, 0.183594f, 0.311768f, 0.197754f, 0.264648f, 0.211914f, 0.208496f, 0.211914f,
+0.407227f, -0.271484f, 0.414551f, -0.30957f, 0.414551f, -0.337891f, 0.414551f, -0.367676f,
+0.407715f, -0.387695f, 0.400879f, -0.407715f, 0.390137f, -0.419922f, 0.379395f, -0.432129f,
+0.365723f, -0.437256f, 0.352051f, -0.442383f, 0.338379f, -0.442383f, 0.315918f, -0.442383f,
+0.295654f, -0.432373f, 0.275391f, -0.422363f, 0.258057f, -0.401123f, 0.240723f, -0.379883f,
+0.227051f, -0.347168f, 0.213379f, -0.314453f, 0.20459f, -0.268555f, 0.196777f, -0.22998f,
+0.196777f, -0.19873f, 0.196777f, -0.148926f, 0.216064f, -0.125f, 0.235352f, -0.101074f,
+0.270996f, -0.101074f, 0.288086f, -0.101074f, 0.307861f, -0.108398f, 0.327637f, -0.115723f,
+0.346436f, -0.13501f, 0.365234f, -0.154297f, 0.381348f, -0.187256f, 0.397461f, -0.220215f,
+0.407227f, -0.271484f, 0.23584f, -0.422852f, 0.275391f, -0.483398f, 0.322754f, -0.510742f,
+0.370117f, -0.538086f, 0.428223f, -0.538086f, 0.464844f, -0.538086f, 0.490234f, -0.528564f,
+0.515625f, -0.519043f, 0.53125f, -0.501953f, 0.546875f, -0.484863f, 0.553711f, -0.460693f,
+0.560547f, -0.436523f, 0.560547f, -0.407715f, 0.560547f, -0.390625f, 0.558594f, -0.372559f,
+0.556641f, -0.354492f, 0.552734f, -0.334961f, 0.487793f, 0, 0.351074f, 0, 0.410156f,
+-0.303223f, 0.413574f, -0.320801f, 0.415527f, -0.336426f, 0.41748f, -0.352051f, 0.41748f,
+-0.365723f, 0.41748f, -0.399414f, 0.402832f, -0.417236f, 0.388184f, -0.435059f, 0.351074f,
+-0.435059f, 0.326172f, -0.435059f, 0.303711f, -0.424072f, 0.28125f, -0.413086f, 0.262939f,
+-0.392822f, 0.244629f, -0.372559f, 0.231201f, -0.344482f, 0.217773f, -0.316406f,
+0.210938f, -0.282715f, 0.155762f, 0, 0.0185547f, 0, 0.15918f, -0.724609f, 0.296387f,
+-0.724609f, 0.258301f, -0.526855f, 0.255371f, -0.51123f, 0.251709f, -0.495361f, 0.248047f,
+-0.479492f, 0.244629f, -0.465576f, 0.241211f, -0.45166f, 0.238281f, -0.44043f, 0.235352f,
+-0.429199f, 0.233887f, -0.422852f, 0.354492f, -0.0927734f, 0.526855f, -0.0927734f,
+0.508789f, 0, 0.00634766f, 0, 0.0244141f, -0.0927734f, 0.217285f, -0.0927734f, 0.283691f,
+-0.435547f, 0.14209f, -0.435547f, 0.160156f, -0.52832f, 0.438965f, -0.52832f, 0.320312f,
+-0.623535f, 0.339844f, -0.724609f, 0.477051f, -0.724609f, 0.45752f, -0.623535f, 0.369141f,
+0.00634766f, 0.358887f, 0.0595703f, 0.332764f, 0.0976562f, 0.306641f, 0.135742f,
+0.270752f, 0.160156f, 0.234863f, 0.18457f, 0.192139f, 0.196045f, 0.149414f, 0.20752f,
+0.105957f, 0.20752f, 0.0859375f, 0.20752f, 0.0661621f, 0.205811f, 0.0463867f, 0.204102f,
+0.0285645f, 0.201172f, 0.0107422f, 0.198242f, -0.00439453f, 0.19458f, -0.0195312f,
+0.190918f, -0.0302734f, 0.186523f, -0.0102539f, 0.0839844f, 0.0102539f, 0.0893555f,
+0.0427246f, 0.0949707f, 0.0751953f, 0.100586f, 0.114746f, 0.100586f, 0.135742f, 0.100586f,
+0.154541f, 0.0964355f, 0.17334f, 0.0922852f, 0.188721f, 0.0805664f, 0.204102f, 0.0688477f,
+0.21582f, 0.0483398f, 0.227539f, 0.027832f, 0.233887f, -0.00488281f, 0.317383f, -0.435547f,
+0.144531f, -0.435547f, 0.162598f, -0.52832f, 0.473145f, -0.52832f, 0.354492f, -0.623535f,
+0.374023f, -0.724609f, 0.51123f, -0.724609f, 0.491699f, -0.623535f, 0.370605f, 0,
+0.275879f, -0.239258f, 0.208984f, -0.198242f, 0.17041f, 0, 0.0332031f, 0, 0.173828f,
+-0.724609f, 0.311035f, -0.724609f, 0.230469f, -0.30957f, 0.461426f, -0.52832f, 0.608887f,
+-0.52832f, 0.383301f, -0.322266f, 0.520508f, 0, 0.354492f, -0.0927734f, 0.526855f,
+-0.0927734f, 0.508789f, 0, 0.00634766f, 0, 0.0244141f, -0.0927734f, 0.217285f, -0.0927734f,
+0.322266f, -0.631836f, 0.180664f, -0.631836f, 0.198242f, -0.724609f, 0.477051f, -0.724609f,
+0.193359f, 0, 0.255859f, -0.321289f, 0.26123f, -0.350586f, 0.26416f, -0.371582f,
+0.26709f, -0.392578f, 0.26709f, -0.407715f, 0.26709f, -0.431152f, 0.26001f, -0.440918f,
+0.25293f, -0.450684f, 0.238281f, -0.450684f, 0.226074f, -0.450684f, 0.213867f, -0.438721f,
+0.20166f, -0.426758f, 0.19043f, -0.405029f, 0.179199f, -0.383301f, 0.169434f, -0.352539f,
+0.159668f, -0.321777f, 0.152344f, -0.28418f, 0.097168f, 0, -0.0146484f, 0, 0.065918f,
+-0.415527f, 0.0693359f, -0.432129f, 0.0725098f, -0.450439f, 0.0756836f, -0.46875f,
+0.0783691f, -0.485107f, 0.0810547f, -0.501465f, 0.0830078f, -0.513184f, 0.0849609f,
+-0.524902f, 0.0849609f, -0.52832f, 0.187012f, -0.52832f, 0.187012f, -0.525879f, 0.185547f,
+-0.515869f, 0.184082f, -0.505859f, 0.182129f, -0.49292f, 0.180176f, -0.47998f, 0.177734f,
+-0.466309f, 0.175293f, -0.452637f, 0.17334f, -0.442871f, 0.174316f, -0.442871f, 0.18457f,
+-0.461914f, 0.196533f, -0.479248f, 0.208496f, -0.496582f, 0.223633f, -0.509766f,
+0.23877f, -0.522949f, 0.257324f, -0.530518f, 0.275879f, -0.538086f, 0.29834f, -0.538086f,
+0.341309f, -0.538086f, 0.358154f, -0.514648f, 0.375f, -0.491211f, 0.374512f, -0.442383f,
+0.375488f, -0.442383f, 0.388672f, -0.465332f, 0.402588f, -0.483154f, 0.416504f, -0.500977f,
+0.432617f, -0.513184f, 0.44873f, -0.525391f, 0.467529f, -0.531738f, 0.486328f, -0.538086f,
+0.509277f, -0.538086f, 0.552246f, -0.538086f, 0.571777f, -0.515625f, 0.591309f, -0.493164f,
+0.591309f, -0.444336f, 0.591309f, -0.425293f, 0.588623f, -0.402588f, 0.585938f, -0.379883f,
+0.580566f, -0.352051f, 0.512207f, 0, 0.400879f, 0, 0.463379f, -0.321289f, 0.46875f,
+-0.350586f, 0.47168f, -0.371582f, 0.474609f, -0.392578f, 0.474609f, -0.407715f, 0.474609f,
+-0.431152f, 0.467529f, -0.440918f, 0.460449f, -0.450684f, 0.445801f, -0.450684f,
+0.420898f, -0.450684f, 0.398926f, -0.411377f, 0.376953f, -0.37207f, 0.361816f, -0.293457f,
+0.304688f, 0, 0.351074f, 0, 0.409668f, -0.302246f, 0.416992f, -0.338379f, 0.416992f,
+-0.364258f, 0.416992f, -0.400879f, 0.401367f, -0.418213f, 0.385742f, -0.435547f,
+0.352051f, -0.435547f, 0.327148f, -0.435547f, 0.304688f, -0.424561f, 0.282227f, -0.413574f,
+0.263428f, -0.393311f, 0.244629f, -0.373047f, 0.231201f, -0.344971f, 0.217773f, -0.316895f,
+0.210938f, -0.283203f, 0.155762f, 0, 0.0185547f, 0, 0.0981445f, -0.410156f, 0.101562f,
+-0.427246f, 0.104736f, -0.445312f, 0.10791f, -0.463379f, 0.110596f, -0.479736f, 0.113281f,
+-0.496094f, 0.11499f, -0.509033f, 0.116699f, -0.521973f, 0.117188f, -0.52832f, 0.248047f,
+-0.52832f, 0.248047f, -0.522461f, 0.246582f, -0.509521f, 0.245117f, -0.496582f, 0.243164f,
+-0.480957f, 0.241211f, -0.465332f, 0.23877f, -0.449707f, 0.236328f, -0.434082f, 0.234375f,
+-0.42334f, 0.236328f, -0.42334f, 0.275391f, -0.483398f, 0.322998f, -0.510986f, 0.370605f,
+-0.538574f, 0.428223f, -0.538574f, 0.49707f, -0.538574f, 0.528809f, -0.503662f, 0.560547f,
+-0.46875f, 0.560547f, -0.405273f, 0.560547f, -0.373535f, 0.553223f, -0.335449f, 0.487793f,
+0, 0.555176f, -0.264648f, 0.543457f, -0.204102f, 0.518555f, -0.153809f, 0.493652f,
+-0.103516f, 0.455078f, -0.0671387f, 0.416504f, -0.0307617f, 0.364014f, -0.010498f,
+0.311523f, 0.00976562f, 0.244629f, 0.00976562f, 0.191406f, 0.00976562f, 0.1521f,
+-0.00415039f, 0.112793f, -0.0180664f, 0.0874023f, -0.0437012f, 0.0620117f, -0.0693359f,
+0.0495605f, -0.105713f, 0.0371094f, -0.14209f, 0.0371094f, -0.187012f, 0.0371094f,
+-0.205566f, 0.0390625f, -0.224854f, 0.0410156f, -0.244141f, 0.0449219f, -0.264648f,
+0.0566406f, -0.32373f, 0.0810547f, -0.373779f, 0.105469f, -0.423828f, 0.143555f,
+-0.460449f, 0.181641f, -0.49707f, 0.234131f, -0.517578f, 0.286621f, -0.538086f, 0.354004f,
+-0.538086f, 0.411621f, -0.538086f, 0.45166f, -0.524658f, 0.491699f, -0.51123f, 0.516846f,
+-0.486816f, 0.541992f, -0.462402f, 0.553223f, -0.427734f, 0.564453f, -0.393066f,
+0.564453f, -0.351074f, 0.564453f, -0.330566f, 0.562012f, -0.309326f, 0.55957f, -0.288086f,
+0.555176f, -0.264648f, 0.411621f, -0.264648f, 0.416504f, -0.289551f, 0.418945f, -0.310547f,
+0.421387f, -0.331543f, 0.421387f, -0.349121f, 0.421387f, -0.398438f, 0.401367f, -0.421143f,
+0.381348f, -0.443848f, 0.337891f, -0.443848f, 0.307617f, -0.443848f, 0.283936f, -0.43335f,
+0.260254f, -0.422852f, 0.242188f, -0.400879f, 0.224121f, -0.378906f, 0.211182f, -0.345215f,
+0.198242f, -0.311523f, 0.188965f, -0.264648f, 0.180176f, -0.21875f, 0.180176f, -0.18457f,
+0.180176f, -0.132324f, 0.200684f, -0.108154f, 0.221191f, -0.0839844f, 0.26123f, -0.0839844f,
+0.291504f, -0.0839844f, 0.31543f, -0.0944824f, 0.339355f, -0.10498f, 0.357666f, -0.126953f,
+0.375977f, -0.148926f, 0.38916f, -0.183105f, 0.402344f, -0.217285f, 0.411621f, -0.264648f,
+0.252441f, -0.52832f, 0.25293f, -0.524902f, 0.252197f, -0.514648f, 0.251465f, -0.504395f,
+0.250244f, -0.491699f, 0.249023f, -0.479004f, 0.24707f, -0.46582f, 0.245117f, -0.452637f,
+0.243164f, -0.442383f, 0.245117f, -0.442383f, 0.263184f, -0.46875f, 0.28418f, -0.487061f,
+0.305176f, -0.505371f, 0.327393f, -0.516846f, 0.349609f, -0.52832f, 0.372559f, -0.533447f,
+0.395508f, -0.538574f, 0.417969f, -0.538574f, 0.45459f, -0.538574f, 0.481934f, -0.525391f,
+0.509277f, -0.512207f, 0.5271f, -0.488281f, 0.544922f, -0.464355f, 0.553711f, -0.430908f,
+0.5625f, -0.397461f, 0.5625f, -0.356934f, 0.5625f, -0.335449f, 0.560303f, -0.312744f,
+0.558105f, -0.290039f, 0.553223f, -0.265137f, 0.541504f, -0.205078f, 0.52002f, -0.154785f,
+0.498535f, -0.104492f, 0.467285f, -0.0678711f, 0.436035f, -0.03125f, 0.395752f, -0.0107422f,
+0.355469f, 0.00976562f, 0.306152f, 0.00976562f, 0.28418f, 0.00976562f, 0.263184f,
+0.00488281f, 0.242188f, 0, 0.224609f, -0.0109863f, 0.207031f, -0.0219727f, 0.194092f,
+-0.0397949f, 0.181152f, -0.0576172f, 0.174316f, -0.0834961f, 0.17334f, -0.0834961f,
+0.172363f, -0.0786133f, 0.170654f, -0.0690918f, 0.168945f, -0.0595703f, 0.166992f,
+-0.0473633f, 0.165039f, -0.0351562f, 0.162598f, -0.0219727f, 0.160156f, -0.00878906f,
+0.157715f, 0.00341797f, 0.117676f, 0.20752f, -0.0195312f, 0.20752f, 0.101074f, -0.413086f,
+0.108887f, -0.45166f, 0.113037f, -0.481689f, 0.117188f, -0.511719f, 0.119629f, -0.52832f,
+0.207031f, -0.261719f, 0.199219f, -0.221191f, 0.199219f, -0.19043f, 0.199219f, -0.159668f,
+0.205811f, -0.13916f, 0.212402f, -0.118652f, 0.223389f, -0.106201f, 0.234375f, -0.09375f,
+0.248047f, -0.088623f, 0.261719f, -0.0834961f, 0.275391f, -0.0834961f, 0.297852f,
+-0.0834961f, 0.318115f, -0.09375f, 0.338379f, -0.104004f, 0.355713f, -0.125977f,
+0.373047f, -0.147949f, 0.386963f, -0.182373f, 0.400879f, -0.216797f, 0.410156f, -0.265137f,
+0.414551f, -0.287598f, 0.416504f, -0.306885f, 0.418457f, -0.326172f, 0.418457f, -0.343262f,
+0.418457f, -0.394043f, 0.400146f, -0.419434f, 0.381836f, -0.444824f, 0.34668f, -0.444824f,
+0.32959f, -0.444824f, 0.30957f, -0.436035f, 0.289551f, -0.427246f, 0.27002f, -0.40625f,
+0.250488f, -0.385254f, 0.233887f, -0.349854f, 0.217285f, -0.314453f, 0.207031f, -0.261719f,
+0.583008f, -0.52832f, 0.579102f, -0.511719f, 0.571777f, -0.481689f, 0.564453f, -0.45166f,
+0.556641f, -0.413086f, 0.436035f, 0.20752f, 0.298828f, 0.20752f, 0.338867f, 0.00341797f,
+0.341309f, -0.00878906f, 0.343994f, -0.0219727f, 0.34668f, -0.0351562f, 0.349121f,
+-0.0473633f, 0.351562f, -0.0595703f, 0.353516f, -0.0690918f, 0.355469f, -0.0786133f,
+0.356445f, -0.0834961f, 0.355469f, -0.0834961f, 0.338867f, -0.0576172f, 0.318115f,
+-0.0397949f, 0.297363f, -0.0219727f, 0.274658f, -0.0109863f, 0.251953f, 0, 0.228271f,
+0.00488281f, 0.20459f, 0.00976562f, 0.182617f, 0.00976562f, 0.144531f, 0.00976562f,
+0.116943f, -0.00268555f, 0.0893555f, -0.0151367f, 0.0717773f, -0.0380859f, 0.0541992f,
+-0.0610352f, 0.0456543f, -0.0932617f, 0.0371094f, -0.125488f, 0.0371094f, -0.165039f,
+0.0371094f, -0.188477f, 0.0397949f, -0.213135f, 0.0424805f, -0.237793f, 0.0478516f,
+-0.265137f, 0.059082f, -0.324219f, 0.081543f, -0.374268f, 0.104004f, -0.424316f,
+0.135498f, -0.460938f, 0.166992f, -0.497559f, 0.207031f, -0.518066f, 0.24707f, -0.538574f,
+0.293457f, -0.538574f, 0.315918f, -0.538574f, 0.336182f, -0.533447f, 0.356445f, -0.52832f,
+0.373291f, -0.516846f, 0.390137f, -0.505371f, 0.40332f, -0.487061f, 0.416504f, -0.46875f,
+0.424316f, -0.442383f, 0.42627f, -0.442383f, 0.428223f, -0.452637f, 0.431641f, -0.46582f,
+0.435059f, -0.479004f, 0.438477f, -0.491699f, 0.441895f, -0.504395f, 0.445068f, -0.514648f,
+0.448242f, -0.524902f, 0.450195f, -0.52832f, 0.39209f, -0.261719f, 0.399902f, -0.302246f,
+0.399902f, -0.333984f, 0.399902f, -0.365723f, 0.393066f, -0.386963f, 0.38623f, -0.408203f,
+0.375488f, -0.420898f, 0.364746f, -0.433594f, 0.351074f, -0.439209f, 0.337402f, -0.444824f,
+0.32373f, -0.444824f, 0.276855f, -0.444824f, 0.242432f, -0.399902f, 0.208008f, -0.35498f,
+0.190918f, -0.265137f, 0.181641f, -0.21875f, 0.181641f, -0.183594f, 0.181641f, -0.130859f,
+0.200928f, -0.107178f, 0.220215f, -0.0834961f, 0.254395f, -0.0834961f, 0.271973f,
+-0.0834961f, 0.291748f, -0.0917969f, 0.311523f, -0.100098f, 0.330566f, -0.120361f,
+0.349609f, -0.140625f, 0.365723f, -0.175049f, 0.381836f, -0.209473f, 0.39209f, -0.261719f,
+0.557129f, -0.414062f, 0.535156f, -0.417969f, 0.510498f, -0.420654f, 0.48584f, -0.42334f,
+0.455566f, -0.42334f, 0.414551f, -0.42334f, 0.380127f, -0.406738f, 0.345703f, -0.390137f,
+0.319336f, -0.361572f, 0.292969f, -0.333008f, 0.275146f, -0.294922f, 0.257324f, -0.256836f,
+0.249023f, -0.213867f, 0.20752f, 0, 0.0708008f, 0, 0.137207f, -0.342285f, 0.144043f,
+-0.379395f, 0.146729f, -0.416748f, 0.149414f, -0.454102f, 0.149414f, -0.483398f,
+0.149414f, -0.497559f, 0.148926f, -0.509033f, 0.148438f, -0.520508f, 0.147949f, -0.52832f,
+0.280273f, -0.52832f, 0.28125f, -0.515625f, 0.282227f, -0.499756f, 0.283203f, -0.483887f,
+0.283203f, -0.466309f, 0.283203f, -0.453613f, 0.282715f, -0.440918f, 0.282227f, -0.428223f,
+0.28125f, -0.416992f, 0.283203f, -0.416992f, 0.298828f, -0.444824f, 0.317139f, -0.467285f,
+0.335449f, -0.489746f, 0.359131f, -0.505371f, 0.382812f, -0.520996f, 0.412598f, -0.529541f,
+0.442383f, -0.538086f, 0.480469f, -0.538086f, 0.507812f, -0.538086f, 0.533936f, -0.535645f,
+0.560059f, -0.533203f, 0.57959f, -0.529785f, 0.517578f, -0.154297f, 0.510254f, -0.116211f,
+0.488525f, -0.0859375f, 0.466797f, -0.0556641f, 0.432373f, -0.0344238f, 0.397949f,
+-0.0131836f, 0.351807f, -0.00170898f, 0.305664f, 0.00976562f, 0.249512f, 0.00976562f,
+0.199219f, 0.00976562f, 0.160156f, 0.00244141f, 0.121094f, -0.00488281f, 0.09375f,
+-0.0217285f, 0.0664062f, -0.0385742f, 0.0510254f, -0.0654297f, 0.0356445f, -0.0922852f,
+0.0332031f, -0.131836f, 0.157715f, -0.149902f, 0.15918f, -0.12793f, 0.166748f, -0.114258f,
+0.174316f, -0.100586f, 0.187988f, -0.0932617f, 0.20166f, -0.0859375f, 0.221436f,
+-0.0834961f, 0.241211f, -0.0810547f, 0.26709f, -0.0810547f, 0.290527f, -0.0810547f,
+0.311279f, -0.0837402f, 0.332031f, -0.0864258f, 0.348145f, -0.0930176f, 0.364258f,
+-0.0996094f, 0.375f, -0.111572f, 0.385742f, -0.123535f, 0.38916f, -0.141602f, 0.393066f,
+-0.162109f, 0.383545f, -0.174072f, 0.374023f, -0.186035f, 0.354736f, -0.193604f,
+0.335449f, -0.201172f, 0.308594f, -0.206787f, 0.281738f, -0.212402f, 0.250977f, -0.219727f,
+0.222656f, -0.226562f, 0.195312f, -0.235352f, 0.167969f, -0.244141f, 0.146729f, -0.258301f,
+0.125488f, -0.272461f, 0.112305f, -0.293457f, 0.0991211f, -0.314453f, 0.0991211f,
+-0.345703f, 0.0991211f, -0.353027f, 0.0998535f, -0.361328f, 0.100586f, -0.369629f,
+0.102539f, -0.378418f, 0.109863f, -0.416016f, 0.130127f, -0.445557f, 0.150391f, -0.475098f,
+0.182617f, -0.49585f, 0.214844f, -0.516602f, 0.258789f, -0.527588f, 0.302734f, -0.538574f,
+0.356934f, -0.538574f, 0.399902f, -0.538574f, 0.435547f, -0.530518f, 0.471191f, -0.522461f,
+0.49707f, -0.505127f, 0.522949f, -0.487793f, 0.537598f, -0.460938f, 0.552246f, -0.434082f,
+0.552734f, -0.395996f, 0.428711f, -0.383301f, 0.428711f, -0.402344f, 0.422607f, -0.414795f,
+0.416504f, -0.427246f, 0.404785f, -0.43457f, 0.393066f, -0.441895f, 0.376465f, -0.44458f,
+0.359863f, -0.447266f, 0.339355f, -0.447266f, 0.290527f, -0.447266f, 0.263672f, -0.434814f,
+0.236816f, -0.422363f, 0.230957f, -0.393066f, 0.227539f, -0.375f, 0.235596f, -0.364258f,
+0.243652f, -0.353516f, 0.260498f, -0.346436f, 0.277344f, -0.339355f, 0.301514f, -0.334229f,
+0.325684f, -0.329102f, 0.354004f, -0.321777f, 0.385742f, -0.314941f, 0.415771f, -0.305908f,
+0.445801f, -0.296875f, 0.469238f, -0.281982f, 0.492676f, -0.26709f, 0.506836f, -0.244629f,
+0.520996f, -0.222168f, 0.520996f, -0.188477f, 0.520996f, -0.171387f, 0.517578f, -0.154297f,
+0.193359f, -0.435547f, 0.111816f, -0.435547f, 0.129883f, -0.52832f, 0.218262f, -0.52832f,
+0.288086f, -0.666016f, 0.374023f, -0.666016f, 0.347168f, -0.52832f, 0.535156f, -0.52832f,
+0.51709f, -0.435547f, 0.329102f, -0.435547f, 0.278809f, -0.176758f, 0.276855f, -0.166016f,
+0.275146f, -0.155762f, 0.273438f, -0.145508f, 0.273438f, -0.13623f, 0.273438f, -0.125488f,
+0.276611f, -0.116455f, 0.279785f, -0.107422f, 0.287842f, -0.10083f, 0.295898f, -0.0942383f,
+0.310303f, -0.0905762f, 0.324707f, -0.0869141f, 0.34668f, -0.0869141f, 0.37793f,
+-0.0869141f, 0.409668f, -0.090332f, 0.441406f, -0.09375f, 0.473633f, -0.100098f,
+0.456055f, -0.00927734f, 0.437012f, -0.00634766f, 0.418701f, -0.00341797f, 0.400391f,
+-0.000488281f, 0.381104f, 0.00170898f, 0.361816f, 0.00390625f, 0.340576f, 0.00512695f,
+0.319336f, 0.00634766f, 0.294434f, 0.00634766f, 0.245605f, 0.00634766f, 0.214355f,
+-0.00317383f, 0.183105f, -0.0126953f, 0.165039f, -0.0285645f, 0.146973f, -0.0444336f,
+0.140137f, -0.0654297f, 0.133301f, -0.0864258f, 0.133301f, -0.109375f, 0.133301f,
+-0.123047f, 0.135254f, -0.136719f, 0.137207f, -0.150391f, 0.139648f, -0.164062f,
+0.254395f, -0.52832f, 0.196777f, -0.231934f, 0.190918f, -0.201172f, 0.190918f, -0.175781f,
+0.190918f, -0.137695f, 0.205566f, -0.115234f, 0.220215f, -0.0927734f, 0.253906f,
+-0.0927734f, 0.274902f, -0.0927734f, 0.295654f, -0.10376f, 0.316406f, -0.114746f,
+0.333984f, -0.13501f, 0.351562f, -0.155273f, 0.36499f, -0.18335f, 0.378418f, -0.211426f,
+0.384766f, -0.245117f, 0.439453f, -0.52832f, 0.57666f, -0.52832f, 0.49707f, -0.118164f,
+0.493652f, -0.101562f, 0.490479f, -0.083252f, 0.487305f, -0.0649414f, 0.484863f,
+-0.048584f, 0.482422f, -0.0322266f, 0.480469f, -0.0192871f, 0.478516f, -0.00634766f,
+0.478027f, 0, 0.347168f, 0, 0.347656f, -0.00585938f, 0.349121f, -0.0187988f, 0.350586f,
+-0.0317383f, 0.352783f, -0.0473633f, 0.35498f, -0.0629883f, 0.357422f, -0.0786133f,
+0.359863f, -0.0942383f, 0.361816f, -0.10498f, 0.359375f, -0.10498f, 0.320312f, -0.0449219f,
+0.273926f, -0.0175781f, 0.227539f, 0.00976562f, 0.176758f, 0.00976562f, 0.140625f,
+0.00976562f, 0.115479f, 0, 0.090332f, -0.00976562f, 0.074707f, -0.0273438f, 0.059082f,
+-0.0449219f, 0.052002f, -0.0693359f, 0.0449219f, -0.09375f, 0.0449219f, -0.123535f,
+0.0449219f, -0.15625f, 0.0522461f, -0.192871f, 0.117188f, -0.52832f, 0.32666f, 0,
+0.162598f, 0, 0.0664062f, -0.52832f, 0.211426f, -0.52832f, 0.254395f, -0.224609f,
+0.256348f, -0.209961f, 0.257812f, -0.193604f, 0.259277f, -0.177246f, 0.260742f, -0.161133f,
+0.262207f, -0.14502f, 0.263428f, -0.129883f, 0.264648f, -0.114746f, 0.265625f, -0.102539f,
+0.270996f, -0.114258f, 0.278076f, -0.12915f, 0.285156f, -0.144043f, 0.292969f, -0.160156f,
+0.300781f, -0.17627f, 0.309082f, -0.192383f, 0.317383f, -0.208496f, 0.325195f, -0.223145f,
+0.490234f, -0.52832f, 0.633789f, -0.52832f, 0.450684f, 0, 0.331543f, 0, 0.306641f,
+-0.22998f, 0.305176f, -0.243164f, 0.304443f, -0.252441f, 0.303711f, -0.261719f, 0.303223f,
+-0.268066f, 0.302734f, -0.275391f, 0.302734f, -0.279785f, 0.30127f, -0.275391f, 0.29834f,
+-0.268555f, 0.295898f, -0.262695f, 0.29126f, -0.25293f, 0.286621f, -0.243164f, 0.278809f,
+-0.228027f, 0.162109f, 0, 0.043457f, 0, 0.0566406f, -0.52832f, 0.167969f, -0.52832f,
+0.150879f, -0.231934f, 0.149414f, -0.208496f, 0.146973f, -0.179443f, 0.144531f, -0.150391f,
+0.138672f, -0.121582f, 0.142578f, -0.129883f, 0.146973f, -0.13916f, 0.150879f, -0.147461f,
+0.155518f, -0.157471f, 0.160156f, -0.16748f, 0.165527f, -0.177246f, 0.279297f, -0.398926f,
+0.373535f, -0.398926f, 0.398438f, -0.176758f, 0.399414f, -0.166992f, 0.400146f, -0.157471f,
+0.400879f, -0.147949f, 0.401367f, -0.139648f, 0.401855f, -0.130371f, 0.401855f, -0.121582f,
+0.407715f, -0.150879f, 0.416504f, -0.178955f, 0.425293f, -0.207031f, 0.433594f, -0.231934f,
+0.535645f, -0.52832f, 0.645996f, -0.52832f, 0.375488f, 0, 0.284668f, -0.191406f,
+0.118652f, 0, -0.0273438f, 0, 0.224121f, -0.272949f, 0.0844727f, -0.52832f, 0.232422f,
+-0.52832f, 0.316895f, -0.355469f, 0.467285f, -0.52832f, 0.616211f, -0.52832f, 0.37793f,
+-0.274414f, 0.524414f, 0, 0.305664f, 0.027832f, 0.27832f, 0.0742188f, 0.252197f,
+0.108154f, 0.226074f, 0.14209f, 0.197998f, 0.164062f, 0.169922f, 0.186035f, 0.137939f,
+0.196777f, 0.105957f, 0.20752f, 0.0668945f, 0.20752f, 0.0454102f, 0.20752f, 0.0219727f,
+0.206055f, -0.00146484f, 0.20459f, -0.0205078f, 0.201172f, -0.00146484f, 0.103516f,
+0.00341797f, 0.104492f, 0.00976562f, 0.10498f, 0.0161133f, 0.105469f, 0.0227051f,
+0.106201f, 0.0292969f, 0.106934f, 0.0358887f, 0.107178f, 0.0424805f, 0.107422f, 0.0473633f,
+0.107422f, 0.0673828f, 0.107422f, 0.0837402f, 0.103027f, 0.100098f, 0.0986328f, 0.11499f,
+0.0883789f, 0.129883f, 0.078125f, 0.144287f, 0.0610352f, 0.158691f, 0.0439453f, 0.173828f,
+0.0180664f, 0.187012f, -0.00537109f, 0.0698242f, -0.52832f, 0.214844f, -0.52832f,
+0.257812f, -0.270996f, 0.258789f, -0.265625f, 0.260498f, -0.25293f, 0.262207f, -0.240234f,
+0.263916f, -0.223877f, 0.265625f, -0.20752f, 0.267578f, -0.189453f, 0.269531f, -0.171387f,
+0.27124f, -0.155029f, 0.272949f, -0.138672f, 0.27417f, -0.125977f, 0.275391f, -0.113281f,
+0.275391f, -0.10791f, 0.277832f, -0.113281f, 0.283447f, -0.125732f, 0.289062f, -0.138184f,
+0.296387f, -0.154053f, 0.303711f, -0.169922f, 0.312012f, -0.1875f, 0.320312f, -0.205078f,
+0.327881f, -0.221191f, 0.335449f, -0.237305f, 0.341553f, -0.250244f, 0.347656f, -0.263184f,
+0.350586f, -0.269043f, 0.48877f, -0.52832f, 0.632324f, -0.52832f, 0.0161133f, 0,
+0.0351562f, -0.097168f, 0.37793f, -0.429199f, 0.119629f, -0.429199f, 0.138672f, -0.52832f,
+0.553223f, -0.52832f, 0.53418f, -0.430176f, 0.193359f, -0.100098f, 0.494141f, -0.100098f,
+0.474609f, 0, 0.258789f, 0.20752f, 0.201172f, 0.20752f, 0.17041f, 0.178955f, 0.139648f,
+0.150391f, 0.139648f, 0.0991211f, 0.139648f, 0.0825195f, 0.143555f, 0.0615234f, 0.174316f,
+-0.0986328f, 0.17627f, -0.108398f, 0.177002f, -0.116699f, 0.177734f, -0.125f, 0.177734f,
+-0.132812f, 0.177734f, -0.153809f, 0.171143f, -0.168457f, 0.164551f, -0.183105f,
+0.152588f, -0.192383f, 0.140625f, -0.20166f, 0.123291f, -0.205811f, 0.105957f, -0.209961f,
+0.0844727f, -0.210449f, 0.103027f, -0.305664f, 0.128906f, -0.306641f, 0.150635f,
+-0.312744f, 0.172363f, -0.318848f, 0.189697f, -0.332031f, 0.207031f, -0.345215f,
+0.218994f, -0.366455f, 0.230957f, -0.387695f, 0.236816f, -0.418457f, 0.267578f, -0.578613f,
+0.281738f, -0.650391f, 0.326904f, -0.6875f, 0.37207f, -0.724609f, 0.439941f, -0.724609f,
+0.599609f, -0.724609f, 0.582031f, -0.631836f, 0.490234f, -0.631836f, 0.445801f, -0.631836f,
+0.420898f, -0.606445f, 0.395996f, -0.581055f, 0.38623f, -0.529785f, 0.357422f, -0.382812f,
+0.352539f, -0.35791f, 0.340576f, -0.337158f, 0.328613f, -0.316406f, 0.311768f, -0.300781f,
+0.294922f, -0.285156f, 0.274414f, -0.274658f, 0.253906f, -0.26416f, 0.232422f, -0.259766f,
+0.232422f, -0.257812f, 0.249512f, -0.253418f, 0.26416f, -0.245117f, 0.278809f, -0.236816f,
+0.289551f, -0.224365f, 0.300293f, -0.211914f, 0.306152f, -0.195801f, 0.312012f, -0.179688f,
+0.312012f, -0.160156f, 0.312012f, -0.153809f, 0.311523f, -0.147705f, 0.311035f, -0.141602f,
+0.30957f, -0.134766f, 0.280762f, 0.012207f, 0.278809f, 0.0224609f, 0.277832f, 0.0317383f,
+0.276855f, 0.0410156f, 0.276855f, 0.0493164f, 0.276855f, 0.0820312f, 0.293213f, 0.0981445f,
+0.30957f, 0.114258f, 0.345215f, 0.114258f, 0.437012f, 0.114258f, 0.418457f, 0.20752f,
+0.23584f, 0.222168f, 0.23584f, -0.724609f, 0.36377f, -0.724609f, 0.36377f, 0.222168f,
+-0.00195312f, 0.20752f, 0.0166016f, 0.114258f, 0.108398f, 0.114258f, 0.152832f, 0.114258f,
+0.17749f, 0.0891113f, 0.202148f, 0.0639648f, 0.211914f, 0.012207f, 0.240723f, -0.134766f,
+0.245605f, -0.159668f, 0.257324f, -0.179932f, 0.269043f, -0.200195f, 0.285889f, -0.216064f,
+0.302734f, -0.231934f, 0.323242f, -0.242432f, 0.34375f, -0.25293f, 0.365723f, -0.257812f,
+0.365723f, -0.259766f, 0.348633f, -0.263672f, 0.333984f, -0.271973f, 0.319336f, -0.280273f,
+0.308838f, -0.292725f, 0.29834f, -0.305176f, 0.292236f, -0.321533f, 0.286133f, -0.337891f,
+0.286133f, -0.357422f, 0.286133f, -0.36377f, 0.286865f, -0.369873f, 0.287598f, -0.375977f,
+0.288574f, -0.382812f, 0.317383f, -0.529785f, 0.319824f, -0.540039f, 0.320557f, -0.549561f,
+0.321289f, -0.559082f, 0.321289f, -0.567383f, 0.321289f, -0.599609f, 0.304932f, -0.615723f,
+0.288574f, -0.631836f, 0.253418f, -0.631836f, 0.161621f, -0.631836f, 0.179199f, -0.724609f,
+0.338867f, -0.724609f, 0.396484f, -0.724609f, 0.427734f, -0.697754f, 0.458984f, -0.670898f,
+0.458984f, -0.618652f, 0.458984f, -0.600098f, 0.45459f, -0.578613f, 0.423828f, -0.418457f,
+0.421875f, -0.408691f, 0.420898f, -0.400146f, 0.419922f, -0.391602f, 0.419922f, -0.383789f,
+0.419922f, -0.342285f, 0.445068f, -0.324463f, 0.470215f, -0.306641f, 0.513672f, -0.305664f,
+0.495117f, -0.210449f, 0.469727f, -0.209961f, 0.447754f, -0.204102f, 0.425781f, -0.198242f,
+0.408691f, -0.185059f, 0.391602f, -0.171875f, 0.379395f, -0.150635f, 0.367188f, -0.129395f,
+0.361328f, -0.0986328f, 0.330566f, 0.0615234f, 0.324219f, 0.0952148f, 0.308838f,
+0.122314f, 0.293457f, 0.149414f, 0.27124f, 0.168213f, 0.249023f, 0.187012f, 0.220215f,
+0.197266f, 0.191406f, 0.20752f, 0.157715f, 0.20752f, 0.42041f, -0.251953f, 0.383789f,
+-0.251953f, 0.350586f, -0.262207f, 0.317383f, -0.272461f, 0.283203f, -0.285156f,
+0.25293f, -0.296387f, 0.227539f, -0.302246f, 0.202148f, -0.308105f, 0.179688f, -0.308105f,
+0.160645f, -0.308105f, 0.143555f, -0.305176f, 0.126465f, -0.302246f, 0.110596f, -0.296631f,
+0.0947266f, -0.291016f, 0.0791016f, -0.283203f, 0.0634766f, -0.275391f, 0.046875f,
+-0.265137f, 0.0668945f, -0.369141f, 0.0952148f, -0.387695f, 0.130615f, -0.398926f,
+0.166016f, -0.410156f, 0.207031f, -0.410156f, 0.227051f, -0.410156f, 0.246338f, -0.406982f,
+0.265625f, -0.403809f, 0.284424f, -0.398682f, 0.303223f, -0.393555f, 0.321045f, -0.386963f,
+0.338867f, -0.380371f, 0.355957f, -0.374023f, 0.376465f, -0.366211f, 0.401367f, -0.359619f,
+0.42627f, -0.353027f, 0.449707f, -0.353027f, 0.48291f, -0.353027f, 0.516357f, -0.365234f,
+0.549805f, -0.377441f, 0.579102f, -0.397949f, 0.558594f, -0.291016f, 0.541016f, -0.280273f,
+0.524658f, -0.272705f, 0.508301f, -0.265137f, 0.491699f, -0.260498f, 0.475098f, -0.255859f,
+0.457764f, -0.253906f, 0.44043f, -0.251953f, 0.42041f, -0.251953f
+};
+
+const unsigned char LiberationMonoBoldItalicVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 1,
+2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5,
+0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2, 5, 0, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationMonoBoldItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationMonoBoldItalicWidths[] = {
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0,
+0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0, 0x000099a0
+};
+
+const int LiberationMonoBoldItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationMonoBoldItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationMonoBoldItalicMetrics = {
+0x30307833, -0.83252f, -0.83252f, 0.300293f, 0.300293f, 0, 0.791992f, 0.0123749f,
+-0.0942383f, 0.697754f, 0.538086f, 0.0104446f, 0.100098f, 0.23291f
+};
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_sans_serif.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_sans_serif.inc
new file mode 100644 (file)
index 0000000..b0d433d
--- /dev/null
@@ -0,0 +1,4857 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+const SkScalar LiberationSansNormalPoints[] = {
+0.100098f, -0.687988f, 0.649414f, -0.687988f, 0.649414f, 0, 0.100098f, 0, 0.137207f,
+-0.650879f, 0.137207f, -0.0371094f, 0.612305f, -0.0371094f, 0.612305f, -0.650879f,
+0.175293f, -0.193848f, 0.103027f, -0.193848f, 0.0913086f, -0.687988f, 0.187012f,
+-0.687988f, 0.090332f, 0, 0.090332f, -0.0981445f, 0.185059f, -0.0981445f, 0.185059f,
+0, 0.301758f, -0.47168f, 0.232422f, -0.47168f, 0.222656f, -0.687988f, 0.3125f, -0.687988f,
+0.121582f, -0.47168f, 0.0527344f, -0.47168f, 0.0424805f, -0.687988f, 0.132324f, -0.687988f,
+0.4375f, -0.432129f, 0.399414f, -0.251953f, 0.526367f, -0.251953f, 0.526367f, -0.199219f,
+0.388184f, -0.199219f, 0.345215f, 0, 0.291504f, 0, 0.333496f, -0.199219f, 0.15625f,
+-0.199219f, 0.115234f, 0, 0.0615234f, 0, 0.102539f, -0.199219f, 0.00439453f, -0.199219f,
+0.00439453f, -0.251953f, 0.114258f, -0.251953f, 0.152344f, -0.432129f, 0.0292969f,
+-0.432129f, 0.0292969f, -0.484863f, 0.163086f, -0.484863f, 0.206543f, -0.684082f,
+0.260254f, -0.684082f, 0.217285f, -0.484863f, 0.394531f, -0.484863f, 0.4375f, -0.684082f,
+0.491211f, -0.684082f, 0.448242f, -0.484863f, 0.55127f, -0.484863f, 0.55127f, -0.432129f,
+0.20752f, -0.432129f, 0.168457f, -0.251953f, 0.345215f, -0.251953f, 0.383301f, -0.432129f,
+0.25293f, -0.00976562f, 0.146973f, -0.0141602f, 0.0871582f, -0.0593262f, 0.0273438f,
+-0.104492f, 0.0107422f, -0.185059f, 0.09375f, -0.203125f, 0.0991211f, -0.177246f,
+0.110352f, -0.156006f, 0.121582f, -0.134766f, 0.140625f, -0.119141f, 0.159668f, -0.103516f,
+0.187256f, -0.0939941f, 0.214844f, -0.0844727f, 0.25293f, -0.0820312f, 0.25293f,
+-0.324219f, 0.243164f, -0.32666f, 0.205566f, -0.335449f, 0.169434f, -0.347656f, 0.133301f,
+-0.359863f, 0.10498f, -0.380127f, 0.0766602f, -0.400391f, 0.0593262f, -0.431641f,
+0.0419922f, -0.462891f, 0.0419922f, -0.510742f, 0.0419922f, -0.551758f, 0.0576172f,
+-0.582031f, 0.0732422f, -0.612305f, 0.101318f, -0.632568f, 0.129395f, -0.652832f,
+0.167969f, -0.663574f, 0.206543f, -0.674316f, 0.25293f, -0.67627f, 0.25293f, -0.740234f,
+0.313477f, -0.740234f, 0.313477f, -0.67627f, 0.362305f, -0.673828f, 0.397705f, -0.662842f,
+0.433105f, -0.651855f, 0.458008f, -0.632324f, 0.48291f, -0.612793f, 0.499023f, -0.584717f,
+0.515137f, -0.556641f, 0.524902f, -0.52002f, 0.439941f, -0.503906f, 0.430176f, -0.549805f,
+0.400391f, -0.575439f, 0.370605f, -0.601074f, 0.313477f, -0.606445f, 0.313477f, -0.38916f,
+0.342285f, -0.382324f, 0.370117f, -0.375f, 0.397949f, -0.367676f, 0.423096f, -0.357666f,
+0.448242f, -0.347656f, 0.469727f, -0.333984f, 0.491211f, -0.320312f, 0.506836f, -0.301025f,
+0.522461f, -0.281738f, 0.53125f, -0.255127f, 0.540039f, -0.228516f, 0.540039f, -0.193359f,
+0.540039f, -0.155762f, 0.526367f, -0.123779f, 0.512695f, -0.0917969f, 0.484863f,
+-0.0673828f, 0.457031f, -0.0429688f, 0.414307f, -0.027832f, 0.371582f, -0.0126953f,
+0.313477f, -0.00976562f, 0.313477f, 0.0693359f, 0.25293f, 0.0693359f, 0.456055f,
+-0.192383f, 0.456055f, -0.223145f, 0.44458f, -0.242676f, 0.433105f, -0.262207f, 0.41333f,
+-0.274658f, 0.393555f, -0.287109f, 0.367676f, -0.294922f, 0.341797f, -0.302734f,
+0.313477f, -0.310059f, 0.313477f, -0.081543f, 0.345215f, -0.0834961f, 0.371582f,
+-0.0910645f, 0.397949f, -0.0986328f, 0.416748f, -0.112305f, 0.435547f, -0.125977f,
+0.445801f, -0.145752f, 0.456055f, -0.165527f, 0.456055f, -0.192383f, 0.125977f, -0.511719f,
+0.125977f, -0.485352f, 0.135742f, -0.467285f, 0.145508f, -0.449219f, 0.162598f, -0.437012f,
+0.179688f, -0.424805f, 0.202881f, -0.416748f, 0.226074f, -0.408691f, 0.25293f, -0.401855f,
+0.25293f, -0.607422f, 0.217773f, -0.605469f, 0.193359f, -0.597412f, 0.168945f, -0.589355f,
+0.154053f, -0.57666f, 0.13916f, -0.563965f, 0.132568f, -0.547363f, 0.125977f, -0.530762f,
+0.125977f, -0.511719f, 0.853516f, -0.211914f, 0.853516f, -0.150879f, 0.841064f, -0.109131f,
+0.828613f, -0.0673828f, 0.807373f, -0.041748f, 0.786133f, -0.0161133f, 0.757812f,
+-0.00512695f, 0.729492f, 0.00585938f, 0.697266f, 0.00585938f, 0.665039f, 0.00585938f,
+0.636963f, -0.00512695f, 0.608887f, -0.0161133f, 0.588135f, -0.0415039f, 0.567383f,
+-0.0668945f, 0.55542f, -0.108643f, 0.543457f, -0.150391f, 0.543457f, -0.211914f,
+0.543457f, -0.276855f, 0.555176f, -0.319336f, 0.566895f, -0.361816f, 0.587891f, -0.386963f,
+0.608887f, -0.412109f, 0.637451f, -0.422119f, 0.666016f, -0.432129f, 0.699219f, -0.432129f,
+0.731445f, -0.432129f, 0.759521f, -0.422119f, 0.787598f, -0.412109f, 0.80835f, -0.386963f,
+0.829102f, -0.361816f, 0.841309f, -0.319336f, 0.853516f, -0.276855f, 0.853516f, -0.211914f,
+0.257324f, 0, 0.181641f, 0, 0.631836f, -0.687988f, 0.708496f, -0.687988f, 0.192383f,
+-0.693848f, 0.223633f, -0.693848f, 0.251465f, -0.683838f, 0.279297f, -0.673828f,
+0.300293f, -0.648926f, 0.321289f, -0.624023f, 0.333252f, -0.582031f, 0.345215f, -0.540039f,
+0.345215f, -0.476074f, 0.345215f, -0.414551f, 0.333008f, -0.372559f, 0.320801f, -0.330566f,
+0.300049f, -0.304443f, 0.279297f, -0.27832f, 0.250977f, -0.26709f, 0.222656f, -0.255859f,
+0.19043f, -0.255859f, 0.157715f, -0.255859f, 0.129395f, -0.26709f, 0.101074f, -0.27832f,
+0.0803223f, -0.304199f, 0.0595703f, -0.330078f, 0.0476074f, -0.37207f, 0.0356445f,
+-0.414062f, 0.0356445f, -0.476074f, 0.0356445f, -0.540039f, 0.0476074f, -0.582031f,
+0.0595703f, -0.624023f, 0.0805664f, -0.648926f, 0.101562f, -0.673828f, 0.130371f,
+-0.683838f, 0.15918f, -0.693848f, 0.192383f, -0.693848f, 0.78125f, -0.211914f, 0.78125f,
+-0.260254f, 0.775879f, -0.292236f, 0.770508f, -0.324219f, 0.76001f, -0.343262f, 0.749512f,
+-0.362305f, 0.734131f, -0.370117f, 0.71875f, -0.37793f, 0.699219f, -0.37793f, 0.678711f,
+-0.37793f, 0.663086f, -0.369873f, 0.647461f, -0.361816f, 0.636719f, -0.342773f, 0.625977f,
+-0.32373f, 0.620605f, -0.291748f, 0.615234f, -0.259766f, 0.615234f, -0.211914f, 0.615234f,
+-0.165527f, 0.62085f, -0.134277f, 0.626465f, -0.103027f, 0.636963f, -0.0837402f,
+0.647461f, -0.0644531f, 0.662842f, -0.0561523f, 0.678223f, -0.0478516f, 0.698242f,
+-0.0478516f, 0.717285f, -0.0478516f, 0.732666f, -0.0561523f, 0.748047f, -0.0644531f,
+0.758789f, -0.0837402f, 0.769531f, -0.103027f, 0.775391f, -0.134277f, 0.78125f, -0.165527f,
+0.78125f, -0.211914f, 0.273438f, -0.476074f, 0.273438f, -0.523926f, 0.268066f, -0.555664f,
+0.262695f, -0.587402f, 0.252441f, -0.606445f, 0.242188f, -0.625488f, 0.227051f, -0.633301f,
+0.211914f, -0.641113f, 0.192383f, -0.641113f, 0.171387f, -0.641113f, 0.155518f, -0.633057f,
+0.139648f, -0.625f, 0.128906f, -0.605957f, 0.118164f, -0.586914f, 0.112793f, -0.555176f,
+0.107422f, -0.523438f, 0.107422f, -0.476074f, 0.107422f, -0.429688f, 0.113037f, -0.397949f,
+0.118652f, -0.366211f, 0.12915f, -0.346924f, 0.139648f, -0.327637f, 0.155273f, -0.319336f,
+0.170898f, -0.311035f, 0.191406f, -0.311035f, 0.209961f, -0.311035f, 0.225098f, -0.319336f,
+0.240234f, -0.327637f, 0.250977f, -0.346924f, 0.261719f, -0.366211f, 0.267578f, -0.397949f,
+0.273438f, -0.429688f, 0.273438f, -0.476074f, 0.58252f, 0.00585938f, 0.535645f, 0.00585938f,
+0.500488f, -0.0102539f, 0.465332f, -0.0263672f, 0.437012f, -0.0561523f, 0.422363f,
+-0.043457f, 0.403809f, -0.0317383f, 0.385254f, -0.0200195f, 0.362549f, -0.0107422f,
+0.339844f, -0.00146484f, 0.313232f, 0.00415039f, 0.286621f, 0.00976562f, 0.255371f,
+0.00976562f, 0.198242f, 0.00976562f, 0.156494f, -0.00488281f, 0.114746f, -0.0195312f,
+0.0878906f, -0.045166f, 0.0610352f, -0.0708008f, 0.0480957f, -0.105713f, 0.0351562f,
+-0.140625f, 0.0351562f, -0.181152f, 0.0351562f, -0.219727f, 0.0476074f, -0.251221f,
+0.0600586f, -0.282715f, 0.0822754f, -0.30835f, 0.104492f, -0.333984f, 0.135254f,
+-0.354248f, 0.166016f, -0.374512f, 0.202637f, -0.390625f, 0.193848f, -0.407227f,
+0.186768f, -0.426025f, 0.179688f, -0.444824f, 0.174316f, -0.463867f, 0.168945f, -0.48291f,
+0.166016f, -0.501953f, 0.163086f, -0.520996f, 0.163086f, -0.538086f, 0.163086f, -0.570312f,
+0.172852f, -0.598389f, 0.182617f, -0.626465f, 0.203369f, -0.647217f, 0.224121f, -0.667969f,
+0.256592f, -0.679932f, 0.289062f, -0.691895f, 0.334473f, -0.691895f, 0.370117f, -0.691895f,
+0.400146f, -0.682617f, 0.430176f, -0.67334f, 0.452148f, -0.655762f, 0.474121f, -0.638184f,
+0.486328f, -0.612305f, 0.498535f, -0.586426f, 0.498535f, -0.553223f, 0.498535f, -0.516602f,
+0.482422f, -0.488037f, 0.466309f, -0.459473f, 0.438965f, -0.437012f, 0.411621f, -0.414551f,
+0.375488f, -0.39624f, 0.339355f, -0.37793f, 0.298828f, -0.361816f, 0.329102f, -0.306152f,
+0.364746f, -0.25708f, 0.400391f, -0.208008f, 0.441895f, -0.160645f, 0.47168f, -0.20459f,
+0.491455f, -0.253174f, 0.51123f, -0.301758f, 0.525391f, -0.36084f, 0.596191f, -0.339844f,
+0.579102f, -0.271973f, 0.552979f, -0.216553f, 0.526855f, -0.161133f, 0.492676f, -0.11084f,
+0.518555f, -0.0844727f, 0.544434f, -0.0737305f, 0.570312f, -0.0629883f, 0.594238f,
+-0.0629883f, 0.609863f, -0.0629883f, 0.624268f, -0.0646973f, 0.638672f, -0.0664062f,
+0.651367f, -0.0708008f, 0.651367f, -0.00488281f, 0.637695f, 0.000488281f, 0.619385f,
+0.00317383f, 0.601074f, 0.00585938f, 0.58252f, 0.00585938f, 0.424316f, -0.553223f,
+0.424316f, -0.571289f, 0.417725f, -0.585938f, 0.411133f, -0.600586f, 0.399414f, -0.611084f,
+0.387695f, -0.621582f, 0.37085f, -0.627197f, 0.354004f, -0.632812f, 0.333496f, -0.632812f,
+0.286621f, -0.632812f, 0.262207f, -0.607666f, 0.237793f, -0.58252f, 0.237793f, -0.538086f,
+0.237793f, -0.509277f, 0.246826f, -0.477783f, 0.255859f, -0.446289f, 0.269531f, -0.418945f,
+0.30127f, -0.431641f, 0.32959f, -0.445068f, 0.35791f, -0.458496f, 0.378906f, -0.474365f,
+0.399902f, -0.490234f, 0.412109f, -0.509521f, 0.424316f, -0.528809f, 0.424316f, -0.553223f,
+0.388184f, -0.105957f, 0.344727f, -0.157227f, 0.304688f, -0.213379f, 0.264648f, -0.269531f,
+0.232422f, -0.329102f, 0.177246f, -0.305664f, 0.147217f, -0.269531f, 0.117188f, -0.233398f,
+0.117188f, -0.182129f, 0.117188f, -0.155273f, 0.125732f, -0.13208f, 0.134277f, -0.108887f,
+0.151855f, -0.0915527f, 0.169434f, -0.0742188f, 0.196045f, -0.064209f, 0.222656f,
+-0.0541992f, 0.258301f, -0.0541992f, 0.279785f, -0.0541992f, 0.299072f, -0.0588379f,
+0.318359f, -0.0634766f, 0.334961f, -0.0708008f, 0.351562f, -0.078125f, 0.36499f,
+-0.0874023f, 0.378418f, -0.0966797f, 0.388184f, -0.105957f, 0.129883f, -0.47168f,
+0.0610352f, -0.47168f, 0.0507812f, -0.687988f, 0.140625f, -0.687988f, 0.0620117f,
+-0.259766f, 0.0620117f, -0.327637f, 0.0722656f, -0.389648f, 0.0825195f, -0.45166f,
+0.104492f, -0.508789f, 0.126465f, -0.565918f, 0.160645f, -0.619629f, 0.194824f, -0.67334f,
+0.242188f, -0.724609f, 0.327148f, -0.724609f, 0.28125f, -0.67334f, 0.247803f, -0.619385f,
+0.214355f, -0.56543f, 0.192871f, -0.508057f, 0.171387f, -0.450684f, 0.160889f, -0.388672f,
+0.150391f, -0.32666f, 0.150391f, -0.258789f, 0.150391f, -0.190918f, 0.160889f, -0.128906f,
+0.171387f, -0.0668945f, 0.192871f, -0.00927734f, 0.214355f, 0.0483398f, 0.247803f,
+0.102051f, 0.28125f, 0.155762f, 0.327148f, 0.207031f, 0.242188f, 0.207031f, 0.194824f,
+0.155762f, 0.160645f, 0.102051f, 0.126465f, 0.0483398f, 0.104492f, -0.00878906f,
+0.0825195f, -0.065918f, 0.0722656f, -0.127686f, 0.0620117f, -0.189453f, 0.0620117f,
+-0.257812f, 0.270996f, -0.257812f, 0.270996f, -0.189453f, 0.260742f, -0.127686f,
+0.250488f, -0.065918f, 0.228516f, -0.00878906f, 0.206543f, 0.0483398f, 0.172363f,
+0.102051f, 0.138184f, 0.155762f, 0.0908203f, 0.207031f, 0.00585938f, 0.207031f, 0.0517578f,
+0.155762f, 0.0852051f, 0.102051f, 0.118652f, 0.0483398f, 0.140137f, -0.00927734f,
+0.161621f, -0.0668945f, 0.172119f, -0.128906f, 0.182617f, -0.190918f, 0.182617f,
+-0.258789f, 0.182617f, -0.32666f, 0.172119f, -0.388672f, 0.161621f, -0.450684f, 0.140137f,
+-0.508057f, 0.118652f, -0.56543f, 0.0852051f, -0.619385f, 0.0517578f, -0.67334f,
+0.00585938f, -0.724609f, 0.0908203f, -0.724609f, 0.138184f, -0.67334f, 0.172363f,
+-0.619629f, 0.206543f, -0.565918f, 0.228516f, -0.508789f, 0.250488f, -0.45166f, 0.260742f,
+-0.389648f, 0.270996f, -0.327637f, 0.270996f, -0.259766f, 0.222656f, -0.543945f,
+0.351562f, -0.594238f, 0.373535f, -0.529785f, 0.23584f, -0.494141f, 0.326172f, -0.37207f,
+0.268066f, -0.336914f, 0.194824f, -0.462891f, 0.118652f, -0.337891f, 0.0605469f,
+-0.373047f, 0.152832f, -0.494141f, 0.0161133f, -0.529785f, 0.0380859f, -0.595215f,
+0.168457f, -0.542969f, 0.162598f, -0.687988f, 0.229004f, -0.687988f, 0.327637f, -0.296875f,
+0.327637f, -0.0878906f, 0.255859f, -0.0878906f, 0.255859f, -0.296875f, 0.0488281f,
+-0.296875f, 0.0488281f, -0.368164f, 0.255859f, -0.368164f, 0.255859f, -0.577148f,
+0.327637f, -0.577148f, 0.327637f, -0.368164f, 0.534668f, -0.368164f, 0.534668f, -0.296875f,
+0.187988f, -0.106934f, 0.187988f, -0.0249023f, 0.187988f, 0.000976562f, 0.185791f,
+0.0222168f, 0.183594f, 0.043457f, 0.178711f, 0.0617676f, 0.173828f, 0.0800781f, 0.166748f,
+0.0961914f, 0.159668f, 0.112305f, 0.149902f, 0.12793f, 0.0898438f, 0.12793f, 0.111816f,
+0.0961914f, 0.123779f, 0.0639648f, 0.135742f, 0.0317383f, 0.135742f, 0, 0.0927734f,
+0, 0.0927734f, -0.106934f, 0.0444336f, -0.226562f, 0.0444336f, -0.304688f, 0.288574f,
+-0.304688f, 0.288574f, -0.226562f, 0.0913086f, 0, 0.0913086f, -0.106934f, 0.186523f,
+-0.106934f, 0.186523f, 0, 0, 0.00976562f, 0.200684f, -0.724609f, 0.277832f, -0.724609f,
+0.0791016f, 0.00976562f, 0.51709f, -0.344238f, 0.51709f, -0.245117f, 0.498291f, -0.17749f,
+0.479492f, -0.109863f, 0.447021f, -0.0681152f, 0.414551f, -0.0263672f, 0.370605f,
+-0.00830078f, 0.32666f, 0.00976562f, 0.276855f, 0.00976562f, 0.226562f, 0.00976562f,
+0.183105f, -0.00830078f, 0.139648f, -0.0263672f, 0.107666f, -0.0678711f, 0.0756836f,
+-0.109375f, 0.057373f, -0.177002f, 0.0390625f, -0.244629f, 0.0390625f, -0.344238f,
+0.0390625f, -0.448242f, 0.057373f, -0.516357f, 0.0756836f, -0.584473f, 0.10791f,
+-0.625f, 0.140137f, -0.665527f, 0.184082f, -0.681885f, 0.228027f, -0.698242f, 0.279785f,
+-0.698242f, 0.329102f, -0.698242f, 0.372314f, -0.681885f, 0.415527f, -0.665527f,
+0.447754f, -0.625f, 0.47998f, -0.584473f, 0.498535f, -0.516357f, 0.51709f, -0.448242f,
+0.51709f, -0.344238f, 0.427734f, -0.344238f, 0.427734f, -0.42627f, 0.417969f, -0.480713f,
+0.408203f, -0.535156f, 0.38916f, -0.567627f, 0.370117f, -0.600098f, 0.342529f, -0.613525f,
+0.314941f, -0.626953f, 0.279785f, -0.626953f, 0.242676f, -0.626953f, 0.214355f, -0.613281f,
+0.186035f, -0.599609f, 0.166748f, -0.567139f, 0.147461f, -0.534668f, 0.137695f, -0.480225f,
+0.12793f, -0.425781f, 0.12793f, -0.344238f, 0.12793f, -0.265137f, 0.137939f, -0.210938f,
+0.147949f, -0.156738f, 0.167236f, -0.123779f, 0.186523f, -0.0908203f, 0.214355f,
+-0.076416f, 0.242188f, -0.0620117f, 0.277832f, -0.0620117f, 0.3125f, -0.0620117f,
+0.340332f, -0.076416f, 0.368164f, -0.0908203f, 0.387451f, -0.123779f, 0.406738f,
+-0.156738f, 0.417236f, -0.210938f, 0.427734f, -0.265137f, 0.427734f, -0.344238f,
+0.0761719f, 0, 0.0761719f, -0.074707f, 0.251465f, -0.074707f, 0.251465f, -0.604004f,
+0.0961914f, -0.493164f, 0.0961914f, -0.576172f, 0.258789f, -0.687988f, 0.339844f,
+-0.687988f, 0.339844f, -0.074707f, 0.507324f, -0.074707f, 0.507324f, 0, 0.050293f,
+0, 0.050293f, -0.0620117f, 0.0751953f, -0.119141f, 0.111084f, -0.162842f, 0.146973f,
+-0.206543f, 0.186523f, -0.241943f, 0.226074f, -0.277344f, 0.264893f, -0.307617f,
+0.303711f, -0.337891f, 0.334961f, -0.368164f, 0.366211f, -0.398438f, 0.385498f, -0.431641f,
+0.404785f, -0.464844f, 0.404785f, -0.506836f, 0.404785f, -0.536133f, 0.395996f, -0.55835f,
+0.387207f, -0.580566f, 0.370605f, -0.595703f, 0.354004f, -0.61084f, 0.330811f, -0.618408f,
+0.307617f, -0.625977f, 0.279297f, -0.625977f, 0.25293f, -0.625977f, 0.229736f, -0.618652f,
+0.206543f, -0.611328f, 0.188477f, -0.59668f, 0.17041f, -0.582031f, 0.158936f, -0.560303f,
+0.147461f, -0.538574f, 0.144043f, -0.509766f, 0.0541992f, -0.518066f, 0.0585938f,
+-0.555176f, 0.074707f, -0.587891f, 0.0908203f, -0.620605f, 0.119141f, -0.645264f,
+0.147461f, -0.669922f, 0.187256f, -0.684082f, 0.227051f, -0.698242f, 0.279297f, -0.698242f,
+0.330566f, -0.698242f, 0.370605f, -0.686035f, 0.410645f, -0.673828f, 0.438232f, -0.649902f,
+0.46582f, -0.625977f, 0.480469f, -0.59082f, 0.495117f, -0.555664f, 0.495117f, -0.509766f,
+0.495117f, -0.475098f, 0.482666f, -0.443848f, 0.470215f, -0.412598f, 0.449463f, -0.384277f,
+0.428711f, -0.355957f, 0.401367f, -0.32959f, 0.374023f, -0.303223f, 0.344238f, -0.278076f,
+0.314453f, -0.25293f, 0.28418f, -0.228271f, 0.253906f, -0.203613f, 0.227295f, -0.178711f,
+0.200684f, -0.153809f, 0.179688f, -0.128174f, 0.158691f, -0.102539f, 0.146973f, -0.074707f,
+0.505859f, -0.074707f, 0.505859f, 0, 0.512207f, -0.189941f, 0.512207f, -0.142578f,
+0.496826f, -0.105469f, 0.481445f, -0.0683594f, 0.451904f, -0.0427246f, 0.422363f,
+-0.0170898f, 0.378662f, -0.00366211f, 0.334961f, 0.00976562f, 0.278809f, 0.00976562f,
+0.214844f, 0.00976562f, 0.171143f, -0.00610352f, 0.127441f, -0.0219727f, 0.0991211f,
+-0.0480957f, 0.0708008f, -0.0742188f, 0.0566406f, -0.107666f, 0.0424805f, -0.141113f,
+0.0380859f, -0.176758f, 0.128906f, -0.185059f, 0.132812f, -0.157715f, 0.143311f,
+-0.135254f, 0.153809f, -0.112793f, 0.171875f, -0.0966797f, 0.189941f, -0.0805664f,
+0.216309f, -0.0717773f, 0.242676f, -0.0629883f, 0.278809f, -0.0629883f, 0.345215f,
+-0.0629883f, 0.383057f, -0.0957031f, 0.420898f, -0.128418f, 0.420898f, -0.192871f,
+0.420898f, -0.230957f, 0.404053f, -0.25415f, 0.387207f, -0.277344f, 0.362061f, -0.290283f,
+0.336914f, -0.303223f, 0.307373f, -0.307617f, 0.277832f, -0.312012f, 0.25293f, -0.312012f,
+0.203125f, -0.312012f, 0.203125f, -0.388184f, 0.250977f, -0.388184f, 0.275879f, -0.388184f,
+0.302734f, -0.393311f, 0.32959f, -0.398438f, 0.351807f, -0.411865f, 0.374023f, -0.425293f,
+0.388428f, -0.448242f, 0.402832f, -0.471191f, 0.402832f, -0.506836f, 0.402832f, -0.562012f,
+0.370361f, -0.593994f, 0.337891f, -0.625977f, 0.273926f, -0.625977f, 0.21582f, -0.625977f,
+0.179932f, -0.596191f, 0.144043f, -0.566406f, 0.138184f, -0.512207f, 0.0498047f,
+-0.519043f, 0.0551758f, -0.564453f, 0.074707f, -0.598145f, 0.0942383f, -0.631836f,
+0.124268f, -0.654053f, 0.154297f, -0.67627f, 0.192871f, -0.687256f, 0.231445f, -0.698242f,
+0.274902f, -0.698242f, 0.33252f, -0.698242f, 0.374023f, -0.683838f, 0.415527f, -0.669434f,
+0.441895f, -0.644775f, 0.468262f, -0.620117f, 0.480713f, -0.586914f, 0.493164f, -0.553711f,
+0.493164f, -0.516113f, 0.493164f, -0.48584f, 0.484863f, -0.459473f, 0.476562f, -0.433105f,
+0.458984f, -0.412109f, 0.441406f, -0.391113f, 0.414307f, -0.375977f, 0.387207f, -0.36084f,
+0.349121f, -0.353027f, 0.349121f, -0.351074f, 0.390625f, -0.34668f, 0.421387f, -0.332275f,
+0.452148f, -0.317871f, 0.472168f, -0.296387f, 0.492188f, -0.274902f, 0.502197f, -0.247559f,
+0.512207f, -0.220215f, 0.512207f, -0.189941f, 0.430176f, -0.155762f, 0.430176f, 0,
+0.347168f, 0, 0.347168f, -0.155762f, 0.0229492f, -0.155762f, 0.0229492f, -0.224121f,
+0.337891f, -0.687988f, 0.430176f, -0.687988f, 0.430176f, -0.225098f, 0.526855f, -0.225098f,
+0.526855f, -0.155762f, 0.347168f, -0.588867f, 0.346191f, -0.586426f, 0.342285f, -0.579346f,
+0.338379f, -0.572266f, 0.333496f, -0.563477f, 0.328613f, -0.554688f, 0.323486f, -0.545654f,
+0.318359f, -0.536621f, 0.314453f, -0.530762f, 0.138184f, -0.270996f, 0.135742f, -0.26709f,
+0.131104f, -0.260742f, 0.126465f, -0.254395f, 0.121582f, -0.247803f, 0.116699f, -0.241211f,
+0.111816f, -0.234863f, 0.106934f, -0.228516f, 0.104004f, -0.225098f, 0.347168f, -0.225098f,
+0.51416f, -0.224121f, 0.51416f, -0.172363f, 0.498535f, -0.129395f, 0.48291f, -0.0864258f,
+0.452148f, -0.0554199f, 0.421387f, -0.0244141f, 0.375732f, -0.00732422f, 0.330078f,
+0.00976562f, 0.27002f, 0.00976562f, 0.21582f, 0.00976562f, 0.175537f, -0.00292969f,
+0.135254f, -0.015625f, 0.107422f, -0.0378418f, 0.0795898f, -0.0600586f, 0.0632324f,
+-0.0898438f, 0.046875f, -0.119629f, 0.0400391f, -0.153809f, 0.128906f, -0.164062f,
+0.134277f, -0.144531f, 0.144043f, -0.126221f, 0.153809f, -0.10791f, 0.170654f, -0.0935059f,
+0.1875f, -0.0791016f, 0.212158f, -0.0705566f, 0.236816f, -0.0620117f, 0.271973f,
+-0.0620117f, 0.306152f, -0.0620117f, 0.333984f, -0.0725098f, 0.361816f, -0.0830078f,
+0.381592f, -0.103516f, 0.401367f, -0.124023f, 0.412109f, -0.153809f, 0.422852f, -0.183594f,
+0.422852f, -0.222168f, 0.422852f, -0.253906f, 0.412598f, -0.280518f, 0.402344f, -0.307129f,
+0.383301f, -0.326416f, 0.364258f, -0.345703f, 0.33667f, -0.356445f, 0.309082f, -0.367188f,
+0.273926f, -0.367188f, 0.251953f, -0.367188f, 0.233398f, -0.363281f, 0.214844f, -0.359375f,
+0.198975f, -0.352539f, 0.183105f, -0.345703f, 0.170166f, -0.33667f, 0.157227f, -0.327637f,
+0.145996f, -0.317871f, 0.0600586f, -0.317871f, 0.0830078f, -0.687988f, 0.474121f,
+-0.687988f, 0.474121f, -0.613281f, 0.163086f, -0.613281f, 0.149902f, -0.39502f, 0.17334f,
+-0.413086f, 0.208496f, -0.426025f, 0.243652f, -0.438965f, 0.291992f, -0.438965f,
+0.343262f, -0.438965f, 0.384277f, -0.42334f, 0.425293f, -0.407715f, 0.454102f, -0.37915f,
+0.48291f, -0.350586f, 0.498535f, -0.311035f, 0.51416f, -0.271484f, 0.51416f, -0.224121f,
+0.512207f, -0.225098f, 0.512207f, -0.17334f, 0.497803f, -0.130127f, 0.483398f, -0.0869141f,
+0.455322f, -0.0559082f, 0.427246f, -0.0249023f, 0.385742f, -0.00756836f, 0.344238f,
+0.00976562f, 0.290039f, 0.00976562f, 0.22998f, 0.00976562f, 0.185059f, -0.0131836f,
+0.140137f, -0.0361328f, 0.110352f, -0.0793457f, 0.0805664f, -0.122559f, 0.0656738f,
+-0.185303f, 0.0507812f, -0.248047f, 0.0507812f, -0.328125f, 0.0507812f, -0.419922f,
+0.067627f, -0.489258f, 0.0844727f, -0.558594f, 0.116211f, -0.60498f, 0.147949f, -0.651367f,
+0.193604f, -0.674805f, 0.239258f, -0.698242f, 0.296875f, -0.698242f, 0.332031f, -0.698242f,
+0.362793f, -0.690918f, 0.393555f, -0.683594f, 0.418701f, -0.667236f, 0.443848f, -0.650879f,
+0.462891f, -0.624023f, 0.481934f, -0.597168f, 0.493164f, -0.558105f, 0.40918f, -0.542969f,
+0.395508f, -0.587402f, 0.365479f, -0.607178f, 0.335449f, -0.626953f, 0.295898f, -0.626953f,
+0.259766f, -0.626953f, 0.230469f, -0.609863f, 0.201172f, -0.592773f, 0.180664f, -0.558838f,
+0.160156f, -0.524902f, 0.14917f, -0.473633f, 0.138184f, -0.422363f, 0.138184f, -0.354004f,
+0.162109f, -0.398438f, 0.205566f, -0.421631f, 0.249023f, -0.444824f, 0.305176f, -0.444824f,
+0.352051f, -0.444824f, 0.390137f, -0.429688f, 0.428223f, -0.414551f, 0.455322f, -0.385986f,
+0.482422f, -0.357422f, 0.497314f, -0.31665f, 0.512207f, -0.275879f, 0.512207f, -0.225098f,
+0.422852f, -0.221191f, 0.422852f, -0.256836f, 0.414062f, -0.285645f, 0.405273f, -0.314453f,
+0.387695f, -0.334717f, 0.370117f, -0.35498f, 0.344238f, -0.365967f, 0.318359f, -0.376953f,
+0.28418f, -0.376953f, 0.260254f, -0.376953f, 0.23584f, -0.369873f, 0.211426f, -0.362793f,
+0.19165f, -0.346924f, 0.171875f, -0.331055f, 0.159424f, -0.305176f, 0.146973f, -0.279297f,
+0.146973f, -0.242188f, 0.146973f, -0.204102f, 0.156738f, -0.171143f, 0.166504f, -0.138184f,
+0.184814f, -0.11377f, 0.203125f, -0.0893555f, 0.229004f, -0.0751953f, 0.254883f,
+-0.0610352f, 0.287109f, -0.0610352f, 0.318848f, -0.0610352f, 0.343994f, -0.0720215f,
+0.369141f, -0.0830078f, 0.386719f, -0.10376f, 0.404297f, -0.124512f, 0.413574f, -0.154297f,
+0.422852f, -0.184082f, 0.422852f, -0.221191f, 0.505859f, -0.616699f, 0.454102f, -0.537598f,
+0.410645f, -0.4646f, 0.367188f, -0.391602f, 0.335938f, -0.317627f, 0.304688f, -0.243652f,
+0.287354f, -0.165771f, 0.27002f, -0.0878906f, 0.27002f, 0, 0.178223f, 0, 0.178223f,
+-0.0825195f, 0.197754f, -0.161865f, 0.217285f, -0.241211f, 0.250488f, -0.317627f,
+0.283691f, -0.394043f, 0.327637f, -0.467773f, 0.371582f, -0.541504f, 0.420898f, -0.613281f,
+0.0512695f, -0.613281f, 0.0512695f, -0.687988f, 0.505859f, -0.687988f, 0.512695f,
+-0.191895f, 0.512695f, -0.147949f, 0.498779f, -0.111084f, 0.484863f, -0.0742188f,
+0.456299f, -0.0473633f, 0.427734f, -0.0205078f, 0.383301f, -0.00537109f, 0.338867f,
+0.00976562f, 0.27832f, 0.00976562f, 0.217773f, 0.00976562f, 0.173584f, -0.00537109f,
+0.129395f, -0.0205078f, 0.100342f, -0.0471191f, 0.0712891f, -0.0737305f, 0.057373f,
+-0.110596f, 0.043457f, -0.147461f, 0.043457f, -0.190918f, 0.043457f, -0.228516f,
+0.0549316f, -0.257812f, 0.0664062f, -0.287109f, 0.0856934f, -0.30835f, 0.10498f,
+-0.32959f, 0.129639f, -0.342529f, 0.154297f, -0.355469f, 0.180664f, -0.359863f, 0.180664f,
+-0.361816f, 0.151855f, -0.368652f, 0.12915f, -0.383789f, 0.106445f, -0.398926f, 0.0910645f,
+-0.420166f, 0.0756836f, -0.441406f, 0.067627f, -0.467285f, 0.0595703f, -0.493164f,
+0.0595703f, -0.521973f, 0.0595703f, -0.558105f, 0.0734863f, -0.590088f, 0.0874023f,
+-0.62207f, 0.114746f, -0.64624f, 0.14209f, -0.67041f, 0.182617f, -0.684326f, 0.223145f,
+-0.698242f, 0.276367f, -0.698242f, 0.33252f, -0.698242f, 0.373779f, -0.684082f, 0.415039f,
+-0.669922f, 0.442139f, -0.645752f, 0.469238f, -0.621582f, 0.482422f, -0.589355f,
+0.495605f, -0.557129f, 0.495605f, -0.520996f, 0.495605f, -0.492676f, 0.487549f, -0.466797f,
+0.479492f, -0.440918f, 0.464111f, -0.419678f, 0.44873f, -0.398438f, 0.426025f, -0.383545f,
+0.40332f, -0.368652f, 0.373535f, -0.362793f, 0.373535f, -0.36084f, 0.40332f, -0.355957f,
+0.428711f, -0.343018f, 0.454102f, -0.330078f, 0.472656f, -0.308838f, 0.491211f, -0.287598f,
+0.501953f, -0.258301f, 0.512695f, -0.229004f, 0.512695f, -0.191895f, 0.404297f, -0.516113f,
+0.404297f, -0.541992f, 0.397705f, -0.563477f, 0.391113f, -0.584961f, 0.375977f, -0.600342f,
+0.36084f, -0.615723f, 0.336426f, -0.624268f, 0.312012f, -0.632812f, 0.276367f, -0.632812f,
+0.241699f, -0.632812f, 0.217773f, -0.624268f, 0.193848f, -0.615723f, 0.178467f, -0.600342f,
+0.163086f, -0.584961f, 0.15625f, -0.563477f, 0.149414f, -0.541992f, 0.149414f, -0.516113f,
+0.149414f, -0.495605f, 0.154785f, -0.474121f, 0.160156f, -0.452637f, 0.174316f, -0.435059f,
+0.188477f, -0.41748f, 0.213379f, -0.40625f, 0.238281f, -0.39502f, 0.277344f, -0.39502f,
+0.318848f, -0.39502f, 0.343994f, -0.40625f, 0.369141f, -0.41748f, 0.382568f, -0.435059f,
+0.395996f, -0.452637f, 0.400146f, -0.474121f, 0.404297f, -0.495605f, 0.404297f, -0.516113f,
+0.421387f, -0.200195f, 0.421387f, -0.225098f, 0.414551f, -0.248291f, 0.407715f, -0.271484f,
+0.391113f, -0.289307f, 0.374512f, -0.307129f, 0.346436f, -0.318115f, 0.318359f, -0.329102f,
+0.276367f, -0.329102f, 0.237793f, -0.329102f, 0.210693f, -0.318115f, 0.183594f, -0.307129f,
+0.166748f, -0.289062f, 0.149902f, -0.270996f, 0.14209f, -0.247314f, 0.134277f, -0.223633f,
+0.134277f, -0.198242f, 0.134277f, -0.166504f, 0.14209f, -0.140381f, 0.149902f, -0.114258f,
+0.166992f, -0.095459f, 0.184082f, -0.0766602f, 0.211914f, -0.0664062f, 0.239746f,
+-0.0561523f, 0.279297f, -0.0561523f, 0.319336f, -0.0561523f, 0.34668f, -0.0664062f,
+0.374023f, -0.0766602f, 0.390625f, -0.095459f, 0.407227f, -0.114258f, 0.414307f,
+-0.140869f, 0.421387f, -0.16748f, 0.421387f, -0.200195f, 0.508789f, -0.35791f, 0.508789f,
+-0.266113f, 0.491455f, -0.197021f, 0.474121f, -0.12793f, 0.441895f, -0.0820312f,
+0.409668f, -0.0361328f, 0.363525f, -0.0131836f, 0.317383f, 0.00976562f, 0.259766f,
+0.00976562f, 0.220215f, 0.00976562f, 0.188477f, 0.00170898f, 0.156738f, -0.00634766f,
+0.131836f, -0.0234375f, 0.106934f, -0.0405273f, 0.0893555f, -0.0678711f, 0.0717773f,
+-0.0952148f, 0.0610352f, -0.133789f, 0.14502f, -0.146973f, 0.158691f, -0.102539f,
+0.187744f, -0.0817871f, 0.216797f, -0.0610352f, 0.26123f, -0.0610352f, 0.296875f,
+-0.0610352f, 0.326416f, -0.0778809f, 0.355957f, -0.0947266f, 0.376709f, -0.128418f,
+0.397461f, -0.162109f, 0.40918f, -0.212891f, 0.420898f, -0.263672f, 0.421875f, -0.332031f,
+0.411621f, -0.309082f, 0.393799f, -0.291016f, 0.375977f, -0.272949f, 0.353271f, -0.260498f,
+0.330566f, -0.248047f, 0.304199f, -0.241455f, 0.277832f, -0.234863f, 0.250977f, -0.234863f,
+0.204102f, -0.234863f, 0.16626f, -0.251709f, 0.128418f, -0.268555f, 0.102051f, -0.298828f,
+0.0756836f, -0.329102f, 0.0612793f, -0.371826f, 0.046875f, -0.414551f, 0.046875f,
+-0.466797f, 0.046875f, -0.52002f, 0.0622559f, -0.562988f, 0.0776367f, -0.605957f,
+0.106934f, -0.635986f, 0.13623f, -0.666016f, 0.178955f, -0.682129f, 0.22168f, -0.698242f,
+0.275879f, -0.698242f, 0.390625f, -0.698242f, 0.449707f, -0.613281f, 0.508789f, -0.52832f,
+0.508789f, -0.35791f, 0.413086f, -0.442871f, 0.413086f, -0.480957f, 0.404053f, -0.514648f,
+0.39502f, -0.54834f, 0.377197f, -0.573242f, 0.359375f, -0.598145f, 0.333252f, -0.612549f,
+0.307129f, -0.626953f, 0.272949f, -0.626953f, 0.241211f, -0.626953f, 0.21582f, -0.615723f,
+0.19043f, -0.604492f, 0.172852f, -0.58374f, 0.155273f, -0.562988f, 0.145752f, -0.533203f,
+0.13623f, -0.503418f, 0.13623f, -0.466797f, 0.13623f, -0.432129f, 0.144775f, -0.402344f,
+0.15332f, -0.372559f, 0.17041f, -0.35083f, 0.1875f, -0.329102f, 0.212891f, -0.31665f,
+0.238281f, -0.304199f, 0.271973f, -0.304199f, 0.296387f, -0.304199f, 0.321533f, -0.3125f,
+0.34668f, -0.320801f, 0.366943f, -0.337891f, 0.387207f, -0.35498f, 0.400146f, -0.381104f,
+0.413086f, -0.407227f, 0.413086f, -0.442871f, 0.0913086f, -0.427246f, 0.0913086f,
+-0.52832f, 0.186523f, -0.52832f, 0.186523f, -0.427246f, 0.0913086f, 0, 0.0913086f,
+-0.101074f, 0.186523f, -0.101074f, 0.186523f, 0, 0.187988f, -0.101074f, 0.187988f,
+-0.0249023f, 0.187988f, 0.000976562f, 0.185791f, 0.0222168f, 0.183594f, 0.043457f,
+0.178711f, 0.0617676f, 0.173828f, 0.0800781f, 0.166748f, 0.0961914f, 0.159668f, 0.112305f,
+0.149902f, 0.12793f, 0.0898438f, 0.12793f, 0.111816f, 0.0961914f, 0.123779f, 0.0639648f,
+0.135742f, 0.0317383f, 0.135742f, 0, 0.0927734f, 0, 0.0927734f, -0.101074f, 0.0927734f,
+-0.427246f, 0.0927734f, -0.52832f, 0.187988f, -0.52832f, 0.187988f, -0.427246f, 0.0493164f,
+-0.278809f, 0.0493164f, -0.378906f, 0.535156f, -0.583008f, 0.535156f, -0.507812f,
+0.116211f, -0.329102f, 0.535156f, -0.149902f, 0.535156f, -0.0751953f, 0.0488281f,
+-0.417969f, 0.0488281f, -0.490234f, 0.534668f, -0.490234f, 0.534668f, -0.417969f,
+0.0488281f, -0.167969f, 0.0488281f, -0.240234f, 0.534668f, -0.240234f, 0.534668f,
+-0.167969f, 0.0493164f, -0.0751953f, 0.0493164f, -0.149902f, 0.468262f, -0.329102f,
+0.0493164f, -0.507812f, 0.0493164f, -0.583008f, 0.535156f, -0.378906f, 0.535156f,
+-0.278809f, 0.519043f, -0.503906f, 0.519043f, -0.469238f, 0.51001f, -0.442871f, 0.500977f,
+-0.416504f, 0.48584f, -0.395752f, 0.470703f, -0.375f, 0.451416f, -0.358643f, 0.432129f,
+-0.342285f, 0.412109f, -0.327637f, 0.39209f, -0.312988f, 0.372803f, -0.298828f, 0.353516f,
+-0.284668f, 0.338135f, -0.268066f, 0.322754f, -0.251465f, 0.313232f, -0.231201f,
+0.303711f, -0.210938f, 0.303223f, -0.184082f, 0.217773f, -0.184082f, 0.21875f, -0.217773f,
+0.228271f, -0.243164f, 0.237793f, -0.268555f, 0.25293f, -0.288086f, 0.268066f, -0.307617f,
+0.287109f, -0.322998f, 0.306152f, -0.338379f, 0.325684f, -0.352295f, 0.345215f, -0.366211f,
+0.364014f, -0.380127f, 0.382812f, -0.394043f, 0.397461f, -0.411133f, 0.412109f, -0.428223f,
+0.421143f, -0.449707f, 0.430176f, -0.471191f, 0.430176f, -0.5f, 0.430176f, -0.528809f,
+0.419922f, -0.55127f, 0.409668f, -0.57373f, 0.390869f, -0.589111f, 0.37207f, -0.604492f,
+0.345459f, -0.612305f, 0.318848f, -0.620117f, 0.286133f, -0.620117f, 0.217773f, -0.620117f,
+0.177734f, -0.585938f, 0.137695f, -0.551758f, 0.130859f, -0.492188f, 0.0410156f,
+-0.498047f, 0.0463867f, -0.539062f, 0.0627441f, -0.575439f, 0.0791016f, -0.611816f,
+0.108643f, -0.63916f, 0.138184f, -0.666504f, 0.181885f, -0.682373f, 0.225586f, -0.698242f,
+0.285156f, -0.698242f, 0.34082f, -0.698242f, 0.384277f, -0.68457f, 0.427734f, -0.670898f,
+0.457764f, -0.645752f, 0.487793f, -0.620605f, 0.503418f, -0.584473f, 0.519043f, -0.54834f,
+0.519043f, -0.503906f, 0.213867f, 0, 0.213867f, -0.0981445f, 0.309082f, -0.0981445f,
+0.309082f, 0, 0.928711f, -0.368652f, 0.928711f, -0.29834f, 0.912354f, -0.23999f,
+0.895996f, -0.181641f, 0.867188f, -0.139648f, 0.838379f, -0.0976562f, 0.798096f,
+-0.0742188f, 0.757812f, -0.0507812f, 0.710449f, -0.0507812f, 0.683105f, -0.0507812f,
+0.663818f, -0.057373f, 0.644531f, -0.0639648f, 0.632324f, -0.0754395f, 0.620117f,
+-0.0869141f, 0.614746f, -0.102539f, 0.609375f, -0.118164f, 0.609375f, -0.136719f,
+0.609375f, -0.144043f, 0.609863f, -0.154541f, 0.610352f, -0.165039f, 0.61084f, -0.170898f,
+0.60791f, -0.170898f, 0.596191f, -0.148926f, 0.579346f, -0.127197f, 0.5625f, -0.105469f,
+0.539795f, -0.088623f, 0.51709f, -0.0717773f, 0.488525f, -0.0612793f, 0.459961f,
+-0.0507812f, 0.425293f, -0.0507812f, 0.384277f, -0.0507812f, 0.35376f, -0.0649414f,
+0.323242f, -0.0791016f, 0.303467f, -0.104248f, 0.283691f, -0.129395f, 0.273926f,
+-0.163818f, 0.26416f, -0.198242f, 0.26416f, -0.23877f, 0.26416f, -0.297363f, 0.281494f,
+-0.351318f, 0.298828f, -0.405273f, 0.331055f, -0.446533f, 0.363281f, -0.487793f,
+0.408447f, -0.512695f, 0.453613f, -0.537598f, 0.509277f, -0.537598f, 0.538574f, -0.537598f,
+0.562012f, -0.531006f, 0.585449f, -0.524414f, 0.603271f, -0.512695f, 0.621094f, -0.500977f,
+0.634277f, -0.484619f, 0.647461f, -0.468262f, 0.65625f, -0.44873f, 0.65918f, -0.44873f,
+0.678223f, -0.526855f, 0.754395f, -0.526855f, 0.697754f, -0.279785f, 0.688477f, -0.23877f,
+0.684082f, -0.209473f, 0.679688f, -0.180176f, 0.679688f, -0.15625f, 0.679688f, -0.132812f,
+0.690186f, -0.121582f, 0.700684f, -0.110352f, 0.719238f, -0.110352f, 0.749512f, -0.110352f,
+0.775635f, -0.130127f, 0.801758f, -0.149902f, 0.821045f, -0.18457f, 0.840332f, -0.219238f,
+0.851318f, -0.266113f, 0.862305f, -0.312988f, 0.862305f, -0.367676f, 0.862305f, -0.430664f,
+0.842041f, -0.484863f, 0.821777f, -0.539062f, 0.782471f, -0.578613f, 0.743164f, -0.618164f,
+0.685059f, -0.640625f, 0.626953f, -0.663086f, 0.550781f, -0.663086f, 0.485352f, -0.663086f,
+0.429932f, -0.647461f, 0.374512f, -0.631836f, 0.32959f, -0.603516f, 0.284668f, -0.575195f,
+0.250732f, -0.535889f, 0.216797f, -0.496582f, 0.193848f, -0.449707f, 0.170898f, -0.402832f,
+0.15918f, -0.349365f, 0.147461f, -0.295898f, 0.147461f, -0.239746f, 0.147461f, -0.170898f,
+0.168457f, -0.112793f, 0.189453f, -0.0546875f, 0.229736f, -0.0129395f, 0.27002f,
+0.0288086f, 0.329346f, 0.0522461f, 0.388672f, 0.0756836f, 0.46582f, 0.0756836f, 0.51709f,
+0.0756836f, 0.561523f, 0.067627f, 0.605957f, 0.0595703f, 0.643066f, 0.0478516f, 0.680176f,
+0.0361328f, 0.709473f, 0.0222168f, 0.73877f, 0.00830078f, 0.760254f, -0.00341797f,
+0.787109f, 0.0512695f, 0.762695f, 0.065918f, 0.729736f, 0.0812988f, 0.696777f, 0.0966797f,
+0.65625f, 0.109375f, 0.615723f, 0.12207f, 0.567871f, 0.130127f, 0.52002f, 0.138184f,
+0.46582f, 0.138184f, 0.373047f, 0.138184f, 0.301025f, 0.110107f, 0.229004f, 0.0820312f,
+0.179443f, 0.0317383f, 0.129883f, -0.0185547f, 0.104248f, -0.0878906f, 0.0786133f,
+-0.157227f, 0.0786133f, -0.239746f, 0.0786133f, -0.307617f, 0.0939941f, -0.370117f,
+0.109375f, -0.432617f, 0.138184f, -0.486328f, 0.166992f, -0.540039f, 0.208496f, -0.583984f,
+0.25f, -0.62793f, 0.30249f, -0.65918f, 0.35498f, -0.69043f, 0.417236f, -0.70752f,
+0.479492f, -0.724609f, 0.549805f, -0.724609f, 0.647949f, -0.724609f, 0.719238f, -0.695801f,
+0.790527f, -0.666992f, 0.837158f, -0.618164f, 0.883789f, -0.569336f, 0.90625f, -0.504883f,
+0.928711f, -0.44043f, 0.928711f, -0.368652f, 0.632812f, -0.364746f, 0.632812f, -0.38916f,
+0.624512f, -0.409668f, 0.616211f, -0.430176f, 0.60083f, -0.444824f, 0.585449f, -0.459473f,
+0.563721f, -0.467529f, 0.541992f, -0.475586f, 0.514648f, -0.475586f, 0.472656f, -0.475586f,
+0.440918f, -0.454834f, 0.40918f, -0.434082f, 0.387939f, -0.400391f, 0.366699f, -0.366699f,
+0.355713f, -0.324463f, 0.344727f, -0.282227f, 0.344727f, -0.239746f, 0.344727f, -0.181152f,
+0.36792f, -0.147949f, 0.391113f, -0.114746f, 0.439453f, -0.114746f, 0.473145f, -0.114746f,
+0.502441f, -0.129883f, 0.531738f, -0.14502f, 0.555176f, -0.169922f, 0.578613f, -0.194824f,
+0.595703f, -0.227051f, 0.612793f, -0.259277f, 0.621582f, -0.293945f, 0.625977f, -0.311523f,
+0.629395f, -0.331055f, 0.632812f, -0.350586f, 0.632812f, -0.364746f, 0.569824f, 0,
+0.491211f, -0.201172f, 0.177734f, -0.201172f, 0.0986328f, 0, 0.00195312f, 0, 0.282715f,
+-0.687988f, 0.388672f, -0.687988f, 0.665039f, 0, 0.375f, -0.500977f, 0.367188f, -0.520508f,
+0.360107f, -0.540527f, 0.353027f, -0.560547f, 0.347656f, -0.576904f, 0.342285f, -0.593262f,
+0.338623f, -0.604248f, 0.334961f, -0.615234f, 0.334473f, -0.617676f, 0.333496f, -0.615234f,
+0.330078f, -0.604004f, 0.32666f, -0.592773f, 0.321045f, -0.576172f, 0.31543f, -0.55957f,
+0.30835f, -0.539551f, 0.30127f, -0.519531f, 0.293945f, -0.5f, 0.206055f, -0.273926f,
+0.463379f, -0.273926f, 0.614258f, -0.193848f, 0.614258f, -0.141602f, 0.59375f, -0.104736f,
+0.573242f, -0.0678711f, 0.538574f, -0.0446777f, 0.503906f, -0.0214844f, 0.458008f,
+-0.0107422f, 0.412109f, 0, 0.361328f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.332031f,
+-0.687988f, 0.38916f, -0.687988f, 0.434082f, -0.678467f, 0.479004f, -0.668945f, 0.510254f,
+-0.648438f, 0.541504f, -0.62793f, 0.557861f, -0.596436f, 0.574219f, -0.564941f, 0.574219f,
+-0.520996f, 0.574219f, -0.492188f, 0.566162f, -0.466797f, 0.558105f, -0.441406f,
+0.541748f, -0.420654f, 0.525391f, -0.399902f, 0.500732f, -0.38501f, 0.476074f, -0.370117f,
+0.443359f, -0.362793f, 0.484863f, -0.35791f, 0.516846f, -0.34375f, 0.548828f, -0.32959f,
+0.570312f, -0.307617f, 0.591797f, -0.285645f, 0.603027f, -0.256592f, 0.614258f, -0.227539f,
+0.614258f, -0.193848f, 0.480469f, -0.509766f, 0.480469f, -0.56543f, 0.442383f, -0.589355f,
+0.404297f, -0.613281f, 0.332031f, -0.613281f, 0.175293f, -0.613281f, 0.175293f, -0.395508f,
+0.332031f, -0.395508f, 0.373047f, -0.395508f, 0.401367f, -0.403564f, 0.429688f, -0.411621f,
+0.447266f, -0.426514f, 0.464844f, -0.441406f, 0.472656f, -0.462402f, 0.480469f, -0.483398f,
+0.480469f, -0.509766f, 0.52002f, -0.201172f, 0.52002f, -0.233887f, 0.508057f, -0.256836f,
+0.496094f, -0.279785f, 0.473633f, -0.294434f, 0.451172f, -0.309082f, 0.419678f, -0.315918f,
+0.388184f, -0.322754f, 0.349121f, -0.322754f, 0.175293f, -0.322754f, 0.175293f, -0.074707f,
+0.356445f, -0.074707f, 0.39209f, -0.074707f, 0.422119f, -0.0805664f, 0.452148f, -0.0864258f,
+0.473877f, -0.101074f, 0.495605f, -0.115723f, 0.507812f, -0.140137f, 0.52002f, -0.164551f,
+0.52002f, -0.201172f, 0.386719f, -0.62207f, 0.328125f, -0.62207f, 0.282959f, -0.602539f,
+0.237793f, -0.583008f, 0.207275f, -0.546875f, 0.176758f, -0.510742f, 0.161133f, -0.459961f,
+0.145508f, -0.40918f, 0.145508f, -0.347168f, 0.145508f, -0.285156f, 0.162354f, -0.233643f,
+0.179199f, -0.182129f, 0.210693f, -0.14502f, 0.242188f, -0.10791f, 0.287842f, -0.0874023f,
+0.333496f, -0.0668945f, 0.390625f, -0.0668945f, 0.430664f, -0.0668945f, 0.463623f,
+-0.0773926f, 0.496582f, -0.0878906f, 0.523193f, -0.106934f, 0.549805f, -0.125977f,
+0.570801f, -0.1521f, 0.591797f, -0.178223f, 0.60791f, -0.209961f, 0.684082f, -0.171875f,
+0.665527f, -0.133301f, 0.638184f, -0.100098f, 0.61084f, -0.0668945f, 0.573975f, -0.0424805f,
+0.537109f, -0.0180664f, 0.490479f, -0.00415039f, 0.443848f, 0.00976562f, 0.38623f,
+0.00976562f, 0.302734f, 0.00976562f, 0.23999f, -0.0168457f, 0.177246f, -0.043457f,
+0.13501f, -0.0910645f, 0.0927734f, -0.138672f, 0.0717773f, -0.204102f, 0.0507812f,
+-0.269531f, 0.0507812f, -0.347168f, 0.0507812f, -0.427734f, 0.072998f, -0.492676f,
+0.0952148f, -0.557617f, 0.137939f, -0.603271f, 0.180664f, -0.648926f, 0.243164f,
+-0.673584f, 0.305664f, -0.698242f, 0.385742f, -0.698242f, 0.495605f, -0.698242f,
+0.569336f, -0.655273f, 0.643066f, -0.612305f, 0.677734f, -0.527832f, 0.589355f, -0.498535f,
+0.57959f, -0.522949f, 0.562988f, -0.545166f, 0.546387f, -0.567383f, 0.521484f, -0.584473f,
+0.496582f, -0.601562f, 0.463135f, -0.611816f, 0.429688f, -0.62207f, 0.386719f, -0.62207f,
+0.674316f, -0.351074f, 0.674316f, -0.265137f, 0.648438f, -0.199463f, 0.622559f, -0.133789f,
+0.577637f, -0.0895996f, 0.532715f, -0.0454102f, 0.471436f, -0.0227051f, 0.410156f,
+0, 0.339355f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.30957f, -0.687988f, 0.38916f,
+-0.687988f, 0.456299f, -0.668213f, 0.523438f, -0.648438f, 0.571777f, -0.607178f,
+0.620117f, -0.565918f, 0.647217f, -0.502441f, 0.674316f, -0.438965f, 0.674316f, -0.351074f,
+0.580566f, -0.351074f, 0.580566f, -0.420898f, 0.560547f, -0.470459f, 0.540527f, -0.52002f,
+0.504395f, -0.551758f, 0.468262f, -0.583496f, 0.417969f, -0.598389f, 0.367676f, -0.613281f,
+0.307617f, -0.613281f, 0.175293f, -0.613281f, 0.175293f, -0.074707f, 0.328613f, -0.074707f,
+0.382812f, -0.074707f, 0.428955f, -0.0922852f, 0.475098f, -0.109863f, 0.508789f,
+-0.144531f, 0.54248f, -0.179199f, 0.561523f, -0.230957f, 0.580566f, -0.282715f, 0.580566f,
+-0.351074f, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.604004f, -0.687988f, 0.604004f,
+-0.611816f, 0.175293f, -0.611816f, 0.175293f, -0.391113f, 0.574707f, -0.391113f,
+0.574707f, -0.315918f, 0.175293f, -0.315918f, 0.175293f, -0.0761719f, 0.624023f,
+-0.0761719f, 0.624023f, 0, 0.175293f, -0.611816f, 0.175293f, -0.355957f, 0.559082f,
+-0.355957f, 0.559082f, -0.278809f, 0.175293f, -0.278809f, 0.175293f, 0, 0.0820312f,
+0, 0.0820312f, -0.687988f, 0.570801f, -0.687988f, 0.570801f, -0.611816f, 0.050293f,
+-0.347168f, 0.050293f, -0.427734f, 0.0720215f, -0.492676f, 0.09375f, -0.557617f,
+0.136963f, -0.603271f, 0.180176f, -0.648926f, 0.244141f, -0.673584f, 0.308105f, -0.698242f,
+0.392578f, -0.698242f, 0.456055f, -0.698242f, 0.503906f, -0.687012f, 0.551758f, -0.675781f,
+0.586914f, -0.654785f, 0.62207f, -0.633789f, 0.646484f, -0.60376f, 0.670898f, -0.57373f,
+0.687988f, -0.536133f, 0.599121f, -0.509766f, 0.586426f, -0.535156f, 0.568604f, -0.555908f,
+0.550781f, -0.57666f, 0.525391f, -0.591309f, 0.5f, -0.605957f, 0.466553f, -0.614014f,
+0.433105f, -0.62207f, 0.390137f, -0.62207f, 0.327637f, -0.62207f, 0.281494f, -0.602539f,
+0.235352f, -0.583008f, 0.205078f, -0.546875f, 0.174805f, -0.510742f, 0.159912f, -0.459961f,
+0.14502f, -0.40918f, 0.14502f, -0.347168f, 0.14502f, -0.285156f, 0.161133f, -0.233643f,
+0.177246f, -0.182129f, 0.208984f, -0.144775f, 0.240723f, -0.107422f, 0.287842f, -0.0866699f,
+0.334961f, -0.065918f, 0.396973f, -0.065918f, 0.4375f, -0.065918f, 0.47168f, -0.0727539f,
+0.505859f, -0.0795898f, 0.533447f, -0.0905762f, 0.561035f, -0.101562f, 0.582031f,
+-0.11499f, 0.603027f, -0.128418f, 0.617188f, -0.14209f, 0.617188f, -0.266113f, 0.411621f,
+-0.266113f, 0.411621f, -0.344238f, 0.703125f, -0.344238f, 0.703125f, -0.106934f,
+0.680176f, -0.0834961f, 0.64917f, -0.0622559f, 0.618164f, -0.0410156f, 0.57959f,
+-0.0249023f, 0.541016f, -0.00878906f, 0.495117f, 0.000488281f, 0.449219f, 0.00976562f,
+0.396973f, 0.00976562f, 0.310059f, 0.00976562f, 0.245117f, -0.0168457f, 0.180176f,
+-0.043457f, 0.136963f, -0.0910645f, 0.09375f, -0.138672f, 0.0720215f, -0.204102f,
+0.050293f, -0.269531f, 0.050293f, -0.347168f, 0.547363f, 0, 0.547363f, -0.318848f,
+0.175293f, -0.318848f, 0.175293f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.175293f,
+-0.687988f, 0.175293f, -0.396973f, 0.547363f, -0.396973f, 0.547363f, -0.687988f,
+0.640625f, -0.687988f, 0.640625f, 0, 0.0922852f, 0, 0.0922852f, -0.687988f, 0.185547f,
+-0.687988f, 0.185547f, 0, 0.223145f, 0.00976562f, 0.139648f, 0.00976562f, 0.0861816f,
+-0.0336914f, 0.0327148f, -0.0771484f, 0.015625f, -0.170898f, 0.106934f, -0.186035f,
+0.111816f, -0.154297f, 0.123047f, -0.131592f, 0.134277f, -0.108887f, 0.149902f, -0.0942383f,
+0.165527f, -0.0795898f, 0.18457f, -0.0727539f, 0.203613f, -0.065918f, 0.223633f,
+-0.065918f, 0.274414f, -0.065918f, 0.303711f, -0.10083f, 0.333008f, -0.135742f, 0.333008f,
+-0.203125f, 0.333008f, -0.611816f, 0.200684f, -0.611816f, 0.200684f, -0.687988f,
+0.425781f, -0.687988f, 0.425781f, -0.205078f, 0.425781f, -0.155762f, 0.412109f, -0.116211f,
+0.398438f, -0.0766602f, 0.372314f, -0.048584f, 0.346191f, -0.0205078f, 0.308594f,
+-0.00537109f, 0.270996f, 0.00976562f, 0.223145f, 0.00976562f, 0.540039f, 0, 0.265137f,
+-0.332031f, 0.175293f, -0.263672f, 0.175293f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f,
+0.175293f, -0.687988f, 0.175293f, -0.343262f, 0.506836f, -0.687988f, 0.616699f, -0.687988f,
+0.32373f, -0.38916f, 0.655762f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.175293f,
+-0.687988f, 0.175293f, -0.0761719f, 0.522949f, -0.0761719f, 0.522949f, 0, 0.666992f,
+0, 0.666992f, -0.458984f, 0.666992f, -0.483887f, 0.66748f, -0.509766f, 0.667969f,
+-0.535645f, 0.668945f, -0.557129f, 0.669922f, -0.582031f, 0.671387f, -0.605469f,
+0.664551f, -0.580566f, 0.657227f, -0.556152f, 0.650879f, -0.535156f, 0.643311f, -0.511475f,
+0.635742f, -0.487793f, 0.628418f, -0.46875f, 0.450684f, 0, 0.385254f, 0, 0.205078f,
+-0.46875f, 0.202148f, -0.476074f, 0.198975f, -0.48584f, 0.195801f, -0.495605f, 0.192139f,
+-0.506592f, 0.188477f, -0.517578f, 0.184814f, -0.529053f, 0.181152f, -0.540527f,
+0.177734f, -0.551758f, 0.169434f, -0.577637f, 0.161621f, -0.605469f, 0.162109f, -0.578125f,
+0.163086f, -0.55127f, 0.164062f, -0.52832f, 0.164551f, -0.503174f, 0.165039f, -0.478027f,
+0.165039f, -0.458984f, 0.165039f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.20459f,
+-0.687988f, 0.387695f, -0.210938f, 0.391113f, -0.201172f, 0.395996f, -0.185791f,
+0.400879f, -0.17041f, 0.405273f, -0.154297f, 0.409668f, -0.138184f, 0.41333f, -0.123779f,
+0.416992f, -0.109375f, 0.418457f, -0.101562f, 0.419922f, -0.109375f, 0.423828f, -0.124023f,
+0.427734f, -0.138672f, 0.432861f, -0.154785f, 0.437988f, -0.170898f, 0.442871f, -0.186035f,
+0.447754f, -0.201172f, 0.45166f, -0.210938f, 0.631348f, -0.687988f, 0.750977f, -0.687988f,
+0.750977f, 0, 0.52832f, 0, 0.160156f, -0.585938f, 0.161133f, -0.562012f, 0.162598f,
+-0.538574f, 0.163574f, -0.518555f, 0.164307f, -0.496338f, 0.165039f, -0.474121f,
+0.165039f, -0.457031f, 0.165039f, 0, 0.0820312f, 0, 0.0820312f, -0.687988f, 0.19043f,
+-0.687988f, 0.5625f, -0.0981445f, 0.561035f, -0.12207f, 0.55957f, -0.145996f, 0.558594f,
+-0.166504f, 0.557617f, -0.190674f, 0.556641f, -0.214844f, 0.556641f, -0.236816f,
+0.556641f, -0.687988f, 0.640625f, -0.687988f, 0.640625f, 0, 0.72998f, -0.347168f,
+0.72998f, -0.266602f, 0.706787f, -0.200684f, 0.683594f, -0.134766f, 0.639648f, -0.0878906f,
+0.595703f, -0.0410156f, 0.532227f, -0.015625f, 0.46875f, 0.00976562f, 0.388184f,
+0.00976562f, 0.303223f, 0.00976562f, 0.239258f, -0.0168457f, 0.175293f, -0.043457f,
+0.132812f, -0.0910645f, 0.090332f, -0.138672f, 0.0688477f, -0.204102f, 0.0473633f,
+-0.269531f, 0.0473633f, -0.347168f, 0.0473633f, -0.427734f, 0.0698242f, -0.492676f,
+0.0922852f, -0.557617f, 0.135742f, -0.603271f, 0.179199f, -0.648926f, 0.24292f, -0.673584f,
+0.306641f, -0.698242f, 0.38916f, -0.698242f, 0.471191f, -0.698242f, 0.534912f, -0.67334f,
+0.598633f, -0.648438f, 0.641846f, -0.602539f, 0.685059f, -0.556641f, 0.70752f, -0.491699f,
+0.72998f, -0.426758f, 0.72998f, -0.347168f, 0.634766f, -0.347168f, 0.634766f, -0.40918f,
+0.618896f, -0.459961f, 0.603027f, -0.510742f, 0.572021f, -0.546875f, 0.541016f, -0.583008f,
+0.495117f, -0.602539f, 0.449219f, -0.62207f, 0.38916f, -0.62207f, 0.327637f, -0.62207f,
+0.28125f, -0.602539f, 0.234863f, -0.583008f, 0.203857f, -0.546875f, 0.172852f, -0.510742f,
+0.157471f, -0.459961f, 0.14209f, -0.40918f, 0.14209f, -0.347168f, 0.14209f, -0.285156f,
+0.157959f, -0.233643f, 0.173828f, -0.182129f, 0.204834f, -0.144775f, 0.23584f, -0.107422f,
+0.281982f, -0.0866699f, 0.328125f, -0.065918f, 0.388184f, -0.065918f, 0.452637f,
+-0.065918f, 0.499268f, -0.0869141f, 0.545898f, -0.10791f, 0.575928f, -0.145264f,
+0.605957f, -0.182617f, 0.620361f, -0.234375f, 0.634766f, -0.286133f, 0.634766f, -0.347168f,
+0.614258f, -0.480957f, 0.614258f, -0.436035f, 0.599365f, -0.397217f, 0.584473f, -0.358398f,
+0.554932f, -0.329834f, 0.525391f, -0.30127f, 0.480957f, -0.284668f, 0.436523f, -0.268066f,
+0.377441f, -0.268066f, 0.175293f, -0.268066f, 0.175293f, 0, 0.0820312f, 0, 0.0820312f,
+-0.687988f, 0.371582f, -0.687988f, 0.432617f, -0.687988f, 0.478027f, -0.673096f,
+0.523438f, -0.658203f, 0.553711f, -0.631104f, 0.583984f, -0.604004f, 0.599121f, -0.565674f,
+0.614258f, -0.527344f, 0.614258f, -0.480957f, 0.520508f, -0.47998f, 0.520508f, -0.54541f,
+0.480469f, -0.579346f, 0.44043f, -0.613281f, 0.360352f, -0.613281f, 0.175293f, -0.613281f,
+0.175293f, -0.341797f, 0.364258f, -0.341797f, 0.444824f, -0.341797f, 0.482666f, -0.377441f,
+0.520508f, -0.413086f, 0.520508f, -0.47998f, 0.72998f, -0.347168f, 0.72998f, -0.274414f,
+0.711182f, -0.214111f, 0.692383f, -0.153809f, 0.656982f, -0.108398f, 0.621582f, -0.0629883f,
+0.570068f, -0.0344238f, 0.518555f, -0.00585938f, 0.453125f, 0.00292969f, 0.463379f,
+0.0341797f, 0.476318f, 0.0561523f, 0.489258f, 0.078125f, 0.505859f, 0.092041f, 0.522461f,
+0.105957f, 0.542725f, 0.112549f, 0.562988f, 0.119141f, 0.587891f, 0.119141f, 0.601562f,
+0.119141f, 0.617188f, 0.117188f, 0.632812f, 0.115234f, 0.644043f, 0.112793f, 0.644043f,
+0.178223f, 0.625488f, 0.182617f, 0.603271f, 0.185791f, 0.581055f, 0.188965f, 0.557129f,
+0.188965f, 0.515137f, 0.188965f, 0.483887f, 0.176514f, 0.452637f, 0.164062f, 0.428955f,
+0.140869f, 0.405273f, 0.117676f, 0.388184f, 0.0839844f, 0.371094f, 0.050293f, 0.35791f,
+0.0078125f, 0.280762f, 0.00390625f, 0.222412f, -0.0241699f, 0.164062f, -0.0522461f,
+0.125244f, -0.0993652f, 0.0864258f, -0.146484f, 0.0668945f, -0.209717f, 0.0473633f,
+-0.272949f, 0.0473633f, -0.347168f, 0.0473633f, -0.427734f, 0.0698242f, -0.492676f,
+0.0922852f, -0.557617f, 0.135742f, -0.603271f, 0.179199f, -0.648926f, 0.24292f, -0.673584f,
+0.306641f, -0.698242f, 0.38916f, -0.698242f, 0.471191f, -0.698242f, 0.534912f, -0.67334f,
+0.598633f, -0.648438f, 0.641846f, -0.602539f, 0.685059f, -0.556641f, 0.70752f, -0.491699f,
+0.72998f, -0.426758f, 0.72998f, -0.347168f, 0.634766f, -0.347168f, 0.634766f, -0.40918f,
+0.618896f, -0.459961f, 0.603027f, -0.510742f, 0.572021f, -0.546875f, 0.541016f, -0.583008f,
+0.495117f, -0.602539f, 0.449219f, -0.62207f, 0.38916f, -0.62207f, 0.327637f, -0.62207f,
+0.28125f, -0.602539f, 0.234863f, -0.583008f, 0.203857f, -0.546875f, 0.172852f, -0.510742f,
+0.157471f, -0.459961f, 0.14209f, -0.40918f, 0.14209f, -0.347168f, 0.14209f, -0.285156f,
+0.157959f, -0.233643f, 0.173828f, -0.182129f, 0.204834f, -0.144775f, 0.23584f, -0.107422f,
+0.281982f, -0.0866699f, 0.328125f, -0.065918f, 0.388184f, -0.065918f, 0.452637f,
+-0.065918f, 0.499268f, -0.0869141f, 0.545898f, -0.10791f, 0.575928f, -0.145264f,
+0.605957f, -0.182617f, 0.620361f, -0.234375f, 0.634766f, -0.286133f, 0.634766f, -0.347168f,
+0.568359f, 0, 0.389648f, -0.285645f, 0.175293f, -0.285645f, 0.175293f, 0, 0.0820312f,
+0, 0.0820312f, -0.687988f, 0.405762f, -0.687988f, 0.464355f, -0.687988f, 0.509521f,
+-0.674561f, 0.554688f, -0.661133f, 0.585449f, -0.635742f, 0.616211f, -0.610352f,
+0.632324f, -0.57373f, 0.648438f, -0.537109f, 0.648438f, -0.491211f, 0.648438f, -0.458496f,
+0.638916f, -0.426758f, 0.629395f, -0.39502f, 0.608887f, -0.368652f, 0.588379f, -0.342285f,
+0.556641f, -0.323242f, 0.524902f, -0.304199f, 0.480469f, -0.296387f, 0.675781f, 0,
+0.554688f, -0.490234f, 0.554688f, -0.521484f, 0.543945f, -0.544434f, 0.533203f, -0.567383f,
+0.512695f, -0.582764f, 0.492188f, -0.598145f, 0.462891f, -0.605713f, 0.433594f, -0.613281f,
+0.396484f, -0.613281f, 0.175293f, -0.613281f, 0.175293f, -0.359375f, 0.400391f, -0.359375f,
+0.44043f, -0.359375f, 0.469727f, -0.369385f, 0.499023f, -0.379395f, 0.517822f, -0.396973f,
+0.536621f, -0.414551f, 0.545654f, -0.438477f, 0.554688f, -0.462402f, 0.554688f, -0.490234f,
+0.621094f, -0.189941f, 0.621094f, -0.146484f, 0.604248f, -0.109863f, 0.587402f, -0.0732422f,
+0.552246f, -0.0466309f, 0.51709f, -0.0200195f, 0.463623f, -0.00512695f, 0.410156f,
+0.00976562f, 0.336914f, 0.00976562f, 0.208496f, 0.00976562f, 0.136719f, -0.0351562f,
+0.0649414f, -0.0800781f, 0.0454102f, -0.165039f, 0.135742f, -0.183105f, 0.142578f,
+-0.15625f, 0.156738f, -0.134277f, 0.170898f, -0.112305f, 0.195068f, -0.0964355f,
+0.219238f, -0.0805664f, 0.254883f, -0.0717773f, 0.290527f, -0.0629883f, 0.340332f,
+-0.0629883f, 0.381836f, -0.0629883f, 0.416504f, -0.0700684f, 0.451172f, -0.0771484f,
+0.476074f, -0.0917969f, 0.500977f, -0.106445f, 0.514893f, -0.129639f, 0.528809f,
+-0.152832f, 0.528809f, -0.185059f, 0.528809f, -0.21875f, 0.513428f, -0.239746f, 0.498047f,
+-0.260742f, 0.470215f, -0.274414f, 0.442383f, -0.288086f, 0.403809f, -0.297363f,
+0.365234f, -0.306641f, 0.318359f, -0.317383f, 0.289551f, -0.32373f, 0.260498f, -0.331299f,
+0.231445f, -0.338867f, 0.204834f, -0.349365f, 0.178223f, -0.359863f, 0.154785f, -0.374023f,
+0.131348f, -0.388184f, 0.114258f, -0.407959f, 0.097168f, -0.427734f, 0.0874023f,
+-0.453857f, 0.0776367f, -0.47998f, 0.0776367f, -0.51416f, 0.0776367f, -0.562988f,
+0.0974121f, -0.5979f, 0.117188f, -0.632812f, 0.152344f, -0.655273f, 0.1875f, -0.677734f,
+0.235352f, -0.687988f, 0.283203f, -0.698242f, 0.338867f, -0.698242f, 0.402832f, -0.698242f,
+0.448242f, -0.688232f, 0.493652f, -0.678223f, 0.524902f, -0.658203f, 0.556152f, -0.638184f,
+0.574951f, -0.608643f, 0.59375f, -0.579102f, 0.60498f, -0.540039f, 0.513184f, -0.523926f,
+0.506348f, -0.548828f, 0.493408f, -0.568359f, 0.480469f, -0.587891f, 0.459473f, -0.601074f,
+0.438477f, -0.614258f, 0.408447f, -0.621094f, 0.378418f, -0.62793f, 0.337891f, -0.62793f,
+0.290039f, -0.62793f, 0.257568f, -0.619385f, 0.225098f, -0.61084f, 0.205322f, -0.596191f,
+0.185547f, -0.581543f, 0.177002f, -0.561768f, 0.168457f, -0.541992f, 0.168457f, -0.519043f,
+0.168457f, -0.488281f, 0.183838f, -0.468506f, 0.199219f, -0.44873f, 0.225586f, -0.435547f,
+0.251953f, -0.422363f, 0.286621f, -0.413574f, 0.321289f, -0.404785f, 0.360352f, -0.395996f,
+0.39209f, -0.388672f, 0.423584f, -0.381104f, 0.455078f, -0.373535f, 0.483887f, -0.363037f,
+0.512695f, -0.352539f, 0.537842f, -0.338379f, 0.562988f, -0.324219f, 0.581543f, -0.303711f,
+0.600098f, -0.283203f, 0.610596f, -0.255371f, 0.621094f, -0.227539f, 0.621094f, -0.189941f,
+0.351562f, -0.611816f, 0.351562f, 0, 0.258789f, 0, 0.258789f, -0.611816f, 0.0224609f,
+-0.611816f, 0.0224609f, -0.687988f, 0.587891f, -0.687988f, 0.587891f, -0.611816f,
+0.356934f, 0.00976562f, 0.300293f, 0.00976562f, 0.249512f, -0.00537109f, 0.19873f,
+-0.0205078f, 0.1604f, -0.0524902f, 0.12207f, -0.0844727f, 0.0996094f, -0.133545f,
+0.0771484f, -0.182617f, 0.0771484f, -0.25f, 0.0771484f, -0.687988f, 0.17041f, -0.687988f,
+0.17041f, -0.257812f, 0.17041f, -0.205566f, 0.184326f, -0.169189f, 0.198242f, -0.132812f,
+0.223145f, -0.109863f, 0.248047f, -0.0869141f, 0.281982f, -0.076416f, 0.315918f,
+-0.065918f, 0.356445f, -0.065918f, 0.396484f, -0.065918f, 0.432129f, -0.0766602f,
+0.467773f, -0.0874023f, 0.494629f, -0.11084f, 0.521484f, -0.134277f, 0.536865f, -0.172119f,
+0.552246f, -0.209961f, 0.552246f, -0.26416f, 0.552246f, -0.687988f, 0.64502f, -0.687988f,
+0.64502f, -0.258789f, 0.64502f, -0.189941f, 0.622314f, -0.139404f, 0.599609f, -0.0888672f,
+0.560547f, -0.0556641f, 0.521484f, -0.0224609f, 0.468994f, -0.00634766f, 0.416504f,
+0.00976562f, 0.356934f, 0.00976562f, 0.381836f, 0, 0.285156f, 0, 0.00439453f, -0.687988f,
+0.102539f, -0.687988f, 0.292969f, -0.203613f, 0.300293f, -0.181641f, 0.307617f, -0.159912f,
+0.314941f, -0.138184f, 0.320801f, -0.121094f, 0.327637f, -0.101074f, 0.333984f, -0.0820312f,
+0.339844f, -0.100098f, 0.34668f, -0.120117f, 0.352539f, -0.137207f, 0.359619f, -0.158691f,
+0.366699f, -0.180176f, 0.375f, -0.203613f, 0.564453f, -0.687988f, 0.662598f, -0.687988f,
+0.737793f, 0, 0.626465f, 0, 0.507324f, -0.437012f, 0.501953f, -0.455566f, 0.49585f,
+-0.480957f, 0.489746f, -0.506348f, 0.484863f, -0.529297f, 0.479004f, -0.556152f,
+0.473145f, -0.583984f, 0.466797f, -0.555664f, 0.460938f, -0.528809f, 0.455566f, -0.505371f,
+0.449707f, -0.480469f, 0.443848f, -0.455566f, 0.438477f, -0.437012f, 0.318359f, 0,
+0.207031f, 0, 0.00439453f, -0.687988f, 0.101562f, -0.687988f, 0.225098f, -0.250977f,
+0.233398f, -0.220215f, 0.240967f, -0.189941f, 0.248535f, -0.159668f, 0.253906f, -0.135742f,
+0.260254f, -0.107422f, 0.265625f, -0.0820312f, 0.272949f, -0.115723f, 0.280762f,
+-0.148438f, 0.28418f, -0.162109f, 0.287598f, -0.177246f, 0.291016f, -0.192383f, 0.294678f,
+-0.207031f, 0.29834f, -0.22168f, 0.302002f, -0.235107f, 0.305664f, -0.248535f, 0.308594f,
+-0.259766f, 0.428223f, -0.687988f, 0.517578f, -0.687988f, 0.637207f, -0.259766f,
+0.640137f, -0.248535f, 0.643799f, -0.235107f, 0.647461f, -0.22168f, 0.651123f, -0.207275f,
+0.654785f, -0.192871f, 0.658203f, -0.177734f, 0.661621f, -0.162598f, 0.665039f, -0.148926f,
+0.672852f, -0.116211f, 0.680176f, -0.0820312f, 0.680664f, -0.0820312f, 0.68457f,
+-0.098877f, 0.688477f, -0.115723f, 0.694336f, -0.141113f, 0.700195f, -0.166504f,
+0.707275f, -0.196045f, 0.714355f, -0.225586f, 0.72168f, -0.250977f, 0.843262f, -0.687988f,
+0.94043f, -0.687988f, 0.542969f, 0, 0.336426f, -0.300781f, 0.125488f, 0, 0.0224609f,
+0, 0.28418f, -0.357422f, 0.0424805f, -0.687988f, 0.145508f, -0.687988f, 0.336914f,
+-0.417969f, 0.522949f, -0.687988f, 0.625977f, -0.687988f, 0.390625f, -0.36084f, 0.645996f,
+0, 0.379395f, -0.285156f, 0.379395f, 0, 0.286621f, 0, 0.286621f, -0.285156f, 0.0219727f,
+-0.687988f, 0.124512f, -0.687988f, 0.333984f, -0.360352f, 0.54248f, -0.687988f, 0.64502f,
+-0.687988f, 0.57959f, 0, 0.0317383f, 0, 0.0317383f, -0.0698242f, 0.450684f, -0.611816f,
+0.0673828f, -0.611816f, 0.0673828f, -0.687988f, 0.556641f, -0.687988f, 0.556641f,
+-0.620117f, 0.137695f, -0.0761719f, 0.57959f, -0.0761719f, 0.0712891f, 0.20752f,
+0.0712891f, -0.724609f, 0.27002f, -0.724609f, 0.27002f, -0.661621f, 0.15625f, -0.661621f,
+0.15625f, 0.144531f, 0.27002f, 0.144531f, 0.27002f, 0.20752f, 0.19873f, 0.00976562f,
+0, -0.724609f, 0.0771484f, -0.724609f, 0.277832f, 0.00976562f, 0.0078125f, 0.20752f,
+0.0078125f, 0.144531f, 0.121582f, 0.144531f, 0.121582f, -0.661621f, 0.0078125f, -0.661621f,
+0.0078125f, -0.724609f, 0.206543f, -0.724609f, 0.206543f, 0.20752f, 0.384277f, -0.328613f,
+0.233398f, -0.637695f, 0.0839844f, -0.328613f, 0.00488281f, -0.328613f, 0.18457f,
+-0.687988f, 0.283691f, -0.687988f, 0.464355f, -0.328613f, -0.0151367f, 0.19873f,
+-0.0151367f, 0.135254f, 0.567383f, 0.135254f, 0.567383f, 0.19873f, 0.212891f, -0.586426f,
+0.0517578f, -0.722168f, 0.0517578f, -0.736328f, 0.152832f, -0.736328f, 0.258789f,
+-0.596191f, 0.258789f, -0.586426f, 0.202148f, 0.00976562f, 0.122559f, 0.00976562f,
+0.0825195f, -0.0322266f, 0.0424805f, -0.0742188f, 0.0424805f, -0.147461f, 0.0424805f,
+-0.199707f, 0.0622559f, -0.233154f, 0.0820312f, -0.266602f, 0.114014f, -0.285645f,
+0.145996f, -0.304688f, 0.187012f, -0.312012f, 0.228027f, -0.319336f, 0.270508f, -0.320312f,
+0.38916f, -0.322266f, 0.38916f, -0.351074f, 0.38916f, -0.383789f, 0.382324f, -0.406738f,
+0.375488f, -0.429688f, 0.361328f, -0.443848f, 0.347168f, -0.458008f, 0.325928f, -0.4646f,
+0.304688f, -0.471191f, 0.275879f, -0.471191f, 0.250488f, -0.471191f, 0.22998f, -0.467529f,
+0.209473f, -0.463867f, 0.194336f, -0.454346f, 0.179199f, -0.444824f, 0.169922f, -0.428467f,
+0.160645f, -0.412109f, 0.157715f, -0.387207f, 0.065918f, -0.395508f, 0.0708008f,
+-0.426758f, 0.0844727f, -0.452881f, 0.0981445f, -0.479004f, 0.123291f, -0.498047f,
+0.148438f, -0.51709f, 0.186279f, -0.527588f, 0.224121f, -0.538086f, 0.277832f, -0.538086f,
+0.377441f, -0.538086f, 0.427734f, -0.492432f, 0.478027f, -0.446777f, 0.478027f, -0.360352f,
+0.478027f, -0.132812f, 0.478027f, -0.09375f, 0.488281f, -0.0739746f, 0.498535f, -0.0541992f,
+0.527344f, -0.0541992f, 0.534668f, -0.0541992f, 0.541992f, -0.0551758f, 0.549316f,
+-0.0561523f, 0.556152f, -0.0576172f, 0.556152f, -0.00292969f, 0.539551f, 0.000976562f,
+0.523193f, 0.00292969f, 0.506836f, 0.00488281f, 0.488281f, 0.00488281f, 0.463379f,
+0.00488281f, 0.445557f, -0.00170898f, 0.427734f, -0.00830078f, 0.416504f, -0.0217285f,
+0.405273f, -0.0351562f, 0.399414f, -0.0549316f, 0.393555f, -0.074707f, 0.39209f,
+-0.101074f, 0.38916f, -0.101074f, 0.375f, -0.0756836f, 0.358154f, -0.0551758f, 0.341309f,
+-0.034668f, 0.318848f, -0.0202637f, 0.296387f, -0.00585938f, 0.267822f, 0.00195312f,
+0.239258f, 0.00976562f, 0.202148f, 0.00976562f, 0.222168f, -0.0561523f, 0.26416f,
+-0.0561523f, 0.295654f, -0.0715332f, 0.327148f, -0.0869141f, 0.3479f, -0.11084f,
+0.368652f, -0.134766f, 0.378906f, -0.163086f, 0.38916f, -0.191406f, 0.38916f, -0.217285f,
+0.38916f, -0.260742f, 0.292969f, -0.258789f, 0.260742f, -0.258301f, 0.231689f, -0.25415f,
+0.202637f, -0.25f, 0.180664f, -0.237793f, 0.158691f, -0.225586f, 0.145752f, -0.203613f,
+0.132812f, -0.181641f, 0.132812f, -0.145996f, 0.132812f, -0.103027f, 0.156006f, -0.0795898f,
+0.179199f, -0.0561523f, 0.222168f, -0.0561523f, 0.51416f, -0.266602f, 0.51416f, 0.00976562f,
+0.319824f, 0.00976562f, 0.259766f, 0.00976562f, 0.219971f, -0.0119629f, 0.180176f,
+-0.0336914f, 0.155273f, -0.0820312f, 0.154297f, -0.0820312f, 0.154297f, -0.0693359f,
+0.153564f, -0.0556641f, 0.152832f, -0.0419922f, 0.1521f, -0.0302734f, 0.151367f,
+-0.0185547f, 0.150635f, -0.0102539f, 0.149902f, -0.00195312f, 0.149414f, 0, 0.0644531f,
+0, 0.0649414f, -0.00439453f, 0.0654297f, -0.0148926f, 0.065918f, -0.0253906f, 0.0664062f,
+-0.0400391f, 0.0668945f, -0.0546875f, 0.0671387f, -0.0722656f, 0.0673828f, -0.0898438f,
+0.0673828f, -0.108887f, 0.0673828f, -0.724609f, 0.155273f, -0.724609f, 0.155273f,
+-0.518066f, 0.155273f, -0.503418f, 0.155029f, -0.48999f, 0.154785f, -0.476562f, 0.154297f,
+-0.466309f, 0.153809f, -0.454102f, 0.15332f, -0.443359f, 0.155273f, -0.443359f, 0.179688f,
+-0.494141f, 0.219971f, -0.516113f, 0.260254f, -0.538086f, 0.319824f, -0.538086f,
+0.419922f, -0.538086f, 0.467041f, -0.470703f, 0.51416f, -0.40332f, 0.51416f, -0.266602f,
+0.421875f, -0.263672f, 0.421875f, -0.318359f, 0.415039f, -0.357422f, 0.408203f, -0.396484f,
+0.393066f, -0.421631f, 0.37793f, -0.446777f, 0.354492f, -0.458496f, 0.331055f, -0.470215f,
+0.297363f, -0.470215f, 0.262695f, -0.470215f, 0.236084f, -0.458984f, 0.209473f, -0.447754f,
+0.19165f, -0.422852f, 0.173828f, -0.397949f, 0.164551f, -0.357422f, 0.155273f, -0.316895f,
+0.155273f, -0.258301f, 0.155273f, -0.20166f, 0.164551f, -0.163086f, 0.173828f, -0.124512f,
+0.19165f, -0.100342f, 0.209473f, -0.0761719f, 0.23584f, -0.0656738f, 0.262207f, -0.0551758f,
+0.296387f, -0.0551758f, 0.328613f, -0.0551758f, 0.352051f, -0.0664062f, 0.375488f,
+-0.0776367f, 0.391113f, -0.102539f, 0.406738f, -0.127441f, 0.414307f, -0.167236f,
+0.421875f, -0.207031f, 0.421875f, -0.263672f, 0.134277f, -0.266602f, 0.134277f, -0.221191f,
+0.140869f, -0.183105f, 0.147461f, -0.14502f, 0.163086f, -0.117432f, 0.178711f, -0.0898438f,
+0.204346f, -0.074707f, 0.22998f, -0.0595703f, 0.267578f, -0.0595703f, 0.314453f,
+-0.0595703f, 0.345947f, -0.0849609f, 0.377441f, -0.110352f, 0.384766f, -0.163086f,
+0.473633f, -0.157227f, 0.469238f, -0.124512f, 0.45459f, -0.0942383f, 0.439941f, -0.0639648f,
+0.414795f, -0.0410156f, 0.389648f, -0.0180664f, 0.353516f, -0.00415039f, 0.317383f,
+0.00976562f, 0.27002f, 0.00976562f, 0.208008f, 0.00976562f, 0.164551f, -0.0112305f,
+0.121094f, -0.0322266f, 0.0939941f, -0.0690918f, 0.0668945f, -0.105957f, 0.0546875f,
+-0.156006f, 0.0424805f, -0.206055f, 0.0424805f, -0.264648f, 0.0424805f, -0.317871f,
+0.0512695f, -0.358643f, 0.0600586f, -0.399414f, 0.0759277f, -0.429932f, 0.0917969f,
+-0.460449f, 0.113281f, -0.481201f, 0.134766f, -0.501953f, 0.159912f, -0.514404f,
+0.185059f, -0.526855f, 0.212891f, -0.532471f, 0.240723f, -0.538086f, 0.269043f, -0.538086f,
+0.313477f, -0.538086f, 0.348145f, -0.525879f, 0.382812f, -0.513672f, 0.407959f, -0.492432f,
+0.433105f, -0.471191f, 0.44873f, -0.442383f, 0.464355f, -0.413574f, 0.470703f, -0.380371f,
+0.380371f, -0.373535f, 0.373535f, -0.41748f, 0.345703f, -0.443359f, 0.317871f, -0.469238f,
+0.266602f, -0.469238f, 0.229004f, -0.469238f, 0.203857f, -0.456787f, 0.178711f, -0.444336f,
+0.163086f, -0.419189f, 0.147461f, -0.394043f, 0.140869f, -0.355957f, 0.134277f, -0.317871f,
+0.134277f, -0.266602f, 0.400879f, -0.0849609f, 0.376465f, -0.0341797f, 0.336182f,
+-0.012207f, 0.295898f, 0.00976562f, 0.236328f, 0.00976562f, 0.13623f, 0.00976562f,
+0.0891113f, -0.0576172f, 0.0419922f, -0.125f, 0.0419922f, -0.261719f, 0.0419922f,
+-0.538086f, 0.236328f, -0.538086f, 0.296387f, -0.538086f, 0.336426f, -0.516113f,
+0.376465f, -0.494141f, 0.400879f, -0.446289f, 0.401855f, -0.446289f, 0.401855f, -0.451172f,
+0.401611f, -0.46167f, 0.401367f, -0.472168f, 0.401123f, -0.483643f, 0.400879f, -0.495117f,
+0.400879f, -0.505371f, 0.400879f, -0.515625f, 0.400879f, -0.52002f, 0.400879f, -0.724609f,
+0.48877f, -0.724609f, 0.48877f, -0.108887f, 0.48877f, -0.0898438f, 0.489014f, -0.0722656f,
+0.489258f, -0.0546875f, 0.489746f, -0.0400391f, 0.490234f, -0.0253906f, 0.490723f,
+-0.0148926f, 0.491211f, -0.00439453f, 0.491699f, 0, 0.407715f, 0, 0.406738f, -0.00488281f,
+0.406006f, -0.013916f, 0.405273f, -0.0229492f, 0.404541f, -0.034668f, 0.403809f,
+-0.0463867f, 0.40332f, -0.0593262f, 0.402832f, -0.0722656f, 0.402832f, -0.0849609f,
+0.134277f, -0.264648f, 0.134277f, -0.209961f, 0.141113f, -0.170898f, 0.147949f, -0.131836f,
+0.163086f, -0.106689f, 0.178223f, -0.081543f, 0.20166f, -0.0698242f, 0.225098f, -0.0581055f,
+0.258789f, -0.0581055f, 0.293457f, -0.0581055f, 0.320068f, -0.0693359f, 0.34668f,
+-0.0805664f, 0.364502f, -0.105713f, 0.382324f, -0.130859f, 0.391602f, -0.171387f,
+0.400879f, -0.211914f, 0.400879f, -0.270508f, 0.400879f, -0.32666f, 0.391602f, -0.365479f,
+0.382324f, -0.404297f, 0.364258f, -0.428223f, 0.346191f, -0.452148f, 0.320068f, -0.462646f,
+0.293945f, -0.473145f, 0.259766f, -0.473145f, 0.227539f, -0.473145f, 0.204102f, -0.461914f,
+0.180664f, -0.450684f, 0.165039f, -0.425781f, 0.149414f, -0.400879f, 0.141846f, -0.361084f,
+0.134277f, -0.321289f, 0.134277f, -0.264648f, 0.134766f, -0.245605f, 0.134766f, -0.204102f,
+0.143311f, -0.169189f, 0.151855f, -0.134277f, 0.169678f, -0.109131f, 0.1875f, -0.0839844f,
+0.215332f, -0.0700684f, 0.243164f, -0.0561523f, 0.282227f, -0.0561523f, 0.339355f,
+-0.0561523f, 0.373779f, -0.0791016f, 0.408203f, -0.102051f, 0.42041f, -0.137207f,
+0.497559f, -0.115234f, 0.489258f, -0.0932617f, 0.474365f, -0.0710449f, 0.459473f,
+-0.0488281f, 0.43457f, -0.0310059f, 0.409668f, -0.0131836f, 0.372314f, -0.00170898f,
+0.334961f, 0.00976562f, 0.282227f, 0.00976562f, 0.165039f, 0.00976562f, 0.10376f,
+-0.0600586f, 0.0424805f, -0.129883f, 0.0424805f, -0.267578f, 0.0424805f, -0.341797f,
+0.0610352f, -0.393311f, 0.0795898f, -0.444824f, 0.111816f, -0.477051f, 0.144043f,
+-0.509277f, 0.187012f, -0.523682f, 0.22998f, -0.538086f, 0.278809f, -0.538086f, 0.345215f,
+-0.538086f, 0.389893f, -0.516602f, 0.43457f, -0.495117f, 0.46167f, -0.457275f, 0.48877f,
+-0.419434f, 0.500244f, -0.368164f, 0.511719f, -0.316895f, 0.511719f, -0.257324f,
+0.511719f, -0.245605f, 0.420898f, -0.312988f, 0.413574f, -0.396484f, 0.378418f, -0.434814f,
+0.343262f, -0.473145f, 0.277344f, -0.473145f, 0.255371f, -0.473145f, 0.231201f, -0.466064f,
+0.207031f, -0.458984f, 0.186523f, -0.440918f, 0.166016f, -0.422852f, 0.151855f, -0.391846f,
+0.137695f, -0.36084f, 0.135742f, -0.312988f, 0.17627f, -0.464355f, 0.17627f, 0, 0.0883789f,
+0, 0.0883789f, -0.464355f, 0.0141602f, -0.464355f, 0.0141602f, -0.52832f, 0.0883789f,
+-0.52832f, 0.0883789f, -0.587891f, 0.0883789f, -0.616699f, 0.09375f, -0.641357f,
+0.0991211f, -0.666016f, 0.113525f, -0.684326f, 0.12793f, -0.702637f, 0.152832f, -0.713135f,
+0.177734f, -0.723633f, 0.217285f, -0.723633f, 0.23291f, -0.723633f, 0.249756f, -0.722168f,
+0.266602f, -0.720703f, 0.279297f, -0.717773f, 0.279297f, -0.650879f, 0.270996f, -0.652344f,
+0.26001f, -0.653564f, 0.249023f, -0.654785f, 0.240234f, -0.654785f, 0.220703f, -0.654785f,
+0.208252f, -0.649414f, 0.195801f, -0.644043f, 0.188721f, -0.634033f, 0.181641f, -0.624023f,
+0.178955f, -0.609375f, 0.17627f, -0.594727f, 0.17627f, -0.575684f, 0.17627f, -0.52832f,
+0.279297f, -0.52832f, 0.279297f, -0.464355f, 0.267578f, 0.20752f, 0.222168f, 0.20752f,
+0.187012f, 0.198242f, 0.151855f, 0.188965f, 0.126953f, 0.171631f, 0.102051f, 0.154297f,
+0.0864258f, 0.130371f, 0.0708008f, 0.106445f, 0.0639648f, 0.0771484f, 0.152344f,
+0.0644531f, 0.161133f, 0.101074f, 0.191162f, 0.12085f, 0.221191f, 0.140625f, 0.27002f,
+0.140625f, 0.299805f, 0.140625f, 0.324219f, 0.132324f, 0.348633f, 0.124023f, 0.365723f,
+0.105713f, 0.382812f, 0.0874023f, 0.39209f, 0.0581055f, 0.401367f, 0.0288086f, 0.401367f,
+-0.0131836f, 0.401367f, -0.0981445f, 0.400391f, -0.0981445f, 0.390625f, -0.078125f,
+0.376221f, -0.0598145f, 0.361816f, -0.0415039f, 0.341064f, -0.0273438f, 0.320312f,
+-0.0131836f, 0.292969f, -0.00463867f, 0.265625f, 0.00390625f, 0.230469f, 0.00390625f,
+0.180176f, 0.00390625f, 0.144287f, -0.0129395f, 0.108398f, -0.0297852f, 0.0856934f,
+-0.0634766f, 0.0629883f, -0.097168f, 0.0524902f, -0.147217f, 0.0419922f, -0.197266f,
+0.0419922f, -0.263184f, 0.0419922f, -0.32666f, 0.0524902f, -0.377441f, 0.0629883f,
+-0.428223f, 0.0866699f, -0.463623f, 0.110352f, -0.499023f, 0.148193f, -0.517822f,
+0.186035f, -0.536621f, 0.240234f, -0.536621f, 0.296387f, -0.536621f, 0.337646f, -0.510986f,
+0.378906f, -0.485352f, 0.401367f, -0.437988f, 0.402344f, -0.437988f, 0.402344f, -0.450195f,
+0.403076f, -0.465332f, 0.403809f, -0.480469f, 0.404541f, -0.493896f, 0.405273f, -0.507324f,
+0.40625f, -0.51709f, 0.407227f, -0.526855f, 0.408203f, -0.52832f, 0.491699f, -0.52832f,
+0.491211f, -0.523926f, 0.490723f, -0.513428f, 0.490234f, -0.50293f, 0.489746f, -0.488281f,
+0.489258f, -0.473633f, 0.489014f, -0.455811f, 0.48877f, -0.437988f, 0.48877f, -0.418945f,
+0.48877f, -0.0151367f, 0.48877f, 0.0957031f, 0.434326f, 0.151611f, 0.379883f, 0.20752f,
+0.267578f, 0.20752f, 0.401367f, -0.26416f, 0.401367f, -0.319336f, 0.389404f, -0.358643f,
+0.377441f, -0.397949f, 0.35791f, -0.422852f, 0.338379f, -0.447754f, 0.313232f, -0.459473f,
+0.288086f, -0.471191f, 0.261719f, -0.471191f, 0.228027f, -0.471191f, 0.203857f, -0.459473f,
+0.179688f, -0.447754f, 0.163818f, -0.422607f, 0.147949f, -0.397461f, 0.140381f, -0.358154f,
+0.132812f, -0.318848f, 0.132812f, -0.26416f, 0.132812f, -0.207031f, 0.140381f, -0.168213f,
+0.147949f, -0.129395f, 0.163574f, -0.105469f, 0.179199f, -0.081543f, 0.203125f, -0.0712891f,
+0.227051f, -0.0610352f, 0.260254f, -0.0610352f, 0.286621f, -0.0610352f, 0.311768f,
+-0.0722656f, 0.336914f, -0.0834961f, 0.356934f, -0.10791f, 0.376953f, -0.132324f,
+0.38916f, -0.170898f, 0.401367f, -0.209473f, 0.401367f, -0.26416f, 0.154785f, -0.437988f,
+0.169434f, -0.464844f, 0.186523f, -0.483643f, 0.203613f, -0.502441f, 0.224121f, -0.514648f,
+0.244629f, -0.526855f, 0.269043f, -0.532471f, 0.293457f, -0.538086f, 0.32373f, -0.538086f,
+0.374512f, -0.538086f, 0.406982f, -0.524414f, 0.439453f, -0.510742f, 0.458252f, -0.486084f,
+0.477051f, -0.461426f, 0.484131f, -0.427246f, 0.491211f, -0.393066f, 0.491211f, -0.352051f,
+0.491211f, 0, 0.402832f, 0, 0.402832f, -0.334961f, 0.402832f, -0.368652f, 0.398682f,
+-0.394043f, 0.394531f, -0.419434f, 0.382812f, -0.436279f, 0.371094f, -0.453125f,
+0.349609f, -0.46167f, 0.328125f, -0.470215f, 0.293945f, -0.470215f, 0.262695f, -0.470215f,
+0.237549f, -0.458984f, 0.212402f, -0.447754f, 0.19458f, -0.427246f, 0.176758f, -0.406738f,
+0.166992f, -0.377441f, 0.157227f, -0.348145f, 0.157227f, -0.311523f, 0.157227f, 0,
+0.0693359f, 0, 0.0693359f, -0.724609f, 0.157227f, -0.724609f, 0.157227f, -0.536133f,
+0.157227f, -0.52002f, 0.156738f, -0.503906f, 0.15625f, -0.487793f, 0.155518f, -0.474121f,
+0.154785f, -0.460449f, 0.154297f, -0.450928f, 0.153809f, -0.441406f, 0.15332f, -0.437988f,
+0.0668945f, -0.640625f, 0.0668945f, -0.724609f, 0.154785f, -0.724609f, 0.154785f,
+-0.640625f, 0.0668945f, 0, 0.0668945f, -0.52832f, 0.154785f, -0.52832f, 0.154785f,
+0, 0.0668945f, -0.640625f, 0.0668945f, -0.724609f, 0.154785f, -0.724609f, 0.154785f,
+-0.640625f, 0.154785f, 0.0654297f, 0.154785f, 0.0957031f, 0.149658f, 0.121582f, 0.144531f,
+0.147461f, 0.131348f, 0.166504f, 0.118164f, 0.185547f, 0.095459f, 0.196533f, 0.0727539f,
+0.20752f, 0.0375977f, 0.20752f, 0.0209961f, 0.20752f, 0.00512695f, 0.206543f, -0.0107422f,
+0.205566f, -0.0244141f, 0.203125f, -0.0244141f, 0.135254f, -0.0180664f, 0.13623f,
+-0.00927734f, 0.137207f, -0.000488281f, 0.138184f, 0.00585938f, 0.138184f, 0.0244141f,
+0.138184f, 0.036377f, 0.133301f, 0.0483398f, 0.128418f, 0.0551758f, 0.11792f, 0.0620117f,
+0.107422f, 0.0644531f, 0.0910645f, 0.0668945f, 0.074707f, 0.0668945f, 0.0522461f,
+0.0668945f, -0.52832f, 0.154785f, -0.52832f, 0.398438f, 0, 0.219727f, -0.241211f,
+0.155273f, -0.187988f, 0.155273f, 0, 0.0673828f, 0, 0.0673828f, -0.724609f, 0.155273f,
+-0.724609f, 0.155273f, -0.271973f, 0.387207f, -0.52832f, 0.490234f, -0.52832f, 0.275879f,
+-0.30127f, 0.501465f, 0, 0.0673828f, 0, 0.0673828f, -0.724609f, 0.155273f, -0.724609f,
+0.155273f, 0, 0.375f, 0, 0.375f, -0.334961f, 0.375f, -0.373535f, 0.370117f, -0.399414f,
+0.365234f, -0.425293f, 0.35376f, -0.441162f, 0.342285f, -0.457031f, 0.32373f, -0.463623f,
+0.305176f, -0.470215f, 0.27832f, -0.470215f, 0.250488f, -0.470215f, 0.228027f, -0.459229f,
+0.205566f, -0.448242f, 0.189697f, -0.42749f, 0.173828f, -0.406738f, 0.165283f, -0.376221f,
+0.156738f, -0.345703f, 0.156738f, -0.306152f, 0.156738f, 0, 0.0693359f, 0, 0.0693359f,
+-0.415527f, 0.0693359f, -0.432129f, 0.0690918f, -0.450439f, 0.0688477f, -0.46875f,
+0.0683594f, -0.485107f, 0.0678711f, -0.501465f, 0.0673828f, -0.513184f, 0.0668945f,
+-0.524902f, 0.0664062f, -0.52832f, 0.149414f, -0.52832f, 0.149902f, -0.525879f, 0.150391f,
+-0.515137f, 0.150879f, -0.504395f, 0.151611f, -0.490479f, 0.152344f, -0.476562f,
+0.152832f, -0.462158f, 0.15332f, -0.447754f, 0.15332f, -0.437988f, 0.154785f, -0.437988f,
+0.166504f, -0.460938f, 0.180176f, -0.479492f, 0.193848f, -0.498047f, 0.212158f, -0.510986f,
+0.230469f, -0.523926f, 0.25415f, -0.531006f, 0.277832f, -0.538086f, 0.309082f, -0.538086f,
+0.369141f, -0.538086f, 0.404053f, -0.51416f, 0.438965f, -0.490234f, 0.452637f, -0.437988f,
+0.454102f, -0.437988f, 0.46582f, -0.460938f, 0.480469f, -0.479492f, 0.495117f, -0.498047f,
+0.514648f, -0.510986f, 0.53418f, -0.523926f, 0.558594f, -0.531006f, 0.583008f, -0.538086f,
+0.614258f, -0.538086f, 0.654297f, -0.538086f, 0.68335f, -0.527344f, 0.712402f, -0.516602f,
+0.730957f, -0.494141f, 0.749512f, -0.47168f, 0.758301f, -0.436279f, 0.76709f, -0.400879f,
+0.76709f, -0.352051f, 0.76709f, 0, 0.680176f, 0, 0.680176f, -0.334961f, 0.680176f,
+-0.373535f, 0.675293f, -0.399414f, 0.67041f, -0.425293f, 0.658936f, -0.441162f, 0.647461f,
+-0.457031f, 0.628906f, -0.463623f, 0.610352f, -0.470215f, 0.583496f, -0.470215f,
+0.555664f, -0.470215f, 0.533203f, -0.459717f, 0.510742f, -0.449219f, 0.494873f, -0.428711f,
+0.479004f, -0.408203f, 0.470459f, -0.377441f, 0.461914f, -0.34668f, 0.461914f, -0.306152f,
+0.461914f, 0, 0.402832f, 0, 0.402832f, -0.334961f, 0.402832f, -0.373535f, 0.397217f,
+-0.399414f, 0.391602f, -0.425293f, 0.378906f, -0.441162f, 0.366211f, -0.457031f,
+0.345459f, -0.463623f, 0.324707f, -0.470215f, 0.293945f, -0.470215f, 0.262695f, -0.470215f,
+0.237549f, -0.459229f, 0.212402f, -0.448242f, 0.19458f, -0.42749f, 0.176758f, -0.406738f,
+0.166992f, -0.376221f, 0.157227f, -0.345703f, 0.157227f, -0.306152f, 0.157227f, 0,
+0.0693359f, 0, 0.0693359f, -0.415527f, 0.0693359f, -0.432129f, 0.0690918f, -0.450439f,
+0.0688477f, -0.46875f, 0.0683594f, -0.485107f, 0.0678711f, -0.501465f, 0.0673828f,
+-0.513184f, 0.0668945f, -0.524902f, 0.0664062f, -0.52832f, 0.149414f, -0.52832f,
+0.149902f, -0.525879f, 0.150391f, -0.515137f, 0.150879f, -0.504395f, 0.151611f, -0.490479f,
+0.152344f, -0.476562f, 0.152832f, -0.462158f, 0.15332f, -0.447754f, 0.15332f, -0.437988f,
+0.154785f, -0.437988f, 0.16748f, -0.460938f, 0.182617f, -0.479492f, 0.197754f, -0.498047f,
+0.217773f, -0.510986f, 0.237793f, -0.523926f, 0.263672f, -0.531006f, 0.289551f, -0.538086f,
+0.32373f, -0.538086f, 0.367676f, -0.538086f, 0.399414f, -0.527344f, 0.431152f, -0.516602f,
+0.45166f, -0.494141f, 0.472168f, -0.47168f, 0.481689f, -0.436279f, 0.491211f, -0.400879f,
+0.491211f, -0.352051f, 0.491211f, 0, 0.51416f, -0.264648f, 0.51416f, -0.125977f,
+0.453125f, -0.0581055f, 0.39209f, 0.00976562f, 0.275879f, 0.00976562f, 0.220703f,
+0.00976562f, 0.177246f, -0.00683594f, 0.133789f, -0.0234375f, 0.10376f, -0.0576172f,
+0.0737305f, -0.0917969f, 0.0578613f, -0.143311f, 0.0419922f, -0.194824f, 0.0419922f,
+-0.264648f, 0.0419922f, -0.538086f, 0.278809f, -0.538086f, 0.340332f, -0.538086f,
+0.38501f, -0.520996f, 0.429688f, -0.503906f, 0.458252f, -0.469727f, 0.486816f, -0.435547f,
+0.500488f, -0.384277f, 0.51416f, -0.333008f, 0.51416f, -0.264648f, 0.421875f, -0.264648f,
+0.421875f, -0.326172f, 0.412354f, -0.366211f, 0.402832f, -0.40625f, 0.384521f, -0.430176f,
+0.366211f, -0.454102f, 0.339844f, -0.463623f, 0.313477f, -0.473145f, 0.280273f, -0.473145f,
+0.246582f, -0.473145f, 0.219482f, -0.463135f, 0.192383f, -0.453125f, 0.17334f, -0.428955f,
+0.154297f, -0.404785f, 0.144287f, -0.364746f, 0.134277f, -0.324707f, 0.134277f, -0.264648f,
+0.134277f, -0.203125f, 0.14502f, -0.162842f, 0.155762f, -0.122559f, 0.174561f, -0.0986328f,
+0.193359f, -0.074707f, 0.218994f, -0.0649414f, 0.244629f, -0.0551758f, 0.274902f,
+-0.0551758f, 0.308594f, -0.0551758f, 0.335938f, -0.0646973f, 0.363281f, -0.0742188f,
+0.382324f, -0.0981445f, 0.401367f, -0.12207f, 0.411621f, -0.162598f, 0.421875f, -0.203125f,
+0.421875f, -0.264648f, 0.51416f, -0.266602f, 0.51416f, -0.206543f, 0.504395f, -0.155762f,
+0.494629f, -0.10498f, 0.471924f, -0.0683594f, 0.449219f, -0.0317383f, 0.411865f,
+-0.0109863f, 0.374512f, 0.00976562f, 0.319824f, 0.00976562f, 0.263184f, 0.00976562f,
+0.220703f, -0.0117188f, 0.178223f, -0.0332031f, 0.155762f, -0.0820312f, 0.15332f,
+-0.0820312f, 0.153809f, -0.0810547f, 0.154053f, -0.0732422f, 0.154297f, -0.0654297f,
+0.154541f, -0.0537109f, 0.154785f, -0.0419922f, 0.155029f, -0.0275879f, 0.155273f,
+-0.0131836f, 0.155273f, 0.000976562f, 0.155273f, 0.20752f, 0.0673828f, 0.20752f,
+0.0673828f, -0.42041f, 0.0673828f, -0.439453f, 0.0671387f, -0.457031f, 0.0668945f,
+-0.474609f, 0.0664062f, -0.489014f, 0.065918f, -0.503418f, 0.0654297f, -0.513672f,
+0.0649414f, -0.523926f, 0.0644531f, -0.52832f, 0.149414f, -0.52832f, 0.149902f, -0.526855f,
+0.150635f, -0.518066f, 0.151367f, -0.509277f, 0.1521f, -0.496826f, 0.152832f, -0.484375f,
+0.153564f, -0.470215f, 0.154297f, -0.456055f, 0.154297f, -0.443359f, 0.15625f, -0.443359f,
+0.168457f, -0.46875f, 0.184082f, -0.486572f, 0.199707f, -0.504395f, 0.219727f, -0.515869f,
+0.239746f, -0.527344f, 0.264404f, -0.532471f, 0.289062f, -0.537598f, 0.319824f, -0.537598f,
+0.374512f, -0.537598f, 0.411865f, -0.518066f, 0.449219f, -0.498535f, 0.471924f, -0.463135f,
+0.494629f, -0.427734f, 0.504395f, -0.377686f, 0.51416f, -0.327637f, 0.51416f, -0.266602f,
+0.421875f, -0.264648f, 0.421875f, -0.313477f, 0.416016f, -0.351562f, 0.410156f, -0.389648f,
+0.395752f, -0.416016f, 0.381348f, -0.442383f, 0.357422f, -0.456055f, 0.333496f, -0.469727f,
+0.297363f, -0.469727f, 0.268066f, -0.469727f, 0.242188f, -0.461426f, 0.216309f, -0.453125f,
+0.197021f, -0.429688f, 0.177734f, -0.40625f, 0.166504f, -0.36499f, 0.155273f, -0.32373f,
+0.155273f, -0.257812f, 0.155273f, -0.20166f, 0.164551f, -0.162842f, 0.173828f, -0.124023f,
+0.19165f, -0.100098f, 0.209473f, -0.0761719f, 0.23584f, -0.0656738f, 0.262207f, -0.0551758f,
+0.296387f, -0.0551758f, 0.333008f, -0.0551758f, 0.357178f, -0.0693359f, 0.381348f,
+-0.0834961f, 0.395752f, -0.110352f, 0.410156f, -0.137207f, 0.416016f, -0.176025f,
+0.421875f, -0.214844f, 0.421875f, -0.264648f, 0.236328f, 0.00976562f, 0.135742f,
+0.00976562f, 0.0888672f, -0.0581055f, 0.0419922f, -0.125977f, 0.0419922f, -0.261719f,
+0.0419922f, -0.399414f, 0.0900879f, -0.46875f, 0.138184f, -0.538086f, 0.236328f,
+-0.538086f, 0.269043f, -0.538086f, 0.294189f, -0.532227f, 0.319336f, -0.526367f,
+0.339111f, -0.514893f, 0.358887f, -0.503418f, 0.373779f, -0.486328f, 0.388672f, -0.469238f,
+0.400879f, -0.446289f, 0.401855f, -0.446289f, 0.401855f, -0.458496f, 0.402588f, -0.473389f,
+0.40332f, -0.488281f, 0.404053f, -0.501465f, 0.404785f, -0.514648f, 0.405762f, -0.52417f,
+0.406738f, -0.533691f, 0.407715f, -0.535156f, 0.492188f, -0.535156f, 0.491211f, -0.526855f,
+0.48999f, -0.491699f, 0.48877f, -0.456543f, 0.48877f, -0.391113f, 0.48877f, 0.20752f,
+0.400879f, 0.20752f, 0.400879f, -0.00683594f, 0.400879f, -0.0195312f, 0.401123f,
+-0.0332031f, 0.401367f, -0.046875f, 0.401855f, -0.059082f, 0.402344f, -0.0727539f,
+0.402832f, -0.0869141f, 0.401855f, -0.0869141f, 0.38916f, -0.0620117f, 0.373779f,
+-0.0437012f, 0.358398f, -0.0253906f, 0.338379f, -0.0134277f, 0.318359f, -0.00146484f,
+0.293213f, 0.00415039f, 0.268066f, 0.00976562f, 0.236328f, 0.00976562f, 0.400879f,
+-0.270508f, 0.400879f, -0.328125f, 0.390869f, -0.367188f, 0.380859f, -0.40625f, 0.362549f,
+-0.429688f, 0.344238f, -0.453125f, 0.318115f, -0.463135f, 0.291992f, -0.473145f,
+0.259766f, -0.473145f, 0.226074f, -0.473145f, 0.202148f, -0.460693f, 0.178223f, -0.448242f,
+0.16333f, -0.422607f, 0.148438f, -0.396973f, 0.141357f, -0.357666f, 0.134277f, -0.318359f,
+0.134277f, -0.264648f, 0.134277f, -0.211914f, 0.140869f, -0.172852f, 0.147461f, -0.133789f,
+0.162354f, -0.108398f, 0.177246f, -0.0830078f, 0.200928f, -0.0705566f, 0.224609f,
+-0.0581055f, 0.258789f, -0.0581055f, 0.288086f, -0.0581055f, 0.313965f, -0.0671387f,
+0.339844f, -0.0761719f, 0.359131f, -0.0998535f, 0.378418f, -0.123535f, 0.389648f,
+-0.164795f, 0.400879f, -0.206055f, 0.400879f, -0.270508f, 0.0693359f, 0, 0.0693359f,
+-0.405273f, 0.0693359f, -0.421875f, 0.0690918f, -0.439209f, 0.0688477f, -0.456543f,
+0.0683594f, -0.472656f, 0.0678711f, -0.48877f, 0.0673828f, -0.50293f, 0.0668945f,
+-0.51709f, 0.0664062f, -0.52832f, 0.149414f, -0.52832f, 0.149902f, -0.51709f, 0.150635f,
+-0.502686f, 0.151367f, -0.488281f, 0.1521f, -0.473145f, 0.152832f, -0.458008f, 0.153076f,
+-0.444092f, 0.15332f, -0.430176f, 0.15332f, -0.42041f, 0.155273f, -0.42041f, 0.164551f,
+-0.450684f, 0.175049f, -0.4729f, 0.185547f, -0.495117f, 0.199707f, -0.509521f, 0.213867f,
+-0.523926f, 0.233398f, -0.531006f, 0.25293f, -0.538086f, 0.280762f, -0.538086f, 0.291504f,
+-0.538086f, 0.30127f, -0.536377f, 0.311035f, -0.534668f, 0.316406f, -0.533203f, 0.316406f,
+-0.452637f, 0.307617f, -0.455078f, 0.295898f, -0.456299f, 0.28418f, -0.45752f, 0.269531f,
+-0.45752f, 0.239258f, -0.45752f, 0.218018f, -0.443848f, 0.196777f, -0.430176f, 0.18335f,
+-0.406006f, 0.169922f, -0.381836f, 0.163574f, -0.348389f, 0.157227f, -0.314941f,
+0.157227f, -0.275391f, 0.157227f, 0, 0.463867f, -0.145996f, 0.463867f, -0.108887f,
+0.449463f, -0.079834f, 0.435059f, -0.0507812f, 0.407715f, -0.0310059f, 0.380371f,
+-0.0112305f, 0.340576f, -0.000732422f, 0.300781f, 0.00976562f, 0.249512f, 0.00976562f,
+0.203613f, 0.00976562f, 0.166748f, 0.00268555f, 0.129883f, -0.00439453f, 0.102051f,
+-0.0200195f, 0.0742188f, -0.0356445f, 0.0554199f, -0.0612793f, 0.0366211f, -0.0869141f,
+0.027832f, -0.124023f, 0.105469f, -0.13916f, 0.116699f, -0.0966797f, 0.151855f, -0.0769043f,
+0.187012f, -0.0571289f, 0.249512f, -0.0571289f, 0.277832f, -0.0571289f, 0.301514f,
+-0.0610352f, 0.325195f, -0.0649414f, 0.342285f, -0.0744629f, 0.359375f, -0.0839844f,
+0.368896f, -0.0998535f, 0.378418f, -0.115723f, 0.378418f, -0.13916f, 0.378418f, -0.163086f,
+0.367188f, -0.178467f, 0.355957f, -0.193848f, 0.335938f, -0.204102f, 0.315918f, -0.214355f,
+0.287354f, -0.221924f, 0.258789f, -0.229492f, 0.224609f, -0.23877f, 0.192871f, -0.24707f,
+0.161621f, -0.257324f, 0.130371f, -0.267578f, 0.105225f, -0.284424f, 0.0800781f,
+-0.30127f, 0.0644531f, -0.326172f, 0.0488281f, -0.351074f, 0.0488281f, -0.388672f,
+0.0488281f, -0.460938f, 0.100342f, -0.498779f, 0.151855f, -0.536621f, 0.250488f,
+-0.536621f, 0.337891f, -0.536621f, 0.389404f, -0.505859f, 0.440918f, -0.475098f,
+0.45459f, -0.407227f, 0.375488f, -0.397461f, 0.371094f, -0.417969f, 0.359375f, -0.431885f,
+0.347656f, -0.445801f, 0.331055f, -0.454346f, 0.314453f, -0.462891f, 0.293701f, -0.466553f,
+0.272949f, -0.470215f, 0.250488f, -0.470215f, 0.190918f, -0.470215f, 0.162598f, -0.452148f,
+0.134277f, -0.434082f, 0.134277f, -0.397461f, 0.134277f, -0.375977f, 0.144775f, -0.362061f,
+0.155273f, -0.348145f, 0.174072f, -0.338623f, 0.192871f, -0.329102f, 0.219238f, -0.322021f,
+0.245605f, -0.314941f, 0.277344f, -0.307129f, 0.29834f, -0.301758f, 0.320312f, -0.295654f,
+0.342285f, -0.289551f, 0.363037f, -0.281006f, 0.383789f, -0.272461f, 0.4021f, -0.260986f,
+0.42041f, -0.249512f, 0.434082f, -0.233398f, 0.447754f, -0.217285f, 0.455811f, -0.195801f,
+0.463867f, -0.174316f, 0.463867f, -0.145996f, 0.270508f, -0.00390625f, 0.250488f,
+0.00146484f, 0.229736f, 0.00463867f, 0.208984f, 0.0078125f, 0.181641f, 0.0078125f,
+0.0761719f, 0.0078125f, 0.0761719f, -0.111816f, 0.0761719f, -0.464355f, 0.0151367f,
+-0.464355f, 0.0151367f, -0.52832f, 0.0795898f, -0.52832f, 0.105469f, -0.646484f,
+0.164062f, -0.646484f, 0.164062f, -0.52832f, 0.261719f, -0.52832f, 0.261719f, -0.464355f,
+0.164062f, -0.464355f, 0.164062f, -0.130859f, 0.164062f, -0.0927734f, 0.176514f,
+-0.0773926f, 0.188965f, -0.0620117f, 0.219727f, -0.0620117f, 0.232422f, -0.0620117f,
+0.244385f, -0.0639648f, 0.256348f, -0.065918f, 0.270508f, -0.0688477f, 0.15332f,
+-0.52832f, 0.15332f, -0.193359f, 0.15332f, -0.154785f, 0.158936f, -0.128906f, 0.164551f,
+-0.103027f, 0.177246f, -0.0871582f, 0.189941f, -0.0712891f, 0.210693f, -0.0646973f,
+0.231445f, -0.0581055f, 0.262207f, -0.0581055f, 0.293457f, -0.0581055f, 0.318604f,
+-0.0690918f, 0.34375f, -0.0800781f, 0.361572f, -0.10083f, 0.379395f, -0.121582f,
+0.38916f, -0.1521f, 0.398926f, -0.182617f, 0.398926f, -0.222168f, 0.398926f, -0.52832f,
+0.486816f, -0.52832f, 0.486816f, -0.112793f, 0.486816f, -0.0961914f, 0.487061f, -0.0778809f,
+0.487305f, -0.0595703f, 0.487793f, -0.0432129f, 0.488281f, -0.0268555f, 0.48877f,
+-0.0151367f, 0.489258f, -0.00341797f, 0.489746f, 0, 0.406738f, 0, 0.40625f, -0.00244141f,
+0.405762f, -0.0131836f, 0.405273f, -0.0239258f, 0.404541f, -0.0378418f, 0.403809f,
+-0.0517578f, 0.40332f, -0.0661621f, 0.402832f, -0.0805664f, 0.402832f, -0.090332f,
+0.401367f, -0.090332f, 0.388672f, -0.0673828f, 0.373535f, -0.0488281f, 0.358398f,
+-0.0302734f, 0.338379f, -0.017334f, 0.318359f, -0.00439453f, 0.29248f, 0.00268555f,
+0.266602f, 0.00976562f, 0.232422f, 0.00976562f, 0.188477f, 0.00976562f, 0.156738f,
+-0.000976562f, 0.125f, -0.0117188f, 0.104492f, -0.0341797f, 0.0839844f, -0.0566406f,
+0.0744629f, -0.0917969f, 0.0649414f, -0.126953f, 0.0649414f, -0.17627f, 0.0649414f,
+-0.52832f, 0.299316f, 0, 0.195312f, 0, 0.00341797f, -0.52832f, 0.097168f, -0.52832f,
+0.213379f, -0.18457f, 0.216797f, -0.173828f, 0.221436f, -0.158447f, 0.226074f, -0.143066f,
+0.230957f, -0.126465f, 0.23584f, -0.109863f, 0.23999f, -0.0944824f, 0.244141f, -0.0791016f,
+0.24707f, -0.0688477f, 0.25f, -0.0791016f, 0.254639f, -0.0944824f, 0.259277f, -0.109863f,
+0.26416f, -0.125977f, 0.269043f, -0.14209f, 0.27417f, -0.157471f, 0.279297f, -0.172852f,
+0.283203f, -0.183594f, 0.40332f, -0.52832f, 0.496582f, -0.52832f, 0.573242f, 0, 0.471191f,
+0, 0.386719f, -0.34082f, 0.382812f, -0.354004f, 0.378662f, -0.373535f, 0.374512f,
+-0.393066f, 0.370605f, -0.411621f, 0.365723f, -0.433105f, 0.361328f, -0.456055f,
+0.356934f, -0.434082f, 0.352051f, -0.412598f, 0.348145f, -0.394043f, 0.343506f, -0.374023f,
+0.338867f, -0.354004f, 0.334961f, -0.338867f, 0.248047f, 0, 0.146484f, 0, -0.00146484f,
+-0.52832f, 0.0854492f, -0.52832f, 0.174805f, -0.169434f, 0.178223f, -0.158203f, 0.181641f,
+-0.141846f, 0.185059f, -0.125488f, 0.188477f, -0.109863f, 0.191895f, -0.0917969f,
+0.195801f, -0.0727539f, 0.199707f, -0.0913086f, 0.204102f, -0.108887f, 0.208008f,
+-0.124023f, 0.211914f, -0.139648f, 0.21582f, -0.155273f, 0.21875f, -0.165527f, 0.314453f,
+-0.52832f, 0.408691f, -0.52832f, 0.500977f, -0.165527f, 0.504395f, -0.152832f, 0.508301f,
+-0.136719f, 0.512207f, -0.120605f, 0.515625f, -0.106445f, 0.519531f, -0.0898438f,
+0.523438f, -0.0727539f, 0.527344f, -0.0913086f, 0.53125f, -0.108887f, 0.534668f,
+-0.124023f, 0.53833f, -0.140381f, 0.541992f, -0.156738f, 0.54541f, -0.169434f, 0.638672f,
+-0.52832f, 0.724609f, -0.52832f, 0.391113f, 0, 0.249023f, -0.216797f, 0.105957f,
+0, 0.0112305f, 0, 0.199219f, -0.271484f, 0.0200195f, -0.52832f, 0.117188f, -0.52832f,
+0.249023f, -0.322754f, 0.379883f, -0.52832f, 0.478027f, -0.52832f, 0.298828f, -0.272461f,
+0.489258f, 0, 0.294922f, 0, 0.276367f, 0.0478516f, 0.25708f, 0.0861816f, 0.237793f,
+0.124512f, 0.213867f, 0.151611f, 0.189941f, 0.178711f, 0.160645f, 0.193115f, 0.131348f,
+0.20752f, 0.0932617f, 0.20752f, 0.0766602f, 0.20752f, 0.0625f, 0.206543f, 0.0483398f,
+0.205566f, 0.0327148f, 0.202148f, 0.0327148f, 0.13623f, 0.0419922f, 0.137695f, 0.0537109f,
+0.138428f, 0.0654297f, 0.13916f, 0.0737305f, 0.13916f, 0.112305f, 0.13916f, 0.145508f,
+0.110352f, 0.178711f, 0.081543f, 0.203613f, 0.0185547f, 0.211914f, -0.00244141f,
+0.00244141f, -0.52832f, 0.0961914f, -0.52832f, 0.20752f, -0.236328f, 0.212402f, -0.223145f,
+0.219971f, -0.201172f, 0.227539f, -0.179199f, 0.235107f, -0.157227f, 0.242676f, -0.135254f,
+0.248535f, -0.117676f, 0.254395f, -0.100098f, 0.255371f, -0.0957031f, 0.256836f,
+-0.101074f, 0.262451f, -0.116943f, 0.268066f, -0.132812f, 0.275146f, -0.152344f,
+0.282227f, -0.171875f, 0.289551f, -0.191895f, 0.296875f, -0.211914f, 0.301758f, -0.226562f,
+0.405273f, -0.52832f, 0.498047f, -0.52832f, 0.0239258f, 0, 0.0239258f, -0.0668945f,
+0.34668f, -0.460449f, 0.043457f, -0.460449f, 0.043457f, -0.52832f, 0.445801f, -0.52832f,
+0.445801f, -0.461426f, 0.122559f, -0.0678711f, 0.463867f, -0.0678711f, 0.463867f,
+0, 0.250488f, 0.20752f, 0.21875f, 0.20752f, 0.19458f, 0.19751f, 0.17041f, 0.1875f,
+0.154297f, 0.168945f, 0.138184f, 0.150391f, 0.129883f, 0.124023f, 0.121582f, 0.0976562f,
+0.121582f, 0.0644531f, 0.121582f, -0.111816f, 0.121582f, -0.142578f, 0.114502f, -0.164062f,
+0.107422f, -0.185547f, 0.0939941f, -0.199219f, 0.0805664f, -0.212891f, 0.0610352f,
+-0.219727f, 0.0415039f, -0.226562f, 0.0166016f, -0.227539f, 0.0166016f, -0.289551f,
+0.0415039f, -0.290527f, 0.0610352f, -0.297363f, 0.0805664f, -0.304199f, 0.0939941f,
+-0.317871f, 0.107422f, -0.331543f, 0.114502f, -0.353027f, 0.121582f, -0.374512f,
+0.121582f, -0.404785f, 0.121582f, -0.581543f, 0.121582f, -0.650391f, 0.154053f, -0.6875f,
+0.186523f, -0.724609f, 0.250488f, -0.724609f, 0.316406f, -0.724609f, 0.316406f, -0.661621f,
+0.285645f, -0.661621f, 0.241211f, -0.661621f, 0.222412f, -0.635498f, 0.203613f, -0.609375f,
+0.203613f, -0.556641f, 0.203613f, -0.382812f, 0.203613f, -0.358398f, 0.196289f, -0.337891f,
+0.188965f, -0.317383f, 0.17627f, -0.301758f, 0.163574f, -0.286133f, 0.14624f, -0.275391f,
+0.128906f, -0.264648f, 0.108887f, -0.259766f, 0.108887f, -0.258789f, 0.129883f, -0.253906f,
+0.147217f, -0.243164f, 0.164551f, -0.232422f, 0.177002f, -0.216553f, 0.189453f, -0.200684f,
+0.196533f, -0.180176f, 0.203613f, -0.159668f, 0.203613f, -0.134766f, 0.203613f, 0.0395508f,
+0.203613f, 0.0913086f, 0.222412f, 0.11792f, 0.241211f, 0.144531f, 0.285645f, 0.144531f,
+0.316406f, 0.144531f, 0.316406f, 0.20752f, 0.0893555f, 0.211914f, 0.0893555f, -0.724609f,
+0.17041f, -0.724609f, 0.17041f, 0.211914f, 0.0458984f, 0.144531f, 0.090332f, 0.144531f,
+0.109619f, 0.11792f, 0.128906f, 0.0913086f, 0.128906f, 0.0395508f, 0.128906f, -0.134766f,
+0.128906f, -0.159668f, 0.135742f, -0.180176f, 0.142578f, -0.200684f, 0.155029f, -0.216553f,
+0.16748f, -0.232422f, 0.184814f, -0.243164f, 0.202148f, -0.253906f, 0.223145f, -0.258789f,
+0.223145f, -0.259766f, 0.202637f, -0.264648f, 0.185547f, -0.275391f, 0.168457f, -0.286133f,
+0.155762f, -0.301758f, 0.143066f, -0.317383f, 0.135986f, -0.337891f, 0.128906f, -0.358398f,
+0.128906f, -0.382812f, 0.128906f, -0.556641f, 0.128906f, -0.609375f, 0.109619f, -0.635498f,
+0.090332f, -0.661621f, 0.0458984f, -0.661621f, 0.0166016f, -0.661621f, 0.0166016f,
+-0.724609f, 0.0810547f, -0.724609f, 0.14502f, -0.724609f, 0.17749f, -0.6875f, 0.209961f,
+-0.650391f, 0.209961f, -0.581543f, 0.209961f, -0.404785f, 0.209961f, -0.374512f,
+0.217041f, -0.353027f, 0.224121f, -0.331543f, 0.237549f, -0.317871f, 0.250977f, -0.304199f,
+0.270752f, -0.297363f, 0.290527f, -0.290527f, 0.315918f, -0.289551f, 0.315918f, -0.227539f,
+0.290527f, -0.226562f, 0.270752f, -0.219727f, 0.250977f, -0.212891f, 0.237549f, -0.199219f,
+0.224121f, -0.185547f, 0.217041f, -0.164062f, 0.209961f, -0.142578f, 0.209961f, -0.111816f,
+0.209961f, 0.0644531f, 0.209961f, 0.0976562f, 0.20166f, 0.124023f, 0.193359f, 0.150391f,
+0.177246f, 0.168945f, 0.161133f, 0.1875f, 0.136963f, 0.19751f, 0.112793f, 0.20752f,
+0.0810547f, 0.20752f, 0.0166016f, 0.20752f, 0.0166016f, 0.144531f, 0.412109f, -0.27002f,
+0.378418f, -0.27002f, 0.343018f, -0.280762f, 0.307617f, -0.291504f, 0.271973f, -0.304199f,
+0.208984f, -0.326172f, 0.166016f, -0.326172f, 0.147461f, -0.326172f, 0.131592f, -0.323242f,
+0.115723f, -0.320312f, 0.101074f, -0.314697f, 0.0864258f, -0.309082f, 0.0727539f,
+-0.30127f, 0.059082f, -0.293457f, 0.0449219f, -0.283203f, 0.0449219f, -0.353027f,
+0.0693359f, -0.371582f, 0.101562f, -0.382812f, 0.133789f, -0.394043f, 0.17334f, -0.394043f,
+0.192871f, -0.394043f, 0.212402f, -0.390869f, 0.231934f, -0.387695f, 0.250732f, -0.382812f,
+0.269531f, -0.37793f, 0.287842f, -0.371582f, 0.306152f, -0.365234f, 0.324219f, -0.358887f,
+0.334473f, -0.35498f, 0.34668f, -0.351318f, 0.358887f, -0.347656f, 0.371338f, -0.344238f,
+0.383789f, -0.34082f, 0.39624f, -0.338867f, 0.408691f, -0.336914f, 0.419922f, -0.336914f,
+0.453613f, -0.336914f, 0.483643f, -0.349121f, 0.513672f, -0.361328f, 0.539062f, -0.381836f,
+0.539062f, -0.309082f, 0.523438f, -0.297852f, 0.509033f, -0.290527f, 0.494629f, -0.283203f,
+0.479736f, -0.278564f, 0.464844f, -0.273926f, 0.448242f, -0.271973f, 0.431641f, -0.27002f,
+0.412109f, -0.27002f
+};
+
+const unsigned char LiberationSansNormalVerbs[] = {
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1,
+5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansNormalCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+124, 125, 126
+};
+
+const SkFixed LiberationSansNormalWidths[] = {
+0x0000c000, 0x00004720, 0x00004720, 0x00005ae0, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000aac0, 0x000030e0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00004720,
+0x00004720, 0x00009580, 0x00009580, 0x00009580, 0x00008e60, 0x000103e0, 0x0000aac0,
+0x0000aac0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008000, 0x0000aac0, 0x00008e60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00004720, 0x00004720, 0x00004720,
+0x00007820, 0x00008e60, 0x00005540, 0x00008e60, 0x00008e60, 0x00008000, 0x00008e60,
+0x00008e60, 0x00004720, 0x00008e60, 0x00008e60, 0x000038e0, 0x000038e0, 0x00008000,
+0x000038e0, 0x0000d540, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00008000, 0x00004720, 0x00008e60, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x00008000, 0x00005580, 0x00004280, 0x00005580, 0x00009580
+};
+
+const int LiberationSansNormalCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansNormalCharCodes);
+
+const SkPaint::FontMetrics LiberationSansNormalMetrics = {
+0x30307833, -0.910156f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.25342f, 0.0195847f,
+-0.203125f, 1.05029f, 0.538086f, 0.0109024f, 0.0732422f, 0.105957f
+};
+
+const SkScalar LiberationSansBoldPoints[] = {
+0.222168f, -0.208008f, 0.109863f, -0.208008f, 0.0942383f, -0.687988f, 0.237793f, -0.687988f,
+0.0942383f, 0, 0.0942383f, -0.131836f, 0.234863f, -0.131836f, 0.234863f, 0, 0.394043f,
+-0.438477f, 0.287109f, -0.438477f, 0.273926f, -0.687988f, 0.408203f, -0.687988f,
+0.186035f, -0.438477f, 0.0791016f, -0.438477f, 0.065918f, -0.687988f, 0.199219f,
+-0.687988f, 0.443848f, -0.420898f, 0.410156f, -0.258789f, 0.515137f, -0.258789f,
+0.515137f, -0.186035f, 0.39502f, -0.186035f, 0.35498f, 0, 0.278809f, 0, 0.317871f,
+-0.186035f, 0.167969f, -0.186035f, 0.128906f, 0, 0.0541992f, 0, 0.0927734f, -0.186035f,
+0.0170898f, -0.186035f, 0.0170898f, -0.258789f, 0.108887f, -0.258789f, 0.143066f,
+-0.420898f, 0.0419922f, -0.420898f, 0.0419922f, -0.493164f, 0.158203f, -0.493164f,
+0.199219f, -0.681152f, 0.273926f, -0.681152f, 0.233887f, -0.493164f, 0.383789f, -0.493164f,
+0.424805f, -0.681152f, 0.500977f, -0.681152f, 0.459961f, -0.493164f, 0.540039f, -0.493164f,
+0.540039f, -0.420898f, 0.219238f, -0.420898f, 0.184082f, -0.258789f, 0.334961f, -0.258789f,
+0.369141f, -0.420898f, 0.541992f, -0.201172f, 0.541992f, -0.159668f, 0.52832f, -0.125732f,
+0.514648f, -0.0917969f, 0.486084f, -0.0671387f, 0.45752f, -0.0424805f, 0.413086f,
+-0.0280762f, 0.368652f, -0.0136719f, 0.307129f, -0.0112305f, 0.307129f, 0.0742188f,
+0.253906f, 0.0742188f, 0.253906f, -0.00976562f, 0.198242f, -0.0117188f, 0.156982f,
+-0.0249023f, 0.115723f, -0.0380859f, 0.0866699f, -0.0620117f, 0.0576172f, -0.0859375f,
+0.0397949f, -0.120361f, 0.0219727f, -0.154785f, 0.0131836f, -0.199219f, 0.138184f,
+-0.222168f, 0.14209f, -0.19873f, 0.149658f, -0.179443f, 0.157227f, -0.160156f, 0.17041f,
+-0.145996f, 0.183594f, -0.131836f, 0.203857f, -0.122803f, 0.224121f, -0.11377f, 0.253906f,
+-0.11084f, 0.253906f, -0.301758f, 0.252441f, -0.302734f, 0.246582f, -0.303955f, 0.240723f,
+-0.305176f, 0.23877f, -0.305176f, 0.200684f, -0.313965f, 0.164062f, -0.326904f, 0.127441f,
+-0.339844f, 0.098877f, -0.362061f, 0.0703125f, -0.384277f, 0.0527344f, -0.418213f,
+0.0351562f, -0.452148f, 0.0351562f, -0.50293f, 0.0351562f, -0.547363f, 0.0512695f,
+-0.579346f, 0.0673828f, -0.611328f, 0.0964355f, -0.632324f, 0.125488f, -0.65332f,
+0.165771f, -0.664062f, 0.206055f, -0.674805f, 0.253906f, -0.676758f, 0.253906f, -0.742188f,
+0.307129f, -0.742188f, 0.307129f, -0.676758f, 0.359375f, -0.674805f, 0.395996f, -0.663086f,
+0.432617f, -0.651367f, 0.458008f, -0.630127f, 0.483398f, -0.608887f, 0.499023f, -0.577881f,
+0.514648f, -0.546875f, 0.524902f, -0.505859f, 0.395996f, -0.486816f, 0.388672f, -0.529297f,
+0.367432f, -0.55249f, 0.346191f, -0.575684f, 0.307129f, -0.581055f, 0.307129f, -0.40918f,
+0.30957f, -0.408203f, 0.312256f, -0.408203f, 0.314941f, -0.408203f, 0.317871f, -0.407227f,
+0.359863f, -0.397461f, 0.400146f, -0.384277f, 0.44043f, -0.371094f, 0.471924f, -0.348633f,
+0.503418f, -0.326172f, 0.522705f, -0.290771f, 0.541992f, -0.255371f, 0.541992f, -0.201172f,
+0.253906f, -0.583008f, 0.228027f, -0.581055f, 0.210693f, -0.574219f, 0.193359f, -0.567383f,
+0.182617f, -0.556885f, 0.171875f, -0.546387f, 0.16748f, -0.532959f, 0.163086f, -0.519531f,
+0.163086f, -0.504883f, 0.163086f, -0.483887f, 0.169922f, -0.470459f, 0.176758f, -0.457031f,
+0.188965f, -0.448242f, 0.201172f, -0.439453f, 0.217773f, -0.43335f, 0.234375f, -0.427246f,
+0.253906f, -0.420898f, 0.415039f, -0.199219f, 0.415039f, -0.223145f, 0.406738f, -0.238037f,
+0.398438f, -0.25293f, 0.383789f, -0.262207f, 0.369141f, -0.271484f, 0.349365f, -0.277588f,
+0.32959f, -0.283691f, 0.307129f, -0.290039f, 0.307129f, -0.11084f, 0.358887f, -0.114258f,
+0.386963f, -0.135254f, 0.415039f, -0.15625f, 0.415039f, -0.199219f, 0.862793f, -0.210938f,
+0.862793f, -0.149902f, 0.849121f, -0.10791f, 0.835449f, -0.065918f, 0.812012f, -0.0402832f,
+0.788574f, -0.0146484f, 0.75708f, -0.00341797f, 0.725586f, 0.0078125f, 0.689941f,
+0.0078125f, 0.65332f, 0.0078125f, 0.621826f, -0.00341797f, 0.590332f, -0.0146484f,
+0.567139f, -0.0402832f, 0.543945f, -0.065918f, 0.530518f, -0.10791f, 0.51709f, -0.149902f,
+0.51709f, -0.210938f, 0.51709f, -0.275391f, 0.530518f, -0.317627f, 0.543945f, -0.359863f,
+0.567383f, -0.38501f, 0.59082f, -0.410156f, 0.622803f, -0.420166f, 0.654785f, -0.430176f,
+0.691895f, -0.430176f, 0.727051f, -0.430176f, 0.758301f, -0.420166f, 0.789551f, -0.410156f,
+0.812744f, -0.38501f, 0.835938f, -0.359863f, 0.849365f, -0.317627f, 0.862793f, -0.275391f,
+0.862793f, -0.210938f, 0.269531f, 0, 0.168945f, 0, 0.618164f, -0.687988f, 0.720215f,
+-0.687988f, 0.199219f, -0.695801f, 0.234375f, -0.695801f, 0.265625f, -0.685791f,
+0.296875f, -0.675781f, 0.320312f, -0.650879f, 0.34375f, -0.625977f, 0.357422f, -0.58374f,
+0.371094f, -0.541504f, 0.371094f, -0.477051f, 0.371094f, -0.416016f, 0.357422f, -0.374023f,
+0.34375f, -0.332031f, 0.320068f, -0.306152f, 0.296387f, -0.280273f, 0.264648f, -0.269043f,
+0.23291f, -0.257812f, 0.196777f, -0.257812f, 0.161133f, -0.257812f, 0.129639f, -0.269043f,
+0.0981445f, -0.280273f, 0.0749512f, -0.305908f, 0.0517578f, -0.331543f, 0.0383301f,
+-0.373535f, 0.0249023f, -0.415527f, 0.0249023f, -0.477051f, 0.0249023f, -0.541504f,
+0.0380859f, -0.58374f, 0.0512695f, -0.625977f, 0.074707f, -0.650879f, 0.0981445f,
+-0.675781f, 0.130127f, -0.685791f, 0.162109f, -0.695801f, 0.199219f, -0.695801f,
+0.757812f, -0.210938f, 0.757812f, -0.253418f, 0.753662f, -0.28125f, 0.749512f, -0.309082f,
+0.741211f, -0.325439f, 0.73291f, -0.341797f, 0.720703f, -0.348389f, 0.708496f, -0.35498f,
+0.691895f, -0.35498f, 0.673828f, -0.35498f, 0.660889f, -0.348389f, 0.647949f, -0.341797f,
+0.639648f, -0.325195f, 0.631348f, -0.308594f, 0.627197f, -0.280762f, 0.623047f, -0.25293f,
+0.623047f, -0.210938f, 0.623047f, -0.169922f, 0.626953f, -0.142822f, 0.630859f, -0.115723f,
+0.639404f, -0.0991211f, 0.647949f, -0.0825195f, 0.660645f, -0.0756836f, 0.67334f,
+-0.0688477f, 0.690918f, -0.0688477f, 0.707031f, -0.0688477f, 0.719482f, -0.0756836f,
+0.731934f, -0.0825195f, 0.740479f, -0.098877f, 0.749023f, -0.115234f, 0.753418f,
+-0.142578f, 0.757812f, -0.169922f, 0.757812f, -0.210938f, 0.265137f, -0.477051f,
+0.265137f, -0.519043f, 0.260986f, -0.546631f, 0.256836f, -0.574219f, 0.248535f, -0.590576f,
+0.240234f, -0.606934f, 0.228027f, -0.613525f, 0.21582f, -0.620117f, 0.199219f, -0.620117f,
+0.181152f, -0.620117f, 0.167969f, -0.613281f, 0.154785f, -0.606445f, 0.146484f, -0.590088f,
+0.138184f, -0.57373f, 0.134033f, -0.546143f, 0.129883f, -0.518555f, 0.129883f, -0.477051f,
+0.129883f, -0.436035f, 0.134033f, -0.408691f, 0.138184f, -0.381348f, 0.146729f, -0.364746f,
+0.155273f, -0.348145f, 0.167969f, -0.341064f, 0.180664f, -0.333984f, 0.198242f, -0.333984f,
+0.214844f, -0.333984f, 0.227295f, -0.34082f, 0.239746f, -0.347656f, 0.248291f, -0.364258f,
+0.256836f, -0.380859f, 0.260986f, -0.408447f, 0.265137f, -0.436035f, 0.265137f, -0.477051f,
+0.0439453f, -0.187988f, 0.0439453f, -0.226562f, 0.0563965f, -0.257812f, 0.0688477f,
+-0.289062f, 0.0908203f, -0.314453f, 0.112793f, -0.339844f, 0.143066f, -0.360107f,
+0.17334f, -0.380371f, 0.208984f, -0.396973f, 0.193359f, -0.428711f, 0.183105f, -0.464844f,
+0.172852f, -0.500977f, 0.172852f, -0.533203f, 0.172852f, -0.56543f, 0.182617f, -0.594238f,
+0.192383f, -0.623047f, 0.214355f, -0.644775f, 0.236328f, -0.666504f, 0.271484f, -0.679199f,
+0.306641f, -0.691895f, 0.356934f, -0.691895f, 0.396484f, -0.691895f, 0.428955f, -0.682373f,
+0.461426f, -0.672852f, 0.484863f, -0.654297f, 0.508301f, -0.635742f, 0.52124f, -0.608887f,
+0.53418f, -0.582031f, 0.53418f, -0.546875f, 0.53418f, -0.51123f, 0.518066f, -0.483643f,
+0.501953f, -0.456055f, 0.475342f, -0.433838f, 0.44873f, -0.411621f, 0.414062f, -0.393311f,
+0.379395f, -0.375f, 0.342773f, -0.35791f, 0.367676f, -0.313965f, 0.397461f, -0.273193f,
+0.427246f, -0.232422f, 0.461914f, -0.193848f, 0.489258f, -0.235352f, 0.507812f, -0.279053f,
+0.526367f, -0.322754f, 0.539062f, -0.371094f, 0.641113f, -0.336914f, 0.624512f, -0.279785f,
+0.601562f, -0.229492f, 0.578613f, -0.179199f, 0.546875f, -0.131836f, 0.568848f, -0.113281f,
+0.59082f, -0.104736f, 0.612793f, -0.0961914f, 0.633789f, -0.0961914f, 0.649414f,
+-0.0961914f, 0.663818f, -0.0981445f, 0.678223f, -0.100098f, 0.690918f, -0.104004f,
+0.690918f, -0.00488281f, 0.664062f, 0.00585938f, 0.626953f, 0.00585938f, 0.602051f,
+0.00585938f, 0.579102f, 0.000976562f, 0.556152f, -0.00390625f, 0.535645f, -0.0119629f,
+0.515137f, -0.0200195f, 0.497559f, -0.0307617f, 0.47998f, -0.0415039f, 0.46582f,
+-0.0532227f, 0.449707f, -0.0410156f, 0.429932f, -0.029541f, 0.410156f, -0.0180664f,
+0.386963f, -0.00927734f, 0.36377f, -0.000488281f, 0.337158f, 0.00463867f, 0.310547f,
+0.00976562f, 0.280762f, 0.00976562f, 0.219238f, 0.00976562f, 0.174316f, -0.00537109f,
+0.129395f, -0.0205078f, 0.100586f, -0.046875f, 0.0717773f, -0.0732422f, 0.0578613f,
+-0.109375f, 0.0439453f, -0.145508f, 0.0439453f, -0.187988f, 0.424805f, -0.545898f,
+0.424805f, -0.57373f, 0.40625f, -0.591309f, 0.387695f, -0.608887f, 0.355957f, -0.608887f,
+0.318359f, -0.608887f, 0.298584f, -0.587891f, 0.278809f, -0.566895f, 0.278809f, -0.532227f,
+0.278809f, -0.508789f, 0.286377f, -0.484375f, 0.293945f, -0.459961f, 0.305176f, -0.437988f,
+0.330078f, -0.44873f, 0.352051f, -0.459717f, 0.374023f, -0.470703f, 0.390137f, -0.483643f,
+0.40625f, -0.496582f, 0.415527f, -0.511719f, 0.424805f, -0.526855f, 0.424805f, -0.545898f,
+0.384766f, -0.120117f, 0.347168f, -0.162109f, 0.313477f, -0.208008f, 0.279785f, -0.253906f,
+0.251953f, -0.304199f, 0.211426f, -0.285156f, 0.189697f, -0.257324f, 0.167969f, -0.229492f,
+0.167969f, -0.189941f, 0.167969f, -0.16748f, 0.175537f, -0.147949f, 0.183105f, -0.128418f,
+0.197754f, -0.114014f, 0.212402f, -0.0996094f, 0.234619f, -0.0913086f, 0.256836f,
+-0.0830078f, 0.286133f, -0.0830078f, 0.317871f, -0.0830078f, 0.343506f, -0.0947266f,
+0.369141f, -0.106445f, 0.384766f, -0.120117f, 0.172852f, -0.438477f, 0.065918f, -0.438477f,
+0.0532227f, -0.687988f, 0.186035f, -0.687988f, 0.194824f, 0.20752f, 0.157227f, 0.15332f,
+0.129883f, 0.0996094f, 0.102539f, 0.0458984f, 0.0847168f, -0.0107422f, 0.0668945f,
+-0.0673828f, 0.0583496f, -0.128662f, 0.0498047f, -0.189941f, 0.0498047f, -0.259277f,
+0.0498047f, -0.329102f, 0.0583496f, -0.389893f, 0.0668945f, -0.450684f, 0.0847168f,
+-0.50708f, 0.102539f, -0.563477f, 0.129883f, -0.616943f, 0.157227f, -0.67041f, 0.194824f,
+-0.724609f, 0.332031f, -0.724609f, 0.292969f, -0.667969f, 0.265137f, -0.612793f,
+0.237305f, -0.557617f, 0.219482f, -0.500977f, 0.20166f, -0.444336f, 0.193359f, -0.384521f,
+0.185059f, -0.324707f, 0.185059f, -0.258789f, 0.185059f, -0.192383f, 0.193359f, -0.132568f,
+0.20166f, -0.0727539f, 0.219482f, -0.0161133f, 0.237305f, 0.0405273f, 0.265137f,
+0.095459f, 0.292969f, 0.150391f, 0.332031f, 0.20752f, 0.000976562f, 0.20752f, 0.0400391f,
+0.150391f, 0.0678711f, 0.095459f, 0.0957031f, 0.0405273f, 0.113525f, -0.0161133f,
+0.131348f, -0.0727539f, 0.139648f, -0.132568f, 0.147949f, -0.192383f, 0.147949f,
+-0.258789f, 0.147949f, -0.324707f, 0.139648f, -0.384521f, 0.131348f, -0.444336f,
+0.113525f, -0.500977f, 0.0957031f, -0.557617f, 0.0678711f, -0.612793f, 0.0400391f,
+-0.667969f, 0.000976562f, -0.724609f, 0.138184f, -0.724609f, 0.175781f, -0.67041f,
+0.203125f, -0.616943f, 0.230469f, -0.563477f, 0.248291f, -0.50708f, 0.266113f, -0.450684f,
+0.274658f, -0.389893f, 0.283203f, -0.329102f, 0.283203f, -0.259277f, 0.283203f, -0.189941f,
+0.274658f, -0.128662f, 0.266113f, -0.0673828f, 0.248291f, -0.0107422f, 0.230469f,
+0.0458984f, 0.203125f, 0.0996094f, 0.175781f, 0.15332f, 0.138184f, 0.20752f, 0.240234f,
+-0.554199f, 0.35498f, -0.60498f, 0.388184f, -0.508789f, 0.266113f, -0.479004f, 0.356934f,
+-0.375f, 0.26709f, -0.315918f, 0.195801f, -0.438965f, 0.123047f, -0.315918f, 0.0322266f,
+-0.375977f, 0.125f, -0.479004f, 0.00292969f, -0.508789f, 0.0361328f, -0.60498f, 0.152832f,
+-0.554199f, 0.144043f, -0.687988f, 0.249023f, -0.687988f, 0.347168f, -0.277832f,
+0.347168f, -0.0786133f, 0.236816f, -0.0786133f, 0.236816f, -0.277832f, 0.0419922f,
+-0.277832f, 0.0419922f, -0.387207f, 0.236816f, -0.387207f, 0.236816f, -0.586426f,
+0.347168f, -0.586426f, 0.347168f, -0.387207f, 0.543457f, -0.387207f, 0.543457f, -0.277832f,
+0.210938f, -0.0322266f, 0.210938f, 0.000488281f, 0.207275f, 0.0273438f, 0.203613f,
+0.0541992f, 0.196777f, 0.0769043f, 0.189941f, 0.0996094f, 0.180176f, 0.118652f, 0.17041f,
+0.137695f, 0.158203f, 0.154785f, 0.0678711f, 0.154785f, 0.0820312f, 0.137695f, 0.09375f,
+0.118652f, 0.105469f, 0.0996094f, 0.114258f, 0.0795898f, 0.123047f, 0.0595703f, 0.12793f,
+0.0395508f, 0.132812f, 0.0195312f, 0.132812f, 0, 0.0698242f, 0, 0.0698242f, -0.148926f,
+0.210938f, -0.148926f, 0.0390625f, -0.199707f, 0.0390625f, -0.318848f, 0.292969f,
+-0.318848f, 0.292969f, -0.199707f, 0.0678711f, 0, 0.0678711f, -0.148926f, 0.208984f,
+-0.148926f, 0.208984f, 0, 0.00976562f, 0.0200195f, 0.151855f, -0.724609f, 0.268066f,
+-0.724609f, 0.128418f, 0.0200195f, 0.515137f, -0.344238f, 0.515137f, -0.245605f,
+0.49707f, -0.177979f, 0.479004f, -0.110352f, 0.447021f, -0.0686035f, 0.415039f, -0.0268555f,
+0.371338f, -0.00854492f, 0.327637f, 0.00976562f, 0.275879f, 0.00976562f, 0.224121f,
+0.00976562f, 0.180664f, -0.00830078f, 0.137207f, -0.0263672f, 0.105957f, -0.0681152f,
+0.074707f, -0.109863f, 0.0571289f, -0.17749f, 0.0395508f, -0.245117f, 0.0395508f,
+-0.344238f, 0.0395508f, -0.448242f, 0.0568848f, -0.516357f, 0.0742188f, -0.584473f,
+0.105957f, -0.625f, 0.137695f, -0.665527f, 0.181885f, -0.681885f, 0.226074f, -0.698242f,
+0.279785f, -0.698242f, 0.330078f, -0.698242f, 0.373291f, -0.681885f, 0.416504f, -0.665527f,
+0.447998f, -0.625f, 0.479492f, -0.584473f, 0.497314f, -0.516357f, 0.515137f, -0.448242f,
+0.515137f, -0.344238f, 0.377441f, -0.344238f, 0.377441f, -0.416992f, 0.37207f, -0.4646f,
+0.366699f, -0.512207f, 0.35498f, -0.540283f, 0.343262f, -0.568359f, 0.324463f, -0.57959f,
+0.305664f, -0.59082f, 0.278809f, -0.59082f, 0.25f, -0.59082f, 0.230469f, -0.579346f,
+0.210938f, -0.567871f, 0.198975f, -0.539551f, 0.187012f, -0.51123f, 0.181885f, -0.463623f,
+0.176758f, -0.416016f, 0.176758f, -0.344238f, 0.176758f, -0.273438f, 0.182129f, -0.226074f,
+0.1875f, -0.178711f, 0.199219f, -0.150146f, 0.210938f, -0.121582f, 0.22998f, -0.109863f,
+0.249023f, -0.0981445f, 0.276855f, -0.0981445f, 0.303711f, -0.0981445f, 0.322754f,
+-0.109863f, 0.341797f, -0.121582f, 0.354004f, -0.150146f, 0.366211f, -0.178711f,
+0.371826f, -0.226074f, 0.377441f, -0.273438f, 0.377441f, -0.344238f, 0.0629883f,
+0, 0.0629883f, -0.102051f, 0.233398f, -0.102051f, 0.233398f, -0.571289f, 0.0683594f,
+-0.468262f, 0.0683594f, -0.576172f, 0.240723f, -0.687988f, 0.370605f, -0.687988f,
+0.370605f, -0.102051f, 0.52832f, -0.102051f, 0.52832f, 0, 0.034668f, 0, 0.034668f,
+-0.0952148f, 0.0581055f, -0.146484f, 0.0917969f, -0.187744f, 0.125488f, -0.229004f,
+0.162354f, -0.263428f, 0.199219f, -0.297852f, 0.235596f, -0.327393f, 0.271973f, -0.356934f,
+0.301025f, -0.384521f, 0.330078f, -0.412109f, 0.348145f, -0.439941f, 0.366211f, -0.467773f,
+0.366211f, -0.499023f, 0.366211f, -0.544922f, 0.343262f, -0.566895f, 0.320312f, -0.588867f,
+0.275879f, -0.588867f, 0.231934f, -0.588867f, 0.20874f, -0.565186f, 0.185547f, -0.541504f,
+0.178711f, -0.494141f, 0.0405273f, -0.501953f, 0.0454102f, -0.54248f, 0.0605469f,
+-0.578125f, 0.0756836f, -0.61377f, 0.10376f, -0.640625f, 0.131836f, -0.66748f, 0.174072f,
+-0.682861f, 0.216309f, -0.698242f, 0.274902f, -0.698242f, 0.330566f, -0.698242f,
+0.373535f, -0.685303f, 0.416504f, -0.672363f, 0.445801f, -0.647461f, 0.475098f, -0.622559f,
+0.490234f, -0.58667f, 0.505371f, -0.550781f, 0.505371f, -0.504883f, 0.505371f, -0.456543f,
+0.486328f, -0.41748f, 0.467285f, -0.378418f, 0.4375f, -0.345459f, 0.407715f, -0.3125f,
+0.371338f, -0.283691f, 0.334961f, -0.254883f, 0.300781f, -0.227539f, 0.266602f, -0.200195f,
+0.238525f, -0.172363f, 0.210449f, -0.144531f, 0.196777f, -0.112793f, 0.516113f, -0.112793f,
+0.516113f, 0, 0.52002f, -0.190918f, 0.52002f, -0.144043f, 0.504639f, -0.106689f,
+0.489258f, -0.0693359f, 0.458496f, -0.0429688f, 0.427734f, -0.0166016f, 0.38208f,
+-0.00268555f, 0.336426f, 0.0112305f, 0.275879f, 0.0112305f, 0.208496f, 0.0112305f,
+0.162354f, -0.00585938f, 0.116211f, -0.0229492f, 0.0866699f, -0.0510254f, 0.0571289f,
+-0.0791016f, 0.0422363f, -0.114746f, 0.0273438f, -0.150391f, 0.0229492f, -0.187012f,
+0.162598f, -0.199219f, 0.165527f, -0.177246f, 0.173584f, -0.158936f, 0.181641f, -0.140625f,
+0.195312f, -0.127441f, 0.208984f, -0.114258f, 0.22876f, -0.107178f, 0.248535f, -0.100098f,
+0.275391f, -0.100098f, 0.324707f, -0.100098f, 0.352051f, -0.124512f, 0.379395f, -0.148926f,
+0.379395f, -0.199219f, 0.379395f, -0.22998f, 0.366455f, -0.248535f, 0.353516f, -0.26709f,
+0.33374f, -0.2771f, 0.313965f, -0.287109f, 0.291016f, -0.290527f, 0.268066f, -0.293945f,
+0.247559f, -0.293945f, 0.199707f, -0.293945f, 0.199707f, -0.404785f, 0.244629f, -0.404785f,
+0.265137f, -0.404785f, 0.286377f, -0.408691f, 0.307617f, -0.412598f, 0.324707f, -0.422852f,
+0.341797f, -0.433105f, 0.352539f, -0.451416f, 0.363281f, -0.469727f, 0.363281f, -0.498047f,
+0.363281f, -0.540527f, 0.3396f, -0.564697f, 0.315918f, -0.588867f, 0.270508f, -0.588867f,
+0.228027f, -0.588867f, 0.201904f, -0.56543f, 0.175781f, -0.541992f, 0.171875f, -0.499023f,
+0.034668f, -0.508789f, 0.0405273f, -0.557129f, 0.0612793f, -0.592773f, 0.0820312f,
+-0.628418f, 0.113525f, -0.651855f, 0.14502f, -0.675293f, 0.186035f, -0.686768f, 0.227051f,
+-0.698242f, 0.272949f, -0.698242f, 0.333496f, -0.698242f, 0.376953f, -0.683594f,
+0.42041f, -0.668945f, 0.448242f, -0.644043f, 0.476074f, -0.619141f, 0.489258f, -0.585938f,
+0.502441f, -0.552734f, 0.502441f, -0.515137f, 0.502441f, -0.484863f, 0.493652f, -0.45874f,
+0.484863f, -0.432617f, 0.467041f, -0.411865f, 0.449219f, -0.391113f, 0.421387f, -0.376221f,
+0.393555f, -0.361328f, 0.355469f, -0.354004f, 0.355469f, -0.352051f, 0.397949f, -0.347168f,
+0.429199f, -0.332764f, 0.460449f, -0.318359f, 0.480469f, -0.296875f, 0.500488f, -0.275391f,
+0.510254f, -0.248291f, 0.52002f, -0.221191f, 0.52002f, -0.190918f, 0.458984f, -0.140137f,
+0.458984f, 0, 0.328125f, 0, 0.328125f, -0.140137f, 0.0151367f, -0.140137f, 0.0151367f,
+-0.243164f, 0.305664f, -0.687988f, 0.458984f, -0.687988f, 0.458984f, -0.242188f,
+0.550781f, -0.242188f, 0.550781f, -0.140137f, 0.328125f, -0.467285f, 0.328125f, -0.475586f,
+0.328369f, -0.489014f, 0.328613f, -0.502441f, 0.329346f, -0.516602f, 0.330078f, -0.530762f,
+0.330811f, -0.543701f, 0.331543f, -0.556641f, 0.33252f, -0.563965f, 0.330078f, -0.558594f,
+0.324707f, -0.548584f, 0.319336f, -0.538574f, 0.312744f, -0.5271f, 0.306152f, -0.515625f,
+0.299072f, -0.504395f, 0.291992f, -0.493164f, 0.286621f, -0.484863f, 0.126953f, -0.242188f,
+0.328125f, -0.242188f, 0.52832f, -0.229004f, 0.52832f, -0.177246f, 0.511963f, -0.133545f,
+0.495605f, -0.0898438f, 0.463379f, -0.0578613f, 0.431152f, -0.0258789f, 0.383545f,
+-0.00805664f, 0.335938f, 0.00976562f, 0.273438f, 0.00976562f, 0.21582f, 0.00976562f,
+0.172852f, -0.00415039f, 0.129883f, -0.0180664f, 0.100342f, -0.0427246f, 0.0708008f,
+-0.0673828f, 0.0539551f, -0.100586f, 0.0371094f, -0.133789f, 0.0307617f, -0.171875f,
+0.167969f, -0.183105f, 0.171875f, -0.166992f, 0.178955f, -0.151855f, 0.186035f, -0.136719f,
+0.19873f, -0.125f, 0.211426f, -0.113281f, 0.22998f, -0.106201f, 0.248535f, -0.0991211f,
+0.274902f, -0.0991211f, 0.326172f, -0.0991211f, 0.356689f, -0.131836f, 0.387207f,
+-0.164551f, 0.387207f, -0.226074f, 0.387207f, -0.253418f, 0.379639f, -0.275391f,
+0.37207f, -0.297363f, 0.358154f, -0.312988f, 0.344238f, -0.328613f, 0.323975f, -0.336914f,
+0.303711f, -0.345215f, 0.277832f, -0.345215f, 0.243652f, -0.345215f, 0.22168f, -0.332275f,
+0.199707f, -0.319336f, 0.18457f, -0.300781f, 0.0507812f, -0.300781f, 0.074707f, -0.687988f,
+0.488281f, -0.687988f, 0.488281f, -0.585938f, 0.199219f, -0.585938f, 0.187988f, -0.412109f,
+0.208496f, -0.430176f, 0.239746f, -0.443115f, 0.270996f, -0.456055f, 0.3125f, -0.456055f,
+0.363281f, -0.456055f, 0.40332f, -0.439453f, 0.443359f, -0.422852f, 0.471191f, -0.393066f,
+0.499023f, -0.363281f, 0.513672f, -0.321533f, 0.52832f, -0.279785f, 0.52832f, -0.229004f,
+0.52002f, -0.225098f, 0.52002f, -0.17334f, 0.505371f, -0.130127f, 0.490723f, -0.0869141f,
+0.46167f, -0.0559082f, 0.432617f, -0.0249023f, 0.38916f, -0.00756836f, 0.345703f,
+0.00976562f, 0.288574f, 0.00976562f, 0.166992f, 0.00976562f, 0.101807f, -0.0754395f,
+0.0366211f, -0.160645f, 0.0366211f, -0.328125f, 0.0366211f, -0.512207f, 0.102783f,
+-0.605225f, 0.168945f, -0.698242f, 0.291992f, -0.698242f, 0.333008f, -0.698242f,
+0.366699f, -0.689697f, 0.400391f, -0.681152f, 0.426758f, -0.662109f, 0.453125f, -0.643066f,
+0.47168f, -0.613037f, 0.490234f, -0.583008f, 0.501465f, -0.540039f, 0.37207f, -0.521973f,
+0.362305f, -0.558105f, 0.340332f, -0.573975f, 0.318359f, -0.589844f, 0.289062f, -0.589844f,
+0.233887f, -0.589844f, 0.202393f, -0.534668f, 0.170898f, -0.479492f, 0.170898f, -0.367188f,
+0.192871f, -0.403809f, 0.231934f, -0.42334f, 0.270996f, -0.442871f, 0.320312f, -0.442871f,
+0.365723f, -0.442871f, 0.402588f, -0.427979f, 0.439453f, -0.413086f, 0.465576f, -0.38501f,
+0.491699f, -0.356934f, 0.505859f, -0.316406f, 0.52002f, -0.275879f, 0.52002f, -0.225098f,
+0.382324f, -0.221191f, 0.382324f, -0.249023f, 0.375977f, -0.27124f, 0.369629f, -0.293457f,
+0.356689f, -0.309082f, 0.34375f, -0.324707f, 0.324707f, -0.333252f, 0.305664f, -0.341797f,
+0.280762f, -0.341797f, 0.262695f, -0.341797f, 0.244629f, -0.335938f, 0.226562f, -0.330078f,
+0.212402f, -0.317139f, 0.198242f, -0.304199f, 0.189453f, -0.28418f, 0.180664f, -0.26416f,
+0.180664f, -0.23584f, 0.180664f, -0.206543f, 0.187988f, -0.181152f, 0.195312f, -0.155762f,
+0.20874f, -0.136963f, 0.222168f, -0.118164f, 0.241211f, -0.107666f, 0.260254f, -0.097168f,
+0.28418f, -0.097168f, 0.330566f, -0.097168f, 0.356445f, -0.130127f, 0.382324f, -0.163086f,
+0.382324f, -0.221191f, 0.512207f, -0.579102f, 0.46582f, -0.505859f, 0.424561f, -0.437012f,
+0.383301f, -0.368164f, 0.352539f, -0.298584f, 0.321777f, -0.229004f, 0.303955f, -0.155518f,
+0.286133f, -0.0820312f, 0.286133f, 0, 0.143066f, 0, 0.143066f, -0.081543f, 0.162354f,
+-0.155029f, 0.181641f, -0.228516f, 0.214844f, -0.29834f, 0.248047f, -0.368164f, 0.291992f,
+-0.436279f, 0.335938f, -0.504395f, 0.384766f, -0.575195f, 0.0429688f, -0.575195f,
+0.0429688f, -0.687988f, 0.512207f, -0.687988f, 0.525391f, -0.193848f, 0.525391f,
+-0.149414f, 0.510742f, -0.112061f, 0.496094f, -0.074707f, 0.46582f, -0.0476074f,
+0.435547f, -0.0205078f, 0.38916f, -0.00537109f, 0.342773f, 0.00976562f, 0.278809f,
+0.00976562f, 0.215332f, 0.00976562f, 0.168701f, -0.00537109f, 0.12207f, -0.0205078f,
+0.0915527f, -0.0476074f, 0.0610352f, -0.074707f, 0.0463867f, -0.111816f, 0.0317383f,
+-0.148926f, 0.0317383f, -0.192871f, 0.0317383f, -0.230469f, 0.043457f, -0.259521f,
+0.0551758f, -0.288574f, 0.074707f, -0.30957f, 0.0942383f, -0.330566f, 0.119629f,
+-0.343018f, 0.14502f, -0.355469f, 0.171875f, -0.359863f, 0.171875f, -0.361816f, 0.143066f,
+-0.368164f, 0.120117f, -0.382812f, 0.097168f, -0.397461f, 0.0810547f, -0.417969f,
+0.0649414f, -0.438477f, 0.0563965f, -0.463623f, 0.0478516f, -0.48877f, 0.0478516f,
+-0.516113f, 0.0478516f, -0.557129f, 0.0627441f, -0.59082f, 0.0776367f, -0.624512f,
+0.106445f, -0.648438f, 0.135254f, -0.672363f, 0.177979f, -0.685303f, 0.220703f, -0.698242f,
+0.276855f, -0.698242f, 0.336914f, -0.698242f, 0.380615f, -0.684814f, 0.424316f, -0.671387f,
+0.452637f, -0.647217f, 0.480957f, -0.623047f, 0.494629f, -0.589355f, 0.508301f, -0.555664f,
+0.508301f, -0.515137f, 0.508301f, -0.488281f, 0.499756f, -0.463135f, 0.491211f, -0.437988f,
+0.475098f, -0.41748f, 0.458984f, -0.396973f, 0.435791f, -0.382812f, 0.412598f, -0.368652f,
+0.383301f, -0.362793f, 0.383301f, -0.36084f, 0.413574f, -0.355957f, 0.439697f, -0.343018f,
+0.46582f, -0.330078f, 0.484863f, -0.309326f, 0.503906f, -0.288574f, 0.514648f, -0.259521f,
+0.525391f, -0.230469f, 0.525391f, -0.193848f, 0.367188f, -0.507812f, 0.367188f, -0.52832f,
+0.362793f, -0.545654f, 0.358398f, -0.562988f, 0.348145f, -0.575439f, 0.337891f, -0.587891f,
+0.320557f, -0.594971f, 0.303223f, -0.602051f, 0.276855f, -0.602051f, 0.251465f, -0.602051f,
+0.234375f, -0.594971f, 0.217285f, -0.587891f, 0.207031f, -0.575439f, 0.196777f, -0.562988f,
+0.192383f, -0.545654f, 0.187988f, -0.52832f, 0.187988f, -0.507812f, 0.187988f, -0.489746f,
+0.19165f, -0.472168f, 0.195312f, -0.45459f, 0.205078f, -0.440674f, 0.214844f, -0.426758f,
+0.232422f, -0.417969f, 0.25f, -0.40918f, 0.277832f, -0.40918f, 0.307129f, -0.40918f,
+0.324951f, -0.417969f, 0.342773f, -0.426758f, 0.352051f, -0.440918f, 0.361328f, -0.455078f,
+0.364258f, -0.472656f, 0.367188f, -0.490234f, 0.367188f, -0.507812f, 0.383301f, -0.205078f,
+0.383301f, -0.226074f, 0.378662f, -0.245605f, 0.374023f, -0.265137f, 0.362061f, -0.280029f,
+0.350098f, -0.294922f, 0.329102f, -0.303955f, 0.308105f, -0.312988f, 0.275879f, -0.312988f,
+0.246582f, -0.312988f, 0.226807f, -0.303955f, 0.207031f, -0.294922f, 0.195068f, -0.279785f,
+0.183105f, -0.264648f, 0.177979f, -0.244873f, 0.172852f, -0.225098f, 0.172852f, -0.203125f,
+0.172852f, -0.177246f, 0.177979f, -0.155762f, 0.183105f, -0.134277f, 0.195557f, -0.118896f,
+0.208008f, -0.103516f, 0.228516f, -0.0952148f, 0.249023f, -0.0869141f, 0.279785f,
+-0.0869141f, 0.310547f, -0.0869141f, 0.330566f, -0.095459f, 0.350586f, -0.104004f,
+0.362305f, -0.119629f, 0.374023f, -0.135254f, 0.378662f, -0.156982f, 0.383301f, -0.178711f,
+0.383301f, -0.205078f, 0.519043f, -0.35498f, 0.519043f, -0.171875f, 0.452148f, -0.0810547f,
+0.385254f, 0.00976562f, 0.262207f, 0.00976562f, 0.217773f, 0.00976562f, 0.182373f,
+0.000488281f, 0.146973f, -0.00878906f, 0.120605f, -0.0283203f, 0.0942383f, -0.0478516f,
+0.0759277f, -0.0786133f, 0.0576172f, -0.109375f, 0.046875f, -0.151855f, 0.175781f,
+-0.169922f, 0.185547f, -0.133301f, 0.207764f, -0.115723f, 0.22998f, -0.0981445f,
+0.263672f, -0.0981445f, 0.291504f, -0.0981445f, 0.313477f, -0.111328f, 0.335449f,
+-0.124512f, 0.351074f, -0.151367f, 0.366699f, -0.178223f, 0.375244f, -0.219482f,
+0.383789f, -0.260742f, 0.384277f, -0.316895f, 0.374512f, -0.297852f, 0.358398f, -0.283203f,
+0.342285f, -0.268555f, 0.322021f, -0.258789f, 0.301758f, -0.249023f, 0.278809f, -0.243896f,
+0.255859f, -0.23877f, 0.232422f, -0.23877f, 0.1875f, -0.23877f, 0.150879f, -0.254639f,
+0.114258f, -0.270508f, 0.0883789f, -0.300293f, 0.0625f, -0.330078f, 0.048584f, -0.372314f,
+0.034668f, -0.414551f, 0.034668f, -0.467773f, 0.034668f, -0.522461f, 0.0510254f,
+-0.56543f, 0.0673828f, -0.608398f, 0.0981445f, -0.637939f, 0.128906f, -0.66748f,
+0.173584f, -0.682861f, 0.218262f, -0.698242f, 0.274902f, -0.698242f, 0.334473f, -0.698242f,
+0.380127f, -0.677979f, 0.425781f, -0.657715f, 0.456543f, -0.615479f, 0.487305f, -0.573242f,
+0.503174f, -0.508545f, 0.519043f, -0.443848f, 0.519043f, -0.35498f, 0.374023f, -0.451172f,
+0.374023f, -0.480469f, 0.367432f, -0.506104f, 0.36084f, -0.531738f, 0.347656f, -0.550537f,
+0.334473f, -0.569336f, 0.31543f, -0.580078f, 0.296387f, -0.59082f, 0.271484f, -0.59082f,
+0.248535f, -0.59082f, 0.230469f, -0.582275f, 0.212402f, -0.57373f, 0.199707f, -0.557617f,
+0.187012f, -0.541504f, 0.18042f, -0.518555f, 0.173828f, -0.495605f, 0.173828f, -0.466797f,
+0.173828f, -0.439941f, 0.180176f, -0.416748f, 0.186523f, -0.393555f, 0.19873f, -0.376709f,
+0.210938f, -0.359863f, 0.229492f, -0.350342f, 0.248047f, -0.34082f, 0.271973f, -0.34082f,
+0.291016f, -0.34082f, 0.309326f, -0.347656f, 0.327637f, -0.354492f, 0.342041f, -0.368164f,
+0.356445f, -0.381836f, 0.365234f, -0.402588f, 0.374023f, -0.42334f, 0.374023f, -0.451172f,
+0.0961914f, -0.367188f, 0.0961914f, -0.504883f, 0.236816f, -0.504883f, 0.236816f,
+-0.367188f, 0.0961914f, 0, 0.0961914f, -0.137207f, 0.236816f, -0.137207f, 0.236816f,
+0, 0.097168f, -0.367188f, 0.097168f, -0.504883f, 0.237793f, -0.504883f, 0.237793f,
+-0.367188f, 0.237793f, -0.0322266f, 0.237793f, 0.000488281f, 0.234131f, 0.0273438f,
+0.230469f, 0.0541992f, 0.223633f, 0.0769043f, 0.216797f, 0.0996094f, 0.207031f, 0.118652f,
+0.197266f, 0.137695f, 0.185059f, 0.154785f, 0.0952148f, 0.154785f, 0.108887f, 0.137695f,
+0.12085f, 0.118652f, 0.132812f, 0.0996094f, 0.141602f, 0.0795898f, 0.150391f, 0.0595703f,
+0.155273f, 0.0395508f, 0.160156f, 0.0195312f, 0.160156f, 0, 0.097168f, 0, 0.097168f,
+-0.137207f, 0.237793f, -0.137207f, 0.0419922f, -0.251953f, 0.0419922f, -0.40918f,
+0.543457f, -0.600098f, 0.543457f, -0.48877f, 0.136719f, -0.330078f, 0.543457f, -0.171875f,
+0.543457f, -0.0610352f, 0.0415039f, -0.411133f, 0.0415039f, -0.52002f, 0.542969f,
+-0.52002f, 0.542969f, -0.411133f, 0.0415039f, -0.14209f, 0.0415039f, -0.25f, 0.542969f,
+-0.25f, 0.542969f, -0.14209f, 0.0419922f, -0.0610352f, 0.0419922f, -0.171875f, 0.448242f,
+-0.330078f, 0.0419922f, -0.48877f, 0.0419922f, -0.600098f, 0.543457f, -0.40918f,
+0.543457f, -0.251953f, 0.553223f, -0.500977f, 0.553223f, -0.46875f, 0.544678f, -0.444336f,
+0.536133f, -0.419922f, 0.521973f, -0.400635f, 0.507812f, -0.381348f, 0.489746f, -0.365967f,
+0.47168f, -0.350586f, 0.452637f, -0.336914f, 0.433594f, -0.323242f, 0.415283f, -0.310059f,
+0.396973f, -0.296875f, 0.382324f, -0.281982f, 0.367676f, -0.26709f, 0.358398f, -0.249268f,
+0.349121f, -0.231445f, 0.348145f, -0.208008f, 0.217773f, -0.208008f, 0.220215f, -0.249512f,
+0.235596f, -0.279053f, 0.250977f, -0.308594f, 0.272949f, -0.330566f, 0.294922f, -0.352539f,
+0.319824f, -0.369873f, 0.344727f, -0.387207f, 0.365967f, -0.405273f, 0.387207f, -0.42334f,
+0.401123f, -0.44458f, 0.415039f, -0.46582f, 0.415039f, -0.495117f, 0.415039f, -0.538086f,
+0.386963f, -0.562988f, 0.358887f, -0.587891f, 0.307129f, -0.587891f, 0.282227f, -0.587891f,
+0.26123f, -0.580322f, 0.240234f, -0.572754f, 0.224365f, -0.559082f, 0.208496f, -0.54541f,
+0.198242f, -0.525879f, 0.187988f, -0.506348f, 0.185059f, -0.48291f, 0.0458984f, -0.48877f,
+0.0517578f, -0.532227f, 0.0700684f, -0.570312f, 0.0883789f, -0.608398f, 0.120117f,
+-0.636719f, 0.151855f, -0.665039f, 0.197998f, -0.681641f, 0.244141f, -0.698242f,
+0.305176f, -0.698242f, 0.36377f, -0.698242f, 0.409668f, -0.68457f, 0.455566f, -0.670898f,
+0.487549f, -0.645264f, 0.519531f, -0.619629f, 0.536377f, -0.583008f, 0.553223f, -0.546387f,
+0.553223f, -0.500977f, 0.213867f, 0, 0.213867f, -0.131836f, 0.35498f, -0.131836f,
+0.35498f, 0, 0.916992f, -0.354004f, 0.916992f, -0.283691f, 0.898438f, -0.225342f,
+0.879883f, -0.166992f, 0.8479f, -0.125f, 0.815918f, -0.0830078f, 0.773193f, -0.0595703f,
+0.730469f, -0.0361328f, 0.682129f, -0.0361328f, 0.661621f, -0.0361328f, 0.644287f,
+-0.0412598f, 0.626953f, -0.0463867f, 0.614746f, -0.0568848f, 0.602539f, -0.0673828f,
+0.595703f, -0.083252f, 0.588867f, -0.0991211f, 0.588867f, -0.120117f, 0.588867f,
+-0.126953f, 0.5896f, -0.13623f, 0.590332f, -0.145508f, 0.591797f, -0.152832f, 0.588867f,
+-0.152832f, 0.578613f, -0.131348f, 0.561523f, -0.110352f, 0.544434f, -0.0893555f,
+0.522217f, -0.072998f, 0.5f, -0.0566406f, 0.473389f, -0.0463867f, 0.446777f, -0.0361328f,
+0.417969f, -0.0361328f, 0.371582f, -0.0361328f, 0.340576f, -0.0527344f, 0.30957f,
+-0.0693359f, 0.291016f, -0.0961914f, 0.272461f, -0.123047f, 0.264648f, -0.156738f,
+0.256836f, -0.19043f, 0.256836f, -0.224121f, 0.256836f, -0.280273f, 0.273438f, -0.333984f,
+0.290039f, -0.387695f, 0.321289f, -0.429688f, 0.352539f, -0.47168f, 0.397949f, -0.497314f,
+0.443359f, -0.522949f, 0.500977f, -0.522949f, 0.550781f, -0.522949f, 0.58252f, -0.500244f,
+0.614258f, -0.477539f, 0.629883f, -0.437988f, 0.632812f, -0.437988f, 0.651855f, -0.512207f,
+0.728027f, -0.512207f, 0.670898f, -0.265137f, 0.662598f, -0.226562f, 0.657715f, -0.196289f,
+0.652832f, -0.166016f, 0.652832f, -0.147949f, 0.652832f, -0.123535f, 0.664307f, -0.113281f,
+0.675781f, -0.103027f, 0.690918f, -0.103027f, 0.719727f, -0.103027f, 0.746826f, -0.121582f,
+0.773926f, -0.140137f, 0.79541f, -0.17334f, 0.816895f, -0.206543f, 0.829834f, -0.252441f,
+0.842773f, -0.29834f, 0.842773f, -0.353027f, 0.842773f, -0.414551f, 0.822754f, -0.467285f,
+0.802734f, -0.52002f, 0.763672f, -0.558594f, 0.724609f, -0.597168f, 0.666992f, -0.619141f,
+0.609375f, -0.641113f, 0.53418f, -0.641113f, 0.469238f, -0.641113f, 0.414551f, -0.625732f,
+0.359863f, -0.610352f, 0.315674f, -0.58252f, 0.271484f, -0.554688f, 0.238037f, -0.516113f,
+0.20459f, -0.477539f, 0.181885f, -0.431396f, 0.15918f, -0.385254f, 0.147705f, -0.333008f,
+0.13623f, -0.280762f, 0.13623f, -0.225098f, 0.13623f, -0.182617f, 0.144531f, -0.142822f,
+0.152832f, -0.103027f, 0.169678f, -0.0683594f, 0.186523f, -0.0336914f, 0.212158f,
+-0.00488281f, 0.237793f, 0.0239258f, 0.272461f, 0.0444336f, 0.307129f, 0.0649414f,
+0.351318f, 0.076416f, 0.395508f, 0.0878906f, 0.449219f, 0.0878906f, 0.491211f, 0.0878906f,
+0.530273f, 0.0820312f, 0.569336f, 0.0761719f, 0.605225f, 0.065918f, 0.641113f, 0.0556641f,
+0.674072f, 0.041748f, 0.707031f, 0.027832f, 0.736816f, 0.012207f, 0.76709f, 0.0717773f,
+0.737793f, 0.0883789f, 0.704102f, 0.104004f, 0.67041f, 0.119629f, 0.630859f, 0.131592f,
+0.591309f, 0.143555f, 0.54541f, 0.150879f, 0.499512f, 0.158203f, 0.445801f, 0.158203f,
+0.382324f, 0.158203f, 0.328613f, 0.144287f, 0.274902f, 0.130371f, 0.231689f, 0.105225f,
+0.188477f, 0.0800781f, 0.155762f, 0.0449219f, 0.123047f, 0.00976562f, 0.101074f,
+-0.0327148f, 0.0791016f, -0.0751953f, 0.0681152f, -0.124023f, 0.0571289f, -0.172852f,
+0.0571289f, -0.225098f, 0.0571289f, -0.292969f, 0.0725098f, -0.355469f, 0.0878906f,
+-0.417969f, 0.116943f, -0.47168f, 0.145996f, -0.525391f, 0.187744f, -0.569336f, 0.229492f,
+-0.613281f, 0.282471f, -0.644531f, 0.335449f, -0.675781f, 0.398682f, -0.692871f,
+0.461914f, -0.709961f, 0.533203f, -0.709961f, 0.632324f, -0.709961f, 0.704834f, -0.681152f,
+0.777344f, -0.652344f, 0.824463f, -0.603516f, 0.871582f, -0.554688f, 0.894287f, -0.490234f,
+0.916992f, -0.425781f, 0.916992f, -0.354004f, 0.601074f, -0.352051f, 0.601074f, -0.375f,
+0.593506f, -0.394287f, 0.585938f, -0.413574f, 0.572266f, -0.42749f, 0.558594f, -0.441406f,
+0.539551f, -0.449219f, 0.520508f, -0.457031f, 0.49707f, -0.457031f, 0.470215f, -0.457031f,
+0.447754f, -0.447021f, 0.425293f, -0.437012f, 0.407715f, -0.419922f, 0.390137f, -0.402832f,
+0.376953f, -0.380127f, 0.36377f, -0.357422f, 0.355225f, -0.331543f, 0.34668f, -0.305664f,
+0.342285f, -0.27832f, 0.337891f, -0.250977f, 0.337891f, -0.225098f, 0.337891f, -0.169434f,
+0.361572f, -0.137207f, 0.385254f, -0.10498f, 0.434082f, -0.10498f, 0.45752f, -0.10498f,
+0.480713f, -0.116211f, 0.503906f, -0.127441f, 0.524414f, -0.14917f, 0.544922f, -0.170898f,
+0.561768f, -0.202881f, 0.578613f, -0.234863f, 0.588867f, -0.275879f, 0.591309f, -0.284668f,
+0.593506f, -0.295166f, 0.595703f, -0.305664f, 0.597412f, -0.315918f, 0.599121f, -0.326172f,
+0.600098f, -0.335449f, 0.601074f, -0.344727f, 0.601074f, -0.352051f, 0.553223f, 0,
+0.492188f, -0.175781f, 0.22998f, -0.175781f, 0.168945f, 0, 0.0249023f, 0, 0.275879f,
+-0.687988f, 0.445801f, -0.687988f, 0.695801f, 0, 0.39209f, -0.481934f, 0.38623f,
+-0.499023f, 0.380615f, -0.516357f, 0.375f, -0.533691f, 0.37085f, -0.548096f, 0.366699f,
+-0.5625f, 0.364014f, -0.571777f, 0.361328f, -0.581055f, 0.36084f, -0.582031f, 0.360352f,
+-0.580566f, 0.35791f, -0.571289f, 0.355469f, -0.562012f, 0.351318f, -0.547852f, 0.347168f,
+-0.533691f, 0.341553f, -0.516357f, 0.335938f, -0.499023f, 0.330078f, -0.481934f,
+0.262207f, -0.28418f, 0.459961f, -0.28418f, 0.676758f, -0.196289f, 0.676758f, -0.144043f,
+0.655762f, -0.106689f, 0.634766f, -0.0693359f, 0.598389f, -0.0456543f, 0.562012f,
+-0.0219727f, 0.513672f, -0.0109863f, 0.465332f, 0, 0.411133f, 0, 0.0668945f, 0, 0.0668945f,
+-0.687988f, 0.381836f, -0.687988f, 0.442871f, -0.687988f, 0.490479f, -0.67749f, 0.538086f,
+-0.666992f, 0.570801f, -0.645508f, 0.603516f, -0.624023f, 0.620361f, -0.591553f,
+0.637207f, -0.559082f, 0.637207f, -0.515137f, 0.637207f, -0.456543f, 0.604736f, -0.41626f,
+0.572266f, -0.375977f, 0.505859f, -0.361816f, 0.589355f, -0.352051f, 0.633057f, -0.309326f,
+0.676758f, -0.266602f, 0.676758f, -0.196289f, 0.492188f, -0.495605f, 0.492188f, -0.541992f,
+0.462646f, -0.561523f, 0.433105f, -0.581055f, 0.375f, -0.581055f, 0.210938f, -0.581055f,
+0.210938f, -0.410645f, 0.375977f, -0.410645f, 0.437012f, -0.410645f, 0.4646f, -0.431885f,
+0.492188f, -0.453125f, 0.492188f, -0.495605f, 0.532227f, -0.20752f, 0.532227f, -0.234863f,
+0.521484f, -0.253418f, 0.510742f, -0.271973f, 0.491943f, -0.283203f, 0.473145f, -0.294434f,
+0.447998f, -0.299316f, 0.422852f, -0.304199f, 0.393555f, -0.304199f, 0.210938f, -0.304199f,
+0.210938f, -0.106934f, 0.398926f, -0.106934f, 0.427246f, -0.106934f, 0.45166f, -0.111572f,
+0.476074f, -0.116211f, 0.493896f, -0.127686f, 0.511719f, -0.13916f, 0.521973f, -0.158691f,
+0.532227f, -0.178223f, 0.532227f, -0.20752f, 0.388184f, -0.103516f, 0.428711f, -0.103516f,
+0.458252f, -0.11499f, 0.487793f, -0.126465f, 0.509521f, -0.14502f, 0.53125f, -0.163574f,
+0.545654f, -0.187012f, 0.560059f, -0.210449f, 0.569336f, -0.234375f, 0.694824f, -0.187012f,
+0.679688f, -0.149902f, 0.655273f, -0.114258f, 0.630859f, -0.0786133f, 0.594238f,
+-0.0512695f, 0.557617f, -0.0239258f, 0.50708f, -0.00708008f, 0.456543f, 0.00976562f,
+0.388184f, 0.00976562f, 0.298828f, 0.00976562f, 0.233398f, -0.0168457f, 0.167969f,
+-0.043457f, 0.125244f, -0.0910645f, 0.0825195f, -0.138672f, 0.0617676f, -0.204102f,
+0.0410156f, -0.269531f, 0.0410156f, -0.347168f, 0.0410156f, -0.427734f, 0.0617676f,
+-0.492676f, 0.0825195f, -0.557617f, 0.124512f, -0.603271f, 0.166504f, -0.648926f,
+0.230713f, -0.673584f, 0.294922f, -0.698242f, 0.381836f, -0.698242f, 0.449219f, -0.698242f,
+0.499756f, -0.684082f, 0.550293f, -0.669922f, 0.587158f, -0.644287f, 0.624023f, -0.618652f,
+0.648193f, -0.58374f, 0.672363f, -0.548828f, 0.686035f, -0.506836f, 0.559082f, -0.472168f,
+0.552246f, -0.494141f, 0.538086f, -0.514404f, 0.523926f, -0.534668f, 0.502197f, -0.550293f,
+0.480469f, -0.565918f, 0.451172f, -0.575439f, 0.421875f, -0.584961f, 0.384766f, -0.584961f,
+0.33252f, -0.584961f, 0.294922f, -0.568115f, 0.257324f, -0.55127f, 0.233154f, -0.52002f,
+0.208984f, -0.48877f, 0.19751f, -0.445068f, 0.186035f, -0.401367f, 0.186035f, -0.347168f,
+0.186035f, -0.293457f, 0.19751f, -0.248779f, 0.208984f, -0.204102f, 0.233398f, -0.171875f,
+0.257812f, -0.139648f, 0.296143f, -0.121582f, 0.334473f, -0.103516f, 0.388184f, -0.103516f,
+0.680176f, -0.349121f, 0.680176f, -0.263184f, 0.654297f, -0.197998f, 0.628418f, -0.132812f,
+0.583496f, -0.0888672f, 0.538574f, -0.0449219f, 0.477295f, -0.0224609f, 0.416016f,
+0, 0.345215f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.315918f, -0.687988f, 0.395996f,
+-0.687988f, 0.462891f, -0.667969f, 0.529785f, -0.647949f, 0.578125f, -0.606445f,
+0.626465f, -0.564941f, 0.65332f, -0.500977f, 0.680176f, -0.437012f, 0.680176f, -0.349121f,
+0.535156f, -0.349121f, 0.535156f, -0.40918f, 0.518799f, -0.452148f, 0.502441f, -0.495117f,
+0.473145f, -0.522705f, 0.443848f, -0.550293f, 0.403076f, -0.563477f, 0.362305f, -0.57666f,
+0.312988f, -0.57666f, 0.210938f, -0.57666f, 0.210938f, -0.111328f, 0.333008f, -0.111328f,
+0.376465f, -0.111328f, 0.41333f, -0.126465f, 0.450195f, -0.141602f, 0.477295f, -0.171631f,
+0.504395f, -0.20166f, 0.519775f, -0.246094f, 0.535156f, -0.290527f, 0.535156f, -0.349121f,
+0.0668945f, 0, 0.0668945f, -0.687988f, 0.60791f, -0.687988f, 0.60791f, -0.57666f,
+0.210938f, -0.57666f, 0.210938f, -0.403809f, 0.578125f, -0.403809f, 0.578125f, -0.29248f,
+0.210938f, -0.29248f, 0.210938f, -0.111328f, 0.62793f, -0.111328f, 0.62793f, 0, 0.210938f,
+-0.57666f, 0.210938f, -0.36377f, 0.562988f, -0.36377f, 0.562988f, -0.252441f, 0.210938f,
+-0.252441f, 0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.574219f, -0.687988f,
+0.574219f, -0.57666f, 0.393555f, -0.103027f, 0.424805f, -0.103027f, 0.453613f, -0.10791f,
+0.482422f, -0.112793f, 0.50708f, -0.12085f, 0.531738f, -0.128906f, 0.551514f, -0.139404f,
+0.571289f, -0.149902f, 0.583984f, -0.161133f, 0.583984f, -0.256348f, 0.416016f, -0.256348f,
+0.416016f, -0.362793f, 0.71582f, -0.362793f, 0.71582f, -0.109863f, 0.692383f, -0.0859375f,
+0.65918f, -0.064209f, 0.625977f, -0.0424805f, 0.584473f, -0.026123f, 0.542969f, -0.00976562f,
+0.493896f, 0, 0.444824f, 0.00976562f, 0.389648f, 0.00976562f, 0.29834f, 0.00976562f,
+0.232422f, -0.0168457f, 0.166504f, -0.043457f, 0.124023f, -0.0910645f, 0.081543f,
+-0.138672f, 0.0612793f, -0.204102f, 0.0410156f, -0.269531f, 0.0410156f, -0.347168f,
+0.0410156f, -0.427734f, 0.0625f, -0.492676f, 0.0839844f, -0.557617f, 0.127686f, -0.603271f,
+0.171387f, -0.648926f, 0.237549f, -0.673584f, 0.303711f, -0.698242f, 0.393066f, -0.698242f,
+0.458008f, -0.698242f, 0.508545f, -0.685547f, 0.559082f, -0.672852f, 0.596924f, -0.649414f,
+0.634766f, -0.625977f, 0.6604f, -0.593018f, 0.686035f, -0.560059f, 0.701172f, -0.519043f,
+0.568359f, -0.479004f, 0.55957f, -0.500488f, 0.544922f, -0.519775f, 0.530273f, -0.539062f,
+0.508545f, -0.553467f, 0.486816f, -0.567871f, 0.458252f, -0.576416f, 0.429688f, -0.584961f,
+0.393066f, -0.584961f, 0.339355f, -0.584961f, 0.300293f, -0.568115f, 0.26123f, -0.55127f,
+0.23584f, -0.52002f, 0.210449f, -0.48877f, 0.198242f, -0.445068f, 0.186035f, -0.401367f,
+0.186035f, -0.347168f, 0.186035f, -0.293457f, 0.198486f, -0.248535f, 0.210938f, -0.203613f,
+0.236572f, -0.171387f, 0.262207f, -0.13916f, 0.30127f, -0.121094f, 0.340332f, -0.103027f,
+0.393555f, -0.103027f, 0.516113f, 0, 0.516113f, -0.294922f, 0.210938f, -0.294922f,
+0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f, 0.210938f,
+-0.414062f, 0.516113f, -0.414062f, 0.516113f, -0.687988f, 0.654785f, -0.687988f,
+0.654785f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f, 0.210938f,
+0, 0.255859f, 0.00976562f, 0.204102f, 0.00976562f, 0.163574f, -0.000976562f, 0.123047f,
+-0.0117188f, 0.0932617f, -0.0351562f, 0.0634766f, -0.0585938f, 0.0441895f, -0.0959473f,
+0.0249023f, -0.133301f, 0.0151367f, -0.186523f, 0.158203f, -0.20752f, 0.163086f,
+-0.178711f, 0.171875f, -0.158936f, 0.180664f, -0.13916f, 0.193115f, -0.126709f, 0.205566f,
+-0.114258f, 0.22168f, -0.108643f, 0.237793f, -0.103027f, 0.256836f, -0.103027f, 0.299805f,
+-0.103027f, 0.322021f, -0.131836f, 0.344238f, -0.160645f, 0.344238f, -0.214355f,
+0.344238f, -0.575195f, 0.207031f, -0.575195f, 0.207031f, -0.687988f, 0.487793f, -0.687988f,
+0.487793f, -0.217773f, 0.487793f, -0.165527f, 0.472656f, -0.123291f, 0.45752f, -0.0810547f,
+0.427979f, -0.0515137f, 0.398438f, -0.0219727f, 0.355225f, -0.00610352f, 0.312012f,
+0.00976562f, 0.255859f, 0.00976562f, 0.542969f, 0, 0.295898f, -0.315918f, 0.210938f,
+-0.250977f, 0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f,
+0.210938f, -0.375977f, 0.520996f, -0.687988f, 0.688965f, -0.687988f, 0.39502f, -0.396973f,
+0.712891f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.210938f, -0.687988f, 0.210938f,
+-0.111328f, 0.580078f, -0.111328f, 0.580078f, 0, 0.638184f, 0, 0.638184f, -0.416992f,
+0.638184f, -0.441895f, 0.638916f, -0.468262f, 0.639648f, -0.494629f, 0.640625f, -0.516602f,
+0.64209f, -0.54248f, 0.643066f, -0.566895f, 0.632812f, -0.52832f, 0.623535f, -0.493652f,
+0.619629f, -0.479004f, 0.615234f, -0.463379f, 0.61084f, -0.447754f, 0.606689f, -0.433105f,
+0.602539f, -0.418457f, 0.598633f, -0.405762f, 0.594727f, -0.393066f, 0.591797f, -0.383789f,
+0.467773f, 0, 0.365234f, 0, 0.241211f, -0.383789f, 0.238281f, -0.393066f, 0.234619f,
+-0.405762f, 0.230957f, -0.418457f, 0.226807f, -0.433105f, 0.222656f, -0.447754f,
+0.218262f, -0.463379f, 0.213867f, -0.479004f, 0.209473f, -0.493652f, 0.199707f, -0.52832f,
+0.188965f, -0.566895f, 0.19043f, -0.538574f, 0.191895f, -0.51123f, 0.192871f, -0.487793f,
+0.193848f, -0.461914f, 0.194824f, -0.436035f, 0.194824f, -0.416992f, 0.194824f, 0,
+0.0668945f, 0, 0.0668945f, -0.687988f, 0.259766f, -0.687988f, 0.382812f, -0.303223f,
+0.387695f, -0.288086f, 0.393311f, -0.266113f, 0.398926f, -0.244141f, 0.404297f, -0.223633f,
+0.410156f, -0.199707f, 0.416992f, -0.173828f, 0.423828f, -0.199219f, 0.430176f, -0.222656f,
+0.433105f, -0.23291f, 0.436035f, -0.243652f, 0.438965f, -0.254395f, 0.441895f, -0.264648f,
+0.444824f, -0.274902f, 0.447754f, -0.28418f, 0.450684f, -0.293457f, 0.453125f, -0.300781f,
+0.574219f, -0.687988f, 0.766113f, -0.687988f, 0.766113f, 0, 0.48584f, 0, 0.186035f,
+-0.529785f, 0.188477f, -0.508301f, 0.19043f, -0.486816f, 0.192383f, -0.468262f, 0.193604f,
+-0.446777f, 0.194824f, -0.425293f, 0.194824f, -0.405762f, 0.194824f, 0, 0.0668945f,
+0, 0.0668945f, -0.687988f, 0.231445f, -0.687988f, 0.535645f, -0.153809f, 0.533203f,
+-0.174316f, 0.53125f, -0.196777f, 0.529297f, -0.21582f, 0.528076f, -0.239746f, 0.526855f,
+-0.263672f, 0.526855f, -0.288086f, 0.526855f, -0.687988f, 0.654785f, -0.687988f,
+0.654785f, 0, 0.73584f, -0.347168f, 0.73584f, -0.266602f, 0.711914f, -0.200684f,
+0.687988f, -0.134766f, 0.643066f, -0.0878906f, 0.598145f, -0.0410156f, 0.533447f,
+-0.015625f, 0.46875f, 0.00976562f, 0.387207f, 0.00976562f, 0.300781f, 0.00976562f,
+0.236084f, -0.0168457f, 0.171387f, -0.043457f, 0.12793f, -0.0910645f, 0.0844727f,
+-0.138672f, 0.0627441f, -0.204102f, 0.0410156f, -0.269531f, 0.0410156f, -0.347168f,
+0.0410156f, -0.427734f, 0.0637207f, -0.492676f, 0.0864258f, -0.557617f, 0.130615f,
+-0.603271f, 0.174805f, -0.648926f, 0.239502f, -0.673584f, 0.304199f, -0.698242f,
+0.388184f, -0.698242f, 0.472168f, -0.698242f, 0.536865f, -0.67334f, 0.601562f, -0.648438f,
+0.645752f, -0.602539f, 0.689941f, -0.556641f, 0.712891f, -0.491943f, 0.73584f, -0.427246f,
+0.73584f, -0.347168f, 0.588867f, -0.347168f, 0.588867f, -0.401367f, 0.575928f, -0.445068f,
+0.562988f, -0.48877f, 0.537598f, -0.52002f, 0.512207f, -0.55127f, 0.474854f, -0.568115f,
+0.4375f, -0.584961f, 0.388184f, -0.584961f, 0.337891f, -0.584961f, 0.300049f, -0.568115f,
+0.262207f, -0.55127f, 0.236816f, -0.52002f, 0.211426f, -0.48877f, 0.19873f, -0.445068f,
+0.186035f, -0.401367f, 0.186035f, -0.347168f, 0.186035f, -0.293457f, 0.198975f, -0.248779f,
+0.211914f, -0.204102f, 0.237305f, -0.171875f, 0.262695f, -0.139648f, 0.300293f, -0.121582f,
+0.337891f, -0.103516f, 0.387207f, -0.103516f, 0.439941f, -0.103516f, 0.478027f, -0.121826f,
+0.516113f, -0.140137f, 0.540771f, -0.172607f, 0.56543f, -0.205078f, 0.577148f, -0.249756f,
+0.588867f, -0.294434f, 0.588867f, -0.347168f, 0.632812f, -0.470215f, 0.632812f, -0.425781f,
+0.61792f, -0.384521f, 0.603027f, -0.343262f, 0.572266f, -0.311523f, 0.541504f, -0.279785f,
+0.494141f, -0.260986f, 0.446777f, -0.242188f, 0.381836f, -0.242188f, 0.210938f, -0.242188f,
+0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.375977f, -0.687988f, 0.441895f,
+-0.687988f, 0.490234f, -0.672119f, 0.538574f, -0.65625f, 0.570312f, -0.627441f, 0.602051f,
+-0.598633f, 0.617432f, -0.558594f, 0.632812f, -0.518555f, 0.632812f, -0.470215f,
+0.487793f, -0.467773f, 0.487793f, -0.520996f, 0.455811f, -0.548584f, 0.423828f, -0.576172f,
+0.359863f, -0.576172f, 0.210938f, -0.576172f, 0.210938f, -0.353027f, 0.36377f, -0.353027f,
+0.395996f, -0.353027f, 0.419189f, -0.361328f, 0.442383f, -0.369629f, 0.457764f, -0.384766f,
+0.473145f, -0.399902f, 0.480469f, -0.421143f, 0.487793f, -0.442383f, 0.487793f, -0.467773f,
+0.73584f, -0.347168f, 0.73584f, -0.27832f, 0.718506f, -0.220459f, 0.701172f, -0.162598f,
+0.668213f, -0.11792f, 0.635254f, -0.0732422f, 0.587891f, -0.0437012f, 0.540527f,
+-0.0141602f, 0.47998f, -0.00195312f, 0.489746f, 0.0263672f, 0.50293f, 0.0441895f,
+0.516113f, 0.0620117f, 0.532715f, 0.0720215f, 0.549316f, 0.0820312f, 0.568848f, 0.0856934f,
+0.588379f, 0.0893555f, 0.61084f, 0.0893555f, 0.625f, 0.0893555f, 0.639648f, 0.0881348f,
+0.654297f, 0.0869141f, 0.668945f, 0.0844727f, 0.667969f, 0.183105f, 0.641602f, 0.188965f,
+0.612793f, 0.192871f, 0.583984f, 0.196777f, 0.549805f, 0.196777f, 0.503418f, 0.196777f,
+0.46875f, 0.182861f, 0.434082f, 0.168945f, 0.408447f, 0.143799f, 0.382812f, 0.118652f,
+0.36499f, 0.083252f, 0.347168f, 0.0478516f, 0.333984f, 0.00488281f, 0.260742f, -0.00195312f,
+0.205811f, -0.0307617f, 0.150879f, -0.0595703f, 0.114258f, -0.105957f, 0.0776367f,
+-0.152344f, 0.0593262f, -0.213867f, 0.0410156f, -0.275391f, 0.0410156f, -0.347168f,
+0.0410156f, -0.427734f, 0.0637207f, -0.492676f, 0.0864258f, -0.557617f, 0.130615f,
+-0.603271f, 0.174805f, -0.648926f, 0.239502f, -0.673584f, 0.304199f, -0.698242f,
+0.388184f, -0.698242f, 0.472168f, -0.698242f, 0.536865f, -0.67334f, 0.601562f, -0.648438f,
+0.645752f, -0.602539f, 0.689941f, -0.556641f, 0.712891f, -0.491943f, 0.73584f, -0.427246f,
+0.73584f, -0.347168f, 0.588867f, -0.347168f, 0.588867f, -0.401367f, 0.575928f, -0.445068f,
+0.562988f, -0.48877f, 0.537598f, -0.52002f, 0.512207f, -0.55127f, 0.474854f, -0.568115f,
+0.4375f, -0.584961f, 0.388184f, -0.584961f, 0.337891f, -0.584961f, 0.300049f, -0.568115f,
+0.262207f, -0.55127f, 0.236816f, -0.52002f, 0.211426f, -0.48877f, 0.19873f, -0.445068f,
+0.186035f, -0.401367f, 0.186035f, -0.347168f, 0.186035f, -0.293457f, 0.198975f, -0.248535f,
+0.211914f, -0.203613f, 0.237305f, -0.171387f, 0.262695f, -0.13916f, 0.300293f, -0.121094f,
+0.337891f, -0.103027f, 0.387207f, -0.103027f, 0.439941f, -0.103027f, 0.478027f, -0.121338f,
+0.516113f, -0.139648f, 0.540771f, -0.172119f, 0.56543f, -0.20459f, 0.577148f, -0.249512f,
+0.588867f, -0.294434f, 0.588867f, -0.347168f, 0.539551f, 0, 0.379883f, -0.26123f,
+0.210938f, -0.26123f, 0.210938f, 0, 0.0668945f, 0, 0.0668945f, -0.687988f, 0.410645f,
+-0.687988f, 0.475098f, -0.687988f, 0.523193f, -0.673584f, 0.571289f, -0.65918f, 0.603516f,
+-0.632568f, 0.635742f, -0.605957f, 0.651611f, -0.568115f, 0.66748f, -0.530273f, 0.66748f,
+-0.48291f, 0.66748f, -0.444336f, 0.656006f, -0.412354f, 0.644531f, -0.380371f, 0.624268f,
+-0.355469f, 0.604004f, -0.330566f, 0.576172f, -0.313721f, 0.54834f, -0.296875f, 0.515625f,
+-0.289062f, 0.70166f, 0, 0.522461f, -0.477051f, 0.522461f, -0.527344f, 0.489502f,
+-0.551758f, 0.456543f, -0.576172f, 0.395508f, -0.576172f, 0.210938f, -0.576172f,
+0.210938f, -0.373047f, 0.399414f, -0.373047f, 0.431641f, -0.373047f, 0.454834f, -0.380615f,
+0.478027f, -0.388184f, 0.49292f, -0.4021f, 0.507812f, -0.416016f, 0.515137f, -0.435059f,
+0.522461f, -0.454102f, 0.522461f, -0.477051f, 0.62793f, -0.198242f, 0.62793f, -0.151367f,
+0.61084f, -0.113037f, 0.59375f, -0.074707f, 0.557861f, -0.0473633f, 0.521973f, -0.0200195f,
+0.466064f, -0.00512695f, 0.410156f, 0.00976562f, 0.333008f, 0.00976562f, 0.264648f,
+0.00976562f, 0.212402f, -0.00244141f, 0.160156f, -0.0146484f, 0.122803f, -0.0385742f,
+0.0854492f, -0.0625f, 0.0622559f, -0.0979004f, 0.0390625f, -0.133301f, 0.0288086f,
+-0.179199f, 0.167969f, -0.202148f, 0.173828f, -0.179199f, 0.185059f, -0.160156f,
+0.196289f, -0.141113f, 0.216064f, -0.127197f, 0.23584f, -0.113281f, 0.265381f, -0.105713f,
+0.294922f, -0.0981445f, 0.336914f, -0.0981445f, 0.410156f, -0.0981445f, 0.448975f,
+-0.120361f, 0.487793f, -0.142578f, 0.487793f, -0.189941f, 0.487793f, -0.218262f,
+0.472168f, -0.236328f, 0.456543f, -0.254395f, 0.430664f, -0.266113f, 0.404785f, -0.277832f,
+0.371094f, -0.285645f, 0.337402f, -0.293457f, 0.300781f, -0.300781f, 0.271484f, -0.307617f,
+0.242188f, -0.314941f, 0.212891f, -0.322266f, 0.186279f, -0.33252f, 0.159668f, -0.342773f,
+0.136719f, -0.356934f, 0.11377f, -0.371094f, 0.0969238f, -0.391846f, 0.0800781f,
+-0.412598f, 0.0705566f, -0.44043f, 0.0610352f, -0.468262f, 0.0610352f, -0.505859f,
+0.0610352f, -0.557129f, 0.081543f, -0.59375f, 0.102051f, -0.630371f, 0.138428f, -0.653564f,
+0.174805f, -0.676758f, 0.225098f, -0.6875f, 0.275391f, -0.698242f, 0.334961f, -0.698242f,
+0.402344f, -0.698242f, 0.450439f, -0.687744f, 0.498535f, -0.677246f, 0.531006f, -0.655762f,
+0.563477f, -0.634277f, 0.582275f, -0.601807f, 0.601074f, -0.569336f, 0.609863f, -0.525879f,
+0.470215f, -0.506836f, 0.459473f, -0.55127f, 0.426514f, -0.57373f, 0.393555f, -0.596191f,
+0.332031f, -0.596191f, 0.293945f, -0.596191f, 0.268799f, -0.5896f, 0.243652f, -0.583008f,
+0.22876f, -0.571777f, 0.213867f, -0.560547f, 0.20752f, -0.545654f, 0.201172f, -0.530762f,
+0.201172f, -0.51416f, 0.201172f, -0.48877f, 0.213379f, -0.472412f, 0.225586f, -0.456055f,
+0.247559f, -0.445068f, 0.269531f, -0.434082f, 0.300049f, -0.426514f, 0.330566f, -0.418945f,
+0.367188f, -0.411133f, 0.399414f, -0.404297f, 0.431152f, -0.396729f, 0.462891f, -0.38916f,
+0.491699f, -0.378906f, 0.520508f, -0.368652f, 0.54541f, -0.354004f, 0.570312f, -0.339355f,
+0.588623f, -0.318115f, 0.606934f, -0.296875f, 0.617432f, -0.267578f, 0.62793f, -0.238281f,
+0.62793f, -0.198242f, 0.377441f, -0.57666f, 0.377441f, 0, 0.233398f, 0, 0.233398f,
+-0.57666f, 0.0112305f, -0.57666f, 0.0112305f, -0.687988f, 0.600098f, -0.687988f,
+0.600098f, -0.57666f, 0.353027f, 0.00976562f, 0.288574f, 0.00976562f, 0.234863f,
+-0.00561523f, 0.181152f, -0.0209961f, 0.142334f, -0.0534668f, 0.103516f, -0.0859375f,
+0.0817871f, -0.136719f, 0.0600586f, -0.1875f, 0.0600586f, -0.257812f, 0.0600586f,
+-0.687988f, 0.204102f, -0.687988f, 0.204102f, -0.269043f, 0.204102f, -0.225586f,
+0.214844f, -0.194092f, 0.225586f, -0.162598f, 0.245605f, -0.142334f, 0.265625f, -0.12207f,
+0.293945f, -0.112549f, 0.322266f, -0.103027f, 0.356934f, -0.103027f, 0.39209f, -0.103027f,
+0.421631f, -0.113037f, 0.451172f, -0.123047f, 0.472412f, -0.144043f, 0.493652f, -0.165039f,
+0.505371f, -0.197266f, 0.51709f, -0.229492f, 0.51709f, -0.273926f, 0.51709f, -0.687988f,
+0.661133f, -0.687988f, 0.661133f, -0.265137f, 0.661133f, -0.194336f, 0.638184f, -0.142578f,
+0.615234f, -0.0908203f, 0.574219f, -0.0568848f, 0.533203f, -0.0229492f, 0.476807f,
+-0.0065918f, 0.42041f, 0.00976562f, 0.353027f, 0.00976562f, 0.407227f, 0, 0.26123f,
+0, 0.00683594f, -0.687988f, 0.157227f, -0.687988f, 0.298828f, -0.246094f, 0.305664f,
+-0.224121f, 0.312012f, -0.201172f, 0.318359f, -0.178223f, 0.32373f, -0.15918f, 0.32959f,
+-0.136719f, 0.334961f, -0.116211f, 0.339844f, -0.13623f, 0.345215f, -0.158203f, 0.350098f,
+-0.176758f, 0.356689f, -0.199951f, 0.363281f, -0.223145f, 0.370117f, -0.246094f,
+0.51123f, -0.687988f, 0.660156f, -0.687988f, 0.765137f, 0, 0.594238f, 0, 0.500977f,
+-0.397949f, 0.496582f, -0.416016f, 0.491455f, -0.440918f, 0.486328f, -0.46582f, 0.481934f,
+-0.489258f, 0.476562f, -0.516113f, 0.472168f, -0.544922f, 0.466797f, -0.516113f,
+0.461426f, -0.48877f, 0.458984f, -0.477051f, 0.456543f, -0.4646f, 0.454102f, -0.452148f,
+0.451416f, -0.440186f, 0.44873f, -0.428223f, 0.446533f, -0.41748f, 0.444336f, -0.406738f,
+0.441895f, -0.397949f, 0.349121f, 0, 0.178223f, 0, 0.000976562f, -0.687988f, 0.146973f,
+-0.687988f, 0.23291f, -0.305176f, 0.240234f, -0.273926f, 0.246582f, -0.243652f, 0.25293f,
+-0.213379f, 0.258301f, -0.189453f, 0.26416f, -0.161621f, 0.269043f, -0.13623f, 0.276367f,
+-0.172363f, 0.283203f, -0.206543f, 0.286133f, -0.221191f, 0.289551f, -0.236816f,
+0.292969f, -0.252441f, 0.296143f, -0.267578f, 0.299316f, -0.282715f, 0.30249f, -0.296631f,
+0.305664f, -0.310547f, 0.308105f, -0.321777f, 0.393066f, -0.687988f, 0.554199f, -0.687988f,
+0.641113f, -0.321777f, 0.644043f, -0.310059f, 0.646973f, -0.295654f, 0.649902f, -0.28125f,
+0.652832f, -0.265869f, 0.655762f, -0.250488f, 0.658691f, -0.235107f, 0.661621f, -0.219727f,
+0.664062f, -0.205078f, 0.669922f, -0.170898f, 0.675781f, -0.13623f, 0.681641f, -0.163574f,
+0.687988f, -0.192871f, 0.693359f, -0.217773f, 0.700195f, -0.247559f, 0.707031f, -0.277344f,
+0.713867f, -0.305176f, 0.796875f, -0.687988f, 0.942871f, -0.687988f, 0.506836f, 0,
+0.333984f, -0.273926f, 0.161133f, 0, 0.00878906f, 0, 0.24707f, -0.361816f, 0.0288086f,
+-0.687988f, 0.181152f, -0.687988f, 0.333984f, -0.444824f, 0.486816f, -0.687988f,
+0.638184f, -0.687988f, 0.429199f, -0.361816f, 0.658203f, 0, 0.405762f, -0.282227f,
+0.405762f, 0, 0.262207f, 0, 0.262207f, -0.282227f, 0.0170898f, -0.687988f, 0.167969f,
+-0.687988f, 0.333008f, -0.396973f, 0.5f, -0.687988f, 0.650879f, -0.687988f, 0.582031f,
+0, 0.0297852f, 0, 0.0297852f, -0.102051f, 0.401855f, -0.575195f, 0.0668945f, -0.575195f,
+0.0668945f, -0.687988f, 0.562012f, -0.687988f, 0.562012f, -0.587891f, 0.189941f,
+-0.112793f, 0.582031f, -0.112793f, 0.0561523f, 0.20752f, 0.0561523f, -0.724609f,
+0.320801f, -0.724609f, 0.320801f, -0.631836f, 0.186035f, -0.631836f, 0.186035f, 0.114258f,
+0.320801f, 0.114258f, 0.320801f, 0.20752f, 0.149902f, 0.0200195f, 0.0102539f, -0.725098f,
+0.126465f, -0.725098f, 0.268555f, 0.0200195f, 0.012207f, 0.20752f, 0.012207f, 0.114258f,
+0.147949f, 0.114258f, 0.147949f, -0.631836f, 0.012207f, -0.631836f, 0.012207f, -0.724609f,
+0.276855f, -0.724609f, 0.276855f, 0.20752f, 0.450195f, -0.250977f, 0.291016f, -0.618164f,
+0.132812f, -0.250977f, 0.0219727f, -0.250977f, 0.212891f, -0.687988f, 0.370117f,
+-0.687988f, 0.562012f, -0.250977f, -0.00976562f, 0.12207f, -0.00976562f, 0.0839844f,
+0.564941f, 0.0839844f, 0.564941f, 0.12207f, 0.198242f, -0.577637f, 0.0322266f, -0.712402f,
+0.0322266f, -0.733398f, 0.158203f, -0.733398f, 0.280762f, -0.592773f, 0.280762f,
+-0.577637f, 0.191895f, 0.00976562f, 0.153809f, 0.00976562f, 0.123779f, -0.000732422f,
+0.09375f, -0.0112305f, 0.0727539f, -0.0314941f, 0.0517578f, -0.0517578f, 0.0405273f,
+-0.081543f, 0.0292969f, -0.111328f, 0.0292969f, -0.149414f, 0.0292969f, -0.196289f,
+0.0456543f, -0.228271f, 0.0620117f, -0.260254f, 0.090332f, -0.280029f, 0.118652f,
+-0.299805f, 0.156738f, -0.308838f, 0.194824f, -0.317871f, 0.237793f, -0.318359f,
+0.351562f, -0.320312f, 0.351562f, -0.347168f, 0.351562f, -0.375977f, 0.346436f, -0.395264f,
+0.341309f, -0.414551f, 0.331543f, -0.426758f, 0.321777f, -0.438965f, 0.307373f, -0.444092f,
+0.292969f, -0.449219f, 0.274414f, -0.449219f, 0.257324f, -0.449219f, 0.243896f, -0.445801f,
+0.230469f, -0.442383f, 0.220703f, -0.433838f, 0.210938f, -0.425293f, 0.204834f, -0.410889f,
+0.19873f, -0.396484f, 0.196289f, -0.374512f, 0.0532227f, -0.381348f, 0.059082f, -0.416016f,
+0.074707f, -0.44458f, 0.090332f, -0.473145f, 0.11792f, -0.494141f, 0.145508f, -0.515137f,
+0.185791f, -0.526611f, 0.226074f, -0.538086f, 0.280273f, -0.538086f, 0.32959f, -0.538086f,
+0.368164f, -0.525879f, 0.406738f, -0.513672f, 0.433594f, -0.489502f, 0.460449f, -0.465332f,
+0.474609f, -0.430176f, 0.48877f, -0.39502f, 0.48877f, -0.348633f, 0.48877f, -0.15625f,
+0.48877f, -0.137695f, 0.490479f, -0.123047f, 0.492188f, -0.108398f, 0.496826f, -0.0983887f,
+0.501465f, -0.0883789f, 0.51001f, -0.083252f, 0.518555f, -0.078125f, 0.532227f, -0.078125f,
+0.547852f, -0.078125f, 0.5625f, -0.0810547f, 0.5625f, -0.00683594f, 0.550293f, -0.00390625f,
+0.540527f, -0.00146484f, 0.530762f, 0.000976562f, 0.520996f, 0.00244141f, 0.51123f,
+0.00390625f, 0.500244f, 0.00488281f, 0.489258f, 0.00585938f, 0.474609f, 0.00585938f,
+0.422852f, 0.00585938f, 0.398193f, -0.0195312f, 0.373535f, -0.0449219f, 0.368652f,
+-0.0942383f, 0.365723f, -0.0942383f, 0.338379f, -0.0449219f, 0.295654f, -0.0175781f,
+0.25293f, 0.00976562f, 0.191895f, 0.00976562f, 0.351562f, -0.244629f, 0.28125f, -0.243652f,
+0.259277f, -0.242676f, 0.239502f, -0.23999f, 0.219727f, -0.237305f, 0.204834f, -0.22876f,
+0.189941f, -0.220215f, 0.181152f, -0.204102f, 0.172363f, -0.187988f, 0.172363f, -0.160156f,
+0.172363f, -0.122559f, 0.189697f, -0.104248f, 0.207031f, -0.0859375f, 0.23584f, -0.0859375f,
+0.262207f, -0.0859375f, 0.283691f, -0.097168f, 0.305176f, -0.108398f, 0.320068f,
+-0.126709f, 0.334961f, -0.14502f, 0.343262f, -0.168945f, 0.351562f, -0.192871f, 0.351562f,
+-0.217773f, 0.569824f, -0.266113f, 0.569824f, -0.206055f, 0.557861f, -0.155518f,
+0.545898f, -0.10498f, 0.520996f, -0.0681152f, 0.496094f, -0.03125f, 0.457764f, -0.0107422f,
+0.419434f, 0.00976562f, 0.367188f, 0.00976562f, 0.34375f, 0.00976562f, 0.320312f,
+0.00488281f, 0.296875f, 0, 0.275879f, -0.0112305f, 0.254883f, -0.0224609f, 0.237305f,
+-0.0405273f, 0.219727f, -0.0585938f, 0.207031f, -0.0849609f, 0.206055f, -0.0849609f,
+0.206055f, -0.074707f, 0.205322f, -0.0615234f, 0.20459f, -0.0483398f, 0.203613f,
+-0.0358887f, 0.202637f, -0.0234375f, 0.201416f, -0.0136719f, 0.200195f, -0.00390625f,
+0.199219f, 0, 0.065918f, 0, 0.0673828f, -0.0170898f, 0.0686035f, -0.048584f, 0.0698242f,
+-0.0800781f, 0.0698242f, -0.120605f, 0.0698242f, -0.724609f, 0.207031f, -0.724609f,
+0.207031f, -0.522461f, 0.207031f, -0.506836f, 0.206787f, -0.491943f, 0.206543f, -0.477051f,
+0.206055f, -0.464355f, 0.205566f, -0.449707f, 0.205078f, -0.436523f, 0.207031f, -0.436523f,
+0.231934f, -0.491211f, 0.275391f, -0.514648f, 0.318848f, -0.538086f, 0.375977f, -0.538086f,
+0.426758f, -0.538086f, 0.463379f, -0.517822f, 0.5f, -0.497559f, 0.523682f, -0.461182f,
+0.547363f, -0.424805f, 0.558594f, -0.375f, 0.569824f, -0.325195f, 0.569824f, -0.266113f,
+0.426758f, -0.266113f, 0.426758f, -0.355957f, 0.400391f, -0.399414f, 0.374023f, -0.442871f,
+0.318848f, -0.442871f, 0.297852f, -0.442871f, 0.277344f, -0.43457f, 0.256836f, -0.42627f,
+0.240723f, -0.405518f, 0.224609f, -0.384766f, 0.214844f, -0.349854f, 0.205078f, -0.314941f,
+0.205078f, -0.261719f, 0.205078f, -0.209961f, 0.214844f, -0.175781f, 0.224609f, -0.141602f,
+0.240234f, -0.121094f, 0.255859f, -0.100586f, 0.276367f, -0.0922852f, 0.296875f,
+-0.0839844f, 0.317871f, -0.0839844f, 0.370117f, -0.0839844f, 0.398438f, -0.127197f,
+0.426758f, -0.17041f, 0.426758f, -0.266113f, 0.290039f, 0.00976562f, 0.227051f, 0.00976562f,
+0.179932f, -0.00976562f, 0.132812f, -0.0292969f, 0.101562f, -0.0649414f, 0.0703125f,
+-0.100586f, 0.0546875f, -0.150635f, 0.0390625f, -0.200684f, 0.0390625f, -0.26123f,
+0.0390625f, -0.327148f, 0.0561523f, -0.378662f, 0.0732422f, -0.430176f, 0.105469f,
+-0.465576f, 0.137695f, -0.500977f, 0.184814f, -0.519531f, 0.231934f, -0.538086f,
+0.291992f, -0.538086f, 0.343262f, -0.538086f, 0.383057f, -0.524414f, 0.422852f, -0.510742f,
+0.45166f, -0.487061f, 0.480469f, -0.463379f, 0.498291f, -0.431152f, 0.516113f, -0.398926f,
+0.522949f, -0.361816f, 0.384766f, -0.35498f, 0.378906f, -0.395508f, 0.355469f, -0.419678f,
+0.332031f, -0.443848f, 0.289062f, -0.443848f, 0.233887f, -0.443848f, 0.208496f, -0.398438f,
+0.183105f, -0.353027f, 0.183105f, -0.266602f, 0.183105f, -0.0839844f, 0.291016f,
+-0.0839844f, 0.330078f, -0.0839844f, 0.356445f, -0.108643f, 0.382812f, -0.133301f,
+0.38916f, -0.182129f, 0.526855f, -0.175781f, 0.521973f, -0.13916f, 0.504639f, -0.105713f,
+0.487305f, -0.0722656f, 0.457764f, -0.0466309f, 0.428223f, -0.0209961f, 0.38623f,
+-0.00561523f, 0.344238f, 0.00976562f, 0.290039f, 0.00976562f, 0.412109f, 0, 0.411133f,
+-0.00390625f, 0.409912f, -0.013916f, 0.408691f, -0.0239258f, 0.407471f, -0.0366211f,
+0.40625f, -0.0493164f, 0.405518f, -0.0625f, 0.404785f, -0.0756836f, 0.404785f, -0.0859375f,
+0.402832f, -0.0859375f, 0.378906f, -0.034668f, 0.336182f, -0.0124512f, 0.293457f,
+0.00976562f, 0.233887f, 0.00976562f, 0.184082f, 0.00976562f, 0.147705f, -0.0107422f,
+0.111328f, -0.03125f, 0.0876465f, -0.0678711f, 0.0639648f, -0.104492f, 0.0524902f,
+-0.154541f, 0.0410156f, -0.20459f, 0.0410156f, -0.263672f, 0.0410156f, -0.32373f,
+0.0529785f, -0.374023f, 0.0649414f, -0.424316f, 0.0898438f, -0.460693f, 0.114746f,
+-0.49707f, 0.153076f, -0.517578f, 0.191406f, -0.538086f, 0.244141f, -0.538086f, 0.27002f,
+-0.538086f, 0.293945f, -0.532715f, 0.317871f, -0.527344f, 0.338379f, -0.516113f,
+0.358887f, -0.504883f, 0.375488f, -0.487305f, 0.39209f, -0.469727f, 0.403809f, -0.444824f,
+0.404785f, -0.444824f, 0.404785f, -0.449707f, 0.404541f, -0.459229f, 0.404297f, -0.46875f,
+0.404297f, -0.480957f, 0.404297f, -0.493164f, 0.404053f, -0.506348f, 0.403809f, -0.519531f,
+0.403809f, -0.531738f, 0.403809f, -0.724609f, 0.541016f, -0.724609f, 0.541016f, -0.115234f,
+0.541016f, -0.0766602f, 0.54248f, -0.0466309f, 0.543945f, -0.0166016f, 0.544922f,
+0, 0.405762f, -0.26709f, 0.405762f, -0.319336f, 0.395996f, -0.35376f, 0.38623f, -0.388184f,
+0.370361f, -0.408447f, 0.354492f, -0.428711f, 0.334229f, -0.436768f, 0.313965f, -0.444824f,
+0.292969f, -0.444824f, 0.266602f, -0.444824f, 0.246338f, -0.43457f, 0.226074f, -0.424316f,
+0.212158f, -0.402344f, 0.198242f, -0.380371f, 0.191162f, -0.346191f, 0.184082f, -0.312012f,
+0.184082f, -0.263672f, 0.184082f, -0.0839844f, 0.291992f, -0.0839844f, 0.3125f, -0.0839844f,
+0.333008f, -0.0927734f, 0.353516f, -0.101562f, 0.369629f, -0.122559f, 0.385742f,
+-0.143555f, 0.395752f, -0.178955f, 0.405762f, -0.214355f, 0.405762f, -0.26709f, 0.286133f,
+0.00976562f, 0.229004f, 0.00976562f, 0.18335f, -0.00708008f, 0.137695f, -0.0239258f,
+0.105469f, -0.0583496f, 0.0732422f, -0.0927734f, 0.0561523f, -0.144775f, 0.0390625f,
+-0.196777f, 0.0390625f, -0.266602f, 0.0390625f, -0.342285f, 0.0593262f, -0.394043f,
+0.0795898f, -0.445801f, 0.114014f, -0.477783f, 0.148438f, -0.509766f, 0.193359f,
+-0.523926f, 0.238281f, -0.538086f, 0.288086f, -0.538086f, 0.350586f, -0.538086f,
+0.394775f, -0.516357f, 0.438965f, -0.494629f, 0.467285f, -0.455566f, 0.495605f, -0.416504f,
+0.508789f, -0.362061f, 0.521973f, -0.307617f, 0.521973f, -0.241699f, 0.521973f, -0.237793f,
+0.183105f, -0.237793f, 0.183105f, -0.20459f, 0.188965f, -0.176025f, 0.194824f, -0.147461f,
+0.208008f, -0.126709f, 0.221191f, -0.105957f, 0.242188f, -0.0939941f, 0.263184f,
+-0.0820312f, 0.292969f, -0.0820312f, 0.329102f, -0.0820312f, 0.352051f, -0.0974121f,
+0.375f, -0.112793f, 0.384766f, -0.14502f, 0.51416f, -0.133789f, 0.505371f, -0.111328f,
+0.489502f, -0.0859375f, 0.473633f, -0.0605469f, 0.447266f, -0.0393066f, 0.420898f,
+-0.0180664f, 0.381592f, -0.00415039f, 0.342285f, 0.00976562f, 0.286133f, 0.00976562f,
+0.286133f, -0.45166f, 0.265137f, -0.45166f, 0.246826f, -0.44458f, 0.228516f, -0.4375f,
+0.215088f, -0.422119f, 0.20166f, -0.406738f, 0.193359f, -0.382324f, 0.185059f, -0.35791f,
+0.184082f, -0.32373f, 0.38916f, -0.32373f, 0.385254f, -0.387695f, 0.358398f, -0.419678f,
+0.331543f, -0.45166f, 0.286133f, -0.45166f, 0.230957f, -0.435547f, 0.230957f, 0,
+0.0942383f, 0, 0.0942383f, -0.435547f, 0.0170898f, -0.435547f, 0.0170898f, -0.52832f,
+0.0942383f, -0.52832f, 0.0942383f, -0.583496f, 0.0942383f, -0.61377f, 0.101562f,
+-0.639404f, 0.108887f, -0.665039f, 0.126465f, -0.684082f, 0.144043f, -0.703125f,
+0.173828f, -0.713867f, 0.203613f, -0.724609f, 0.248047f, -0.724609f, 0.271484f, -0.724609f,
+0.294189f, -0.722168f, 0.316895f, -0.719727f, 0.334961f, -0.716797f, 0.334961f, -0.628418f,
+0.326172f, -0.630371f, 0.315186f, -0.631592f, 0.304199f, -0.632812f, 0.294922f, -0.632812f,
+0.275879f, -0.632812f, 0.263428f, -0.628906f, 0.250977f, -0.625f, 0.243896f, -0.617188f,
+0.236816f, -0.609375f, 0.233887f, -0.597412f, 0.230957f, -0.585449f, 0.230957f, -0.569824f,
+0.230957f, -0.52832f, 0.334961f, -0.52832f, 0.334961f, -0.435547f, 0.291016f, 0.211914f,
+0.23877f, 0.211914f, 0.198975f, 0.201416f, 0.15918f, 0.190918f, 0.131104f, 0.172119f,
+0.103027f, 0.15332f, 0.0861816f, 0.127197f, 0.0693359f, 0.101074f, 0.0629883f, 0.0698242f,
+0.200195f, 0.0537109f, 0.20752f, 0.0854492f, 0.231689f, 0.103516f, 0.255859f, 0.121582f,
+0.294922f, 0.121582f, 0.319336f, 0.121582f, 0.3396f, 0.114746f, 0.359863f, 0.10791f,
+0.374268f, 0.0915527f, 0.388672f, 0.0751953f, 0.396729f, 0.0483398f, 0.404785f, 0.0214844f,
+0.404785f, -0.0180664f, 0.404785f, -0.0317383f, 0.404785f, -0.0458984f, 0.404785f,
+-0.0600586f, 0.405273f, -0.0717773f, 0.405762f, -0.0854492f, 0.405762f, -0.0981445f,
+0.404785f, -0.0981445f, 0.380859f, -0.046875f, 0.337646f, -0.0239258f, 0.294434f,
+-0.000976562f, 0.234863f, -0.000976562f, 0.18457f, -0.000976562f, 0.148193f, -0.020752f,
+0.111816f, -0.0405273f, 0.0878906f, -0.0759277f, 0.0639648f, -0.111328f, 0.0524902f,
+-0.1604f, 0.0410156f, -0.209473f, 0.0410156f, -0.268555f, 0.0410156f, -0.32959f,
+0.0532227f, -0.37915f, 0.0654297f, -0.428711f, 0.0905762f, -0.464355f, 0.115723f,
+-0.5f, 0.154053f, -0.519287f, 0.192383f, -0.538574f, 0.245117f, -0.538574f, 0.297852f,
+-0.538574f, 0.3396f, -0.516113f, 0.381348f, -0.493652f, 0.404785f, -0.443359f, 0.407227f,
+-0.443359f, 0.407227f, -0.453613f, 0.407959f, -0.467041f, 0.408691f, -0.480469f,
+0.409668f, -0.49292f, 0.410645f, -0.505371f, 0.411865f, -0.515137f, 0.413086f, -0.524902f,
+0.414062f, -0.52832f, 0.543945f, -0.52832f, 0.542969f, -0.510742f, 0.541992f, -0.479004f,
+0.541016f, -0.447266f, 0.541016f, -0.40625f, 0.541016f, -0.0161133f, 0.541016f, 0.0415039f,
+0.524414f, 0.0842285f, 0.507812f, 0.126953f, 0.47583f, 0.155273f, 0.443848f, 0.183594f,
+0.397217f, 0.197754f, 0.350586f, 0.211914f, 0.291016f, 0.211914f, 0.405762f, -0.271484f,
+0.405762f, -0.321289f, 0.395996f, -0.354492f, 0.38623f, -0.387695f, 0.370605f, -0.407715f,
+0.35498f, -0.427734f, 0.334717f, -0.436035f, 0.314453f, -0.444336f, 0.293945f, -0.444336f,
+0.267578f, -0.444336f, 0.247314f, -0.434082f, 0.227051f, -0.423828f, 0.212891f, -0.402344f,
+0.19873f, -0.380859f, 0.191406f, -0.347656f, 0.184082f, -0.314453f, 0.184082f, -0.268555f,
+0.184082f, -0.183105f, 0.211426f, -0.139648f, 0.23877f, -0.0961914f, 0.292969f, -0.0961914f,
+0.313477f, -0.0961914f, 0.33374f, -0.104248f, 0.354004f, -0.112305f, 0.370117f, -0.132568f,
+0.38623f, -0.152832f, 0.395996f, -0.186523f, 0.405762f, -0.220215f, 0.405762f, -0.271484f,
+0.205078f, -0.422852f, 0.23291f, -0.483398f, 0.274902f, -0.510742f, 0.316895f, -0.538086f,
+0.375f, -0.538086f, 0.422852f, -0.538086f, 0.455811f, -0.522461f, 0.48877f, -0.506836f,
+0.509521f, -0.479492f, 0.530273f, -0.452148f, 0.539551f, -0.415039f, 0.548828f, -0.37793f,
+0.548828f, -0.334961f, 0.548828f, 0, 0.412109f, 0, 0.412109f, -0.295898f, 0.412109f,
+-0.32666f, 0.407227f, -0.352295f, 0.402344f, -0.37793f, 0.391113f, -0.39624f, 0.379883f,
+-0.414551f, 0.361816f, -0.424805f, 0.34375f, -0.435059f, 0.317871f, -0.435059f, 0.292969f,
+-0.435059f, 0.272705f, -0.424072f, 0.252441f, -0.413086f, 0.237793f, -0.392822f,
+0.223145f, -0.372559f, 0.215088f, -0.344482f, 0.207031f, -0.316406f, 0.207031f, -0.282715f,
+0.207031f, 0, 0.0698242f, 0, 0.0698242f, -0.724609f, 0.207031f, -0.724609f, 0.207031f,
+-0.526855f, 0.207031f, -0.51123f, 0.206543f, -0.495361f, 0.206055f, -0.479492f, 0.205322f,
+-0.465576f, 0.20459f, -0.45166f, 0.204102f, -0.44043f, 0.203613f, -0.429199f, 0.203125f,
+-0.422852f, 0.0698242f, -0.623535f, 0.0698242f, -0.724609f, 0.207031f, -0.724609f,
+0.207031f, -0.623535f, 0.0698242f, 0, 0.0698242f, -0.52832f, 0.207031f, -0.52832f,
+0.207031f, 0, 0.0703125f, -0.623535f, 0.0703125f, -0.724609f, 0.20752f, -0.724609f,
+0.20752f, -0.623535f, 0.0673828f, 0.20752f, 0.0400391f, 0.20752f, 0.0197754f, 0.206299f,
+-0.000488281f, 0.205078f, -0.015625f, 0.203125f, -0.015625f, 0.106445f, -0.00927734f,
+0.107422f, -0.00292969f, 0.10791f, 0.00341797f, 0.108398f, 0.00927734f, 0.108398f,
+0.0283203f, 0.108398f, 0.0400391f, 0.104492f, 0.0517578f, 0.100586f, 0.0585938f,
+0.0913086f, 0.0654297f, 0.0820312f, 0.0678711f, 0.0668945f, 0.0703125f, 0.0517578f,
+0.0703125f, 0.0292969f, 0.0703125f, -0.52832f, 0.20752f, -0.52832f, 0.20752f, 0.0625f,
+0.20752f, 0.0942383f, 0.199707f, 0.120605f, 0.191895f, 0.146973f, 0.175049f, 0.166504f,
+0.158203f, 0.186035f, 0.131592f, 0.196777f, 0.10498f, 0.20752f, 0.0673828f, 0.20752f,
+0.407227f, 0, 0.266113f, -0.239258f, 0.207031f, -0.198242f, 0.207031f, 0, 0.0698242f,
+0, 0.0698242f, -0.724609f, 0.207031f, -0.724609f, 0.207031f, -0.30957f, 0.395508f,
+-0.52832f, 0.542969f, -0.52832f, 0.357422f, -0.322266f, 0.557129f, 0, 0.0698242f,
+0, 0.0698242f, -0.724609f, 0.207031f, -0.724609f, 0.207031f, 0, 0.380859f, 0, 0.380859f,
+-0.296387f, 0.380859f, -0.327148f, 0.376709f, -0.352783f, 0.372559f, -0.378418f,
+0.363037f, -0.396729f, 0.353516f, -0.415039f, 0.338135f, -0.425293f, 0.322754f, -0.435547f,
+0.300781f, -0.435547f, 0.279785f, -0.435547f, 0.262695f, -0.424561f, 0.245605f, -0.413574f,
+0.233154f, -0.393311f, 0.220703f, -0.373047f, 0.213867f, -0.344971f, 0.207031f, -0.316895f,
+0.207031f, -0.283203f, 0.207031f, 0, 0.0698242f, 0, 0.0698242f, -0.410156f, 0.0698242f,
+-0.427246f, 0.0695801f, -0.445312f, 0.0693359f, -0.463379f, 0.0686035f, -0.479736f,
+0.0678711f, -0.496094f, 0.0673828f, -0.509033f, 0.0668945f, -0.521973f, 0.065918f,
+-0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f, 0.19873f, -0.509521f, 0.199707f,
+-0.496582f, 0.200684f, -0.480957f, 0.20166f, -0.465332f, 0.202393f, -0.449707f, 0.203125f,
+-0.434082f, 0.203125f, -0.42334f, 0.205078f, -0.42334f, 0.230469f, -0.483887f, 0.268311f,
+-0.51123f, 0.306152f, -0.538574f, 0.358887f, -0.538574f, 0.419434f, -0.538574f, 0.456299f,
+-0.509033f, 0.493164f, -0.479492f, 0.505859f, -0.42334f, 0.508789f, -0.42334f, 0.522949f,
+-0.456055f, 0.539307f, -0.478027f, 0.555664f, -0.5f, 0.575439f, -0.513428f, 0.595215f,
+-0.526855f, 0.618408f, -0.532715f, 0.641602f, -0.538574f, 0.668945f, -0.538574f,
+0.712402f, -0.538574f, 0.742432f, -0.522949f, 0.772461f, -0.507324f, 0.79126f, -0.47998f,
+0.810059f, -0.452637f, 0.818604f, -0.415527f, 0.827148f, -0.378418f, 0.827148f, -0.335449f,
+0.827148f, 0, 0.690918f, 0, 0.690918f, -0.296387f, 0.690918f, -0.327148f, 0.686768f,
+-0.352783f, 0.682617f, -0.378418f, 0.673096f, -0.396729f, 0.663574f, -0.415039f,
+0.648193f, -0.425293f, 0.632812f, -0.435547f, 0.61084f, -0.435547f, 0.590332f, -0.435547f,
+0.573486f, -0.425049f, 0.556641f, -0.414551f, 0.544189f, -0.395264f, 0.531738f, -0.375977f,
+0.524902f, -0.349121f, 0.518066f, -0.322266f, 0.51709f, -0.289551f, 0.51709f, 0,
+0.412109f, 0, 0.412109f, -0.296387f, 0.412109f, -0.327148f, 0.407227f, -0.352783f,
+0.402344f, -0.378418f, 0.391113f, -0.396729f, 0.379883f, -0.415039f, 0.361816f, -0.425293f,
+0.34375f, -0.435547f, 0.317871f, -0.435547f, 0.292969f, -0.435547f, 0.272705f, -0.424561f,
+0.252441f, -0.413574f, 0.237793f, -0.393311f, 0.223145f, -0.373047f, 0.215088f, -0.344971f,
+0.207031f, -0.316895f, 0.207031f, -0.283203f, 0.207031f, 0, 0.0698242f, 0, 0.0698242f,
+-0.410156f, 0.0698242f, -0.427246f, 0.0695801f, -0.445312f, 0.0693359f, -0.463379f,
+0.0686035f, -0.479736f, 0.0678711f, -0.496094f, 0.0673828f, -0.509033f, 0.0668945f,
+-0.521973f, 0.065918f, -0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f, 0.19873f,
+-0.509521f, 0.199707f, -0.496582f, 0.200684f, -0.480957f, 0.20166f, -0.465332f, 0.202393f,
+-0.449707f, 0.203125f, -0.434082f, 0.203125f, -0.42334f, 0.205078f, -0.42334f, 0.23291f,
+-0.483887f, 0.274902f, -0.51123f, 0.316895f, -0.538574f, 0.375f, -0.538574f, 0.422852f,
+-0.538574f, 0.455811f, -0.522949f, 0.48877f, -0.507324f, 0.509521f, -0.47998f, 0.530273f,
+-0.452637f, 0.539551f, -0.415527f, 0.548828f, -0.378418f, 0.548828f, -0.335449f,
+0.548828f, 0, 0.571777f, -0.264648f, 0.571777f, -0.204102f, 0.554932f, -0.153809f,
+0.538086f, -0.103516f, 0.504395f, -0.0671387f, 0.470703f, -0.0307617f, 0.42041f,
+-0.010498f, 0.370117f, 0.00976562f, 0.303223f, 0.00976562f, 0.23877f, 0.00976562f,
+0.189453f, -0.0102539f, 0.140137f, -0.0302734f, 0.106689f, -0.0664062f, 0.0732422f,
+-0.102539f, 0.0561523f, -0.153076f, 0.0390625f, -0.203613f, 0.0390625f, -0.264648f,
+0.0390625f, -0.32373f, 0.0554199f, -0.373779f, 0.0717773f, -0.423828f, 0.10498f,
+-0.460449f, 0.138184f, -0.49707f, 0.188477f, -0.517578f, 0.23877f, -0.538086f, 0.306152f,
+-0.538086f, 0.377441f, -0.538086f, 0.427734f, -0.517578f, 0.478027f, -0.49707f, 0.51001f,
+-0.460693f, 0.541992f, -0.424316f, 0.556885f, -0.374268f, 0.571777f, -0.324219f,
+0.571777f, -0.264648f, 0.428223f, -0.264648f, 0.428223f, -0.358887f, 0.397461f, -0.401367f,
+0.366699f, -0.443848f, 0.308105f, -0.443848f, 0.247559f, -0.443848f, 0.215332f, -0.400879f,
+0.183105f, -0.35791f, 0.183105f, -0.264648f, 0.183105f, -0.217285f, 0.19165f, -0.183105f,
+0.200195f, -0.148926f, 0.21582f, -0.126953f, 0.231445f, -0.10498f, 0.253418f, -0.0944824f,
+0.275391f, -0.0839844f, 0.301758f, -0.0839844f, 0.332031f, -0.0839844f, 0.355713f,
+-0.0944824f, 0.379395f, -0.10498f, 0.395508f, -0.126953f, 0.411621f, -0.148926f,
+0.419922f, -0.183105f, 0.428223f, -0.217285f, 0.428223f, -0.264648f, 0.569824f, -0.266602f,
+0.569824f, -0.206543f, 0.557861f, -0.155762f, 0.545898f, -0.10498f, 0.520996f, -0.0683594f,
+0.496094f, -0.0317383f, 0.457764f, -0.0109863f, 0.419434f, 0.00976562f, 0.367188f,
+0.00976562f, 0.34375f, 0.00976562f, 0.320557f, 0.00488281f, 0.297363f, 0, 0.276367f,
+-0.0109863f, 0.255371f, -0.0219727f, 0.237549f, -0.0397949f, 0.219727f, -0.0576172f,
+0.207031f, -0.0839844f, 0.204102f, -0.0839844f, 0.20459f, -0.081543f, 0.205078f,
+-0.0717773f, 0.205566f, -0.0620117f, 0.206055f, -0.0490723f, 0.206543f, -0.0361328f,
+0.206787f, -0.0217285f, 0.207031f, -0.00732422f, 0.207031f, 0.00488281f, 0.207031f,
+0.20752f, 0.0698242f, 0.20752f, 0.0698242f, -0.406738f, 0.0698242f, -0.447266f, 0.0686035f,
+-0.479004f, 0.0673828f, -0.510742f, 0.065918f, -0.52832f, 0.199219f, -0.52832f, 0.200195f,
+-0.524902f, 0.201416f, -0.515137f, 0.202637f, -0.505371f, 0.203369f, -0.492676f,
+0.204102f, -0.47998f, 0.20459f, -0.466309f, 0.205078f, -0.452637f, 0.205078f, -0.442383f,
+0.207031f, -0.442383f, 0.231934f, -0.494629f, 0.275391f, -0.51709f, 0.318848f, -0.539551f,
+0.375977f, -0.539551f, 0.42627f, -0.539551f, 0.462891f, -0.519043f, 0.499512f, -0.498535f,
+0.523193f, -0.462402f, 0.546875f, -0.42627f, 0.55835f, -0.376221f, 0.569824f, -0.326172f,
+0.569824f, -0.266602f, 0.426758f, -0.266602f, 0.426758f, -0.356934f, 0.399414f, -0.400635f,
+0.37207f, -0.444336f, 0.317871f, -0.444336f, 0.297363f, -0.444336f, 0.2771f, -0.435791f,
+0.256836f, -0.427246f, 0.240967f, -0.406494f, 0.225098f, -0.385742f, 0.215088f, -0.35083f,
+0.205078f, -0.315918f, 0.205078f, -0.262695f, 0.205078f, -0.210938f, 0.214844f, -0.176514f,
+0.224609f, -0.14209f, 0.240479f, -0.121582f, 0.256348f, -0.101074f, 0.276367f, -0.0925293f,
+0.296387f, -0.0839844f, 0.316895f, -0.0839844f, 0.343262f, -0.0839844f, 0.36377f,
+-0.0944824f, 0.384277f, -0.10498f, 0.398193f, -0.127197f, 0.412109f, -0.149414f,
+0.419434f, -0.184082f, 0.426758f, -0.21875f, 0.426758f, -0.266602f, 0.0410156f, -0.263672f,
+0.0410156f, -0.32373f, 0.0532227f, -0.374268f, 0.0654297f, -0.424805f, 0.0905762f,
+-0.461182f, 0.115723f, -0.497559f, 0.154053f, -0.518066f, 0.192383f, -0.538574f,
+0.245117f, -0.538574f, 0.297852f, -0.538574f, 0.3396f, -0.516113f, 0.381348f, -0.493652f,
+0.404785f, -0.443359f, 0.404785f, -0.453613f, 0.405518f, -0.467041f, 0.40625f, -0.480469f,
+0.407471f, -0.49292f, 0.408691f, -0.505371f, 0.409912f, -0.515137f, 0.411133f, -0.524902f,
+0.412109f, -0.52832f, 0.543945f, -0.52832f, 0.542969f, -0.510742f, 0.541992f, -0.479004f,
+0.541016f, -0.447266f, 0.541016f, -0.406738f, 0.541016f, 0.20752f, 0.404785f, 0.20752f,
+0.404785f, -0.012207f, 0.404785f, -0.0258789f, 0.405273f, -0.0390625f, 0.405762f,
+-0.0522461f, 0.40625f, -0.0634766f, 0.406738f, -0.0761719f, 0.407227f, -0.0878906f,
+0.40625f, -0.0878906f, 0.382324f, -0.0366211f, 0.337891f, -0.0134277f, 0.293457f,
+0.00976562f, 0.233887f, 0.00976562f, 0.184082f, 0.00976562f, 0.147705f, -0.0107422f,
+0.111328f, -0.03125f, 0.0876465f, -0.0678711f, 0.0639648f, -0.104492f, 0.0524902f,
+-0.154541f, 0.0410156f, -0.20459f, 0.0410156f, -0.263672f, 0.405762f, -0.266602f,
+0.405762f, -0.319336f, 0.395996f, -0.353516f, 0.38623f, -0.387695f, 0.370605f, -0.407959f,
+0.35498f, -0.428223f, 0.334717f, -0.436279f, 0.314453f, -0.444336f, 0.293945f, -0.444336f,
+0.267578f, -0.444336f, 0.247314f, -0.434082f, 0.227051f, -0.423828f, 0.212891f, -0.401855f,
+0.19873f, -0.379883f, 0.191406f, -0.345703f, 0.184082f, -0.311523f, 0.184082f, -0.263672f,
+0.184082f, -0.0839844f, 0.292969f, -0.0839844f, 0.313477f, -0.0839844f, 0.33374f,
+-0.0927734f, 0.354004f, -0.101562f, 0.370117f, -0.122559f, 0.38623f, -0.143555f,
+0.395996f, -0.178711f, 0.405762f, -0.213867f, 0.405762f, -0.266602f, 0.0698242f,
+0, 0.0698242f, -0.404297f, 0.0698242f, -0.421387f, 0.0695801f, -0.44043f, 0.0693359f,
+-0.459473f, 0.0686035f, -0.476807f, 0.0678711f, -0.494141f, 0.0673828f, -0.508057f,
+0.0668945f, -0.521973f, 0.065918f, -0.52832f, 0.196777f, -0.52832f, 0.197754f, -0.522461f,
+0.19873f, -0.508057f, 0.199707f, -0.493652f, 0.200684f, -0.476562f, 0.20166f, -0.459473f,
+0.202393f, -0.442627f, 0.203125f, -0.425781f, 0.203125f, -0.415527f, 0.205078f, -0.415527f,
+0.215332f, -0.444336f, 0.225586f, -0.467041f, 0.23584f, -0.489746f, 0.249756f, -0.505615f,
+0.263672f, -0.521484f, 0.283203f, -0.530029f, 0.302734f, -0.538574f, 0.331543f, -0.538574f,
+0.34375f, -0.538574f, 0.355713f, -0.536377f, 0.367676f, -0.53418f, 0.374023f, -0.53125f,
+0.374023f, -0.416504f, 0.36084f, -0.419434f, 0.347412f, -0.421631f, 0.333984f, -0.423828f,
+0.31543f, -0.423828f, 0.26416f, -0.423828f, 0.235596f, -0.382324f, 0.207031f, -0.34082f,
+0.207031f, -0.259277f, 0.207031f, 0, 0.515137f, -0.154297f, 0.515137f, -0.116211f,
+0.499268f, -0.0859375f, 0.483398f, -0.0556641f, 0.453125f, -0.0344238f, 0.422852f,
+-0.0131836f, 0.378906f, -0.00170898f, 0.334961f, 0.00976562f, 0.278809f, 0.00976562f,
+0.228516f, 0.00976562f, 0.187988f, 0.00244141f, 0.147461f, -0.00488281f, 0.116943f,
+-0.0217285f, 0.0864258f, -0.0385742f, 0.065918f, -0.0654297f, 0.0454102f, -0.0922852f,
+0.0351562f, -0.131836f, 0.155762f, -0.149902f, 0.161621f, -0.12793f, 0.171875f, -0.114258f,
+0.182129f, -0.100586f, 0.197266f, -0.0932617f, 0.212402f, -0.0859375f, 0.232666f,
+-0.0834961f, 0.25293f, -0.0810547f, 0.278809f, -0.0810547f, 0.302246f, -0.0810547f,
+0.32251f, -0.0837402f, 0.342773f, -0.0864258f, 0.357666f, -0.0930176f, 0.372559f,
+-0.0996094f, 0.380859f, -0.111572f, 0.38916f, -0.123535f, 0.38916f, -0.141602f, 0.38916f,
+-0.162109f, 0.377197f, -0.174072f, 0.365234f, -0.186035f, 0.344482f, -0.193604f,
+0.32373f, -0.201172f, 0.295654f, -0.206787f, 0.267578f, -0.212402f, 0.23584f, -0.219727f,
+0.202637f, -0.227051f, 0.17041f, -0.237305f, 0.138184f, -0.247559f, 0.112793f, -0.265137f,
+0.0874023f, -0.282715f, 0.0717773f, -0.309814f, 0.0561523f, -0.336914f, 0.0561523f,
+-0.378418f, 0.0561523f, -0.416016f, 0.0708008f, -0.445557f, 0.0854492f, -0.475098f,
+0.11377f, -0.49585f, 0.14209f, -0.516602f, 0.183838f, -0.527588f, 0.225586f, -0.538574f,
+0.279785f, -0.538574f, 0.322754f, -0.538574f, 0.359863f, -0.530518f, 0.396973f, -0.522461f,
+0.42627f, -0.505127f, 0.455566f, -0.487793f, 0.475342f, -0.460938f, 0.495117f, -0.434082f,
+0.50293f, -0.395996f, 0.381348f, -0.383301f, 0.37793f, -0.402344f, 0.369141f, -0.414795f,
+0.360352f, -0.427246f, 0.347412f, -0.43457f, 0.334473f, -0.441895f, 0.317383f, -0.44458f,
+0.300293f, -0.447266f, 0.279785f, -0.447266f, 0.230957f, -0.447266f, 0.206543f, -0.434814f,
+0.182129f, -0.422363f, 0.182129f, -0.393066f, 0.182129f, -0.375f, 0.192139f, -0.364258f,
+0.202148f, -0.353516f, 0.220459f, -0.346436f, 0.23877f, -0.339355f, 0.263916f, -0.334229f,
+0.289062f, -0.329102f, 0.318848f, -0.321777f, 0.355469f, -0.313965f, 0.390869f, -0.303467f,
+0.42627f, -0.292969f, 0.453857f, -0.274658f, 0.481445f, -0.256348f, 0.498291f, -0.227539f,
+0.515137f, -0.19873f, 0.515137f, -0.154297f, 0.205078f, 0.00878906f, 0.144531f, 0.00878906f,
+0.111816f, -0.0241699f, 0.0791016f, -0.0571289f, 0.0791016f, -0.124023f, 0.0791016f,
+-0.435547f, 0.012207f, -0.435547f, 0.012207f, -0.52832f, 0.0859375f, -0.52832f, 0.128906f,
+-0.652344f, 0.214844f, -0.652344f, 0.214844f, -0.52832f, 0.314941f, -0.52832f, 0.314941f,
+-0.435547f, 0.214844f, -0.435547f, 0.214844f, -0.161133f, 0.214844f, -0.122559f,
+0.229492f, -0.104248f, 0.244141f, -0.0859375f, 0.274902f, -0.0859375f, 0.287598f,
+-0.0859375f, 0.297852f, -0.0878906f, 0.308105f, -0.0898438f, 0.320801f, -0.0927734f,
+0.320801f, -0.0078125f, 0.29541f, 0.000488281f, 0.26709f, 0.00463867f, 0.23877f,
+0.00878906f, 0.205078f, 0.00878906f, 0.199219f, -0.52832f, 0.199219f, -0.231934f,
+0.199219f, -0.201172f, 0.204102f, -0.175537f, 0.208984f, -0.149902f, 0.220215f, -0.131592f,
+0.231445f, -0.113281f, 0.249268f, -0.103027f, 0.26709f, -0.0927734f, 0.292969f, -0.0927734f,
+0.317871f, -0.0927734f, 0.338135f, -0.10376f, 0.358398f, -0.114746f, 0.373047f, -0.13501f,
+0.387695f, -0.155273f, 0.395752f, -0.18335f, 0.403809f, -0.211426f, 0.403809f, -0.245117f,
+0.403809f, -0.52832f, 0.541016f, -0.52832f, 0.541016f, -0.118164f, 0.541016f, -0.101562f,
+0.54126f, -0.083252f, 0.541504f, -0.0649414f, 0.542236f, -0.048584f, 0.542969f, -0.0322266f,
+0.543701f, -0.0192871f, 0.544434f, -0.00634766f, 0.544922f, 0, 0.414062f, 0, 0.413574f,
+-0.00585938f, 0.412354f, -0.0187988f, 0.411133f, -0.0317383f, 0.4104f, -0.0473633f,
+0.409668f, -0.0629883f, 0.408936f, -0.0786133f, 0.408203f, -0.0942383f, 0.408203f,
+-0.10498f, 0.405762f, -0.10498f, 0.378418f, -0.0449219f, 0.336182f, -0.0175781f,
+0.293945f, 0.00976562f, 0.23584f, 0.00976562f, 0.188477f, 0.00976562f, 0.155273f,
+-0.00585938f, 0.12207f, -0.0214844f, 0.101318f, -0.048584f, 0.0805664f, -0.0756836f,
+0.0712891f, -0.112793f, 0.0620117f, -0.149902f, 0.0620117f, -0.192871f, 0.0620117f,
+-0.52832f, 0.356934f, 0, 0.192871f, 0, 0.00390625f, -0.52832f, 0.148926f, -0.52832f,
+0.241211f, -0.23291f, 0.245605f, -0.218262f, 0.250488f, -0.201904f, 0.255371f, -0.185547f,
+0.259766f, -0.169434f, 0.26416f, -0.15332f, 0.268311f, -0.138184f, 0.272461f, -0.123047f,
+0.275879f, -0.11084f, 0.278809f, -0.122559f, 0.283203f, -0.137451f, 0.287598f, -0.152344f,
+0.292236f, -0.168457f, 0.296875f, -0.18457f, 0.302002f, -0.200684f, 0.307129f, -0.216797f,
+0.312012f, -0.231445f, 0.408203f, -0.52832f, 0.551758f, -0.52832f, 0.641113f, 0,
+0.496094f, 0, 0.412109f, -0.322266f, 0.408203f, -0.337402f, 0.404297f, -0.356201f,
+0.400391f, -0.375f, 0.396973f, -0.391602f, 0.38916f, -0.430664f, 0.384766f, -0.411133f,
+0.380371f, -0.391602f, 0.376465f, -0.375f, 0.37207f, -0.355957f, 0.367676f, -0.336914f,
+0.36377f, -0.321289f, 0.278809f, 0, 0.133789f, 0, -0.00292969f, -0.52832f, 0.125977f,
+-0.52832f, 0.192871f, -0.217773f, 0.195801f, -0.20459f, 0.199219f, -0.188232f, 0.202637f,
+-0.171875f, 0.205566f, -0.157715f, 0.208984f, -0.141113f, 0.212891f, -0.124512f,
+0.216309f, -0.143066f, 0.219727f, -0.160645f, 0.222656f, -0.175781f, 0.226074f, -0.191406f,
+0.229492f, -0.207031f, 0.231934f, -0.217773f, 0.314941f, -0.52832f, 0.461914f, -0.52832f,
+0.542969f, -0.217773f, 0.546387f, -0.205078f, 0.549805f, -0.188965f, 0.553223f, -0.172852f,
+0.556152f, -0.158691f, 0.55957f, -0.14209f, 0.562988f, -0.124512f, 0.566895f, -0.14209f,
+0.570312f, -0.158691f, 0.573242f, -0.172852f, 0.57666f, -0.188965f, 0.580078f, -0.205078f,
+0.583008f, -0.217773f, 0.652832f, -0.52832f, 0.779785f, -0.52832f, 0.399902f, 0,
+0.276855f, -0.191406f, 0.152832f, 0, 0.00683594f, 0, 0.200195f, -0.272949f, 0.0161133f,
+-0.52832f, 0.164062f, -0.52832f, 0.276855f, -0.355469f, 0.38916f, -0.52832f, 0.538086f,
+-0.52832f, 0.354004f, -0.274414f, 0.548828f, 0, 0.341797f, 0.027832f, 0.322754f,
+0.0742188f, 0.303223f, 0.10791f, 0.283691f, 0.141602f, 0.26001f, 0.163818f, 0.236328f,
+0.186035f, 0.206787f, 0.196777f, 0.177246f, 0.20752f, 0.138184f, 0.20752f, 0.116699f,
+0.20752f, 0.0942383f, 0.206055f, 0.0717773f, 0.20459f, 0.0517578f, 0.201172f, 0.0517578f,
+0.103516f, 0.0615234f, 0.10498f, 0.0754395f, 0.106201f, 0.0893555f, 0.107422f, 0.0991211f,
+0.107422f, 0.119141f, 0.107422f, 0.134766f, 0.103027f, 0.150391f, 0.0986328f, 0.163086f,
+0.0883789f, 0.175781f, 0.078125f, 0.186768f, 0.0610352f, 0.197754f, 0.0439453f, 0.208008f,
+0.0180664f, 0.216797f, -0.00537109f, 0.0078125f, -0.52832f, 0.152832f, -0.52832f,
+0.23584f, -0.280762f, 0.237793f, -0.275391f, 0.241943f, -0.262695f, 0.246094f, -0.25f,
+0.251221f, -0.233643f, 0.256348f, -0.217285f, 0.261719f, -0.199219f, 0.26709f, -0.181152f,
+0.271973f, -0.164795f, 0.276855f, -0.148438f, 0.280273f, -0.135742f, 0.283691f, -0.123047f,
+0.285156f, -0.117676f, 0.286621f, -0.123047f, 0.289795f, -0.135498f, 0.292969f, -0.147949f,
+0.297119f, -0.163818f, 0.30127f, -0.179688f, 0.306152f, -0.197266f, 0.311035f, -0.214844f,
+0.31543f, -0.230957f, 0.319824f, -0.24707f, 0.323486f, -0.26001f, 0.327148f, -0.272949f,
+0.329102f, -0.278809f, 0.407227f, -0.52832f, 0.550781f, -0.52832f, 0.0332031f, 0,
+0.0332031f, -0.097168f, 0.296875f, -0.429199f, 0.0532227f, -0.429199f, 0.0532227f,
+-0.52832f, 0.448242f, -0.52832f, 0.448242f, -0.430176f, 0.186035f, -0.100098f, 0.472168f,
+-0.100098f, 0.472168f, 0, 0.271973f, 0.20752f, 0.238281f, 0.20752f, 0.21167f, 0.197266f,
+0.185059f, 0.187012f, 0.16626f, 0.168213f, 0.147461f, 0.149414f, 0.137695f, 0.122314f,
+0.12793f, 0.0952148f, 0.12793f, 0.0615234f, 0.12793f, -0.0986328f, 0.12793f, -0.129395f,
+0.120117f, -0.150635f, 0.112305f, -0.171875f, 0.0976562f, -0.185059f, 0.0830078f,
+-0.198242f, 0.0622559f, -0.204102f, 0.0415039f, -0.209961f, 0.0161133f, -0.210449f,
+0.0161133f, -0.305664f, 0.0419922f, -0.306641f, 0.0627441f, -0.312744f, 0.0834961f,
+-0.318848f, 0.0979004f, -0.332031f, 0.112305f, -0.345215f, 0.120117f, -0.366455f,
+0.12793f, -0.387695f, 0.12793f, -0.418457f, 0.12793f, -0.578613f, 0.12793f, -0.649902f,
+0.16626f, -0.687256f, 0.20459f, -0.724609f, 0.271973f, -0.724609f, 0.368164f, -0.724609f,
+0.368164f, -0.631836f, 0.339844f, -0.631836f, 0.29541f, -0.631836f, 0.275635f, -0.606445f,
+0.255859f, -0.581055f, 0.255859f, -0.529785f, 0.255859f, -0.382812f, 0.255859f, -0.35791f,
+0.247803f, -0.337158f, 0.239746f, -0.316406f, 0.226074f, -0.300781f, 0.212402f, -0.285156f,
+0.193848f, -0.274658f, 0.175293f, -0.26416f, 0.154785f, -0.259766f, 0.154785f, -0.257812f,
+0.175781f, -0.25293f, 0.194336f, -0.242432f, 0.212891f, -0.231934f, 0.226562f, -0.216064f,
+0.240234f, -0.200195f, 0.248047f, -0.179932f, 0.255859f, -0.159668f, 0.255859f, -0.134766f,
+0.255859f, 0.012207f, 0.255859f, 0.0639648f, 0.275635f, 0.0891113f, 0.29541f, 0.114258f,
+0.339844f, 0.114258f, 0.368164f, 0.114258f, 0.368164f, 0.20752f, 0.0761719f, 0.222168f,
+0.0761719f, -0.724609f, 0.204102f, -0.724609f, 0.204102f, 0.222168f, 0.0209961f,
+0.114258f, 0.0488281f, 0.114258f, 0.0942383f, 0.114258f, 0.113525f, 0.0891113f, 0.132812f,
+0.0639648f, 0.132812f, 0.012207f, 0.132812f, -0.134766f, 0.132812f, -0.159668f, 0.140869f,
+-0.179932f, 0.148926f, -0.200195f, 0.162598f, -0.216064f, 0.17627f, -0.231934f, 0.19458f,
+-0.242432f, 0.212891f, -0.25293f, 0.233887f, -0.257812f, 0.233887f, -0.259766f, 0.213379f,
+-0.26416f, 0.195068f, -0.274658f, 0.176758f, -0.285156f, 0.162842f, -0.300781f, 0.148926f,
+-0.316406f, 0.140869f, -0.337158f, 0.132812f, -0.35791f, 0.132812f, -0.382812f, 0.132812f,
+-0.529785f, 0.132812f, -0.581055f, 0.113525f, -0.606445f, 0.0942383f, -0.631836f,
+0.0488281f, -0.631836f, 0.0209961f, -0.631836f, 0.0209961f, -0.724609f, 0.117188f,
+-0.724609f, 0.18457f, -0.724609f, 0.2229f, -0.687256f, 0.26123f, -0.649902f, 0.26123f,
+-0.578613f, 0.26123f, -0.418457f, 0.26123f, -0.387695f, 0.269287f, -0.366455f, 0.277344f,
+-0.345215f, 0.291992f, -0.332031f, 0.306641f, -0.318848f, 0.327393f, -0.312744f,
+0.348145f, -0.306641f, 0.374023f, -0.305664f, 0.374023f, -0.210449f, 0.348145f, -0.209961f,
+0.327393f, -0.204102f, 0.306641f, -0.198242f, 0.291992f, -0.185059f, 0.277344f, -0.171875f,
+0.269287f, -0.150635f, 0.26123f, -0.129395f, 0.26123f, -0.0986328f, 0.26123f, 0.0615234f,
+0.26123f, 0.0952148f, 0.251465f, 0.122314f, 0.241699f, 0.149414f, 0.2229f, 0.168213f,
+0.204102f, 0.187012f, 0.17749f, 0.197266f, 0.150879f, 0.20752f, 0.117188f, 0.20752f,
+0.0209961f, 0.20752f, 0.416016f, -0.251953f, 0.379395f, -0.251953f, 0.343994f, -0.262207f,
+0.308594f, -0.272461f, 0.271973f, -0.285156f, 0.239746f, -0.296387f, 0.213135f, -0.302246f,
+0.186523f, -0.308105f, 0.164062f, -0.308105f, 0.14502f, -0.308105f, 0.128662f, -0.305176f,
+0.112305f, -0.302246f, 0.0974121f, -0.296631f, 0.0825195f, -0.291016f, 0.0683594f,
+-0.283203f, 0.0541992f, -0.275391f, 0.0395508f, -0.265137f, 0.0395508f, -0.369141f,
+0.0644531f, -0.387695f, 0.0976562f, -0.398926f, 0.130859f, -0.410156f, 0.171875f,
+-0.410156f, 0.191895f, -0.410156f, 0.211914f, -0.406982f, 0.231934f, -0.403809f,
+0.251465f, -0.398682f, 0.270996f, -0.393555f, 0.290039f, -0.386963f, 0.309082f, -0.380371f,
+0.327637f, -0.374023f, 0.349609f, -0.366211f, 0.375732f, -0.359619f, 0.401855f, -0.353027f,
+0.425293f, -0.353027f, 0.458496f, -0.353027f, 0.489746f, -0.365234f, 0.520996f, -0.377441f,
+0.546387f, -0.397949f, 0.546387f, -0.291016f, 0.530762f, -0.280273f, 0.515869f, -0.272705f,
+0.500977f, -0.265137f, 0.485596f, -0.260498f, 0.470215f, -0.255859f, 0.453125f, -0.253906f,
+0.436035f, -0.251953f, 0.416016f, -0.251953f
+};
+
+const unsigned char LiberationSansBoldVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+1, 1, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+5, 0, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6,
+0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansBoldCharCodes[] = {
+0,
+32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+126
+};
+
+const SkFixed LiberationSansBoldWidths[] = {
+0x0000c000, 0x00004720, 0x00005540, 0x00007960, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000b8e0, 0x00003ce0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00005540, 0x00009580, 0x00009580, 0x00009580, 0x00009c60, 0x0000f9a0, 0x0000b8e0,
+0x0000b8e0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008e60, 0x0000b8e0, 0x00009c60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x00009580, 0x00008e60, 0x00005540, 0x00008e60, 0x00009c60, 0x00008e60, 0x00009c60,
+0x00008e60, 0x00005540, 0x00009c60, 0x00009c60, 0x00004720, 0x00004720, 0x00008e60,
+0x00004720, 0x0000e3a0, 0x00009c60, 0x00009c60, 0x00009c60, 0x00009c60, 0x000063a0,
+0x00008e60, 0x00005540, 0x00009c60, 0x00008e60, 0x0000c720, 0x00008e60, 0x00008e60,
+0x00008000, 0x000063a0, 0x000047a0, 0x000063a0, 0x00009580
+};
+
+const int LiberationSansBoldCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansBoldCharCodes);
+
+const SkPaint::FontMetrics LiberationSansBoldMetrics = {
+0x30307833, -1.0332f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.24609f, 0.0194702f,
+-0.184082f, 1.06201f, 0.538086f, 0.0109024f, 0.10498f, 0.105957f
+};
+
+const SkScalar LiberationSansItalicPoints[] = {
+0.160645f, -0.193848f, 0.0883789f, -0.193848f, 0.172363f, -0.687988f, 0.268066f, -0.687988f,
+0.0375977f, 0, 0.0571289f, -0.0981445f, 0.151855f, -0.0981445f, 0.132324f, 0, 0.340332f,
+-0.47168f, 0.270996f, -0.47168f, 0.302246f, -0.687988f, 0.39209f, -0.687988f, 0.160156f,
+-0.47168f, 0.0913086f, -0.47168f, 0.12207f, -0.687988f, 0.211914f, -0.687988f, 0.452148f,
+-0.432129f, 0.414062f, -0.251953f, 0.541016f, -0.251953f, 0.541016f, -0.199219f,
+0.402832f, -0.199219f, 0.359863f, 0, 0.306152f, 0, 0.348145f, -0.199219f, 0.170898f,
+-0.199219f, 0.129883f, 0, 0.0761719f, 0, 0.117188f, -0.199219f, 0.019043f, -0.199219f,
+0.019043f, -0.251953f, 0.128906f, -0.251953f, 0.166992f, -0.432129f, 0.0439453f,
+-0.432129f, 0.0439453f, -0.484863f, 0.177734f, -0.484863f, 0.221191f, -0.684082f,
+0.274902f, -0.684082f, 0.231934f, -0.484863f, 0.40918f, -0.484863f, 0.452148f, -0.684082f,
+0.505859f, -0.684082f, 0.462891f, -0.484863f, 0.565918f, -0.484863f, 0.565918f, -0.432129f,
+0.222168f, -0.432129f, 0.183105f, -0.251953f, 0.359863f, -0.251953f, 0.397949f, -0.432129f,
+0.523438f, -0.20752f, 0.523438f, -0.162109f, 0.506104f, -0.126221f, 0.48877f, -0.090332f,
+0.455566f, -0.0651855f, 0.422363f, -0.0400391f, 0.374023f, -0.026123f, 0.325684f,
+-0.012207f, 0.263672f, -0.0102539f, 0.248535f, 0.0683594f, 0.241211f, 0.0683594f,
+0.240723f, 0.0688477f, 0.197754f, 0.0688477f, 0.198242f, 0.0683594f, 0.192871f, 0.0683594f,
+0.208496f, -0.0112305f, 0.110352f, -0.0180664f, 0.0588379f, -0.0620117f, 0.00732422f,
+-0.105957f, -0.00585938f, -0.183594f, 0.0737305f, -0.20166f, 0.0795898f, -0.174805f,
+0.0910645f, -0.153564f, 0.102539f, -0.132324f, 0.120361f, -0.117432f, 0.138184f,
+-0.102539f, 0.16333f, -0.0939941f, 0.188477f, -0.0854492f, 0.222168f, -0.0830078f,
+0.269043f, -0.32373f, 0.231934f, -0.333984f, 0.198975f, -0.346924f, 0.166016f, -0.359863f,
+0.141357f, -0.379639f, 0.116699f, -0.399414f, 0.102539f, -0.427734f, 0.0883789f,
+-0.456055f, 0.0883789f, -0.49707f, 0.0883789f, -0.54248f, 0.108887f, -0.575928f,
+0.129395f, -0.609375f, 0.163818f, -0.631592f, 0.198242f, -0.653809f, 0.243408f, -0.664795f,
+0.288574f, -0.675781f, 0.337402f, -0.67627f, 0.349609f, -0.740234f, 0.405273f, -0.740234f,
+0.39209f, -0.67334f, 0.432617f, -0.668457f, 0.463623f, -0.656006f, 0.494629f, -0.643555f,
+0.516602f, -0.624756f, 0.538574f, -0.605957f, 0.552002f, -0.582275f, 0.56543f, -0.558594f,
+0.571289f, -0.530762f, 0.495117f, -0.508789f, 0.484375f, -0.54834f, 0.455811f, -0.57251f,
+0.427246f, -0.59668f, 0.378906f, -0.603516f, 0.336914f, -0.388184f, 0.371582f, -0.378906f,
+0.405029f, -0.364746f, 0.438477f, -0.350586f, 0.464844f, -0.329346f, 0.491211f, -0.308105f,
+0.507324f, -0.27832f, 0.523438f, -0.248535f, 0.523438f, -0.20752f, 0.433105f, -0.20166f,
+0.433105f, -0.224609f, 0.425049f, -0.241211f, 0.416992f, -0.257812f, 0.402344f, -0.27002f,
+0.387695f, -0.282227f, 0.367188f, -0.291504f, 0.34668f, -0.300781f, 0.321777f, -0.308594f,
+0.277832f, -0.0825195f, 0.313477f, -0.0844727f, 0.342285f, -0.092041f, 0.371094f,
+-0.0996094f, 0.391113f, -0.114014f, 0.411133f, -0.128418f, 0.422119f, -0.149902f,
+0.433105f, -0.171387f, 0.433105f, -0.20166f, 0.177246f, -0.49707f, 0.177246f, -0.477539f,
+0.184326f, -0.463379f, 0.191406f, -0.449219f, 0.205078f, -0.438232f, 0.21875f, -0.427246f,
+0.23877f, -0.418945f, 0.258789f, -0.410645f, 0.28418f, -0.402832f, 0.32373f, -0.605469f,
+0.284668f, -0.604004f, 0.256836f, -0.595215f, 0.229004f, -0.586426f, 0.211426f, -0.572266f,
+0.193848f, -0.558105f, 0.185547f, -0.538818f, 0.177246f, -0.519531f, 0.177246f, -0.49707f,
+0.20752f, 0, 0.126953f, 0, 0.706055f, -0.687988f, 0.787598f, -0.687988f, 0.266113f,
+-0.693848f, 0.291992f, -0.693848f, 0.314941f, -0.686035f, 0.337891f, -0.678223f,
+0.355225f, -0.6604f, 0.372559f, -0.642578f, 0.382568f, -0.61377f, 0.392578f, -0.584961f,
+0.392578f, -0.543457f, 0.392578f, -0.525391f, 0.390381f, -0.502686f, 0.388184f, -0.47998f,
+0.383789f, -0.456543f, 0.37207f, -0.39502f, 0.350098f, -0.355957f, 0.328125f, -0.316895f,
+0.302246f, -0.294678f, 0.276367f, -0.272461f, 0.248779f, -0.26416f, 0.221191f, -0.255859f,
+0.198242f, -0.255859f, 0.171387f, -0.255859f, 0.148193f, -0.264648f, 0.125f, -0.273438f,
+0.10791f, -0.292236f, 0.0908203f, -0.311035f, 0.0810547f, -0.340332f, 0.0712891f,
+-0.369629f, 0.0712891f, -0.410645f, 0.0712891f, -0.428711f, 0.0732422f, -0.450928f,
+0.0751953f, -0.473145f, 0.0795898f, -0.495605f, 0.0922852f, -0.55957f, 0.11377f,
+-0.598633f, 0.135254f, -0.637695f, 0.161133f, -0.658936f, 0.187012f, -0.680176f,
+0.2146f, -0.687012f, 0.242188f, -0.693848f, 0.266113f, -0.693848f, 0.265625f, -0.641113f,
+0.247559f, -0.641113f, 0.230469f, -0.635498f, 0.213379f, -0.629883f, 0.198242f, -0.613525f,
+0.183105f, -0.597168f, 0.17041f, -0.567871f, 0.157715f, -0.538574f, 0.148438f, -0.490723f,
+0.138672f, -0.438965f, 0.138672f, -0.403809f, 0.138672f, -0.355957f, 0.154785f, -0.333496f,
+0.170898f, -0.311035f, 0.200195f, -0.311035f, 0.217285f, -0.311035f, 0.233643f, -0.317139f,
+0.25f, -0.323242f, 0.265137f, -0.339844f, 0.280273f, -0.356445f, 0.292969f, -0.385742f,
+0.305664f, -0.415039f, 0.314453f, -0.461426f, 0.324707f, -0.515625f, 0.324707f, -0.552246f,
+0.324707f, -0.599121f, 0.309326f, -0.620117f, 0.293945f, -0.641113f, 0.265625f, -0.641113f,
+0.719727f, -0.432129f, 0.745605f, -0.432129f, 0.768555f, -0.424316f, 0.791504f, -0.416504f,
+0.808838f, -0.398682f, 0.826172f, -0.380859f, 0.836182f, -0.352051f, 0.846191f, -0.323242f,
+0.846191f, -0.281738f, 0.846191f, -0.263672f, 0.843994f, -0.240967f, 0.841797f, -0.218262f,
+0.837402f, -0.194824f, 0.825684f, -0.133301f, 0.803711f, -0.0942383f, 0.781738f,
+-0.0551758f, 0.755859f, -0.032959f, 0.72998f, -0.0107422f, 0.702393f, -0.00244141f,
+0.674805f, 0.00585938f, 0.651855f, 0.00585938f, 0.625f, 0.00585938f, 0.601807f, -0.00292969f,
+0.578613f, -0.0117188f, 0.561523f, -0.0305176f, 0.544434f, -0.0493164f, 0.534668f,
+-0.0786133f, 0.524902f, -0.10791f, 0.524902f, -0.148926f, 0.524902f, -0.166992f,
+0.526855f, -0.189209f, 0.528809f, -0.211426f, 0.533203f, -0.233887f, 0.545898f, -0.297852f,
+0.567383f, -0.336914f, 0.588867f, -0.375977f, 0.614746f, -0.397217f, 0.640625f, -0.418457f,
+0.668213f, -0.425293f, 0.695801f, -0.432129f, 0.719727f, -0.432129f, 0.719238f, -0.379395f,
+0.701172f, -0.379395f, 0.684082f, -0.373779f, 0.666992f, -0.368164f, 0.651855f, -0.351807f,
+0.636719f, -0.335449f, 0.624023f, -0.306152f, 0.611328f, -0.276855f, 0.602051f, -0.229004f,
+0.592285f, -0.177246f, 0.592285f, -0.14209f, 0.592285f, -0.0942383f, 0.608398f, -0.0717773f,
+0.624512f, -0.0493164f, 0.653809f, -0.0493164f, 0.670898f, -0.0493164f, 0.687256f,
+-0.0554199f, 0.703613f, -0.0615234f, 0.71875f, -0.078125f, 0.733887f, -0.0947266f,
+0.746582f, -0.124023f, 0.759277f, -0.15332f, 0.768066f, -0.199707f, 0.77832f, -0.253906f,
+0.77832f, -0.290527f, 0.77832f, -0.337402f, 0.762939f, -0.358398f, 0.747559f, -0.379395f,
+0.719238f, -0.379395f, 0.609375f, -0.333984f, 0.596191f, -0.304199f, 0.581055f, -0.273682f,
+0.565918f, -0.243164f, 0.548584f, -0.213135f, 0.53125f, -0.183105f, 0.510986f, -0.154785f,
+0.490723f, -0.126465f, 0.467285f, -0.101562f, 0.486816f, -0.0830078f, 0.511475f,
+-0.072998f, 0.536133f, -0.0629883f, 0.558594f, -0.0629883f, 0.574219f, -0.0629883f,
+0.58667f, -0.0646973f, 0.599121f, -0.0664062f, 0.613281f, -0.0708008f, 0.606934f,
+-0.00488281f, 0.592285f, 0.000488281f, 0.578369f, 0.00317383f, 0.564453f, 0.00585938f,
+0.545898f, 0.00585938f, 0.509766f, 0.00585938f, 0.476074f, -0.00952148f, 0.442383f,
+-0.0249023f, 0.413574f, -0.0537109f, 0.373535f, -0.0244141f, 0.324707f, -0.00732422f,
+0.275879f, 0.00976562f, 0.214844f, 0.00976562f, 0.163086f, 0.00976562f, 0.125732f,
+-0.00488281f, 0.0883789f, -0.0195312f, 0.0639648f, -0.0444336f, 0.0395508f, -0.0693359f,
+0.027832f, -0.102295f, 0.0161133f, -0.135254f, 0.0161133f, -0.171387f, 0.0161133f,
+-0.215332f, 0.0297852f, -0.248291f, 0.043457f, -0.28125f, 0.0700684f, -0.306885f,
+0.0966797f, -0.33252f, 0.135742f, -0.353271f, 0.174805f, -0.374023f, 0.225586f, -0.393555f,
+0.219727f, -0.418457f, 0.21582f, -0.446777f, 0.211914f, -0.475098f, 0.211914f, -0.505859f,
+0.211914f, -0.546387f, 0.225098f, -0.580566f, 0.238281f, -0.614746f, 0.263184f, -0.639404f,
+0.288086f, -0.664062f, 0.324463f, -0.677979f, 0.36084f, -0.691895f, 0.406738f, -0.691895f,
+0.44043f, -0.691895f, 0.468506f, -0.682617f, 0.496582f, -0.67334f, 0.516602f, -0.656494f,
+0.536621f, -0.639648f, 0.547607f, -0.616211f, 0.558594f, -0.592773f, 0.558594f, -0.563965f,
+0.558594f, -0.534668f, 0.549072f, -0.511719f, 0.539551f, -0.48877f, 0.522949f, -0.469971f,
+0.506348f, -0.451172f, 0.483398f, -0.436035f, 0.460449f, -0.420898f, 0.43335f, -0.407715f,
+0.40625f, -0.394531f, 0.376221f, -0.382568f, 0.346191f, -0.370605f, 0.31543f, -0.358398f,
+0.324219f, -0.33252f, 0.334717f, -0.307373f, 0.345215f, -0.282227f, 0.35791f, -0.25708f,
+0.370605f, -0.231934f, 0.386475f, -0.206299f, 0.402344f, -0.180664f, 0.421875f, -0.153809f,
+0.441406f, -0.17627f, 0.458496f, -0.201416f, 0.475586f, -0.226562f, 0.490723f, -0.253174f,
+0.505859f, -0.279785f, 0.519287f, -0.307129f, 0.532715f, -0.334473f, 0.544922f, -0.36084f,
+0.220703f, -0.0541992f, 0.26416f, -0.0541992f, 0.300293f, -0.0673828f, 0.336426f,
+-0.0805664f, 0.367676f, -0.103516f, 0.34668f, -0.129395f, 0.328369f, -0.158203f,
+0.310059f, -0.187012f, 0.294434f, -0.216553f, 0.278809f, -0.246094f, 0.266357f, -0.275146f,
+0.253906f, -0.304199f, 0.245117f, -0.32959f, 0.210449f, -0.315918f, 0.18335f, -0.30127f,
+0.15625f, -0.286621f, 0.137451f, -0.268555f, 0.118652f, -0.250488f, 0.108887f, -0.227295f,
+0.0991211f, -0.204102f, 0.0991211f, -0.172852f, 0.0991211f, -0.146484f, 0.107422f,
+-0.124756f, 0.115723f, -0.103027f, 0.131348f, -0.0874023f, 0.146973f, -0.0717773f,
+0.169434f, -0.0629883f, 0.191895f, -0.0541992f, 0.220703f, -0.0541992f, 0.289062f,
+-0.508301f, 0.289062f, -0.486328f, 0.291748f, -0.464111f, 0.294434f, -0.441895f,
+0.29834f, -0.421387f, 0.336914f, -0.435547f, 0.370605f, -0.448242f, 0.404297f, -0.460938f,
+0.429443f, -0.476562f, 0.45459f, -0.492188f, 0.468994f, -0.512207f, 0.483398f, -0.532227f,
+0.483398f, -0.560547f, 0.483398f, -0.57666f, 0.477539f, -0.589844f, 0.47168f, -0.603027f,
+0.461182f, -0.612549f, 0.450684f, -0.62207f, 0.436035f, -0.627441f, 0.421387f, -0.632812f,
+0.40332f, -0.632812f, 0.37793f, -0.632812f, 0.356689f, -0.625f, 0.335449f, -0.617188f,
+0.320557f, -0.601562f, 0.305664f, -0.585938f, 0.297363f, -0.562744f, 0.289062f, -0.539551f,
+0.289062f, -0.508301f, 0.16748f, -0.47168f, 0.0986328f, -0.47168f, 0.129395f, -0.687988f,
+0.219238f, -0.687988f, 0.41748f, -0.724609f, 0.278809f, -0.602539f, 0.207031f, -0.45459f,
+0.135254f, -0.306641f, 0.135254f, -0.12793f, 0.135254f, -0.0351562f, 0.159912f, 0.0488281f,
+0.18457f, 0.132812f, 0.236328f, 0.207031f, 0.151367f, 0.207031f, 0.0976562f, 0.132812f,
+0.0722656f, 0.0461426f, 0.046875f, -0.0405273f, 0.046875f, -0.135742f, 0.046875f,
+-0.224121f, 0.0646973f, -0.306641f, 0.0825195f, -0.38916f, 0.118408f, -0.463623f,
+0.154297f, -0.538086f, 0.207764f, -0.60376f, 0.26123f, -0.669434f, 0.33252f, -0.724609f,
+-0.097168f, 0.207031f, 0.0415039f, 0.0849609f, 0.113281f, -0.0629883f, 0.185059f,
+-0.210938f, 0.185059f, -0.389648f, 0.185059f, -0.482422f, 0.1604f, -0.566406f, 0.135742f,
+-0.650391f, 0.0839844f, -0.724609f, 0.168945f, -0.724609f, 0.222656f, -0.650391f,
+0.248047f, -0.563721f, 0.273438f, -0.477051f, 0.273438f, -0.381836f, 0.273438f, -0.293457f,
+0.255615f, -0.210938f, 0.237793f, -0.128418f, 0.201904f, -0.0539551f, 0.166016f,
+0.0205078f, 0.112549f, 0.0861816f, 0.059082f, 0.151855f, -0.012207f, 0.207031f, 0.265137f,
+-0.543945f, 0.394043f, -0.594238f, 0.416016f, -0.529785f, 0.27832f, -0.494141f, 0.368652f,
+-0.37207f, 0.310547f, -0.336914f, 0.237305f, -0.462891f, 0.161133f, -0.337891f, 0.103027f,
+-0.373047f, 0.195312f, -0.494141f, 0.0585938f, -0.529785f, 0.0805664f, -0.595215f,
+0.210938f, -0.542969f, 0.205078f, -0.687988f, 0.271484f, -0.687988f, 0.342285f, -0.296875f,
+0.342285f, -0.0878906f, 0.270508f, -0.0878906f, 0.270508f, -0.296875f, 0.0634766f,
+-0.296875f, 0.0634766f, -0.368164f, 0.270508f, -0.368164f, 0.270508f, -0.577148f,
+0.342285f, -0.577148f, 0.342285f, -0.368164f, 0.549316f, -0.368164f, 0.549316f, -0.296875f,
+0.145996f, -0.0249023f, 0.141113f, 0.000976562f, 0.134521f, 0.0222168f, 0.12793f,
+0.043457f, 0.119629f, 0.0617676f, 0.111328f, 0.0800781f, 0.101074f, 0.0961914f, 0.0908203f,
+0.112305f, 0.078125f, 0.12793f, 0.0180664f, 0.12793f, 0.0458984f, 0.0961914f, 0.064209f,
+0.0639648f, 0.0825195f, 0.0317383f, 0.0888672f, 0, 0.0458984f, 0, 0.0664062f, -0.106934f,
+0.161621f, -0.106934f, 0.0512695f, -0.226562f, 0.0664062f, -0.304688f, 0.310547f,
+-0.304688f, 0.29541f, -0.226562f, 0.0390625f, 0, 0.0600586f, -0.106934f, 0.155273f,
+-0.106934f, 0.134277f, 0, -0.0566406f, 0.00976562f, 0.286621f, -0.724609f, 0.36377f,
+-0.724609f, 0.0219727f, 0.00976562f, 0.357422f, -0.698242f, 0.396973f, -0.698242f,
+0.431885f, -0.684814f, 0.466797f, -0.671387f, 0.492432f, -0.643555f, 0.518066f, -0.615723f,
+0.532959f, -0.572754f, 0.547852f, -0.529785f, 0.547852f, -0.470703f, 0.547852f, -0.439941f,
+0.545166f, -0.402588f, 0.54248f, -0.365234f, 0.53418f, -0.324707f, 0.514648f, -0.225586f,
+0.482422f, -0.160889f, 0.450195f, -0.0961914f, 0.409912f, -0.0583496f, 0.369629f,
+-0.0205078f, 0.323975f, -0.00537109f, 0.27832f, 0.00976562f, 0.232422f, 0.00976562f,
+0.191895f, 0.00976562f, 0.157227f, -0.00488281f, 0.122559f, -0.0195312f, 0.0974121f,
+-0.0488281f, 0.0722656f, -0.078125f, 0.0578613f, -0.122559f, 0.043457f, -0.166992f,
+0.043457f, -0.227051f, 0.043457f, -0.243164f, 0.0439453f, -0.258545f, 0.0444336f,
+-0.273926f, 0.0458984f, -0.290039f, 0.0473633f, -0.306152f, 0.0498047f, -0.324219f,
+0.0522461f, -0.342285f, 0.0561523f, -0.36377f, 0.0693359f, -0.433105f, 0.0888672f,
+-0.484619f, 0.108398f, -0.536133f, 0.131836f, -0.573486f, 0.155273f, -0.61084f, 0.182617f,
+-0.63501f, 0.209961f, -0.65918f, 0.23877f, -0.673096f, 0.267578f, -0.687012f, 0.297852f,
+-0.692627f, 0.328125f, -0.698242f, 0.357422f, -0.698242f, 0.239746f, -0.0620117f,
+0.276855f, -0.0620117f, 0.308105f, -0.0751953f, 0.339355f, -0.0883789f, 0.365479f,
+-0.119873f, 0.391602f, -0.151367f, 0.412109f, -0.203613f, 0.432617f, -0.255859f,
+0.447754f, -0.334473f, 0.456055f, -0.375977f, 0.459229f, -0.411133f, 0.462402f, -0.446289f,
+0.462402f, -0.475098f, 0.462402f, -0.550781f, 0.43335f, -0.588867f, 0.404297f, -0.626953f,
+0.351562f, -0.626953f, 0.314453f, -0.626953f, 0.283203f, -0.61377f, 0.251953f, -0.600586f,
+0.22583f, -0.569092f, 0.199707f, -0.537598f, 0.179199f, -0.485352f, 0.158691f, -0.433105f,
+0.143555f, -0.354492f, 0.135254f, -0.312988f, 0.13208f, -0.277832f, 0.128906f, -0.242676f,
+0.128906f, -0.213867f, 0.128906f, -0.138184f, 0.157959f, -0.100098f, 0.187012f, -0.0620117f,
+0.239746f, -0.0620117f, 0.0258789f, 0, 0.0405273f, -0.074707f, 0.21582f, -0.074707f,
+0.317383f, -0.597168f, 0.141113f, -0.488281f, 0.158203f, -0.576172f, 0.342285f, -0.687988f,
+0.42334f, -0.687988f, 0.304199f, -0.074707f, 0.47168f, -0.074707f, 0.457031f, 0,
+-0.00585938f, 0, 0.00585938f, -0.0620117f, 0.0327148f, -0.107422f, 0.065918f, -0.143066f,
+0.0991211f, -0.178711f, 0.135254f, -0.207764f, 0.171387f, -0.236816f, 0.20874f, -0.260742f,
+0.246094f, -0.284668f, 0.281006f, -0.306885f, 0.315918f, -0.329102f, 0.346436f, -0.351074f,
+0.376953f, -0.373047f, 0.399902f, -0.397949f, 0.422852f, -0.422852f, 0.436035f, -0.452393f,
+0.449219f, -0.481934f, 0.449219f, -0.519043f, 0.449219f, -0.543945f, 0.440918f, -0.563721f,
+0.432617f, -0.583496f, 0.417725f, -0.597412f, 0.402832f, -0.611328f, 0.38208f, -0.618652f,
+0.361328f, -0.625977f, 0.336426f, -0.625977f, 0.283203f, -0.625977f, 0.243652f, -0.596924f,
+0.204102f, -0.567871f, 0.186035f, -0.509766f, 0.103027f, -0.527832f, 0.114746f, -0.564941f,
+0.134766f, -0.596191f, 0.154785f, -0.627441f, 0.184082f, -0.650146f, 0.213379f, -0.672852f,
+0.252686f, -0.685547f, 0.291992f, -0.698242f, 0.341797f, -0.698242f, 0.385254f, -0.698242f,
+0.421875f, -0.686035f, 0.458496f, -0.673828f, 0.485107f, -0.651123f, 0.511719f, -0.628418f,
+0.526611f, -0.596924f, 0.541504f, -0.56543f, 0.541504f, -0.526367f, 0.541504f, -0.484863f,
+0.5271f, -0.449707f, 0.512695f, -0.414551f, 0.488281f, -0.384521f, 0.463867f, -0.354492f,
+0.431641f, -0.328125f, 0.399414f, -0.301758f, 0.36377f, -0.277344f, 0.328125f, -0.25293f,
+0.291016f, -0.229492f, 0.253906f, -0.206055f, 0.219727f, -0.181641f, 0.185547f, -0.157227f,
+0.156738f, -0.131104f, 0.12793f, -0.10498f, 0.108398f, -0.074707f, 0.463379f, -0.074707f,
+0.449219f, 0, 0.276367f, -0.388184f, 0.293945f, -0.388184f, 0.314209f, -0.390137f,
+0.334473f, -0.39209f, 0.354248f, -0.397217f, 0.374023f, -0.402344f, 0.39209f, -0.412109f,
+0.410156f, -0.421875f, 0.423828f, -0.437256f, 0.4375f, -0.452637f, 0.445801f, -0.474854f,
+0.454102f, -0.49707f, 0.454102f, -0.527832f, 0.454102f, -0.549316f, 0.447021f, -0.567383f,
+0.439941f, -0.585449f, 0.426025f, -0.598389f, 0.412109f, -0.611328f, 0.39209f, -0.618652f,
+0.37207f, -0.625977f, 0.345703f, -0.625977f, 0.287598f, -0.625977f, 0.24585f, -0.596191f,
+0.204102f, -0.566406f, 0.1875f, -0.512207f, 0.100586f, -0.519043f, 0.128906f, -0.609863f,
+0.194092f, -0.654053f, 0.259277f, -0.698242f, 0.350586f, -0.698242f, 0.395996f, -0.698242f,
+0.432373f, -0.686768f, 0.46875f, -0.675293f, 0.494385f, -0.653564f, 0.52002f, -0.631836f,
+0.533691f, -0.60083f, 0.547363f, -0.569824f, 0.547363f, -0.530273f, 0.547363f, -0.492188f,
+0.534912f, -0.461182f, 0.522461f, -0.430176f, 0.499023f, -0.407227f, 0.475586f, -0.384277f,
+0.442383f, -0.369873f, 0.40918f, -0.355469f, 0.367676f, -0.350098f, 0.367188f, -0.348145f,
+0.431152f, -0.335449f, 0.466797f, -0.297119f, 0.502441f, -0.258789f, 0.502441f, -0.19873f,
+0.502441f, -0.15625f, 0.487061f, -0.118164f, 0.47168f, -0.0800781f, 0.441162f, -0.0517578f,
+0.410645f, -0.0234375f, 0.364502f, -0.00683594f, 0.318359f, 0.00976562f, 0.256836f,
+0.00976562f, 0.201172f, 0.00976562f, 0.160156f, -0.00610352f, 0.119141f, -0.0219727f,
+0.0910645f, -0.0473633f, 0.0629883f, -0.0727539f, 0.0466309f, -0.10376f, 0.0302734f,
+-0.134766f, 0.0234375f, -0.165039f, 0.103516f, -0.188477f, 0.109375f, -0.166016f,
+0.121826f, -0.143799f, 0.134277f, -0.121582f, 0.154053f, -0.103516f, 0.173828f, -0.0854492f,
+0.201172f, -0.0742188f, 0.228516f, -0.0629883f, 0.26416f, -0.0629883f, 0.300293f,
+-0.0629883f, 0.327637f, -0.072998f, 0.35498f, -0.0830078f, 0.373291f, -0.10083f,
+0.391602f, -0.118652f, 0.401123f, -0.143311f, 0.410645f, -0.167969f, 0.410645f, -0.197266f,
+0.410645f, -0.226562f, 0.400391f, -0.248047f, 0.390137f, -0.269531f, 0.371826f, -0.283691f,
+0.353516f, -0.297852f, 0.328613f, -0.304932f, 0.303711f, -0.312012f, 0.274414f, -0.312012f,
+0.213867f, -0.312012f, 0.228516f, -0.388184f, 0.413086f, -0.155762f, 0.382812f, 0,
+0.294922f, 0, 0.325195f, -0.155762f, 0.00634766f, -0.155762f, 0.0195312f, -0.224121f,
+0.419434f, -0.687988f, 0.516602f, -0.687988f, 0.426758f, -0.225098f, 0.518555f, -0.225098f,
+0.504883f, -0.155762f, 0.40332f, -0.564941f, 0.11084f, -0.225098f, 0.338867f, -0.225098f,
+0.16748f, -0.687988f, 0.558594f, -0.687988f, 0.544434f, -0.613281f, 0.233398f, -0.613281f,
+0.177734f, -0.39502f, 0.187012f, -0.402832f, 0.200195f, -0.410645f, 0.213379f, -0.418457f,
+0.230469f, -0.424805f, 0.247559f, -0.431152f, 0.268311f, -0.435059f, 0.289062f, -0.438965f,
+0.312988f, -0.438965f, 0.356445f, -0.438965f, 0.393066f, -0.426025f, 0.429688f, -0.413086f,
+0.456543f, -0.388428f, 0.483398f, -0.36377f, 0.498291f, -0.328125f, 0.513184f, -0.29248f,
+0.513184f, -0.24707f, 0.513184f, -0.188965f, 0.49585f, -0.141602f, 0.478516f, -0.0942383f,
+0.444824f, -0.0605469f, 0.411133f, -0.0268555f, 0.361328f, -0.00854492f, 0.311523f,
+0.00976562f, 0.246582f, 0.00976562f, 0.194824f, 0.00976562f, 0.156738f, -0.00244141f,
+0.118652f, -0.0146484f, 0.092041f, -0.0361328f, 0.0654297f, -0.0576172f, 0.048584f,
+-0.0869141f, 0.0317383f, -0.116211f, 0.0224609f, -0.150879f, 0.102051f, -0.171875f,
+0.107422f, -0.152344f, 0.117676f, -0.132568f, 0.12793f, -0.112793f, 0.145508f, -0.097168f,
+0.163086f, -0.081543f, 0.189209f, -0.0717773f, 0.215332f, -0.0620117f, 0.251465f,
+-0.0620117f, 0.289551f, -0.0620117f, 0.320801f, -0.0727539f, 0.352051f, -0.0834961f,
+0.374268f, -0.105469f, 0.396484f, -0.127441f, 0.408447f, -0.1604f, 0.42041f, -0.193359f,
+0.42041f, -0.237305f, 0.42041f, -0.27002f, 0.4104f, -0.294434f, 0.400391f, -0.318848f,
+0.383545f, -0.334961f, 0.366699f, -0.351074f, 0.343994f, -0.359131f, 0.321289f, -0.367188f,
+0.296387f, -0.367188f, 0.249512f, -0.367188f, 0.216797f, -0.353271f, 0.184082f, -0.339355f,
+0.158691f, -0.317871f, 0.0727539f, -0.317871f, 0.260742f, 0.00976562f, 0.212402f,
+0.00976562f, 0.174316f, -0.0078125f, 0.13623f, -0.0253906f, 0.110107f, -0.0568848f,
+0.0839844f, -0.0883789f, 0.0700684f, -0.131836f, 0.0561523f, -0.175293f, 0.0561523f,
+-0.226562f, 0.0561523f, -0.253418f, 0.0588379f, -0.285889f, 0.0615234f, -0.318359f,
+0.0673828f, -0.349121f, 0.0854492f, -0.440918f, 0.116211f, -0.50708f, 0.146973f,
+-0.573242f, 0.187012f, -0.615723f, 0.227051f, -0.658203f, 0.27417f, -0.678223f, 0.321289f,
+-0.698242f, 0.371582f, -0.698242f, 0.404785f, -0.698242f, 0.434082f, -0.690674f,
+0.463379f, -0.683105f, 0.487549f, -0.666504f, 0.511719f, -0.649902f, 0.529297f, -0.624268f,
+0.546875f, -0.598633f, 0.556152f, -0.562012f, 0.475098f, -0.544434f, 0.462891f, -0.583984f,
+0.435059f, -0.605469f, 0.407227f, -0.626953f, 0.367676f, -0.626953f, 0.32959f, -0.626953f,
+0.295654f, -0.609863f, 0.261719f, -0.592773f, 0.233887f, -0.558594f, 0.206055f, -0.524414f,
+0.18457f, -0.473389f, 0.163086f, -0.422363f, 0.149902f, -0.354492f, 0.179199f, -0.398438f,
+0.223877f, -0.421631f, 0.268555f, -0.444824f, 0.32373f, -0.444824f, 0.364258f, -0.444824f,
+0.398682f, -0.431885f, 0.433105f, -0.418945f, 0.458008f, -0.394775f, 0.48291f, -0.370605f,
+0.49707f, -0.336426f, 0.51123f, -0.302246f, 0.51123f, -0.260254f, 0.51123f, -0.206055f,
+0.493652f, -0.157227f, 0.476074f, -0.108398f, 0.443604f, -0.0712891f, 0.411133f,
+-0.0341797f, 0.364746f, -0.012207f, 0.318359f, 0.00976562f, 0.260742f, 0.00976562f,
+0.140625f, -0.205566f, 0.140625f, -0.175781f, 0.148682f, -0.149414f, 0.156738f, -0.123047f,
+0.172363f, -0.103271f, 0.187988f, -0.0834961f, 0.210693f, -0.0722656f, 0.233398f,
+-0.0610352f, 0.262695f, -0.0610352f, 0.297363f, -0.0610352f, 0.326416f, -0.0759277f,
+0.355469f, -0.0908203f, 0.376465f, -0.116943f, 0.397461f, -0.143066f, 0.408936f,
+-0.178467f, 0.42041f, -0.213867f, 0.42041f, -0.254883f, 0.42041f, -0.311035f, 0.391357f,
+-0.343994f, 0.362305f, -0.376953f, 0.307617f, -0.376953f, 0.28125f, -0.376953f, 0.251709f,
+-0.36792f, 0.222168f, -0.358887f, 0.19751f, -0.338623f, 0.172852f, -0.318359f, 0.156738f,
+-0.285645f, 0.140625f, -0.25293f, 0.140625f, -0.205566f, 0.573242f, -0.616699f, 0.52832f,
+-0.563965f, 0.487549f, -0.515381f, 0.446777f, -0.466797f, 0.410889f, -0.419434f,
+0.375f, -0.37207f, 0.343994f, -0.324219f, 0.312988f, -0.276367f, 0.287842f, -0.225342f,
+0.262695f, -0.174316f, 0.243652f, -0.118652f, 0.224609f, -0.0629883f, 0.212402f,
+0, 0.120605f, 0, 0.13916f, -0.0932617f, 0.174316f, -0.173828f, 0.209473f, -0.254395f,
+0.256592f, -0.328125f, 0.303711f, -0.401855f, 0.361084f, -0.47168f, 0.418457f, -0.541504f,
+0.481445f, -0.613281f, 0.103516f, -0.613281f, 0.117676f, -0.687988f, 0.586914f, -0.687988f,
+0.34375f, -0.697754f, 0.390625f, -0.697754f, 0.428711f, -0.686035f, 0.466797f, -0.674316f,
+0.493896f, -0.652832f, 0.520996f, -0.631348f, 0.535645f, -0.60083f, 0.550293f, -0.570312f,
+0.550293f, -0.532715f, 0.550293f, -0.499023f, 0.539307f, -0.469238f, 0.52832f, -0.439453f,
+0.508057f, -0.416504f, 0.487793f, -0.393555f, 0.458984f, -0.378418f, 0.430176f, -0.363281f,
+0.394043f, -0.35791f, 0.393555f, -0.355957f, 0.417969f, -0.348633f, 0.438477f, -0.335938f,
+0.458984f, -0.323242f, 0.473633f, -0.304932f, 0.488281f, -0.286621f, 0.496338f, -0.263184f,
+0.504395f, -0.239746f, 0.504395f, -0.210938f, 0.504395f, -0.163574f, 0.488037f, -0.123291f,
+0.47168f, -0.0830078f, 0.439209f, -0.0534668f, 0.406738f, -0.0239258f, 0.35791f,
+-0.00708008f, 0.309082f, 0.00976562f, 0.244141f, 0.00976562f, 0.188477f, 0.00976562f,
+0.147461f, -0.00415039f, 0.106445f, -0.0180664f, 0.0795898f, -0.0429688f, 0.0527344f,
+-0.0678711f, 0.0395508f, -0.101807f, 0.0263672f, -0.135742f, 0.0263672f, -0.175781f,
+0.0263672f, -0.223145f, 0.0427246f, -0.256836f, 0.059082f, -0.290527f, 0.0844727f,
+-0.313477f, 0.109863f, -0.336426f, 0.140869f, -0.349609f, 0.171875f, -0.362793f,
+0.200684f, -0.369141f, 0.200684f, -0.371094f, 0.15625f, -0.389648f, 0.131836f, -0.426514f,
+0.107422f, -0.463379f, 0.107422f, -0.513672f, 0.107422f, -0.556152f, 0.123535f, -0.590332f,
+0.139648f, -0.624512f, 0.169922f, -0.648193f, 0.200195f, -0.671875f, 0.244141f, -0.684814f,
+0.288086f, -0.697754f, 0.34375f, -0.697754f, 0.321289f, -0.395996f, 0.36377f, -0.395996f,
+0.390625f, -0.408936f, 0.41748f, -0.421875f, 0.432861f, -0.44165f, 0.448242f, -0.461426f,
+0.453857f, -0.485107f, 0.459473f, -0.508789f, 0.459473f, -0.530762f, 0.459473f, -0.578613f,
+0.42749f, -0.605225f, 0.395508f, -0.631836f, 0.333496f, -0.631836f, 0.303711f, -0.631836f,
+0.27832f, -0.624268f, 0.25293f, -0.616699f, 0.234375f, -0.601074f, 0.21582f, -0.585449f,
+0.205566f, -0.561523f, 0.195312f, -0.537598f, 0.195312f, -0.504395f, 0.195312f, -0.484863f,
+0.20166f, -0.465576f, 0.208008f, -0.446289f, 0.222656f, -0.430908f, 0.237305f, -0.415527f,
+0.261475f, -0.405762f, 0.285645f, -0.395996f, 0.321289f, -0.395996f, 0.276367f, -0.328125f,
+0.236328f, -0.328125f, 0.206299f, -0.316895f, 0.17627f, -0.305664f, 0.156494f, -0.2854f,
+0.136719f, -0.265137f, 0.126709f, -0.236816f, 0.116699f, -0.208496f, 0.116699f, -0.173828f,
+0.116699f, -0.148926f, 0.125f, -0.127441f, 0.133301f, -0.105957f, 0.150146f, -0.090332f,
+0.166992f, -0.074707f, 0.192627f, -0.065918f, 0.218262f, -0.0571289f, 0.253418f,
+-0.0571289f, 0.287109f, -0.0571289f, 0.316406f, -0.0671387f, 0.345703f, -0.0771484f,
+0.367676f, -0.0966797f, 0.389648f, -0.116211f, 0.402344f, -0.145264f, 0.415039f,
+-0.174316f, 0.415039f, -0.212891f, 0.415039f, -0.234375f, 0.407715f, -0.255127f,
+0.400391f, -0.275879f, 0.384033f, -0.291992f, 0.367676f, -0.308105f, 0.341064f, -0.318115f,
+0.314453f, -0.328125f, 0.276367f, -0.328125f, 0.438477f, -0.333984f, 0.408203f, -0.288086f,
+0.366943f, -0.261475f, 0.325684f, -0.234863f, 0.272949f, -0.234863f, 0.225586f, -0.234863f,
+0.189453f, -0.250977f, 0.15332f, -0.26709f, 0.128906f, -0.293945f, 0.104492f, -0.320801f,
+0.092041f, -0.356201f, 0.0795898f, -0.391602f, 0.0795898f, -0.430176f, 0.0795898f,
+-0.485352f, 0.0976562f, -0.53418f, 0.115723f, -0.583008f, 0.148926f, -0.619385f,
+0.182129f, -0.655762f, 0.22876f, -0.677002f, 0.275391f, -0.698242f, 0.333008f, -0.698242f,
+0.379395f, -0.698242f, 0.416748f, -0.683105f, 0.454102f, -0.667969f, 0.480469f, -0.638428f,
+0.506836f, -0.608887f, 0.52124f, -0.565918f, 0.535645f, -0.522949f, 0.535645f, -0.467285f,
+0.535645f, -0.454102f, 0.534668f, -0.4375f, 0.533691f, -0.420898f, 0.531982f, -0.403076f,
+0.530273f, -0.385254f, 0.527832f, -0.366699f, 0.525391f, -0.348145f, 0.521973f, -0.331543f,
+0.503906f, -0.239746f, 0.472656f, -0.174805f, 0.441406f, -0.109863f, 0.401611f, -0.0688477f,
+0.361816f, -0.027832f, 0.31543f, -0.0090332f, 0.269043f, 0.00976562f, 0.221191f,
+0.00976562f, 0.142578f, 0.00976562f, 0.097168f, -0.0253906f, 0.0517578f, -0.0605469f,
+0.0341797f, -0.125488f, 0.111328f, -0.147461f, 0.123047f, -0.105957f, 0.151855f,
+-0.0834961f, 0.180664f, -0.0610352f, 0.225098f, -0.0610352f, 0.26416f, -0.0610352f,
+0.297119f, -0.0791016f, 0.330078f, -0.097168f, 0.356934f, -0.13208f, 0.383789f, -0.166992f,
+0.404297f, -0.217773f, 0.424805f, -0.268555f, 0.438477f, -0.333984f, 0.45166f, -0.496582f,
+0.45166f, -0.524902f, 0.443359f, -0.548828f, 0.435059f, -0.572754f, 0.419189f, -0.590088f,
+0.40332f, -0.607422f, 0.381104f, -0.617188f, 0.358887f, -0.626953f, 0.331055f, -0.626953f,
+0.295898f, -0.626953f, 0.266113f, -0.613525f, 0.236328f, -0.600098f, 0.2146f, -0.574951f,
+0.192871f, -0.549805f, 0.180908f, -0.512939f, 0.168945f, -0.476074f, 0.168945f, -0.429199f,
+0.168945f, -0.398438f, 0.177246f, -0.375f, 0.185547f, -0.351562f, 0.200684f, -0.335938f,
+0.21582f, -0.320312f, 0.236816f, -0.312256f, 0.257812f, -0.304199f, 0.283203f, -0.304199f,
+0.307617f, -0.304199f, 0.333496f, -0.3125f, 0.359375f, -0.320801f, 0.38208f, -0.337891f,
+0.404785f, -0.35498f, 0.422119f, -0.381104f, 0.439453f, -0.407227f, 0.446289f, -0.442871f,
+0.45166f, -0.472656f, 0.45166f, -0.496582f, 0.122559f, -0.427246f, 0.142578f, -0.52832f,
+0.237793f, -0.52832f, 0.217773f, -0.427246f, 0.0395508f, 0, 0.0595703f, -0.101074f,
+0.154785f, -0.101074f, 0.134766f, 0, 0.146484f, -0.0249023f, 0.141602f, 0.000976562f,
+0.13501f, 0.0222168f, 0.128418f, 0.043457f, 0.120117f, 0.0617676f, 0.111816f, 0.0800781f,
+0.101562f, 0.0961914f, 0.0913086f, 0.112305f, 0.0786133f, 0.12793f, 0.0185547f, 0.12793f,
+0.0463867f, 0.0961914f, 0.0646973f, 0.0639648f, 0.0830078f, 0.0317383f, 0.0893555f,
+0, 0.0463867f, 0, 0.065918f, -0.101074f, 0.161133f, -0.101074f, 0.129395f, -0.427246f,
+0.148926f, -0.52832f, 0.244141f, -0.52832f, 0.224609f, -0.427246f, 0.0639648f, -0.278809f,
+0.0639648f, -0.378906f, 0.549805f, -0.583008f, 0.549805f, -0.507812f, 0.130859f,
+-0.329102f, 0.549805f, -0.149902f, 0.549805f, -0.0751953f, 0.0634766f, -0.417969f,
+0.0634766f, -0.490234f, 0.549316f, -0.490234f, 0.549316f, -0.417969f, 0.0634766f,
+-0.167969f, 0.0634766f, -0.240234f, 0.549316f, -0.240234f, 0.549316f, -0.167969f,
+0.0639648f, -0.0751953f, 0.0639648f, -0.149902f, 0.48291f, -0.329102f, 0.0639648f,
+-0.507812f, 0.0639648f, -0.583008f, 0.549805f, -0.378906f, 0.549805f, -0.278809f,
+0.342285f, -0.698242f, 0.391602f, -0.698242f, 0.430664f, -0.685059f, 0.469727f, -0.671875f,
+0.496826f, -0.648438f, 0.523926f, -0.625f, 0.538574f, -0.593262f, 0.553223f, -0.561523f,
+0.553223f, -0.523926f, 0.553223f, -0.476562f, 0.53833f, -0.443115f, 0.523438f, -0.409668f,
+0.499756f, -0.38501f, 0.476074f, -0.360352f, 0.446533f, -0.342285f, 0.416992f, -0.324219f,
+0.387695f, -0.307129f, 0.367188f, -0.29541f, 0.3479f, -0.282959f, 0.328613f, -0.270508f,
+0.312988f, -0.256104f, 0.297363f, -0.241699f, 0.286377f, -0.224121f, 0.275391f, -0.206543f,
+0.270996f, -0.184082f, 0.185547f, -0.184082f, 0.191895f, -0.222168f, 0.207764f, -0.249756f,
+0.223633f, -0.277344f, 0.245361f, -0.298096f, 0.26709f, -0.318848f, 0.29248f, -0.334473f,
+0.317871f, -0.350098f, 0.342773f, -0.364258f, 0.366211f, -0.377441f, 0.387695f, -0.391357f,
+0.40918f, -0.405273f, 0.425781f, -0.422363f, 0.442383f, -0.439453f, 0.452148f, -0.46167f,
+0.461914f, -0.483887f, 0.461914f, -0.513672f, 0.461914f, -0.537109f, 0.452637f, -0.556885f,
+0.443359f, -0.57666f, 0.426514f, -0.590576f, 0.409668f, -0.604492f, 0.38623f, -0.612305f,
+0.362793f, -0.620117f, 0.333984f, -0.620117f, 0.265625f, -0.620117f, 0.221191f, -0.585938f,
+0.176758f, -0.551758f, 0.158203f, -0.492188f, 0.0776367f, -0.511719f, 0.0908203f,
+-0.552734f, 0.112061f, -0.586914f, 0.133301f, -0.621094f, 0.165283f, -0.645752f,
+0.197266f, -0.67041f, 0.240967f, -0.684326f, 0.284668f, -0.698242f, 0.342285f, -0.698242f,
+0.145996f, 0, 0.165039f, -0.0981445f, 0.260254f, -0.0981445f, 0.241211f, 0, 0.944824f,
+-0.368652f, 0.944824f, -0.29834f, 0.928467f, -0.23999f, 0.912109f, -0.181641f, 0.883301f,
+-0.139648f, 0.854492f, -0.0976562f, 0.814453f, -0.0742188f, 0.774414f, -0.0507812f,
+0.726562f, -0.0507812f, 0.699219f, -0.0507812f, 0.679932f, -0.057373f, 0.660645f,
+-0.0639648f, 0.648682f, -0.0754395f, 0.636719f, -0.0869141f, 0.631104f, -0.102539f,
+0.625488f, -0.118164f, 0.625488f, -0.136719f, 0.625488f, -0.144043f, 0.625977f, -0.154541f,
+0.626465f, -0.165039f, 0.626953f, -0.170898f, 0.624023f, -0.170898f, 0.612305f, -0.148926f,
+0.595459f, -0.127197f, 0.578613f, -0.105469f, 0.555908f, -0.088623f, 0.533203f, -0.0717773f,
+0.504639f, -0.0612793f, 0.476074f, -0.0507812f, 0.441406f, -0.0507812f, 0.400391f,
+-0.0507812f, 0.369873f, -0.0649414f, 0.339355f, -0.0791016f, 0.31958f, -0.104248f,
+0.299805f, -0.129395f, 0.290039f, -0.163818f, 0.280273f, -0.198242f, 0.280273f, -0.23877f,
+0.280273f, -0.297363f, 0.297607f, -0.351318f, 0.314941f, -0.405273f, 0.347168f, -0.446533f,
+0.379395f, -0.487793f, 0.424561f, -0.512695f, 0.469727f, -0.537598f, 0.525391f, -0.537598f,
+0.554688f, -0.537598f, 0.578125f, -0.531006f, 0.601562f, -0.524414f, 0.619385f, -0.512695f,
+0.637207f, -0.500977f, 0.650391f, -0.484619f, 0.663574f, -0.468262f, 0.672363f, -0.44873f,
+0.675293f, -0.44873f, 0.694336f, -0.526855f, 0.770508f, -0.526855f, 0.713867f, -0.279785f,
+0.70459f, -0.23877f, 0.700195f, -0.209473f, 0.695801f, -0.180176f, 0.695801f, -0.15625f,
+0.695801f, -0.132812f, 0.706299f, -0.121582f, 0.716797f, -0.110352f, 0.735352f, -0.110352f,
+0.765625f, -0.110352f, 0.791748f, -0.130127f, 0.817871f, -0.149902f, 0.837158f, -0.18457f,
+0.856445f, -0.219238f, 0.867432f, -0.266113f, 0.878418f, -0.312988f, 0.878418f, -0.367676f,
+0.878418f, -0.430664f, 0.858154f, -0.484863f, 0.837891f, -0.539062f, 0.798584f, -0.578613f,
+0.759277f, -0.618164f, 0.701172f, -0.640625f, 0.643066f, -0.663086f, 0.566895f, -0.663086f,
+0.501465f, -0.663086f, 0.446045f, -0.647461f, 0.390625f, -0.631836f, 0.345703f, -0.603516f,
+0.300781f, -0.575195f, 0.266846f, -0.535889f, 0.23291f, -0.496582f, 0.209961f, -0.449707f,
+0.187012f, -0.402832f, 0.175293f, -0.349609f, 0.163574f, -0.296387f, 0.163574f, -0.239746f,
+0.163574f, -0.170898f, 0.18457f, -0.112793f, 0.205566f, -0.0546875f, 0.24585f, -0.0129395f,
+0.286133f, 0.0288086f, 0.345703f, 0.0522461f, 0.405273f, 0.0756836f, 0.481934f, 0.0756836f,
+0.533203f, 0.0756836f, 0.577637f, 0.067627f, 0.62207f, 0.0595703f, 0.65918f, 0.0478516f,
+0.696289f, 0.0361328f, 0.72583f, 0.0222168f, 0.755371f, 0.00830078f, 0.776367f, -0.00341797f,
+0.803223f, 0.0512695f, 0.778809f, 0.065918f, 0.74585f, 0.0812988f, 0.712891f, 0.0966797f,
+0.672363f, 0.109375f, 0.631836f, 0.12207f, 0.583984f, 0.130127f, 0.536133f, 0.138184f,
+0.481934f, 0.138184f, 0.38916f, 0.138184f, 0.317139f, 0.110107f, 0.245117f, 0.0820312f,
+0.195801f, 0.0317383f, 0.146484f, -0.0185547f, 0.120605f, -0.0878906f, 0.0947266f,
+-0.157227f, 0.0947266f, -0.239746f, 0.0947266f, -0.307617f, 0.110107f, -0.370117f,
+0.125488f, -0.432617f, 0.154297f, -0.486328f, 0.183105f, -0.540039f, 0.224609f, -0.583984f,
+0.266113f, -0.62793f, 0.318604f, -0.65918f, 0.371094f, -0.69043f, 0.43335f, -0.70752f,
+0.495605f, -0.724609f, 0.565918f, -0.724609f, 0.664062f, -0.724609f, 0.735352f, -0.695801f,
+0.806641f, -0.666992f, 0.853271f, -0.618164f, 0.899902f, -0.569336f, 0.922363f, -0.504883f,
+0.944824f, -0.44043f, 0.944824f, -0.368652f, 0.648926f, -0.364746f, 0.648926f, -0.38916f,
+0.640625f, -0.409668f, 0.632324f, -0.430176f, 0.616943f, -0.444824f, 0.601562f, -0.459473f,
+0.579834f, -0.467529f, 0.558105f, -0.475586f, 0.530762f, -0.475586f, 0.489258f, -0.475586f,
+0.457275f, -0.454834f, 0.425293f, -0.434082f, 0.404053f, -0.400391f, 0.382812f, -0.366699f,
+0.371826f, -0.324463f, 0.36084f, -0.282227f, 0.36084f, -0.239746f, 0.36084f, -0.181152f,
+0.384033f, -0.147949f, 0.407227f, -0.114746f, 0.455566f, -0.114746f, 0.489258f, -0.114746f,
+0.518799f, -0.129883f, 0.54834f, -0.14502f, 0.571777f, -0.169922f, 0.595215f, -0.194824f,
+0.612061f, -0.227295f, 0.628906f, -0.259766f, 0.637695f, -0.293945f, 0.64209f, -0.311523f,
+0.645508f, -0.331055f, 0.648926f, -0.350586f, 0.648926f, -0.364746f, 0.518066f, 0,
+0.481445f, -0.201172f, 0.169434f, -0.201172f, 0.0522461f, 0, -0.0493164f, 0, 0.364746f,
+-0.687988f, 0.470703f, -0.687988f, 0.613281f, 0, 0.425293f, -0.504883f, 0.421387f,
+-0.524902f, 0.417725f, -0.543945f, 0.414062f, -0.562988f, 0.411621f, -0.578857f,
+0.40918f, -0.594727f, 0.407471f, -0.605225f, 0.405762f, -0.615723f, 0.405273f, -0.617676f,
+0.404297f, -0.615723f, 0.398682f, -0.60498f, 0.393066f, -0.594238f, 0.384277f, -0.578369f,
+0.375488f, -0.5625f, 0.364746f, -0.543213f, 0.354004f, -0.523926f, 0.342285f, -0.504395f,
+0.210449f, -0.273926f, 0.467773f, -0.273926f, 0.164062f, -0.687988f, 0.413086f, -0.687988f,
+0.463867f, -0.687988f, 0.504395f, -0.677246f, 0.544922f, -0.666504f, 0.573486f, -0.64624f,
+0.602051f, -0.625977f, 0.617432f, -0.59668f, 0.632812f, -0.567383f, 0.632812f, -0.530762f,
+0.632812f, -0.459473f, 0.59082f, -0.418213f, 0.548828f, -0.376953f, 0.467285f, -0.362793f,
+0.501953f, -0.356934f, 0.528564f, -0.343506f, 0.555176f, -0.330078f, 0.572998f, -0.310547f,
+0.59082f, -0.291016f, 0.599854f, -0.266602f, 0.608887f, -0.242188f, 0.608887f, -0.214355f,
+0.608887f, -0.173828f, 0.597656f, -0.14209f, 0.586426f, -0.110352f, 0.566406f, -0.0864258f,
+0.546387f, -0.0625f, 0.519287f, -0.0461426f, 0.492188f, -0.0297852f, 0.460205f, -0.0195312f,
+0.428223f, -0.00927734f, 0.392822f, -0.00463867f, 0.357422f, 0, 0.321289f, 0, 0.0307617f,
+0, 0.200684f, -0.395508f, 0.362305f, -0.395508f, 0.450684f, -0.395508f, 0.493164f,
+-0.427246f, 0.535645f, -0.458984f, 0.535645f, -0.521484f, 0.535645f, -0.567871f,
+0.502197f, -0.590576f, 0.46875f, -0.613281f, 0.404785f, -0.613281f, 0.243164f, -0.613281f,
+0.138184f, -0.074707f, 0.317871f, -0.074707f, 0.355957f, -0.074707f, 0.391846f, -0.0805664f,
+0.427734f, -0.0864258f, 0.455078f, -0.102051f, 0.482422f, -0.117676f, 0.499023f,
+-0.14502f, 0.515625f, -0.172363f, 0.515625f, -0.21582f, 0.515625f, -0.268066f, 0.476807f,
+-0.29541f, 0.437988f, -0.322754f, 0.365234f, -0.322754f, 0.186523f, -0.322754f, 0.663086f,
+-0.164551f, 0.63916f, -0.128906f, 0.609375f, -0.097168f, 0.57959f, -0.0654297f, 0.54126f,
+-0.041748f, 0.50293f, -0.0180664f, 0.453857f, -0.00415039f, 0.404785f, 0.00976562f,
+0.341797f, 0.00976562f, 0.269531f, 0.00976562f, 0.215576f, -0.0126953f, 0.161621f,
+-0.0351562f, 0.125977f, -0.0739746f, 0.090332f, -0.112793f, 0.0727539f, -0.165283f,
+0.0551758f, -0.217773f, 0.0551758f, -0.277832f, 0.0551758f, -0.338379f, 0.0683594f,
+-0.393066f, 0.081543f, -0.447754f, 0.105957f, -0.494385f, 0.130371f, -0.541016f,
+0.165527f, -0.578857f, 0.200684f, -0.616699f, 0.244873f, -0.643066f, 0.289062f, -0.669434f,
+0.341309f, -0.683838f, 0.393555f, -0.698242f, 0.452148f, -0.698242f, 0.515137f, -0.698242f,
+0.5625f, -0.683838f, 0.609863f, -0.669434f, 0.643555f, -0.645996f, 0.677246f, -0.622559f,
+0.697754f, -0.592285f, 0.718262f, -0.562012f, 0.727539f, -0.529785f, 0.639648f, -0.50293f,
+0.632324f, -0.525879f, 0.617188f, -0.547119f, 0.602051f, -0.568359f, 0.578369f, -0.585205f,
+0.554688f, -0.602051f, 0.522217f, -0.612061f, 0.489746f, -0.62207f, 0.447266f, -0.62207f,
+0.375977f, -0.62207f, 0.320312f, -0.595947f, 0.264648f, -0.569824f, 0.226074f, -0.523682f,
+0.1875f, -0.477539f, 0.16748f, -0.414307f, 0.147461f, -0.351074f, 0.147461f, -0.276367f,
+0.147461f, -0.230469f, 0.160156f, -0.191895f, 0.172852f, -0.15332f, 0.197998f, -0.125244f,
+0.223145f, -0.097168f, 0.260742f, -0.081543f, 0.29834f, -0.065918f, 0.348145f, -0.065918f,
+0.39209f, -0.065918f, 0.428711f, -0.0778809f, 0.465332f, -0.0898438f, 0.49585f, -0.109619f,
+0.526367f, -0.129395f, 0.550537f, -0.155029f, 0.574707f, -0.180664f, 0.593262f, -0.208008f,
+0.363281f, -0.687988f, 0.435547f, -0.687988f, 0.495605f, -0.668701f, 0.555664f, -0.649414f,
+0.598877f, -0.611328f, 0.64209f, -0.573242f, 0.666016f, -0.516846f, 0.689941f, -0.460449f,
+0.689941f, -0.38623f, 0.689941f, -0.321289f, 0.674561f, -0.267578f, 0.65918f, -0.213867f,
+0.631348f, -0.170898f, 0.603516f, -0.12793f, 0.56543f, -0.0959473f, 0.527344f, -0.0639648f,
+0.481934f, -0.0424805f, 0.436523f, -0.0209961f, 0.385498f, -0.010498f, 0.334473f,
+0, 0.280762f, 0, 0.0307617f, 0, 0.164062f, -0.687988f, 0.138184f, -0.074707f, 0.276855f,
+-0.074707f, 0.348633f, -0.074707f, 0.407471f, -0.0961914f, 0.466309f, -0.117676f,
+0.508057f, -0.157959f, 0.549805f, -0.198242f, 0.57251f, -0.256104f, 0.595215f, -0.313965f,
+0.595215f, -0.387207f, 0.595215f, -0.445801f, 0.577393f, -0.488281f, 0.55957f, -0.530762f,
+0.52832f, -0.558594f, 0.49707f, -0.586426f, 0.454102f, -0.599854f, 0.411133f, -0.613281f,
+0.361328f, -0.613281f, 0.243164f, -0.613281f, 0.0307617f, 0, 0.164062f, -0.687988f,
+0.67627f, -0.687988f, 0.661621f, -0.611816f, 0.242676f, -0.611816f, 0.199707f, -0.391113f,
+0.589355f, -0.391113f, 0.574707f, -0.315918f, 0.185059f, -0.315918f, 0.138672f, -0.0761719f,
+0.577637f, -0.0761719f, 0.562988f, 0, 0.242676f, -0.611816f, 0.192871f, -0.355957f,
+0.581543f, -0.355957f, 0.566406f, -0.278809f, 0.177734f, -0.278809f, 0.124023f, 0,
+0.0307617f, 0, 0.164062f, -0.687988f, 0.657715f, -0.687988f, 0.643066f, -0.611816f,
+0.678711f, -0.102539f, 0.651367f, -0.0791016f, 0.619385f, -0.0585938f, 0.587402f,
+-0.0380859f, 0.548828f, -0.0229492f, 0.510254f, -0.0078125f, 0.464111f, 0.000976562f,
+0.417969f, 0.00976562f, 0.362305f, 0.00976562f, 0.283203f, 0.00976562f, 0.224365f,
+-0.0114746f, 0.165527f, -0.0327148f, 0.126709f, -0.0708008f, 0.0878906f, -0.108887f,
+0.0686035f, -0.162109f, 0.0493164f, -0.215332f, 0.0493164f, -0.279785f, 0.0493164f,
+-0.371582f, 0.0783691f, -0.448486f, 0.107422f, -0.525391f, 0.160889f, -0.580811f,
+0.214355f, -0.63623f, 0.290527f, -0.667236f, 0.366699f, -0.698242f, 0.460938f, -0.698242f,
+0.524902f, -0.698242f, 0.571533f, -0.685059f, 0.618164f, -0.671875f, 0.650879f, -0.649414f,
+0.683594f, -0.626953f, 0.703857f, -0.597656f, 0.724121f, -0.568359f, 0.734863f, -0.536133f,
+0.640625f, -0.509766f, 0.633301f, -0.532715f, 0.619629f, -0.552979f, 0.605957f, -0.573242f,
+0.58374f, -0.588623f, 0.561523f, -0.604004f, 0.529785f, -0.613037f, 0.498047f, -0.62207f,
+0.455078f, -0.62207f, 0.380371f, -0.62207f, 0.32251f, -0.596436f, 0.264648f, -0.570801f,
+0.225098f, -0.525146f, 0.185547f, -0.479492f, 0.165283f, -0.417236f, 0.14502f, -0.35498f,
+0.14502f, -0.281738f, 0.14502f, -0.234375f, 0.158203f, -0.194824f, 0.171387f, -0.155273f,
+0.198486f, -0.126709f, 0.225586f, -0.0981445f, 0.26709f, -0.0820312f, 0.308594f,
+-0.065918f, 0.365234f, -0.065918f, 0.409668f, -0.065918f, 0.446533f, -0.0732422f,
+0.483398f, -0.0805664f, 0.512695f, -0.0915527f, 0.541992f, -0.102539f, 0.564209f,
+-0.116211f, 0.586426f, -0.129883f, 0.601074f, -0.14209f, 0.625977f, -0.266113f, 0.42041f,
+-0.266113f, 0.436035f, -0.344238f, 0.727539f, -0.344238f, 0.498535f, 0, 0.560547f,
+-0.318848f, 0.186035f, -0.318848f, 0.124023f, 0, 0.0307617f, 0, 0.164551f, -0.687988f,
+0.257812f, -0.687988f, 0.201172f, -0.396973f, 0.575684f, -0.396973f, 0.632324f, -0.687988f,
+0.723145f, -0.687988f, 0.589355f, 0, 0.0395508f, 0, 0.17334f, -0.687988f, 0.266602f,
+-0.687988f, 0.132812f, 0, 0.186035f, 0.00976562f, 0.108398f, 0.00976562f, 0.0593262f,
+-0.0356445f, 0.0102539f, -0.0810547f, -0.00244141f, -0.16748f, 0.0795898f, -0.183594f,
+0.0908203f, -0.126465f, 0.118164f, -0.0961914f, 0.145508f, -0.065918f, 0.194336f,
+-0.065918f, 0.223633f, -0.065918f, 0.245117f, -0.0766602f, 0.266602f, -0.0874023f,
+0.281982f, -0.106934f, 0.297363f, -0.126465f, 0.307373f, -0.154053f, 0.317383f, -0.181641f,
+0.32373f, -0.214844f, 0.400391f, -0.611816f, 0.258301f, -0.611816f, 0.272949f, -0.687988f,
+0.507812f, -0.687988f, 0.413574f, -0.206543f, 0.404297f, -0.157715f, 0.386963f, -0.117676f,
+0.369629f, -0.0776367f, 0.342529f, -0.0493164f, 0.31543f, -0.0209961f, 0.276855f,
+-0.00561523f, 0.238281f, 0.00976562f, 0.186035f, 0.00976562f, 0.499023f, 0, 0.268555f,
+-0.329102f, 0.175781f, -0.266113f, 0.124023f, 0, 0.0307617f, 0, 0.164062f, -0.687988f,
+0.257324f, -0.687988f, 0.190918f, -0.350586f, 0.259277f, -0.413574f, 0.583984f, -0.687988f,
+0.703613f, -0.687988f, 0.337402f, -0.380371f, 0.609375f, 0, 0.0307617f, 0, 0.164062f,
+-0.687988f, 0.257324f, -0.687988f, 0.138672f, -0.0761719f, 0.486328f, -0.0761719f,
+0.47168f, 0, 0.615723f, 0, 0.703613f, -0.453125f, 0.708496f, -0.478027f, 0.713867f,
+-0.503906f, 0.719238f, -0.529785f, 0.724121f, -0.55127f, 0.729492f, -0.576172f, 0.735352f,
+-0.599609f, 0.723145f, -0.574219f, 0.710449f, -0.549316f, 0.699707f, -0.527832f,
+0.6875f, -0.504395f, 0.675293f, -0.480957f, 0.664551f, -0.462891f, 0.396973f, 0,
+0.336426f, 0, 0.246094f, -0.462891f, 0.243164f, -0.477539f, 0.239746f, -0.500732f,
+0.236328f, -0.523926f, 0.233398f, -0.545898f, 0.22998f, -0.571777f, 0.226074f, -0.599609f,
+0.222168f, -0.572266f, 0.217773f, -0.54541f, 0.213867f, -0.522461f, 0.209717f, -0.497559f,
+0.205566f, -0.472656f, 0.20166f, -0.453125f, 0.11377f, 0, 0.0307617f, 0, 0.164062f,
+-0.687988f, 0.279297f, -0.687988f, 0.371582f, -0.210938f, 0.373047f, -0.203613f,
+0.375732f, -0.187256f, 0.378418f, -0.170898f, 0.380859f, -0.153809f, 0.383789f, -0.134277f,
+0.387207f, -0.11084f, 0.397461f, -0.132324f, 0.406738f, -0.151855f, 0.415039f, -0.168945f,
+0.423584f, -0.186279f, 0.432129f, -0.203613f, 0.437988f, -0.214844f, 0.708008f, -0.687988f,
+0.833008f, -0.687988f, 0.699707f, 0, 0.481934f, 0, 0.222656f, -0.59082f, 0.219727f,
+-0.568359f, 0.216309f, -0.544922f, 0.213379f, -0.524902f, 0.209717f, -0.502197f,
+0.206055f, -0.479492f, 0.202148f, -0.460449f, 0.11377f, 0, 0.0307617f, 0, 0.164062f,
+-0.687988f, 0.267578f, -0.687988f, 0.52832f, -0.0947266f, 0.53125f, -0.115723f, 0.534668f,
+-0.13916f, 0.537598f, -0.15918f, 0.541504f, -0.183838f, 0.54541f, -0.208496f, 0.550293f,
+-0.233398f, 0.638672f, -0.687988f, 0.722656f, -0.687988f, 0.589355f, 0, 0.458008f,
+-0.698242f, 0.52832f, -0.698242f, 0.58252f, -0.67749f, 0.636719f, -0.656738f, 0.674072f,
+-0.619141f, 0.711426f, -0.581543f, 0.730713f, -0.529785f, 0.75f, -0.478027f, 0.75f,
+-0.415527f, 0.749512f, -0.391602f, 0.747314f, -0.365967f, 0.745117f, -0.340332f,
+0.740234f, -0.316895f, 0.725586f, -0.241699f, 0.690918f, -0.181396f, 0.65625f, -0.121094f,
+0.605225f, -0.0786133f, 0.554199f, -0.0361328f, 0.488525f, -0.0131836f, 0.422852f,
+0.00976562f, 0.346191f, 0.00976562f, 0.272949f, 0.00976562f, 0.218262f, -0.0114746f,
+0.163574f, -0.0327148f, 0.127197f, -0.0710449f, 0.0908203f, -0.109375f, 0.0725098f,
+-0.162598f, 0.0541992f, -0.21582f, 0.0541992f, -0.279785f, 0.0541992f, -0.302246f,
+0.0563965f, -0.325684f, 0.0585938f, -0.349121f, 0.0634766f, -0.373047f, 0.078125f,
+-0.446289f, 0.112305f, -0.506348f, 0.146484f, -0.566406f, 0.19751f, -0.609131f, 0.248535f,
+-0.651855f, 0.314453f, -0.675049f, 0.380371f, -0.698242f, 0.458008f, -0.698242f,
+0.453613f, -0.623047f, 0.389648f, -0.623047f, 0.339844f, -0.60498f, 0.290039f, -0.586914f,
+0.253174f, -0.552734f, 0.216309f, -0.518555f, 0.192383f, -0.469238f, 0.168457f, -0.419922f,
+0.155762f, -0.357422f, 0.151367f, -0.336426f, 0.149414f, -0.315186f, 0.147461f, -0.293945f,
+0.147461f, -0.274902f, 0.147461f, -0.222656f, 0.161133f, -0.18335f, 0.174805f, -0.144043f,
+0.200928f, -0.11792f, 0.227051f, -0.0917969f, 0.264893f, -0.0788574f, 0.302734f,
+-0.065918f, 0.350586f, -0.065918f, 0.415039f, -0.065918f, 0.465088f, -0.0842285f,
+0.515137f, -0.102539f, 0.551758f, -0.136963f, 0.588379f, -0.171387f, 0.612549f, -0.220459f,
+0.636719f, -0.269531f, 0.648926f, -0.330566f, 0.65332f, -0.351074f, 0.655029f, -0.373047f,
+0.656738f, -0.39502f, 0.656738f, -0.413574f, 0.656738f, -0.46582f, 0.642578f, -0.505127f,
+0.628418f, -0.544434f, 0.602051f, -0.570557f, 0.575684f, -0.59668f, 0.538086f, -0.609863f,
+0.500488f, -0.623047f, 0.453613f, -0.623047f, 0.416016f, -0.687988f, 0.472656f, -0.687988f,
+0.517822f, -0.674805f, 0.562988f, -0.661621f, 0.594727f, -0.637207f, 0.626465f, -0.612793f,
+0.643555f, -0.577393f, 0.660645f, -0.541992f, 0.660645f, -0.498047f, 0.660645f, -0.444336f,
+0.641357f, -0.401611f, 0.62207f, -0.358887f, 0.586182f, -0.329346f, 0.550293f, -0.299805f,
+0.498779f, -0.283936f, 0.447266f, -0.268066f, 0.382812f, -0.268066f, 0.175781f, -0.268066f,
+0.124023f, 0, 0.0307617f, 0, 0.164062f, -0.687988f, 0.19043f, -0.341797f, 0.379395f,
+-0.341797f, 0.473145f, -0.341797f, 0.519531f, -0.379883f, 0.565918f, -0.417969f,
+0.565918f, -0.493652f, 0.565918f, -0.525391f, 0.554932f, -0.547852f, 0.543945f, -0.570312f,
+0.523926f, -0.584961f, 0.503906f, -0.599609f, 0.47583f, -0.606445f, 0.447754f, -0.613281f,
+0.413574f, -0.613281f, 0.243164f, -0.613281f, 0.453125f, -0.698242f, 0.523438f, -0.698242f,
+0.577637f, -0.67749f, 0.631836f, -0.656738f, 0.669189f, -0.619141f, 0.706543f, -0.581543f,
+0.72583f, -0.529785f, 0.745117f, -0.478027f, 0.745117f, -0.415527f, 0.744629f, -0.391602f,
+0.742432f, -0.365967f, 0.740234f, -0.340332f, 0.735352f, -0.316895f, 0.722168f, -0.249512f,
+0.692627f, -0.193604f, 0.663086f, -0.137695f, 0.620117f, -0.0961914f, 0.577148f,
+-0.0546875f, 0.521729f, -0.0285645f, 0.466309f, -0.00244141f, 0.401367f, 0.00585938f,
+0.405762f, 0.0380859f, 0.414551f, 0.0598145f, 0.42334f, 0.081543f, 0.436523f, 0.0947266f,
+0.449707f, 0.10791f, 0.467285f, 0.113525f, 0.484863f, 0.119141f, 0.506836f, 0.119141f,
+0.520508f, 0.119141f, 0.537598f, 0.117188f, 0.554688f, 0.115234f, 0.566895f, 0.112793f,
+0.558105f, 0.178223f, 0.539551f, 0.183594f, 0.519531f, 0.186279f, 0.499512f, 0.188965f,
+0.475586f, 0.188965f, 0.434082f, 0.188965f, 0.405029f, 0.176514f, 0.375977f, 0.164062f,
+0.356934f, 0.140869f, 0.337891f, 0.117676f, 0.327148f, 0.0842285f, 0.316406f, 0.0507812f,
+0.311523f, 0.00830078f, 0.246094f, 0.00390625f, 0.196777f, -0.0192871f, 0.147461f,
+-0.0424805f, 0.114746f, -0.0800781f, 0.0820312f, -0.117676f, 0.0656738f, -0.168701f,
+0.0493164f, -0.219727f, 0.0493164f, -0.279785f, 0.0493164f, -0.302246f, 0.0515137f,
+-0.325684f, 0.0537109f, -0.349121f, 0.0585938f, -0.373047f, 0.0732422f, -0.446289f,
+0.107422f, -0.506348f, 0.141602f, -0.566406f, 0.192627f, -0.609131f, 0.243652f, -0.651855f,
+0.30957f, -0.675049f, 0.375488f, -0.698242f, 0.453125f, -0.698242f, 0.44873f, -0.623047f,
+0.384766f, -0.623047f, 0.334961f, -0.60498f, 0.285156f, -0.586914f, 0.248291f, -0.552734f,
+0.211426f, -0.518555f, 0.1875f, -0.469238f, 0.163574f, -0.419922f, 0.150879f, -0.357422f,
+0.146484f, -0.336426f, 0.144531f, -0.315186f, 0.142578f, -0.293945f, 0.142578f, -0.274902f,
+0.142578f, -0.222656f, 0.15625f, -0.18335f, 0.169922f, -0.144043f, 0.196045f, -0.11792f,
+0.222168f, -0.0917969f, 0.26001f, -0.0788574f, 0.297852f, -0.065918f, 0.345703f,
+-0.065918f, 0.410156f, -0.065918f, 0.460205f, -0.0842285f, 0.510254f, -0.102539f,
+0.546875f, -0.136963f, 0.583496f, -0.171387f, 0.607666f, -0.220459f, 0.631836f, -0.269531f,
+0.644043f, -0.330566f, 0.648438f, -0.351074f, 0.650146f, -0.373047f, 0.651855f, -0.39502f,
+0.651855f, -0.413574f, 0.651855f, -0.46582f, 0.637695f, -0.505127f, 0.623535f, -0.544434f,
+0.597168f, -0.570557f, 0.570801f, -0.59668f, 0.533203f, -0.609863f, 0.495605f, -0.623047f,
+0.44873f, -0.623047f, 0.513184f, 0, 0.394531f, -0.285645f, 0.179199f, -0.285645f,
+0.124023f, 0, 0.0307617f, 0, 0.164062f, -0.687988f, 0.462891f, -0.687988f, 0.513672f,
+-0.687988f, 0.555664f, -0.675537f, 0.597656f, -0.663086f, 0.627686f, -0.639648f,
+0.657715f, -0.616211f, 0.674561f, -0.582764f, 0.691406f, -0.549316f, 0.691406f, -0.507324f,
+0.691406f, -0.415527f, 0.638672f, -0.361816f, 0.585938f, -0.308105f, 0.48291f, -0.293945f,
+0.61377f, 0, 0.418457f, -0.359375f, 0.506836f, -0.359375f, 0.551758f, -0.39624f,
+0.59668f, -0.433105f, 0.59668f, -0.5f, 0.59668f, -0.554688f, 0.560303f, -0.583984f,
+0.523926f, -0.613281f, 0.45166f, -0.613281f, 0.243164f, -0.613281f, 0.193848f, -0.359375f,
+0.300781f, 0.00976562f, 0.237305f, 0.00976562f, 0.189697f, -0.00170898f, 0.14209f,
+-0.0131836f, 0.108887f, -0.0354004f, 0.0756836f, -0.0576172f, 0.0559082f, -0.0900879f,
+0.0361328f, -0.122559f, 0.0283203f, -0.165039f, 0.114746f, -0.183105f, 0.121094f,
+-0.152832f, 0.134766f, -0.130371f, 0.148438f, -0.10791f, 0.171387f, -0.0930176f,
+0.194336f, -0.078125f, 0.228027f, -0.0708008f, 0.261719f, -0.0634766f, 0.307617f,
+-0.0634766f, 0.355469f, -0.0634766f, 0.393555f, -0.0700684f, 0.431641f, -0.0766602f,
+0.458252f, -0.092041f, 0.484863f, -0.107422f, 0.499023f, -0.13208f, 0.513184f, -0.156738f,
+0.513184f, -0.193359f, 0.513184f, -0.218262f, 0.504883f, -0.23584f, 0.496582f, -0.253418f,
+0.476074f, -0.267334f, 0.455566f, -0.28125f, 0.420654f, -0.293701f, 0.385742f, -0.306152f,
+0.333008f, -0.320801f, 0.290039f, -0.33252f, 0.252197f, -0.346924f, 0.214355f, -0.361328f,
+0.186035f, -0.382568f, 0.157715f, -0.403809f, 0.141113f, -0.434082f, 0.124512f, -0.464355f,
+0.124512f, -0.508301f, 0.124512f, -0.55957f, 0.147705f, -0.595459f, 0.170898f, -0.631348f,
+0.209717f, -0.654297f, 0.248535f, -0.677246f, 0.298584f, -0.687744f, 0.348633f, -0.698242f,
+0.402344f, -0.698242f, 0.461426f, -0.698242f, 0.505615f, -0.6875f, 0.549805f, -0.676758f,
+0.580811f, -0.657471f, 0.611816f, -0.638184f, 0.630371f, -0.611328f, 0.648926f, -0.584473f,
+0.65625f, -0.552734f, 0.571777f, -0.527832f, 0.564453f, -0.55127f, 0.55127f, -0.569824f,
+0.538086f, -0.588379f, 0.517578f, -0.601318f, 0.49707f, -0.614258f, 0.468506f, -0.621094f,
+0.439941f, -0.62793f, 0.401855f, -0.62793f, 0.351074f, -0.62793f, 0.316162f, -0.619385f,
+0.28125f, -0.61084f, 0.259521f, -0.595459f, 0.237793f, -0.580078f, 0.228027f, -0.558838f,
+0.218262f, -0.537598f, 0.218262f, -0.512695f, 0.218262f, -0.486328f, 0.228271f, -0.468994f,
+0.238281f, -0.45166f, 0.258789f, -0.439453f, 0.279297f, -0.427246f, 0.310791f, -0.417236f,
+0.342285f, -0.407227f, 0.385254f, -0.395508f, 0.427734f, -0.383789f, 0.468018f, -0.369629f,
+0.508301f, -0.355469f, 0.539551f, -0.33374f, 0.570801f, -0.312012f, 0.5896f, -0.279785f,
+0.608398f, -0.247559f, 0.608398f, -0.199219f, 0.608398f, -0.0986328f, 0.532715f,
+-0.0444336f, 0.457031f, 0.00976562f, 0.300781f, 0.00976562f, 0.418945f, -0.611816f,
+0.299805f, 0, 0.207031f, 0, 0.326172f, -0.611816f, 0.0898438f, -0.611816f, 0.104492f,
+-0.687988f, 0.669922f, -0.687988f, 0.655273f, -0.611816f, 0.319336f, 0.00976562f,
+0.268555f, 0.00976562f, 0.223877f, -0.00341797f, 0.179199f, -0.0166016f, 0.145996f,
+-0.0439453f, 0.112793f, -0.0712891f, 0.09375f, -0.112793f, 0.074707f, -0.154297f,
+0.074707f, -0.210449f, 0.074707f, -0.220703f, 0.0756836f, -0.234131f, 0.0766602f,
+-0.247559f, 0.0783691f, -0.26123f, 0.0800781f, -0.274902f, 0.0820312f, -0.287842f,
+0.0839844f, -0.300781f, 0.0859375f, -0.310059f, 0.15918f, -0.687988f, 0.252441f,
+-0.687988f, 0.17334f, -0.276367f, 0.169922f, -0.258789f, 0.16748f, -0.23999f, 0.165039f,
+-0.221191f, 0.165039f, -0.206543f, 0.165039f, -0.17041f, 0.177246f, -0.144043f, 0.189453f,
+-0.117676f, 0.210938f, -0.100342f, 0.232422f, -0.0830078f, 0.262207f, -0.0744629f,
+0.291992f, -0.065918f, 0.327148f, -0.065918f, 0.369629f, -0.065918f, 0.406006f, -0.0766602f,
+0.442383f, -0.0874023f, 0.471436f, -0.11084f, 0.500488f, -0.134277f, 0.52124f, -0.172119f,
+0.541992f, -0.209961f, 0.552246f, -0.26416f, 0.634277f, -0.687988f, 0.727051f, -0.687988f,
+0.644043f, -0.258789f, 0.630371f, -0.189941f, 0.602295f, -0.139404f, 0.574219f, -0.0888672f,
+0.532715f, -0.0556641f, 0.491211f, -0.0224609f, 0.4375f, -0.00634766f, 0.383789f,
+0.00976562f, 0.319336f, 0.00976562f, 0.330566f, 0, 0.233887f, 0, 0.0864258f, -0.687988f,
+0.181152f, -0.687988f, 0.277832f, -0.203613f, 0.28125f, -0.181641f, 0.28418f, -0.159912f,
+0.287109f, -0.138184f, 0.289551f, -0.121094f, 0.29248f, -0.101074f, 0.294922f, -0.0820312f,
+0.304199f, -0.100098f, 0.314941f, -0.120117f, 0.324219f, -0.137207f, 0.335693f, -0.158936f,
+0.347168f, -0.180664f, 0.359863f, -0.203613f, 0.643066f, -0.687988f, 0.744629f, -0.687988f,
+0.686523f, 0, 0.577637f, 0, 0.542969f, -0.437012f, 0.54248f, -0.446289f, 0.541748f,
+-0.458008f, 0.541016f, -0.469727f, 0.540283f, -0.482666f, 0.539551f, -0.495605f,
+0.538818f, -0.509033f, 0.538086f, -0.522461f, 0.537598f, -0.534668f, 0.536133f, -0.563965f,
+0.535156f, -0.595215f, 0.523438f, -0.564453f, 0.51123f, -0.534668f, 0.500977f, -0.509277f,
+0.489502f, -0.482422f, 0.478027f, -0.455566f, 0.469238f, -0.437012f, 0.264648f, 0,
+0.155762f, 0, 0.0864258f, -0.687988f, 0.182617f, -0.687988f, 0.221191f, -0.250977f,
+0.223633f, -0.220215f, 0.225098f, -0.190186f, 0.226562f, -0.160156f, 0.227539f, -0.135742f,
+0.228516f, -0.107422f, 0.229004f, -0.0820312f, 0.243164f, -0.115723f, 0.257324f,
+-0.148438f, 0.263184f, -0.162598f, 0.269775f, -0.17749f, 0.276367f, -0.192383f, 0.282715f,
+-0.207031f, 0.289062f, -0.22168f, 0.295166f, -0.235107f, 0.30127f, -0.248535f, 0.306641f,
+-0.259766f, 0.509277f, -0.687988f, 0.598633f, -0.687988f, 0.635254f, -0.259766f,
+0.63623f, -0.249023f, 0.637207f, -0.235352f, 0.638184f, -0.22168f, 0.638916f, -0.207275f,
+0.639648f, -0.192871f, 0.640381f, -0.177979f, 0.641113f, -0.163086f, 0.641602f, -0.148926f,
+0.643066f, -0.116211f, 0.643555f, -0.0820312f, 0.644043f, -0.0820312f, 0.651123f,
+-0.098877f, 0.658203f, -0.115723f, 0.668945f, -0.141113f, 0.679688f, -0.166504f,
+0.692627f, -0.196045f, 0.705566f, -0.225586f, 0.717773f, -0.250977f, 0.924316f, -0.687988f,
+1.02246f, -0.687988f, 0.487793f, 0, 0.339844f, -0.295898f, 0.0839844f, 0, -0.019043f,
+0, 0.300293f, -0.364258f, 0.134277f, -0.687988f, 0.231445f, -0.687988f, 0.363281f,
+-0.418945f, 0.595215f, -0.687988f, 0.698242f, -0.687988f, 0.405273f, -0.35791f, 0.584961f,
+0, 0.383301f, -0.285156f, 0.328125f, 0, 0.235352f, 0, 0.291504f, -0.285156f, 0.104004f,
+-0.687988f, 0.199707f, -0.687988f, 0.349121f, -0.358887f, 0.622559f, -0.687988f,
+0.727051f, -0.687988f, 0.52832f, 0, -0.0195312f, 0, -0.00634766f, -0.0698242f, 0.508301f,
+-0.611816f, 0.134766f, -0.611816f, 0.149414f, -0.687988f, 0.638672f, -0.687988f,
+0.625488f, -0.620117f, 0.11084f, -0.0761719f, 0.542969f, -0.0761719f, -0.019043f,
+0.20752f, 0.161621f, -0.724609f, 0.360352f, -0.724609f, 0.348145f, -0.661621f, 0.234375f,
+-0.661621f, 0.0776367f, 0.144531f, 0.191406f, 0.144531f, 0.179199f, 0.20752f, 0.15625f,
+0.00976562f, 0.0712891f, -0.724609f, 0.143555f, -0.724609f, 0.230469f, 0.00976562f,
+-0.0825195f, 0.20752f, -0.0703125f, 0.144531f, 0.0429688f, 0.144531f, 0.199707f,
+-0.661621f, 0.0859375f, -0.661621f, 0.0981445f, -0.724609f, 0.296875f, -0.724609f,
+0.115723f, 0.20752f, 0.398926f, -0.328613f, 0.248047f, -0.637695f, 0.0986328f, -0.328613f,
+0.0195312f, -0.328613f, 0.199219f, -0.687988f, 0.29834f, -0.687988f, 0.479004f, -0.328613f,
+-0.078125f, 0.12207f, -0.078125f, 0.0849609f, 0.49707f, 0.0849609f, 0.49707f, 0.12207f,
+0.201172f, -0.586426f, 0.0634766f, -0.722168f, 0.065918f, -0.736328f, 0.166992f,
+-0.736328f, 0.245605f, -0.596191f, 0.244141f, -0.586426f, 0.515137f, -0.00292969f,
+0.500977f, 0.000488281f, 0.484619f, 0.00268555f, 0.468262f, 0.00488281f, 0.452637f,
+0.00488281f, 0.407227f, 0.00488281f, 0.386475f, -0.013916f, 0.365723f, -0.0327148f,
+0.365723f, -0.0698242f, 0.365723f, -0.0771484f, 0.366699f, -0.0856934f, 0.367676f,
+-0.0942383f, 0.368164f, -0.101074f, 0.365234f, -0.101074f, 0.348145f, -0.0751953f,
+0.329834f, -0.0546875f, 0.311523f, -0.0341797f, 0.289307f, -0.0197754f, 0.26709f,
+-0.00537109f, 0.239746f, 0.00219727f, 0.212402f, 0.00976562f, 0.17627f, 0.00976562f,
+0.138184f, 0.00976562f, 0.109619f, -0.00244141f, 0.0810547f, -0.0146484f, 0.0615234f,
+-0.0349121f, 0.0419922f, -0.0551758f, 0.0322266f, -0.081543f, 0.0224609f, -0.10791f,
+0.0224609f, -0.135742f, 0.0224609f, -0.175293f, 0.0339355f, -0.204102f, 0.0454102f,
+-0.23291f, 0.0651855f, -0.253418f, 0.0849609f, -0.273926f, 0.111572f, -0.286865f,
+0.138184f, -0.299805f, 0.168213f, -0.307129f, 0.198242f, -0.314453f, 0.230469f, -0.317383f,
+0.262695f, -0.320312f, 0.293457f, -0.320801f, 0.406738f, -0.322266f, 0.410156f, -0.339844f,
+0.412598f, -0.352051f, 0.414307f, -0.363281f, 0.416016f, -0.374512f, 0.416016f, -0.384277f,
+0.416016f, -0.428711f, 0.390137f, -0.449951f, 0.364258f, -0.471191f, 0.318359f, -0.471191f,
+0.294434f, -0.471191f, 0.273682f, -0.467529f, 0.25293f, -0.463867f, 0.236572f, -0.454346f,
+0.220215f, -0.444824f, 0.207764f, -0.428467f, 0.195312f, -0.412109f, 0.1875f, -0.387207f,
+0.100586f, -0.401367f, 0.109863f, -0.431641f, 0.125977f, -0.456787f, 0.14209f, -0.481934f,
+0.168457f, -0.5f, 0.194824f, -0.518066f, 0.232666f, -0.528076f, 0.270508f, -0.538086f,
+0.323242f, -0.538086f, 0.366699f, -0.538086f, 0.400391f, -0.527344f, 0.434082f, -0.516602f,
+0.457031f, -0.497559f, 0.47998f, -0.478516f, 0.491943f, -0.452148f, 0.503906f, -0.425781f,
+0.503906f, -0.394043f, 0.503906f, -0.378906f, 0.501221f, -0.357666f, 0.498535f, -0.336426f,
+0.494629f, -0.317383f, 0.458496f, -0.132812f, 0.456055f, -0.12207f, 0.45459f, -0.11084f,
+0.453125f, -0.0996094f, 0.453125f, -0.0898438f, 0.453125f, -0.0717773f, 0.462646f,
+-0.0629883f, 0.472168f, -0.0541992f, 0.492676f, -0.0541992f, 0.5f, -0.0541992f, 0.507568f,
+-0.0551758f, 0.515137f, -0.0561523f, 0.521973f, -0.0576172f, 0.39502f, -0.261719f,
+0.297852f, -0.259766f, 0.27832f, -0.259277f, 0.257324f, -0.257812f, 0.236328f, -0.256348f,
+0.216064f, -0.251709f, 0.195801f, -0.24707f, 0.17749f, -0.239258f, 0.15918f, -0.231445f,
+0.145508f, -0.218018f, 0.131836f, -0.20459f, 0.123779f, -0.185547f, 0.115723f, -0.166504f,
+0.115723f, -0.139648f, 0.115723f, -0.124023f, 0.12085f, -0.109131f, 0.125977f, -0.0942383f,
+0.136719f, -0.0827637f, 0.147461f, -0.0712891f, 0.16333f, -0.064209f, 0.179199f,
+-0.0571289f, 0.200684f, -0.0571289f, 0.243164f, -0.0571289f, 0.274902f, -0.0717773f,
+0.306641f, -0.0864258f, 0.329102f, -0.10791f, 0.351562f, -0.129395f, 0.364502f, -0.154541f,
+0.377441f, -0.179688f, 0.381836f, -0.200684f, 0.363281f, -0.538086f, 0.402344f, -0.538086f,
+0.432617f, -0.525879f, 0.462891f, -0.513672f, 0.483398f, -0.491211f, 0.503906f, -0.46875f,
+0.514648f, -0.436768f, 0.525391f, -0.404785f, 0.525391f, -0.365234f, 0.525391f, -0.34082f,
+0.523193f, -0.311768f, 0.520996f, -0.282715f, 0.515137f, -0.251953f, 0.501953f, -0.182617f,
+0.480469f, -0.133057f, 0.458984f, -0.0834961f, 0.428711f, -0.0517578f, 0.398438f,
+-0.0200195f, 0.359375f, -0.00512695f, 0.320312f, 0.00976562f, 0.271973f, 0.00976562f,
+0.211914f, 0.00976562f, 0.174316f, -0.015625f, 0.136719f, -0.0410156f, 0.121094f,
+-0.0869141f, 0.119629f, -0.0869141f, 0.117188f, -0.0742188f, 0.11377f, -0.0598145f,
+0.110352f, -0.0454102f, 0.107178f, -0.0327148f, 0.104004f, -0.0200195f, 0.101807f,
+-0.0109863f, 0.0996094f, -0.00195312f, 0.0986328f, 0, 0.0141602f, 0, 0.015625f, -0.00439453f,
+0.0180664f, -0.0148926f, 0.0205078f, -0.0253906f, 0.0236816f, -0.0400391f, 0.0268555f,
+-0.0546875f, 0.0307617f, -0.0722656f, 0.034668f, -0.0898438f, 0.0380859f, -0.108887f,
+0.157715f, -0.724609f, 0.245605f, -0.724609f, 0.205078f, -0.518066f, 0.202637f, -0.503906f,
+0.199463f, -0.491211f, 0.196289f, -0.478516f, 0.193848f, -0.469238f, 0.190918f, -0.458496f,
+0.188477f, -0.449707f, 0.19043f, -0.449707f, 0.208008f, -0.472656f, 0.226318f, -0.489258f,
+0.244629f, -0.505859f, 0.265381f, -0.516846f, 0.286133f, -0.527832f, 0.310059f, -0.532959f,
+0.333984f, -0.538086f, 0.363281f, -0.538086f, 0.337891f, -0.470215f, 0.306641f, -0.470215f,
+0.278564f, -0.460938f, 0.250488f, -0.45166f, 0.226562f, -0.428955f, 0.202637f, -0.40625f,
+0.184326f, -0.367676f, 0.166016f, -0.329102f, 0.154785f, -0.270508f, 0.145508f, -0.222656f,
+0.145508f, -0.184082f, 0.145508f, -0.152832f, 0.153809f, -0.128662f, 0.162109f, -0.104492f,
+0.17749f, -0.0881348f, 0.192871f, -0.0717773f, 0.2146f, -0.0634766f, 0.236328f, -0.0551758f,
+0.262695f, -0.0551758f, 0.292969f, -0.0551758f, 0.317383f, -0.064209f, 0.341797f,
+-0.0732422f, 0.361572f, -0.095459f, 0.381348f, -0.117676f, 0.396484f, -0.155029f,
+0.411621f, -0.192383f, 0.422363f, -0.249023f, 0.433594f, -0.308105f, 0.433594f, -0.349609f,
+0.433594f, -0.409668f, 0.410645f, -0.439941f, 0.387695f, -0.470215f, 0.337891f, -0.470215f,
+0.229004f, -0.0595703f, 0.256348f, -0.0595703f, 0.27832f, -0.067627f, 0.300293f,
+-0.0756836f, 0.317383f, -0.090332f, 0.334473f, -0.10498f, 0.347656f, -0.125732f,
+0.36084f, -0.146484f, 0.370117f, -0.171875f, 0.446289f, -0.147949f, 0.432617f, -0.111328f,
+0.412842f, -0.0822754f, 0.393066f, -0.0532227f, 0.365967f, -0.0327148f, 0.338867f,
+-0.012207f, 0.304199f, -0.0012207f, 0.269531f, 0.00976562f, 0.227051f, 0.00976562f,
+0.176758f, 0.00976562f, 0.139893f, -0.00537109f, 0.103027f, -0.0205078f, 0.0793457f,
+-0.0476074f, 0.0556641f, -0.074707f, 0.0441895f, -0.111816f, 0.0327148f, -0.148926f,
+0.0327148f, -0.192871f, 0.0327148f, -0.212402f, 0.0344238f, -0.235352f, 0.0361328f,
+-0.258301f, 0.0405273f, -0.280273f, 0.0512695f, -0.334473f, 0.0681152f, -0.374512f,
+0.0849609f, -0.414551f, 0.105713f, -0.443115f, 0.126465f, -0.47168f, 0.150635f, -0.490234f,
+0.174805f, -0.508789f, 0.200439f, -0.519287f, 0.226074f, -0.529785f, 0.252686f, -0.533936f,
+0.279297f, -0.538086f, 0.305176f, -0.538086f, 0.348633f, -0.538086f, 0.381592f, -0.526855f,
+0.414551f, -0.515625f, 0.4375f, -0.495117f, 0.460449f, -0.474609f, 0.473389f, -0.446045f,
+0.486328f, -0.41748f, 0.48877f, -0.382812f, 0.402344f, -0.370605f, 0.400879f, -0.392578f,
+0.394043f, -0.410645f, 0.387207f, -0.428711f, 0.374756f, -0.44165f, 0.362305f, -0.45459f,
+0.344238f, -0.461914f, 0.326172f, -0.469238f, 0.302246f, -0.469238f, 0.268555f, -0.469238f,
+0.241699f, -0.459473f, 0.214844f, -0.449707f, 0.193604f, -0.427734f, 0.172363f, -0.405762f,
+0.157227f, -0.370361f, 0.14209f, -0.334961f, 0.131836f, -0.283691f, 0.127441f, -0.260254f,
+0.125f, -0.234375f, 0.122559f, -0.208496f, 0.122559f, -0.189941f, 0.122559f, -0.12793f,
+0.147705f, -0.09375f, 0.172852f, -0.0595703f, 0.229004f, -0.0595703f, 0.195801f,
+0.0102539f, 0.156738f, 0.0102539f, 0.126465f, -0.00195312f, 0.0961914f, -0.0141602f,
+0.0756836f, -0.0366211f, 0.0551758f, -0.059082f, 0.0444336f, -0.0910645f, 0.0336914f,
+-0.123047f, 0.0336914f, -0.162598f, 0.0336914f, -0.18457f, 0.0358887f, -0.214844f,
+0.0380859f, -0.245117f, 0.0439453f, -0.275879f, 0.0571289f, -0.345215f, 0.0786133f,
+-0.394775f, 0.100098f, -0.444336f, 0.130371f, -0.476074f, 0.160645f, -0.507812f,
+0.199707f, -0.522705f, 0.23877f, -0.537598f, 0.287109f, -0.537598f, 0.347168f, -0.537598f,
+0.38501f, -0.512207f, 0.422852f, -0.486816f, 0.438477f, -0.440918f, 0.440918f, -0.440918f,
+0.441895f, -0.445801f, 0.443848f, -0.457031f, 0.445801f, -0.468262f, 0.447998f, -0.480713f,
+0.450195f, -0.493164f, 0.452148f, -0.504395f, 0.454102f, -0.515625f, 0.45459f, -0.52002f,
+0.494629f, -0.724609f, 0.58252f, -0.724609f, 0.462891f, -0.108887f, 0.458984f, -0.0898438f,
+0.455811f, -0.0722656f, 0.452637f, -0.0546875f, 0.450195f, -0.0400391f, 0.447754f,
+-0.0253906f, 0.446289f, -0.0148926f, 0.444824f, -0.00439453f, 0.444336f, 0, 0.360352f,
+0, 0.360352f, -0.00976562f, 0.363037f, -0.03125f, 0.365723f, -0.0527344f, 0.370605f,
+-0.078125f, 0.368164f, -0.078125f, 0.350586f, -0.0551758f, 0.332275f, -0.0385742f,
+0.313965f, -0.0219727f, 0.293457f, -0.0109863f, 0.272949f, 0, 0.249023f, 0.00512695f,
+0.225098f, 0.0102539f, 0.195801f, 0.0102539f, 0.221191f, -0.0576172f, 0.252441f,
+-0.0576172f, 0.280518f, -0.0668945f, 0.308594f, -0.0761719f, 0.33252f, -0.098877f,
+0.356445f, -0.121582f, 0.374756f, -0.160156f, 0.393066f, -0.19873f, 0.404297f, -0.257324f,
+0.413574f, -0.305176f, 0.413574f, -0.34375f, 0.413574f, -0.375488f, 0.405273f, -0.399414f,
+0.396973f, -0.42334f, 0.381592f, -0.439697f, 0.366211f, -0.456055f, 0.344482f, -0.464355f,
+0.322754f, -0.472656f, 0.296387f, -0.472656f, 0.266602f, -0.472656f, 0.241943f, -0.463623f,
+0.217285f, -0.45459f, 0.19751f, -0.432373f, 0.177734f, -0.410156f, 0.162842f, -0.372803f,
+0.147949f, -0.335449f, 0.136719f, -0.278809f, 0.125488f, -0.219727f, 0.125488f, -0.178223f,
+0.125488f, -0.118164f, 0.148438f, -0.0878906f, 0.171387f, -0.0576172f, 0.221191f,
+-0.0576172f, 0.125f, -0.245605f, 0.122559f, -0.231934f, 0.121826f, -0.218018f, 0.121094f,
+-0.204102f, 0.120605f, -0.19043f, 0.120605f, -0.125488f, 0.153076f, -0.0908203f,
+0.185547f, -0.0561523f, 0.250977f, -0.0561523f, 0.27832f, -0.0561523f, 0.300781f,
+-0.0632324f, 0.323242f, -0.0703125f, 0.341553f, -0.0822754f, 0.359863f, -0.0942383f,
+0.373779f, -0.110107f, 0.387695f, -0.125977f, 0.396973f, -0.143555f, 0.464355f, -0.112793f,
+0.452148f, -0.0908203f, 0.43457f, -0.0690918f, 0.416992f, -0.0473633f, 0.390869f,
+-0.0297852f, 0.364746f, -0.012207f, 0.328125f, -0.0012207f, 0.291504f, 0.00976562f,
+0.240723f, 0.00976562f, 0.191895f, 0.00976562f, 0.15332f, -0.00415039f, 0.114746f,
+-0.0180664f, 0.0881348f, -0.0446777f, 0.0615234f, -0.0712891f, 0.0476074f, -0.109863f,
+0.0336914f, -0.148438f, 0.0336914f, -0.197754f, 0.0336914f, -0.274902f, 0.0544434f,
+-0.337891f, 0.0751953f, -0.400879f, 0.112061f, -0.445312f, 0.148926f, -0.489746f,
+0.198975f, -0.513916f, 0.249023f, -0.538086f, 0.307617f, -0.538086f, 0.361328f, -0.538086f,
+0.400879f, -0.523926f, 0.44043f, -0.509766f, 0.466797f, -0.484375f, 0.493164f, -0.458984f,
+0.506104f, -0.423584f, 0.519043f, -0.388184f, 0.519043f, -0.345703f, 0.519043f, -0.335449f,
+0.518311f, -0.323242f, 0.517578f, -0.311035f, 0.516113f, -0.297852f, 0.514648f, -0.284668f,
+0.512451f, -0.27124f, 0.510254f, -0.257812f, 0.507324f, -0.245605f, 0.429688f, -0.312988f,
+0.430664f, -0.322754f, 0.431152f, -0.331299f, 0.431641f, -0.339844f, 0.431641f, -0.348145f,
+0.431641f, -0.380371f, 0.422852f, -0.404053f, 0.414062f, -0.427734f, 0.397949f, -0.443115f,
+0.381836f, -0.458496f, 0.359375f, -0.46582f, 0.336914f, -0.473145f, 0.30957f, -0.473145f,
+0.286133f, -0.473145f, 0.260254f, -0.466064f, 0.234375f, -0.458984f, 0.210693f, -0.440918f,
+0.187012f, -0.422852f, 0.16748f, -0.391846f, 0.147949f, -0.36084f, 0.136719f, -0.312988f,
+0.211914f, -0.464355f, 0.121582f, 0, 0.0336914f, 0, 0.124023f, -0.464355f, 0.0498047f,
+-0.464355f, 0.0625f, -0.52832f, 0.136719f, -0.52832f, 0.147949f, -0.587891f, 0.153809f,
+-0.616699f, 0.163086f, -0.641602f, 0.172363f, -0.666504f, 0.189697f, -0.685059f,
+0.207031f, -0.703613f, 0.234375f, -0.714111f, 0.261719f, -0.724609f, 0.303711f, -0.724609f,
+0.319336f, -0.724609f, 0.335693f, -0.723145f, 0.352051f, -0.72168f, 0.364258f, -0.71875f,
+0.351562f, -0.651855f, 0.347168f, -0.652832f, 0.341553f, -0.65332f, 0.335938f, -0.653809f,
+0.32959f, -0.654541f, 0.323242f, -0.655273f, 0.317383f, -0.655518f, 0.311523f, -0.655762f,
+0.307129f, -0.655762f, 0.288574f, -0.655762f, 0.276123f, -0.650391f, 0.263672f, -0.64502f,
+0.255615f, -0.634766f, 0.247559f, -0.624512f, 0.242676f, -0.609619f, 0.237793f, -0.594727f,
+0.233887f, -0.575684f, 0.224609f, -0.52832f, 0.327637f, -0.52832f, 0.314941f, -0.464355f,
+0.193848f, 0.20752f, 0.148438f, 0.20752f, 0.114746f, 0.198486f, 0.0810547f, 0.189453f,
+0.0578613f, 0.17334f, 0.034668f, 0.157227f, 0.0212402f, 0.134521f, 0.0078125f, 0.111816f,
+0.00195312f, 0.0844727f, 0.081543f, 0.0639648f, 0.0898438f, 0.101074f, 0.118408f,
+0.12085f, 0.146973f, 0.140625f, 0.195801f, 0.140625f, 0.230957f, 0.140625f, 0.257812f,
+0.131592f, 0.284668f, 0.122559f, 0.303955f, 0.104004f, 0.323242f, 0.0854492f, 0.336182f,
+0.0563965f, 0.349121f, 0.0273438f, 0.356934f, -0.0131836f, 0.359375f, -0.0258789f,
+0.362305f, -0.0405273f, 0.365234f, -0.0551758f, 0.367676f, -0.0678711f, 0.370605f,
+-0.0830078f, 0.373535f, -0.0981445f, 0.372559f, -0.0981445f, 0.358887f, -0.0786133f,
+0.343506f, -0.0600586f, 0.328125f, -0.0415039f, 0.308105f, -0.0273438f, 0.288086f,
+-0.0131836f, 0.261719f, -0.00463867f, 0.235352f, 0.00390625f, 0.200195f, 0.00390625f,
+0.161621f, 0.00390625f, 0.130859f, -0.00952148f, 0.100098f, -0.0229492f, 0.0786133f,
+-0.0466309f, 0.0571289f, -0.0703125f, 0.0456543f, -0.103271f, 0.0341797f, -0.13623f,
+0.0341797f, -0.175293f, 0.0341797f, -0.199219f, 0.0368652f, -0.22583f, 0.0395508f,
+-0.252441f, 0.0454102f, -0.283203f, 0.0698242f, -0.410645f, 0.128174f, -0.474121f,
+0.186523f, -0.537598f, 0.287109f, -0.537598f, 0.314941f, -0.537598f, 0.339844f, -0.531006f,
+0.364746f, -0.524414f, 0.384521f, -0.511475f, 0.404297f, -0.498535f, 0.418701f, -0.47998f,
+0.433105f, -0.461426f, 0.439453f, -0.437988f, 0.44043f, -0.437988f, 0.442871f, -0.450195f,
+0.446533f, -0.465332f, 0.450195f, -0.480469f, 0.453613f, -0.493896f, 0.457031f, -0.507324f,
+0.459961f, -0.51709f, 0.462891f, -0.526855f, 0.463867f, -0.52832f, 0.547363f, -0.52832f,
+0.546387f, -0.523926f, 0.543945f, -0.513428f, 0.541504f, -0.50293f, 0.538086f, -0.488281f,
+0.534668f, -0.473633f, 0.531006f, -0.455811f, 0.527344f, -0.437988f, 0.523438f, -0.418945f,
+0.444824f, -0.0151367f, 0.43457f, 0.0371094f, 0.416504f, 0.0783691f, 0.398438f, 0.119629f,
+0.368652f, 0.148438f, 0.338867f, 0.177246f, 0.296143f, 0.192383f, 0.253418f, 0.20752f,
+0.193848f, 0.20752f, 0.126465f, -0.182129f, 0.126465f, -0.123047f, 0.1521f, -0.092041f,
+0.177734f, -0.0610352f, 0.227539f, -0.0610352f, 0.253906f, -0.0610352f, 0.281006f,
+-0.0722656f, 0.308105f, -0.0834961f, 0.332275f, -0.10791f, 0.356445f, -0.132324f,
+0.375732f, -0.170898f, 0.39502f, -0.209473f, 0.405762f, -0.26416f, 0.409668f, -0.284668f,
+0.411621f, -0.306396f, 0.413574f, -0.328125f, 0.413574f, -0.34375f, 0.413574f, -0.376465f,
+0.404785f, -0.400635f, 0.395996f, -0.424805f, 0.380127f, -0.440918f, 0.364258f, -0.457031f,
+0.342773f, -0.464844f, 0.321289f, -0.472656f, 0.296387f, -0.472656f, 0.266113f, -0.472656f,
+0.241455f, -0.463623f, 0.216797f, -0.45459f, 0.197266f, -0.432861f, 0.177734f, -0.411133f,
+0.163086f, -0.374756f, 0.148438f, -0.338379f, 0.137695f, -0.283203f, 0.132324f, -0.254395f,
+0.129395f, -0.228027f, 0.126465f, -0.20166f, 0.126465f, -0.182129f, 0.187012f, -0.437988f,
+0.203613f, -0.460938f, 0.221191f, -0.479492f, 0.23877f, -0.498047f, 0.26001f, -0.510986f,
+0.28125f, -0.523926f, 0.306885f, -0.530762f, 0.33252f, -0.537598f, 0.365234f, -0.537598f,
+0.4375f, -0.537598f, 0.473877f, -0.501953f, 0.510254f, -0.466309f, 0.510254f, -0.398926f,
+0.510254f, -0.381348f, 0.50708f, -0.359375f, 0.503906f, -0.337402f, 0.5f, -0.318848f,
+0.437988f, 0, 0.349609f, 0, 0.411133f, -0.314941f, 0.415039f, -0.333984f, 0.41748f,
+-0.35376f, 0.419922f, -0.373535f, 0.419922f, -0.388184f, 0.419922f, -0.426758f, 0.399414f,
+-0.448242f, 0.378906f, -0.469727f, 0.33252f, -0.469727f, 0.30127f, -0.469727f, 0.273682f,
+-0.457275f, 0.246094f, -0.444824f, 0.223633f, -0.422119f, 0.201172f, -0.399414f,
+0.185303f, -0.367432f, 0.169434f, -0.335449f, 0.161621f, -0.295898f, 0.104004f, 0,
+0.0166016f, 0, 0.157227f, -0.724609f, 0.245117f, -0.724609f, 0.208496f, -0.536133f,
+0.205566f, -0.52002f, 0.201904f, -0.503906f, 0.198242f, -0.487793f, 0.194824f, -0.474365f,
+0.191406f, -0.460938f, 0.188965f, -0.451172f, 0.186523f, -0.441406f, 0.185547f, -0.437988f,
+0.140137f, -0.640625f, 0.156738f, -0.724609f, 0.244629f, -0.724609f, 0.228027f, -0.640625f,
+0.0161133f, 0, 0.118652f, -0.52832f, 0.206543f, -0.52832f, 0.103516f, 0, 0.141113f,
+-0.640625f, 0.157227f, -0.724609f, 0.245117f, -0.724609f, 0.229004f, -0.640625f,
+-0.0488281f, 0.20752f, -0.0654297f, 0.20752f, -0.0822754f, 0.205322f, -0.0991211f,
+0.203125f, -0.111816f, 0.200684f, -0.100586f, 0.134277f, -0.0942383f, 0.135254f,
+-0.0820312f, 0.136719f, -0.0698242f, 0.138184f, -0.0600586f, 0.138184f, -0.03125f,
+0.138184f, -0.0166016f, 0.117676f, -0.00195312f, 0.097168f, 0.00634766f, 0.0522461f,
+0.119141f, -0.52832f, 0.207031f, -0.52832f, 0.0913086f, 0.0654297f, 0.0854492f, 0.0957031f,
+0.0759277f, 0.121582f, 0.0664062f, 0.147461f, 0.050293f, 0.166504f, 0.0341797f, 0.185547f,
+0.0100098f, 0.196533f, -0.0141602f, 0.20752f, -0.0488281f, 0.20752f, 0.352051f, 0,
+0.221191f, -0.245117f, 0.13916f, -0.18457f, 0.104004f, 0, 0.0166016f, 0, 0.157227f,
+-0.724609f, 0.245117f, -0.724609f, 0.157715f, -0.276855f, 0.257324f, -0.369629f,
+0.433594f, -0.52832f, 0.541992f, -0.52832f, 0.283203f, -0.30127f, 0.447266f, 0, 0.0161133f,
+0, 0.156738f, -0.724609f, 0.244629f, -0.724609f, 0.103516f, 0, 0.322266f, 0, 0.382812f,
+-0.30957f, 0.384766f, -0.319336f, 0.386963f, -0.331055f, 0.38916f, -0.342773f, 0.390869f,
+-0.354492f, 0.392578f, -0.366211f, 0.393799f, -0.376709f, 0.39502f, -0.387207f, 0.39502f,
+-0.394531f, 0.39502f, -0.431152f, 0.376465f, -0.450439f, 0.35791f, -0.469727f, 0.315918f,
+-0.469727f, 0.288086f, -0.469727f, 0.262939f, -0.457275f, 0.237793f, -0.444824f,
+0.217773f, -0.422119f, 0.197754f, -0.399414f, 0.183105f, -0.366943f, 0.168457f, -0.334473f,
+0.161621f, -0.294922f, 0.104004f, 0, 0.0166016f, 0, 0.0976562f, -0.415527f, 0.101074f,
+-0.432129f, 0.104248f, -0.450439f, 0.107422f, -0.46875f, 0.110107f, -0.485107f, 0.112793f,
+-0.501465f, 0.114502f, -0.513184f, 0.116211f, -0.524902f, 0.116699f, -0.52832f, 0.199707f,
+-0.52832f, 0.199707f, -0.525879f, 0.198242f, -0.515137f, 0.196777f, -0.504395f, 0.19458f,
+-0.490479f, 0.192383f, -0.476562f, 0.190186f, -0.462158f, 0.187988f, -0.447754f,
+0.186035f, -0.437988f, 0.1875f, -0.437988f, 0.202148f, -0.460938f, 0.217773f, -0.479492f,
+0.233398f, -0.498047f, 0.251953f, -0.510986f, 0.270508f, -0.523926f, 0.293213f, -0.530762f,
+0.315918f, -0.537598f, 0.344727f, -0.537598f, 0.403809f, -0.537598f, 0.438477f, -0.508545f,
+0.473145f, -0.479492f, 0.47998f, -0.424316f, 0.495605f, -0.44873f, 0.512207f, -0.469238f,
+0.528809f, -0.489746f, 0.549072f, -0.505127f, 0.569336f, -0.520508f, 0.593994f, -0.529053f,
+0.618652f, -0.537598f, 0.649902f, -0.537598f, 0.71582f, -0.537598f, 0.751221f, -0.501953f,
+0.786621f, -0.466309f, 0.786621f, -0.398926f, 0.786621f, -0.381348f, 0.783447f, -0.359375f,
+0.780273f, -0.337402f, 0.776367f, -0.318848f, 0.714355f, 0, 0.627441f, 0, 0.687988f,
+-0.30957f, 0.689941f, -0.319336f, 0.692139f, -0.331055f, 0.694336f, -0.342773f, 0.696045f,
+-0.354492f, 0.697754f, -0.366211f, 0.698975f, -0.376709f, 0.700195f, -0.387207f,
+0.700195f, -0.394531f, 0.700195f, -0.431152f, 0.681641f, -0.450439f, 0.663086f, -0.469727f,
+0.621094f, -0.469727f, 0.593262f, -0.469727f, 0.568115f, -0.45752f, 0.542969f, -0.445312f,
+0.522949f, -0.422852f, 0.50293f, -0.400391f, 0.488281f, -0.368164f, 0.473633f, -0.335938f,
+0.466797f, -0.296387f, 0.40918f, 0, 0.350098f, 0, 0.411621f, -0.314941f, 0.415527f,
+-0.333984f, 0.417969f, -0.35376f, 0.42041f, -0.373535f, 0.42041f, -0.388184f, 0.42041f,
+-0.426758f, 0.399902f, -0.448242f, 0.379395f, -0.469727f, 0.333008f, -0.469727f,
+0.301758f, -0.469727f, 0.27417f, -0.457275f, 0.246582f, -0.444824f, 0.224121f, -0.422119f,
+0.20166f, -0.399414f, 0.185791f, -0.367432f, 0.169922f, -0.335449f, 0.162109f, -0.295898f,
+0.104492f, 0, 0.0166016f, 0, 0.0976562f, -0.415527f, 0.101074f, -0.432129f, 0.104248f,
+-0.450439f, 0.107422f, -0.46875f, 0.110107f, -0.485107f, 0.112793f, -0.501465f, 0.114502f,
+-0.513184f, 0.116211f, -0.524902f, 0.116699f, -0.52832f, 0.199707f, -0.52832f, 0.199707f,
+-0.525879f, 0.198242f, -0.515137f, 0.196777f, -0.504395f, 0.19458f, -0.490479f, 0.192383f,
+-0.476562f, 0.190186f, -0.462158f, 0.187988f, -0.447754f, 0.186035f, -0.437988f,
+0.1875f, -0.437988f, 0.204102f, -0.460938f, 0.22168f, -0.479492f, 0.239258f, -0.498047f,
+0.260498f, -0.510986f, 0.281738f, -0.523926f, 0.307373f, -0.530762f, 0.333008f, -0.537598f,
+0.365723f, -0.537598f, 0.437988f, -0.537598f, 0.474365f, -0.501953f, 0.510742f, -0.466309f,
+0.510742f, -0.398926f, 0.510742f, -0.381348f, 0.507568f, -0.359375f, 0.504395f, -0.337402f,
+0.500488f, -0.318848f, 0.438477f, 0, 0.524414f, -0.333496f, 0.524414f, -0.308105f,
+0.521484f, -0.282471f, 0.518555f, -0.256836f, 0.511719f, -0.228027f, 0.49707f, -0.163574f,
+0.470947f, -0.118164f, 0.444824f, -0.0727539f, 0.409668f, -0.0444336f, 0.374512f,
+-0.0161133f, 0.331543f, -0.00317383f, 0.288574f, 0.00976562f, 0.239746f, 0.00976562f,
+0.192871f, 0.00976562f, 0.154785f, -0.00463867f, 0.116699f, -0.019043f, 0.0895996f,
+-0.0466309f, 0.0625f, -0.0742188f, 0.0476074f, -0.114014f, 0.0327148f, -0.153809f,
+0.0327148f, -0.20459f, 0.0332031f, -0.227539f, 0.0354004f, -0.251953f, 0.0375977f,
+-0.276367f, 0.043457f, -0.302734f, 0.0576172f, -0.364258f, 0.0825195f, -0.408447f,
+0.107422f, -0.452637f, 0.141602f, -0.481445f, 0.175781f, -0.510254f, 0.218994f, -0.523926f,
+0.262207f, -0.537598f, 0.313477f, -0.537598f, 0.365234f, -0.537598f, 0.404541f, -0.523926f,
+0.443848f, -0.510254f, 0.470459f, -0.483887f, 0.49707f, -0.45752f, 0.510742f, -0.419678f,
+0.524414f, -0.381836f, 0.524414f, -0.333496f, 0.433594f, -0.333496f, 0.433594f, -0.371094f,
+0.425293f, -0.397461f, 0.416992f, -0.423828f, 0.401123f, -0.440674f, 0.385254f, -0.45752f,
+0.362793f, -0.465332f, 0.340332f, -0.473145f, 0.3125f, -0.473145f, 0.286621f, -0.473145f,
+0.260498f, -0.467041f, 0.234375f, -0.460938f, 0.210693f, -0.442383f, 0.187012f, -0.423828f,
+0.16748f, -0.389648f, 0.147949f, -0.355469f, 0.134766f, -0.298828f, 0.128418f, -0.271973f,
+0.125732f, -0.247803f, 0.123047f, -0.223633f, 0.123047f, -0.203125f, 0.123047f, -0.163086f,
+0.132324f, -0.134766f, 0.141602f, -0.106445f, 0.157959f, -0.0888672f, 0.174316f,
+-0.0712891f, 0.196533f, -0.0632324f, 0.21875f, -0.0551758f, 0.245117f, -0.0551758f,
+0.271484f, -0.0551758f, 0.297119f, -0.0610352f, 0.322754f, -0.0668945f, 0.345703f,
+-0.0856934f, 0.368652f, -0.104492f, 0.387939f, -0.13916f, 0.407227f, -0.173828f,
+0.42041f, -0.230957f, 0.427246f, -0.260254f, 0.429932f, -0.284668f, 0.432617f, -0.309082f,
+0.433594f, -0.333496f, 0.270508f, 0.00976562f, 0.210449f, 0.00976562f, 0.172607f,
+-0.015625f, 0.134766f, -0.0410156f, 0.119141f, -0.0869141f, 0.116699f, -0.0869141f,
+0.116699f, -0.0859375f, 0.115723f, -0.0773926f, 0.114746f, -0.0688477f, 0.112793f,
+-0.0561523f, 0.11084f, -0.043457f, 0.108154f, -0.0283203f, 0.105469f, -0.0131836f,
+0.102539f, 0.000976562f, 0.0625f, 0.20752f, -0.0249023f, 0.20752f, 0.0966797f, -0.42041f,
+0.100586f, -0.439453f, 0.103516f, -0.457031f, 0.106445f, -0.474609f, 0.108643f, -0.489014f,
+0.11084f, -0.503418f, 0.112061f, -0.513672f, 0.113281f, -0.523926f, 0.11377f, -0.52832f,
+0.195312f, -0.52832f, 0.195312f, -0.524414f, 0.194824f, -0.515625f, 0.194336f, -0.506836f,
+0.193115f, -0.49585f, 0.191895f, -0.484863f, 0.19043f, -0.472656f, 0.188965f, -0.460449f,
+0.187012f, -0.449707f, 0.188965f, -0.449707f, 0.206543f, -0.472656f, 0.224854f, -0.489258f,
+0.243164f, -0.505859f, 0.263916f, -0.516846f, 0.284668f, -0.527832f, 0.308594f, -0.532959f,
+0.33252f, -0.538086f, 0.361816f, -0.538086f, 0.400879f, -0.538086f, 0.431152f, -0.525879f,
+0.461426f, -0.513672f, 0.481934f, -0.491211f, 0.502441f, -0.46875f, 0.513184f, -0.436768f,
+0.523926f, -0.404785f, 0.523926f, -0.365234f, 0.523926f, -0.34082f, 0.521729f, -0.311768f,
+0.519531f, -0.282715f, 0.513672f, -0.251953f, 0.500488f, -0.182617f, 0.479004f, -0.133057f,
+0.45752f, -0.0834961f, 0.427246f, -0.0517578f, 0.396973f, -0.0200195f, 0.35791f,
+-0.00512695f, 0.318848f, 0.00976562f, 0.270508f, 0.00976562f, 0.336426f, -0.470215f,
+0.305176f, -0.470215f, 0.2771f, -0.460938f, 0.249023f, -0.45166f, 0.225098f, -0.428955f,
+0.201172f, -0.40625f, 0.182861f, -0.367676f, 0.164551f, -0.329102f, 0.15332f, -0.270508f,
+0.144043f, -0.222656f, 0.144043f, -0.184082f, 0.144043f, -0.152832f, 0.152344f, -0.128662f,
+0.160645f, -0.104492f, 0.176025f, -0.0881348f, 0.191406f, -0.0717773f, 0.213135f,
+-0.0634766f, 0.234863f, -0.0551758f, 0.26123f, -0.0551758f, 0.291504f, -0.0551758f,
+0.315918f, -0.064209f, 0.340332f, -0.0732422f, 0.360107f, -0.095459f, 0.379883f,
+-0.117676f, 0.39502f, -0.155029f, 0.410156f, -0.192383f, 0.420898f, -0.249023f, 0.432129f,
+-0.308105f, 0.432129f, -0.349609f, 0.432129f, -0.409668f, 0.40918f, -0.439941f, 0.38623f,
+-0.470215f, 0.336426f, -0.470215f, 0.195801f, 0.0102539f, 0.156738f, 0.0102539f,
+0.126465f, -0.00195312f, 0.0961914f, -0.0141602f, 0.0756836f, -0.0366211f, 0.0551758f,
+-0.059082f, 0.0444336f, -0.0910645f, 0.0336914f, -0.123047f, 0.0336914f, -0.162598f,
+0.0336914f, -0.18457f, 0.0358887f, -0.214844f, 0.0380859f, -0.245117f, 0.0439453f,
+-0.275879f, 0.0571289f, -0.345215f, 0.0786133f, -0.394775f, 0.100098f, -0.444336f,
+0.130371f, -0.476074f, 0.160645f, -0.507812f, 0.199707f, -0.522705f, 0.23877f, -0.537598f,
+0.287109f, -0.537598f, 0.347168f, -0.537598f, 0.38501f, -0.512207f, 0.422852f, -0.486816f,
+0.438477f, -0.440918f, 0.440918f, -0.440918f, 0.443359f, -0.453125f, 0.446777f, -0.468018f,
+0.450195f, -0.48291f, 0.453613f, -0.496338f, 0.457031f, -0.509766f, 0.459961f, -0.520508f,
+0.462891f, -0.53125f, 0.464844f, -0.535156f, 0.549316f, -0.535156f, 0.546875f, -0.526855f,
+0.538574f, -0.491699f, 0.530273f, -0.456543f, 0.517578f, -0.391113f, 0.401367f, 0.20752f,
+0.313477f, 0.20752f, 0.35498f, -0.00683594f, 0.357422f, -0.0195312f, 0.360107f, -0.0322266f,
+0.362793f, -0.0449219f, 0.365234f, -0.0551758f, 0.367676f, -0.0673828f, 0.370605f,
+-0.078125f, 0.368652f, -0.078125f, 0.351074f, -0.0551758f, 0.332764f, -0.0385742f,
+0.314453f, -0.0219727f, 0.293701f, -0.0109863f, 0.272949f, 0, 0.249023f, 0.00512695f,
+0.225098f, 0.0102539f, 0.195801f, 0.0102539f, 0.221191f, -0.0576172f, 0.252441f,
+-0.0576172f, 0.280518f, -0.0668945f, 0.308594f, -0.0761719f, 0.33252f, -0.098877f,
+0.356445f, -0.121582f, 0.374756f, -0.160156f, 0.393066f, -0.19873f, 0.404297f, -0.257324f,
+0.413574f, -0.305176f, 0.413574f, -0.34375f, 0.413574f, -0.375488f, 0.405273f, -0.399414f,
+0.396973f, -0.42334f, 0.381592f, -0.439697f, 0.366211f, -0.456055f, 0.344482f, -0.464355f,
+0.322754f, -0.472656f, 0.296387f, -0.472656f, 0.266602f, -0.472656f, 0.241943f, -0.463623f,
+0.217285f, -0.45459f, 0.19751f, -0.432373f, 0.177734f, -0.410156f, 0.162842f, -0.372803f,
+0.147949f, -0.335449f, 0.136719f, -0.278809f, 0.125488f, -0.219727f, 0.125488f, -0.178223f,
+0.125488f, -0.118164f, 0.148438f, -0.0878906f, 0.171387f, -0.0576172f, 0.221191f,
+-0.0576172f, 0.350586f, -0.458008f, 0.342285f, -0.460449f, 0.330811f, -0.462402f,
+0.319336f, -0.464355f, 0.306641f, -0.464355f, 0.275391f, -0.464355f, 0.250488f, -0.446289f,
+0.225586f, -0.428223f, 0.206787f, -0.400391f, 0.187988f, -0.372559f, 0.175781f, -0.339111f,
+0.163574f, -0.305664f, 0.158203f, -0.275391f, 0.104492f, 0, 0.0166016f, 0, 0.0957031f,
+-0.405273f, 0.0991211f, -0.422363f, 0.102051f, -0.439453f, 0.10498f, -0.456543f,
+0.107666f, -0.472656f, 0.110352f, -0.48877f, 0.112793f, -0.503174f, 0.115234f, -0.517578f,
+0.116699f, -0.52832f, 0.199707f, -0.52832f, 0.198242f, -0.517578f, 0.196045f, -0.50293f,
+0.193848f, -0.488281f, 0.191406f, -0.473145f, 0.188965f, -0.458008f, 0.186768f, -0.444092f,
+0.18457f, -0.430176f, 0.182617f, -0.42041f, 0.18457f, -0.42041f, 0.199707f, -0.450684f,
+0.2146f, -0.4729f, 0.229492f, -0.495117f, 0.245605f, -0.509521f, 0.261719f, -0.523926f,
+0.280029f, -0.531006f, 0.29834f, -0.538086f, 0.320312f, -0.538086f, 0.325684f, -0.538086f,
+0.332031f, -0.537354f, 0.338379f, -0.536621f, 0.344971f, -0.535645f, 0.351562f, -0.534668f,
+0.357422f, -0.533447f, 0.363281f, -0.532227f, 0.366699f, -0.53125f, 0.442871f, -0.154785f,
+0.442871f, -0.113281f, 0.42627f, -0.0822754f, 0.409668f, -0.0512695f, 0.37915f, -0.0307617f,
+0.348633f, -0.0102539f, 0.305176f, -0.000244141f, 0.261719f, 0.00976562f, 0.20752f,
+0.00976562f, 0.162109f, 0.00976562f, 0.12793f, 0.00195312f, 0.09375f, -0.00585938f,
+0.0690918f, -0.020752f, 0.0444336f, -0.0356445f, 0.0280762f, -0.0578613f, 0.0117188f,
+-0.0800781f, 0.00244141f, -0.108887f, 0.0742188f, -0.13623f, 0.081543f, -0.116699f,
+0.0930176f, -0.101318f, 0.104492f, -0.0859375f, 0.121338f, -0.0754395f, 0.138184f,
+-0.0649414f, 0.161377f, -0.0595703f, 0.18457f, -0.0541992f, 0.215332f, -0.0541992f,
+0.246582f, -0.0541992f, 0.272705f, -0.0593262f, 0.298828f, -0.0644531f, 0.317627f,
+-0.0756836f, 0.336426f, -0.0869141f, 0.346924f, -0.104492f, 0.357422f, -0.12207f,
+0.357422f, -0.146973f, 0.357422f, -0.166504f, 0.348145f, -0.18042f, 0.338867f, -0.194336f,
+0.322021f, -0.204834f, 0.305176f, -0.215332f, 0.281006f, -0.224365f, 0.256836f, -0.233398f,
+0.227051f, -0.242676f, 0.195312f, -0.25293f, 0.166748f, -0.265137f, 0.138184f, -0.277344f,
+0.116455f, -0.294434f, 0.0947266f, -0.311523f, 0.0817871f, -0.334717f, 0.0688477f,
+-0.35791f, 0.0688477f, -0.38916f, 0.0688477f, -0.429199f, 0.0861816f, -0.457275f,
+0.103516f, -0.485352f, 0.133057f, -0.50293f, 0.162598f, -0.520508f, 0.201904f, -0.528564f,
+0.241211f, -0.536621f, 0.285156f, -0.536621f, 0.325195f, -0.536621f, 0.358398f, -0.529785f,
+0.391602f, -0.522949f, 0.416504f, -0.508057f, 0.441406f, -0.493164f, 0.45752f, -0.469482f,
+0.473633f, -0.445801f, 0.479492f, -0.412109f, 0.399902f, -0.399902f, 0.38916f, -0.438477f,
+0.359375f, -0.455566f, 0.32959f, -0.472656f, 0.279297f, -0.472656f, 0.253418f, -0.472656f,
+0.230713f, -0.46875f, 0.208008f, -0.464844f, 0.190918f, -0.456055f, 0.173828f, -0.447266f,
+0.163818f, -0.433105f, 0.153809f, -0.418945f, 0.153809f, -0.398926f, 0.153809f, -0.378906f,
+0.163086f, -0.365479f, 0.172363f, -0.352051f, 0.189209f, -0.341797f, 0.206055f, -0.331543f,
+0.229736f, -0.323486f, 0.253418f, -0.31543f, 0.282715f, -0.306152f, 0.310547f, -0.297363f,
+0.339111f, -0.285645f, 0.367676f, -0.273926f, 0.390625f, -0.256592f, 0.413574f, -0.239258f,
+0.428223f, -0.2146f, 0.442871f, -0.189941f, 0.442871f, -0.154785f, 0.21875f, -0.00195312f,
+0.200684f, 0.00244141f, 0.179199f, 0.00610352f, 0.157715f, 0.00976562f, 0.134277f,
+0.00976562f, 0.0927734f, 0.00976562f, 0.0690918f, -0.0151367f, 0.0454102f, -0.0400391f,
+0.0454102f, -0.0810547f, 0.0454102f, -0.0966797f, 0.0478516f, -0.114502f, 0.050293f,
+-0.132324f, 0.0527344f, -0.144531f, 0.114258f, -0.464355f, 0.0532227f, -0.464355f,
+0.065918f, -0.52832f, 0.12793f, -0.52832f, 0.179199f, -0.646484f, 0.237793f, -0.646484f,
+0.214844f, -0.52832f, 0.3125f, -0.52832f, 0.299805f, -0.464355f, 0.202148f, -0.464355f,
+0.141113f, -0.149414f, 0.13916f, -0.139648f, 0.137207f, -0.125488f, 0.135254f, -0.111328f,
+0.135254f, -0.103027f, 0.135254f, -0.0825195f, 0.145508f, -0.0712891f, 0.155762f,
+-0.0600586f, 0.179199f, -0.0600586f, 0.191895f, -0.0600586f, 0.202881f, -0.0617676f,
+0.213867f, -0.0634766f, 0.228027f, -0.0668945f, 0.202637f, -0.52832f, 0.141113f,
+-0.213379f, 0.137207f, -0.194336f, 0.134766f, -0.174561f, 0.132324f, -0.154785f,
+0.132324f, -0.140137f, 0.132324f, -0.101562f, 0.152832f, -0.0800781f, 0.17334f, -0.0585938f,
+0.219727f, -0.0585938f, 0.250977f, -0.0585938f, 0.278564f, -0.0710449f, 0.306152f,
+-0.0834961f, 0.328613f, -0.106201f, 0.351074f, -0.128906f, 0.366943f, -0.160889f,
+0.382812f, -0.192871f, 0.390625f, -0.232422f, 0.448242f, -0.52832f, 0.536133f, -0.52832f,
+0.455078f, -0.112793f, 0.45166f, -0.0961914f, 0.448486f, -0.0778809f, 0.445312f,
+-0.0595703f, 0.442627f, -0.0432129f, 0.439941f, -0.0268555f, 0.438232f, -0.0151367f,
+0.436523f, -0.00341797f, 0.436035f, 0, 0.353027f, 0, 0.353027f, -0.00244141f, 0.354492f,
+-0.0131836f, 0.355957f, -0.0239258f, 0.358154f, -0.0378418f, 0.360352f, -0.0517578f,
+0.362549f, -0.0661621f, 0.364746f, -0.0805664f, 0.366699f, -0.090332f, 0.365234f,
+-0.090332f, 0.348633f, -0.0673828f, 0.331055f, -0.0488281f, 0.313477f, -0.0302734f,
+0.292236f, -0.017334f, 0.270996f, -0.00439453f, 0.245361f, 0.00244141f, 0.219727f,
+0.00927734f, 0.187012f, 0.00927734f, 0.114746f, 0.00927734f, 0.0783691f, -0.0263672f,
+0.0419922f, -0.0620117f, 0.0419922f, -0.129395f, 0.0419922f, -0.146973f, 0.045166f,
+-0.168945f, 0.0483398f, -0.190918f, 0.0522461f, -0.209473f, 0.114258f, -0.52832f,
+0.247559f, 0, 0.143555f, 0, 0.0546875f, -0.52832f, 0.145996f, -0.52832f, 0.195312f,
+-0.18457f, 0.196777f, -0.173828f, 0.198486f, -0.158447f, 0.200195f, -0.143066f, 0.20166f,
+-0.126465f, 0.203125f, -0.109863f, 0.204346f, -0.0944824f, 0.205566f, -0.0791016f,
+0.206543f, -0.0688477f, 0.211914f, -0.0791016f, 0.219238f, -0.0944824f, 0.226562f,
+-0.109863f, 0.234619f, -0.125977f, 0.242676f, -0.14209f, 0.250732f, -0.157471f, 0.258789f,
+-0.172852f, 0.264648f, -0.183594f, 0.452148f, -0.52832f, 0.547852f, -0.52832f, 0.521484f,
+0, 0.419434f, 0, 0.401367f, -0.34082f, 0.400879f, -0.350586f, 0.400391f, -0.369629f,
+0.399902f, -0.388672f, 0.399414f, -0.408203f, 0.398926f, -0.431152f, 0.398438f, -0.456055f,
+0.389648f, -0.434082f, 0.380859f, -0.412598f, 0.373047f, -0.394043f, 0.364502f, -0.374023f,
+0.355957f, -0.354004f, 0.349121f, -0.338867f, 0.196289f, 0, 0.0947266f, 0, 0.0498047f,
+-0.52832f, 0.136719f, -0.52832f, 0.15625f, -0.169434f, 0.156738f, -0.163574f, 0.157227f,
+-0.150146f, 0.157715f, -0.136719f, 0.158203f, -0.121826f, 0.158691f, -0.106934f,
+0.15918f, -0.0930176f, 0.159668f, -0.0791016f, 0.159668f, -0.0727539f, 0.166992f,
+-0.090332f, 0.174316f, -0.107422f, 0.180664f, -0.12207f, 0.187256f, -0.138184f, 0.193848f,
+-0.154297f, 0.199219f, -0.165527f, 0.365723f, -0.52832f, 0.459961f, -0.52832f, 0.481445f,
+-0.165527f, 0.48291f, -0.13916f, 0.483643f, -0.114746f, 0.484375f, -0.090332f, 0.484375f,
+-0.0727539f, 0.491699f, -0.090332f, 0.499512f, -0.107422f, 0.506348f, -0.12207f,
+0.513428f, -0.138672f, 0.520508f, -0.155273f, 0.526855f, -0.169434f, 0.689941f, -0.52832f,
+0.775879f, -0.52832f, 0.344727f, 0, 0.242676f, -0.216797f, 0.0571289f, 0, -0.0400391f,
+0, 0.200195f, -0.271484f, 0.0712891f, -0.52832f, 0.163574f, -0.52832f, 0.257812f,
+-0.322754f, 0.428711f, -0.52832f, 0.529297f, -0.52832f, 0.300293f, -0.272461f, 0.4375f,
+0, 0.244629f, 0, 0.217773f, 0.0463867f, 0.192871f, 0.0844727f, 0.167969f, 0.122559f,
+0.140625f, 0.149902f, 0.113281f, 0.177246f, 0.0812988f, 0.192383f, 0.0493164f, 0.20752f,
+0.0078125f, 0.20752f, -0.00830078f, 0.20752f, -0.0251465f, 0.205811f, -0.0419922f,
+0.204102f, -0.0566406f, 0.200684f, -0.0415039f, 0.135254f, -0.0332031f, 0.136719f,
+-0.0227051f, 0.137939f, -0.012207f, 0.13916f, -0.00390625f, 0.13916f, 0.0424805f,
+0.13916f, 0.0778809f, 0.10791f, 0.113281f, 0.0766602f, 0.147461f, 0.0170898f, 0.160645f,
+-0.00585938f, 0.0546875f, -0.52832f, 0.144043f, -0.52832f, 0.19873f, -0.236328f,
+0.20166f, -0.220703f, 0.205078f, -0.200195f, 0.208496f, -0.179688f, 0.211426f, -0.159424f,
+0.214355f, -0.13916f, 0.216553f, -0.121826f, 0.21875f, -0.104492f, 0.219238f, -0.0957031f,
+0.224121f, -0.106445f, 0.231934f, -0.121826f, 0.239746f, -0.137207f, 0.249268f, -0.154541f,
+0.258789f, -0.171875f, 0.268799f, -0.190186f, 0.278809f, -0.208496f, 0.288086f, -0.225586f,
+0.453125f, -0.52832f, 0.550293f, -0.52832f, -0.0214844f, 0, -0.00830078f, -0.0668945f,
+0.380859f, -0.460449f, 0.0874023f, -0.460449f, 0.100586f, -0.52832f, 0.50293f, -0.52832f,
+0.489746f, -0.461426f, 0.0996094f, -0.0678711f, 0.431152f, -0.0678711f, 0.417969f,
+0, 0.178711f, 0.20752f, 0.149902f, 0.20752f, 0.127686f, 0.198242f, 0.105469f, 0.188965f,
+0.0905762f, 0.172852f, 0.0756836f, 0.156738f, 0.0681152f, 0.134277f, 0.0605469f,
+0.111816f, 0.0605469f, 0.0854492f, 0.0605469f, 0.0795898f, 0.060791f, 0.0720215f,
+0.0610352f, 0.0644531f, 0.0617676f, 0.0566406f, 0.0625f, 0.0488281f, 0.0634766f,
+0.0412598f, 0.0644531f, 0.0336914f, 0.0654297f, 0.0283203f, 0.0927734f, -0.111816f,
+0.097168f, -0.133301f, 0.097168f, -0.149414f, 0.097168f, -0.189941f, 0.0744629f,
+-0.207764f, 0.0517578f, -0.225586f, 0.0102539f, -0.227539f, 0.0224609f, -0.289551f,
+0.0473633f, -0.290527f, 0.0683594f, -0.297363f, 0.0893555f, -0.304199f, 0.105469f,
+-0.317871f, 0.121582f, -0.331543f, 0.132812f, -0.353027f, 0.144043f, -0.374512f,
+0.149902f, -0.404785f, 0.184082f, -0.581543f, 0.197754f, -0.651367f, 0.234619f, -0.687988f,
+0.271484f, -0.724609f, 0.34082f, -0.724609f, 0.406738f, -0.724609f, 0.394531f, -0.661621f,
+0.36377f, -0.661621f, 0.339844f, -0.661621f, 0.322998f, -0.655273f, 0.306152f, -0.648926f,
+0.294189f, -0.63623f, 0.282227f, -0.623535f, 0.274414f, -0.60376f, 0.266602f, -0.583984f,
+0.26123f, -0.556641f, 0.227539f, -0.382812f, 0.222656f, -0.358398f, 0.211426f, -0.337891f,
+0.200195f, -0.317383f, 0.18457f, -0.301758f, 0.168945f, -0.286133f, 0.149414f, -0.275391f,
+0.129883f, -0.264648f, 0.108887f, -0.259766f, 0.108887f, -0.258789f, 0.142578f, -0.250488f,
+0.162354f, -0.226074f, 0.182129f, -0.20166f, 0.182129f, -0.163574f, 0.182129f, -0.150391f,
+0.179199f, -0.134766f, 0.149414f, 0.0209961f, 0.147949f, 0.0283203f, 0.146973f, 0.036377f,
+0.145996f, 0.0444336f, 0.145264f, 0.0524902f, 0.144531f, 0.0605469f, 0.143799f, 0.0678711f,
+0.143066f, 0.0751953f, 0.143066f, 0.0805664f, 0.14209f, 0.109863f, 0.159424f, 0.127197f,
+0.176758f, 0.144531f, 0.214355f, 0.144531f, 0.237793f, 0.144531f, 0.225586f, 0.20752f,
+0.104004f, 0.22168f, 0.104004f, -0.724609f, 0.185059f, -0.724609f, 0.185059f, 0.22168f,
+0.150391f, -0.724609f, 0.179199f, -0.724609f, 0.201416f, -0.715332f, 0.223633f, -0.706055f,
+0.238525f, -0.689941f, 0.253418f, -0.673828f, 0.260986f, -0.651367f, 0.268555f, -0.628906f,
+0.268555f, -0.602539f, 0.268555f, -0.59668f, 0.268311f, -0.589111f, 0.268066f, -0.581543f,
+0.267334f, -0.57373f, 0.266602f, -0.565918f, 0.265625f, -0.55835f, 0.264648f, -0.550781f,
+0.263672f, -0.54541f, 0.236328f, -0.405273f, 0.231934f, -0.384277f, 0.231934f, -0.367676f,
+0.231934f, -0.327148f, 0.254639f, -0.309326f, 0.277344f, -0.291504f, 0.318848f, -0.289551f,
+0.306641f, -0.227539f, 0.281738f, -0.226562f, 0.260742f, -0.219727f, 0.239746f, -0.212891f,
+0.223633f, -0.199219f, 0.20752f, -0.185547f, 0.196289f, -0.164062f, 0.185059f, -0.142578f,
+0.179199f, -0.112305f, 0.14502f, 0.0644531f, 0.131348f, 0.134277f, 0.0944824f, 0.170898f,
+0.0576172f, 0.20752f, -0.0117188f, 0.20752f, -0.0776367f, 0.20752f, -0.0654297f,
+0.144531f, -0.034668f, 0.144531f, -0.0107422f, 0.144531f, 0.00610352f, 0.138184f,
+0.0229492f, 0.131836f, 0.0349121f, 0.119141f, 0.046875f, 0.106445f, 0.0546875f, 0.0866699f,
+0.0625f, 0.0668945f, 0.0678711f, 0.0395508f, 0.101562f, -0.134277f, 0.106445f, -0.158691f,
+0.117676f, -0.179199f, 0.128906f, -0.199707f, 0.144531f, -0.215332f, 0.160156f, -0.230957f,
+0.179688f, -0.241699f, 0.199219f, -0.252441f, 0.220215f, -0.257324f, 0.220215f, -0.258301f,
+0.186523f, -0.266602f, 0.166748f, -0.291016f, 0.146973f, -0.31543f, 0.146973f, -0.353516f,
+0.146973f, -0.367188f, 0.149902f, -0.382324f, 0.179688f, -0.538086f, 0.181152f, -0.54541f,
+0.182129f, -0.553467f, 0.183105f, -0.561523f, 0.183838f, -0.56958f, 0.18457f, -0.577637f,
+0.185303f, -0.584961f, 0.186035f, -0.592285f, 0.186035f, -0.597656f, 0.187012f, -0.626953f,
+0.169678f, -0.644287f, 0.152344f, -0.661621f, 0.114746f, -0.661621f, 0.0913086f,
+-0.661621f, 0.103516f, -0.724609f, 0.426758f, -0.27002f, 0.393066f, -0.27002f, 0.357666f,
+-0.280762f, 0.322266f, -0.291504f, 0.286621f, -0.304199f, 0.223633f, -0.326172f,
+0.180664f, -0.326172f, 0.162109f, -0.326172f, 0.14624f, -0.323242f, 0.130371f, -0.320312f,
+0.115723f, -0.314697f, 0.101074f, -0.309082f, 0.0874023f, -0.30127f, 0.0737305f,
+-0.293457f, 0.0595703f, -0.283203f, 0.0595703f, -0.353027f, 0.0839844f, -0.371582f,
+0.116211f, -0.382812f, 0.148438f, -0.394043f, 0.187988f, -0.394043f, 0.208008f, -0.394043f,
+0.227295f, -0.390869f, 0.246582f, -0.387695f, 0.265381f, -0.382812f, 0.28418f, -0.37793f,
+0.30249f, -0.371582f, 0.320801f, -0.365234f, 0.338867f, -0.358887f, 0.349121f, -0.355469f,
+0.361328f, -0.351562f, 0.373535f, -0.347656f, 0.385986f, -0.344238f, 0.398438f, -0.34082f,
+0.410889f, -0.338867f, 0.42334f, -0.336914f, 0.43457f, -0.336914f, 0.468262f, -0.336914f,
+0.498291f, -0.349121f, 0.52832f, -0.361328f, 0.553711f, -0.381836f, 0.553711f, -0.309082f,
+0.538574f, -0.29834f, 0.523926f, -0.290771f, 0.509277f, -0.283203f, 0.494385f, -0.278564f,
+0.479492f, -0.273926f, 0.462891f, -0.271973f, 0.446289f, -0.27002f, 0.426758f, -0.27002f
+};
+
+const unsigned char LiberationSansItalicVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5,
+0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 1, 2, 2, 2, 2, 1, 5, 0, 1, 2,
+2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 1, 1,
+1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 1, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansItalicCharCodes[] = {
+0, 32, 33,
+34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSansItalicWidths[] = {
+0x0000c000, 0x00004720, 0x00004720, 0x00005ae0, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000aac0, 0x000030e0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00004720,
+0x00004720, 0x00009580, 0x00009580, 0x00009580, 0x00008e60, 0x000103e0, 0x0000aac0,
+0x0000aac0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008000, 0x0000aac0, 0x00008e60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00004720, 0x00004720, 0x00004720,
+0x00007820, 0x00008e60, 0x00005540, 0x00008e60, 0x00008e60, 0x00008000, 0x00008e60,
+0x00008e60, 0x00004720, 0x00008e60, 0x00008e60, 0x000038e0, 0x000038e0, 0x00008000,
+0x000038e0, 0x0000d540, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00008000, 0x00004720, 0x00008e60, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x00008000, 0x00005580, 0x00004280, 0x00005580, 0x00009580
+};
+
+const int LiberationSansItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSansItalicMetrics = {
+0x30307833, -1.01416f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.33447f, 0.0208511f,
+-0.271973f, 1.0625f, 0.537598f, 0.0109024f, 0.0732422f, 0.105957f
+};
+
+const SkScalar LiberationSansBoldItalicPoints[] = {
+0.206543f, -0.208008f, 0.0942383f, -0.208008f, 0.172363f, -0.687988f, 0.315918f, -0.687988f,
+0.0385742f, 0, 0.0639648f, -0.131836f, 0.20459f, -0.131836f, 0.179199f, 0, 0.421875f,
+-0.438477f, 0.314941f, -0.438477f, 0.350098f, -0.687988f, 0.484375f, -0.687988f,
+0.213867f, -0.438477f, 0.106934f, -0.438477f, 0.14209f, -0.687988f, 0.275391f, -0.687988f,
+0.458496f, -0.420898f, 0.424805f, -0.258789f, 0.529785f, -0.258789f, 0.529785f, -0.186035f,
+0.409668f, -0.186035f, 0.369629f, 0, 0.293457f, 0, 0.33252f, -0.186035f, 0.182617f,
+-0.186035f, 0.143555f, 0, 0.0688477f, 0, 0.107422f, -0.186035f, 0.0317383f, -0.186035f,
+0.0317383f, -0.258789f, 0.123535f, -0.258789f, 0.157715f, -0.420898f, 0.0566406f,
+-0.420898f, 0.0566406f, -0.493164f, 0.172852f, -0.493164f, 0.213867f, -0.681152f,
+0.288574f, -0.681152f, 0.248535f, -0.493164f, 0.398438f, -0.493164f, 0.439453f, -0.681152f,
+0.515625f, -0.681152f, 0.474609f, -0.493164f, 0.554688f, -0.493164f, 0.554688f, -0.420898f,
+0.233887f, -0.420898f, 0.19873f, -0.258789f, 0.349609f, -0.258789f, 0.383789f, -0.420898f,
+0.527344f, -0.231445f, 0.527344f, -0.177246f, 0.508789f, -0.136719f, 0.490234f, -0.0961914f,
+0.455078f, -0.0688477f, 0.419922f, -0.0415039f, 0.368652f, -0.0270996f, 0.317383f,
+-0.0126953f, 0.251953f, -0.0102539f, 0.23584f, 0.0742188f, 0.181152f, 0.0742188f,
+0.196777f, -0.0112305f, 0.156738f, -0.0112305f, 0.121094f, -0.0222168f, 0.0854492f,
+-0.0332031f, 0.0583496f, -0.0546875f, 0.03125f, -0.0761719f, 0.0144043f, -0.107422f,
+-0.00244141f, -0.138672f, -0.00537109f, -0.178711f, 0.122559f, -0.199219f, 0.125977f,
+-0.15625f, 0.149414f, -0.134521f, 0.172852f, -0.112793f, 0.217285f, -0.112793f, 0.25293f,
+-0.302246f, 0.215332f, -0.311523f, 0.182129f, -0.326904f, 0.148926f, -0.342285f,
+0.124023f, -0.364502f, 0.0991211f, -0.386719f, 0.0847168f, -0.416016f, 0.0703125f,
+-0.445312f, 0.0703125f, -0.482422f, 0.0703125f, -0.519531f, 0.0812988f, -0.548828f,
+0.0922852f, -0.578125f, 0.111328f, -0.600098f, 0.130371f, -0.62207f, 0.155762f, -0.637451f,
+0.181152f, -0.652832f, 0.209717f, -0.662354f, 0.238281f, -0.671875f, 0.268799f, -0.67627f,
+0.299316f, -0.680664f, 0.328125f, -0.680664f, 0.339844f, -0.742188f, 0.393555f, -0.740234f,
+0.380371f, -0.676758f, 0.423828f, -0.676758f, 0.457031f, -0.665527f, 0.490234f, -0.654297f,
+0.513428f, -0.634766f, 0.536621f, -0.615234f, 0.549316f, -0.588623f, 0.562012f, -0.562012f,
+0.564941f, -0.531738f, 0.4375f, -0.503906f, 0.433594f, -0.525391f, 0.425781f, -0.540283f,
+0.417969f, -0.555176f, 0.407715f, -0.564209f, 0.397461f, -0.573242f, 0.385498f, -0.577148f,
+0.373535f, -0.581055f, 0.361816f, -0.581055f, 0.329102f, -0.408691f, 0.374023f, -0.397949f,
+0.4104f, -0.382812f, 0.446777f, -0.367676f, 0.4729f, -0.346436f, 0.499023f, -0.325195f,
+0.513184f, -0.296875f, 0.527344f, -0.268555f, 0.527344f, -0.231445f, 0.395508f, -0.20166f,
+0.395508f, -0.239258f, 0.374023f, -0.259033f, 0.352539f, -0.278809f, 0.306152f, -0.289551f,
+0.270508f, -0.112793f, 0.294922f, -0.112793f, 0.317627f, -0.118164f, 0.340332f, -0.123535f,
+0.357666f, -0.134521f, 0.375f, -0.145508f, 0.385254f, -0.162354f, 0.395508f, -0.179199f,
+0.395508f, -0.20166f, 0.201172f, -0.491211f, 0.201172f, -0.476562f, 0.206299f, -0.466064f,
+0.211426f, -0.455566f, 0.220947f, -0.44751f, 0.230469f, -0.439453f, 0.244385f, -0.43335f,
+0.258301f, -0.427246f, 0.276367f, -0.421387f, 0.309082f, -0.583008f, 0.28418f, -0.583008f,
+0.26416f, -0.575928f, 0.244141f, -0.568848f, 0.230225f, -0.556396f, 0.216309f, -0.543945f,
+0.20874f, -0.5271f, 0.201172f, -0.510254f, 0.201172f, -0.491211f, 0.266602f, -0.693848f,
+0.297363f, -0.693848f, 0.324707f, -0.686035f, 0.352051f, -0.678223f, 0.372803f, -0.6604f,
+0.393555f, -0.642578f, 0.405518f, -0.61377f, 0.41748f, -0.584961f, 0.41748f, -0.543457f,
+0.41748f, -0.525391f, 0.414307f, -0.502686f, 0.411133f, -0.47998f, 0.404785f, -0.456543f,
+0.391602f, -0.39502f, 0.367432f, -0.355957f, 0.343262f, -0.316895f, 0.314209f, -0.294678f,
+0.285156f, -0.272461f, 0.254883f, -0.26416f, 0.224609f, -0.255859f, 0.19873f, -0.255859f,
+0.168457f, -0.255859f, 0.14209f, -0.264648f, 0.115723f, -0.273438f, 0.0964355f, -0.292236f,
+0.0771484f, -0.311035f, 0.065918f, -0.340332f, 0.0546875f, -0.369629f, 0.0546875f,
+-0.410645f, 0.0546875f, -0.428711f, 0.057373f, -0.450928f, 0.0600586f, -0.473145f,
+0.0664062f, -0.495605f, 0.0795898f, -0.55957f, 0.102783f, -0.598633f, 0.125977f,
+-0.637695f, 0.153809f, -0.658936f, 0.181641f, -0.680176f, 0.211182f, -0.687012f,
+0.240723f, -0.693848f, 0.266602f, -0.693848f, 0.266113f, -0.620117f, 0.251465f, -0.620117f,
+0.237305f, -0.615234f, 0.223145f, -0.610352f, 0.210693f, -0.596436f, 0.198242f, -0.58252f,
+0.187744f, -0.557373f, 0.177246f, -0.532227f, 0.169434f, -0.491211f, 0.164062f, -0.465332f,
+0.161377f, -0.443604f, 0.158691f, -0.421875f, 0.158691f, -0.403809f, 0.158691f, -0.368164f,
+0.169434f, -0.351318f, 0.180176f, -0.334473f, 0.200684f, -0.334473f, 0.215332f, -0.334473f,
+0.229492f, -0.3396f, 0.243652f, -0.344727f, 0.256592f, -0.358643f, 0.269531f, -0.372559f,
+0.280518f, -0.397461f, 0.291504f, -0.422363f, 0.299316f, -0.461426f, 0.312988f, -0.514648f,
+0.312988f, -0.552246f, 0.312988f, -0.588379f, 0.300781f, -0.604248f, 0.288574f, -0.620117f,
+0.266113f, -0.620117f, 0.710449f, -0.430664f, 0.741211f, -0.430664f, 0.768555f, -0.422852f,
+0.795898f, -0.415039f, 0.81665f, -0.397217f, 0.837402f, -0.379395f, 0.849365f, -0.350586f,
+0.861328f, -0.321777f, 0.861328f, -0.280273f, 0.861328f, -0.262207f, 0.858154f, -0.239502f,
+0.85498f, -0.216797f, 0.848633f, -0.193359f, 0.835449f, -0.131836f, 0.811279f, -0.0927734f,
+0.787109f, -0.0537109f, 0.758057f, -0.0314941f, 0.729004f, -0.00927734f, 0.69873f,
+-0.000976562f, 0.668457f, 0.00732422f, 0.642578f, 0.00732422f, 0.612305f, 0.00732422f,
+0.585938f, -0.00146484f, 0.55957f, -0.0102539f, 0.540283f, -0.0290527f, 0.520996f,
+-0.0478516f, 0.509766f, -0.0771484f, 0.498535f, -0.106445f, 0.498535f, -0.147461f,
+0.498535f, -0.165527f, 0.501221f, -0.187744f, 0.503906f, -0.209961f, 0.510254f, -0.232422f,
+0.523438f, -0.296387f, 0.546631f, -0.335449f, 0.569824f, -0.374512f, 0.597656f, -0.395752f,
+0.625488f, -0.416992f, 0.655029f, -0.423828f, 0.68457f, -0.430664f, 0.710449f, -0.430664f,
+0.709961f, -0.356934f, 0.695312f, -0.356934f, 0.681152f, -0.352051f, 0.666992f, -0.347168f,
+0.654541f, -0.333252f, 0.64209f, -0.319336f, 0.631592f, -0.294189f, 0.621094f, -0.269043f,
+0.613281f, -0.228027f, 0.60791f, -0.202148f, 0.605225f, -0.18042f, 0.602539f, -0.158691f,
+0.602539f, -0.140625f, 0.602539f, -0.10498f, 0.613281f, -0.0881348f, 0.624023f, -0.0712891f,
+0.644531f, -0.0712891f, 0.65918f, -0.0712891f, 0.67334f, -0.076416f, 0.6875f, -0.081543f,
+0.700439f, -0.095459f, 0.713379f, -0.109375f, 0.724365f, -0.134277f, 0.735352f, -0.15918f,
+0.743164f, -0.198242f, 0.756836f, -0.251465f, 0.756836f, -0.289062f, 0.756836f, -0.325195f,
+0.744629f, -0.341064f, 0.732422f, -0.356934f, 0.709961f, -0.356934f, 0.237305f, 0,
+0.141113f, 0, 0.671387f, -0.687988f, 0.768555f, -0.687988f, 0.0239258f, -0.172852f,
+0.0239258f, -0.215332f, 0.0395508f, -0.249512f, 0.0551758f, -0.283691f, 0.0830078f,
+-0.311035f, 0.11084f, -0.338379f, 0.148926f, -0.359375f, 0.187012f, -0.380371f, 0.231934f,
+-0.395996f, 0.229004f, -0.405273f, 0.226074f, -0.41748f, 0.223145f, -0.429688f, 0.220703f,
+-0.444092f, 0.218262f, -0.458496f, 0.216553f, -0.474365f, 0.214844f, -0.490234f,
+0.214844f, -0.506348f, 0.214844f, -0.546387f, 0.228516f, -0.580322f, 0.242188f, -0.614258f,
+0.268555f, -0.63916f, 0.294922f, -0.664062f, 0.333984f, -0.677979f, 0.373047f, -0.691895f,
+0.423828f, -0.691895f, 0.460449f, -0.691895f, 0.490723f, -0.684082f, 0.520996f, -0.67627f,
+0.542725f, -0.6604f, 0.564453f, -0.644531f, 0.576172f, -0.621094f, 0.587891f, -0.597656f,
+0.587891f, -0.566406f, 0.587891f, -0.524902f, 0.569336f, -0.493408f, 0.550781f, -0.461914f,
+0.519287f, -0.437256f, 0.487793f, -0.412598f, 0.446289f, -0.393066f, 0.404785f, -0.373535f,
+0.359375f, -0.35498f, 0.366699f, -0.334473f, 0.374512f, -0.314453f, 0.382324f, -0.294434f,
+0.392334f, -0.274658f, 0.402344f, -0.254883f, 0.414795f, -0.234619f, 0.427246f, -0.214355f,
+0.443359f, -0.192871f, 0.479004f, -0.230957f, 0.506592f, -0.275146f, 0.53418f, -0.319336f,
+0.557617f, -0.371094f, 0.648926f, -0.330566f, 0.637207f, -0.303223f, 0.62207f, -0.276123f,
+0.606934f, -0.249023f, 0.5896f, -0.2229f, 0.572266f, -0.196777f, 0.552979f, -0.172607f,
+0.533691f, -0.148438f, 0.513184f, -0.127441f, 0.532715f, -0.11084f, 0.55542f, -0.103516f,
+0.578125f, -0.0961914f, 0.603027f, -0.0961914f, 0.617676f, -0.0961914f, 0.631592f,
+-0.0981445f, 0.645508f, -0.100098f, 0.657227f, -0.104004f, 0.638184f, -0.00488281f,
+0.62207f, 0.000488281f, 0.606689f, 0.00317383f, 0.591309f, 0.00585938f, 0.570312f,
+0.00585938f, 0.525879f, 0.00585938f, 0.489258f, -0.00878906f, 0.452637f, -0.0234375f,
+0.421387f, -0.0512695f, 0.40625f, -0.0395508f, 0.38916f, -0.0283203f, 0.37207f, -0.0170898f,
+0.349854f, -0.00878906f, 0.327637f, -0.000488281f, 0.297607f, 0.00463867f, 0.267578f,
+0.00976562f, 0.226562f, 0.00976562f, 0.128418f, 0.00976562f, 0.0761719f, -0.0373535f,
+0.0239258f, -0.0844727f, 0.0239258f, -0.172852f, 0.240723f, -0.0830078f, 0.257324f,
+-0.0830078f, 0.273438f, -0.0861816f, 0.289551f, -0.0893555f, 0.304199f, -0.0949707f,
+0.318848f, -0.100586f, 0.331543f, -0.107422f, 0.344238f, -0.114258f, 0.354004f, -0.121582f,
+0.337402f, -0.143555f, 0.322754f, -0.167725f, 0.308105f, -0.191895f, 0.295654f, -0.216064f,
+0.283203f, -0.240234f, 0.273438f, -0.263672f, 0.263672f, -0.287109f, 0.256348f, -0.308105f,
+0.236816f, -0.299316f, 0.217285f, -0.288086f, 0.197754f, -0.276855f, 0.182617f, -0.26123f,
+0.16748f, -0.245605f, 0.157959f, -0.224609f, 0.148438f, -0.203613f, 0.148438f, -0.175781f,
+0.148438f, -0.154785f, 0.155273f, -0.137451f, 0.162109f, -0.120117f, 0.174072f, -0.108154f,
+0.186035f, -0.0961914f, 0.203125f, -0.0895996f, 0.220215f, -0.0830078f, 0.240723f,
+-0.0830078f, 0.325684f, -0.508301f, 0.325684f, -0.486816f, 0.328125f, -0.469971f,
+0.330566f, -0.453125f, 0.335449f, -0.4375f, 0.366211f, -0.449219f, 0.392578f, -0.460449f,
+0.418945f, -0.47168f, 0.437988f, -0.485352f, 0.457031f, -0.499023f, 0.467773f, -0.516602f,
+0.478516f, -0.53418f, 0.478516f, -0.557617f, 0.478516f, -0.58252f, 0.462158f, -0.595703f,
+0.445801f, -0.608887f, 0.41748f, -0.608887f, 0.398438f, -0.608887f, 0.381592f, -0.602539f,
+0.364746f, -0.596191f, 0.352295f, -0.58374f, 0.339844f, -0.571289f, 0.332764f, -0.552246f,
+0.325684f, -0.533203f, 0.325684f, -0.508301f, 0.203613f, -0.438477f, 0.0966797f,
+-0.438477f, 0.132324f, -0.687988f, 0.265137f, -0.687988f, 0.426758f, -0.724609f,
+0.300781f, -0.604492f, 0.23584f, -0.45874f, 0.170898f, -0.312988f, 0.170898f, -0.136719f,
+0.170898f, -0.0415039f, 0.188477f, 0.0449219f, 0.206055f, 0.131348f, 0.242676f, 0.20752f,
+0.108398f, 0.20752f, 0.0727539f, 0.131348f, 0.0544434f, 0.0424805f, 0.0361328f, -0.0463867f,
+0.0361328f, -0.144531f, 0.0361328f, -0.231934f, 0.052002f, -0.312988f, 0.0678711f,
+-0.394043f, 0.0996094f, -0.467529f, 0.131348f, -0.541016f, 0.178955f, -0.605713f,
+0.226562f, -0.67041f, 0.289551f, -0.724609f, -0.0878906f, 0.20752f, 0.0380859f, 0.0844727f,
+0.103271f, -0.0649414f, 0.168457f, -0.214355f, 0.168457f, -0.39502f, 0.168457f, -0.433594f,
+0.163818f, -0.476318f, 0.15918f, -0.519043f, 0.149902f, -0.562256f, 0.140625f, -0.605469f,
+0.126953f, -0.646973f, 0.113281f, -0.688477f, 0.0957031f, -0.724609f, 0.225098f,
+-0.724609f, 0.261719f, -0.651855f, 0.282715f, -0.566406f, 0.303711f, -0.480957f,
+0.303711f, -0.387207f, 0.303711f, -0.297852f, 0.287842f, -0.214844f, 0.271973f, -0.131836f,
+0.23999f, -0.0563965f, 0.208008f, 0.019043f, 0.1604f, 0.0854492f, 0.112793f, 0.151855f,
+0.0493164f, 0.20752f, 0.280273f, -0.554199f, 0.39502f, -0.60498f, 0.428223f, -0.508789f,
+0.306152f, -0.479004f, 0.396973f, -0.375f, 0.307129f, -0.315918f, 0.23584f, -0.438965f,
+0.163086f, -0.315918f, 0.0722656f, -0.375977f, 0.165039f, -0.479004f, 0.0429688f,
+-0.508789f, 0.0761719f, -0.60498f, 0.192871f, -0.554199f, 0.184082f, -0.687988f,
+0.289062f, -0.687988f, 0.366211f, -0.277832f, 0.366211f, -0.0786133f, 0.255859f,
+-0.0786133f, 0.255859f, -0.277832f, 0.0610352f, -0.277832f, 0.0610352f, -0.387207f,
+0.255859f, -0.387207f, 0.255859f, -0.586426f, 0.366211f, -0.586426f, 0.366211f, -0.387207f,
+0.5625f, -0.387207f, 0.5625f, -0.277832f, 0.169434f, -0.0322266f, 0.163086f, 0.000488281f,
+0.154297f, 0.0273438f, 0.145508f, 0.0541992f, 0.134277f, 0.0769043f, 0.123047f, 0.0996094f,
+0.109619f, 0.118652f, 0.0961914f, 0.137695f, 0.0805664f, 0.154785f, -0.00976562f,
+0.154785f, 0.00732422f, 0.137695f, 0.0229492f, 0.118652f, 0.0385742f, 0.0996094f,
+0.0512695f, 0.0795898f, 0.0639648f, 0.0595703f, 0.0727539f, 0.0395508f, 0.081543f,
+0.0195312f, 0.0854492f, 0, 0.0224609f, 0, 0.0512695f, -0.148926f, 0.192383f, -0.148926f,
+0.0273438f, -0.199707f, 0.050293f, -0.318848f, 0.304199f, -0.318848f, 0.28125f, -0.199707f,
+0.0224609f, 0, 0.0512695f, -0.148926f, 0.192383f, -0.148926f, 0.163574f, 0, -0.0371094f,
+0.0200195f, 0.249512f, -0.724609f, 0.365723f, -0.724609f, 0.0810547f, 0.0200195f,
+0.353516f, -0.698242f, 0.394043f, -0.698242f, 0.429199f, -0.687256f, 0.464355f, -0.67627f,
+0.490234f, -0.649902f, 0.516113f, -0.623535f, 0.53125f, -0.579834f, 0.546387f, -0.536133f,
+0.546387f, -0.470703f, 0.546387f, -0.439941f, 0.541748f, -0.404785f, 0.537109f, -0.369629f,
+0.527832f, -0.324707f, 0.51416f, -0.259766f, 0.495605f, -0.209473f, 0.477051f, -0.15918f,
+0.454346f, -0.12207f, 0.431641f, -0.0849609f, 0.405762f, -0.0598145f, 0.379883f,
+-0.034668f, 0.351562f, -0.019043f, 0.323242f, -0.00341797f, 0.293457f, 0.00317383f,
+0.263672f, 0.00976562f, 0.233398f, 0.00976562f, 0.1875f, 0.00976562f, 0.151855f,
+-0.00317383f, 0.116211f, -0.0161133f, 0.0915527f, -0.0441895f, 0.0668945f, -0.0722656f,
+0.0541992f, -0.116211f, 0.0415039f, -0.160156f, 0.0415039f, -0.22168f, 0.0415039f,
+-0.251465f, 0.0456543f, -0.285645f, 0.0498047f, -0.319824f, 0.0581055f, -0.364258f,
+0.0712891f, -0.433105f, 0.090332f, -0.484863f, 0.109375f, -0.536621f, 0.132568f,
+-0.57373f, 0.155762f, -0.61084f, 0.182373f, -0.63501f, 0.208984f, -0.65918f, 0.237305f,
+-0.673096f, 0.265625f, -0.687012f, 0.295166f, -0.692627f, 0.324707f, -0.698242f,
+0.353516f, -0.698242f, 0.242676f, -0.0981445f, 0.269531f, -0.0981445f, 0.291748f,
+-0.109619f, 0.313965f, -0.121094f, 0.33252f, -0.148438f, 0.351074f, -0.175781f, 0.366211f,
+-0.221191f, 0.381348f, -0.266602f, 0.393555f, -0.334473f, 0.401855f, -0.380371f,
+0.407471f, -0.414307f, 0.413086f, -0.448242f, 0.413086f, -0.477051f, 0.413086f, -0.530762f,
+0.395264f, -0.560791f, 0.377441f, -0.59082f, 0.338867f, -0.59082f, 0.30957f, -0.59082f,
+0.287598f, -0.579346f, 0.265625f, -0.567871f, 0.248535f, -0.540771f, 0.231445f, -0.513672f,
+0.218262f, -0.468262f, 0.205078f, -0.422852f, 0.193359f, -0.354492f, 0.186035f, -0.312012f,
+0.18042f, -0.271729f, 0.174805f, -0.231445f, 0.174805f, -0.202637f, 0.174805f, -0.180664f,
+0.177979f, -0.161377f, 0.181152f, -0.14209f, 0.188965f, -0.128174f, 0.196777f, -0.114258f,
+0.209961f, -0.106201f, 0.223145f, -0.0981445f, 0.242676f, -0.0981445f, 0.0161133f,
+0, 0.0371094f, -0.112793f, 0.20752f, -0.112793f, 0.294922f, -0.5625f, 0.108887f,
+-0.458008f, 0.131836f, -0.576172f, 0.325195f, -0.687988f, 0.457031f, -0.687988f,
+0.344727f, -0.112793f, 0.502441f, -0.112793f, 0.480957f, 0, -0.015625f, 0, 0.00244141f,
+-0.0952148f, 0.0258789f, -0.135742f, 0.0556641f, -0.169189f, 0.0854492f, -0.202637f,
+0.118164f, -0.230957f, 0.150879f, -0.259277f, 0.184814f, -0.283691f, 0.21875f, -0.308105f,
+0.250732f, -0.330566f, 0.282715f, -0.353027f, 0.310791f, -0.374268f, 0.338867f, -0.395508f,
+0.359619f, -0.418213f, 0.380371f, -0.440918f, 0.392578f, -0.465576f, 0.404785f, -0.490234f,
+0.404785f, -0.519043f, 0.404785f, -0.538574f, 0.398926f, -0.552002f, 0.393066f, -0.56543f,
+0.382568f, -0.573486f, 0.37207f, -0.581543f, 0.357422f, -0.585205f, 0.342773f, -0.588867f,
+0.325684f, -0.588867f, 0.306641f, -0.588867f, 0.290039f, -0.584473f, 0.273438f, -0.580078f,
+0.259521f, -0.569824f, 0.245605f, -0.55957f, 0.234863f, -0.542236f, 0.224121f, -0.524902f,
+0.216797f, -0.499023f, 0.0869141f, -0.527832f, 0.0986328f, -0.567383f, 0.118652f,
+-0.598877f, 0.138672f, -0.630371f, 0.168945f, -0.652344f, 0.199219f, -0.674316f,
+0.240479f, -0.686279f, 0.281738f, -0.698242f, 0.335449f, -0.698242f, 0.390625f, -0.698242f,
+0.430176f, -0.686279f, 0.469727f, -0.674316f, 0.495605f, -0.652344f, 0.521484f, -0.630371f,
+0.533691f, -0.599121f, 0.545898f, -0.567871f, 0.545898f, -0.528809f, 0.545898f, -0.490723f,
+0.533691f, -0.458496f, 0.521484f, -0.42627f, 0.500488f, -0.398438f, 0.479492f, -0.370605f,
+0.451904f, -0.346191f, 0.424316f, -0.321777f, 0.393311f, -0.299316f, 0.362305f, -0.276855f,
+0.330078f, -0.255127f, 0.297852f, -0.233398f, 0.267822f, -0.210938f, 0.237793f, -0.188477f,
+0.211914f, -0.164307f, 0.186035f, -0.140137f, 0.16748f, -0.112793f, 0.486816f, -0.112793f,
+0.465332f, 0, 0.26123f, -0.404785f, 0.28418f, -0.404785f, 0.309814f, -0.408691f,
+0.335449f, -0.412598f, 0.356689f, -0.424316f, 0.37793f, -0.436035f, 0.391846f, -0.457275f,
+0.405762f, -0.478516f, 0.405762f, -0.513184f, 0.405762f, -0.54834f, 0.386963f, -0.568604f,
+0.368164f, -0.588867f, 0.329102f, -0.588867f, 0.284668f, -0.588867f, 0.255371f, -0.566895f,
+0.226074f, -0.544922f, 0.213379f, -0.499023f, 0.0830078f, -0.524414f, 0.0961914f,
+-0.570312f, 0.119141f, -0.603271f, 0.14209f, -0.63623f, 0.173828f, -0.657227f, 0.205566f,
+-0.678223f, 0.24585f, -0.688232f, 0.286133f, -0.698242f, 0.334473f, -0.698242f, 0.384277f,
+-0.698242f, 0.42334f, -0.686768f, 0.462402f, -0.675293f, 0.489502f, -0.653564f, 0.516602f,
+-0.631836f, 0.530762f, -0.60083f, 0.544922f, -0.569824f, 0.544922f, -0.530273f, 0.544922f,
+-0.493164f, 0.533203f, -0.462402f, 0.521484f, -0.431641f, 0.498779f, -0.408936f,
+0.476074f, -0.38623f, 0.443359f, -0.37207f, 0.410645f, -0.35791f, 0.368652f, -0.354004f,
+0.368164f, -0.352051f, 0.398926f, -0.347168f, 0.423828f, -0.335693f, 0.44873f, -0.324219f,
+0.466309f, -0.305664f, 0.483887f, -0.287109f, 0.493408f, -0.261719f, 0.50293f, -0.236328f,
+0.50293f, -0.204102f, 0.50293f, -0.161621f, 0.486328f, -0.122803f, 0.469727f, -0.0839844f,
+0.437744f, -0.0544434f, 0.405762f, -0.0249023f, 0.358398f, -0.00756836f, 0.311035f,
+0.00976562f, 0.249512f, 0.00976562f, 0.188965f, 0.00976562f, 0.144775f, -0.00341797f,
+0.100586f, -0.0166016f, 0.0712891f, -0.0402832f, 0.0419922f, -0.0639648f, 0.0266113f,
+-0.0964355f, 0.0112305f, -0.128906f, 0.0078125f, -0.16748f, 0.145508f, -0.186035f,
+0.148438f, -0.161621f, 0.156982f, -0.145264f, 0.165527f, -0.128906f, 0.179443f, -0.118896f,
+0.193359f, -0.108887f, 0.212646f, -0.104736f, 0.231934f, -0.100586f, 0.255859f, -0.100586f,
+0.283203f, -0.100586f, 0.303467f, -0.108398f, 0.32373f, -0.116211f, 0.337158f, -0.129883f,
+0.350586f, -0.143555f, 0.357178f, -0.162354f, 0.36377f, -0.181152f, 0.36377f, -0.203125f,
+0.36377f, -0.248535f, 0.337402f, -0.27124f, 0.311035f, -0.293945f, 0.256348f, -0.293945f,
+0.204102f, -0.293945f, 0.225586f, -0.404785f, 0.426758f, -0.139648f, 0.400391f, 0,
+0.269531f, 0, 0.295898f, -0.139648f, -0.0166016f, -0.139648f, 0.00341797f, -0.240723f,
+0.353516f, -0.687988f, 0.53418f, -0.687988f, 0.447266f, -0.242188f, 0.539062f, -0.242188f,
+0.518555f, -0.139648f, 0.366211f, -0.498047f, 0.367676f, -0.505371f, 0.370605f, -0.517578f,
+0.373535f, -0.529785f, 0.377197f, -0.543213f, 0.380859f, -0.556641f, 0.384521f, -0.569092f,
+0.388184f, -0.581543f, 0.390625f, -0.588867f, 0.387207f, -0.583008f, 0.380371f, -0.57251f,
+0.373535f, -0.562012f, 0.365479f, -0.550049f, 0.357422f, -0.538086f, 0.348877f, -0.526367f,
+0.340332f, -0.514648f, 0.333496f, -0.505859f, 0.126465f, -0.242188f, 0.316406f, -0.242188f,
+0.154297f, -0.687988f, 0.567871f, -0.687988f, 0.546875f, -0.575195f, 0.256836f, -0.575195f,
+0.214355f, -0.412109f, 0.223145f, -0.419922f, 0.235107f, -0.427734f, 0.24707f, -0.435547f,
+0.262207f, -0.441895f, 0.277344f, -0.448242f, 0.296387f, -0.452148f, 0.31543f, -0.456055f,
+0.338867f, -0.456055f, 0.376953f, -0.456055f, 0.409912f, -0.442871f, 0.442871f, -0.429688f,
+0.467285f, -0.403809f, 0.491699f, -0.37793f, 0.505615f, -0.340088f, 0.519531f, -0.302246f,
+0.519531f, -0.25293f, 0.519531f, -0.194824f, 0.500488f, -0.146484f, 0.481445f, -0.0981445f,
+0.445312f, -0.0634766f, 0.40918f, -0.0288086f, 0.356689f, -0.00952148f, 0.304199f,
+0.00976562f, 0.237305f, 0.00976562f, 0.182617f, 0.00976562f, 0.142578f, -0.00317383f,
+0.102539f, -0.0161133f, 0.0749512f, -0.0388184f, 0.0473633f, -0.0615234f, 0.0314941f,
+-0.0927734f, 0.015625f, -0.124023f, 0.00976562f, -0.160645f, 0.147949f, -0.182617f,
+0.151855f, -0.162109f, 0.158691f, -0.146729f, 0.165527f, -0.131348f, 0.177246f, -0.121094f,
+0.188965f, -0.11084f, 0.206543f, -0.105713f, 0.224121f, -0.100586f, 0.249023f, -0.100586f,
+0.281738f, -0.100586f, 0.306396f, -0.111328f, 0.331055f, -0.12207f, 0.347412f, -0.140869f,
+0.36377f, -0.159668f, 0.371826f, -0.18457f, 0.379883f, -0.209473f, 0.379883f, -0.237305f,
+0.379883f, -0.265625f, 0.372803f, -0.286133f, 0.365723f, -0.306641f, 0.353271f, -0.319824f,
+0.34082f, -0.333008f, 0.323975f, -0.339111f, 0.307129f, -0.345215f, 0.287598f, -0.345215f,
+0.255859f, -0.345215f, 0.231934f, -0.333984f, 0.208008f, -0.322754f, 0.188965f, -0.300781f,
+0.0551758f, -0.300781f, 0.260254f, 0.00976562f, 0.208008f, 0.00976562f, 0.168213f,
+-0.00708008f, 0.128418f, -0.0239258f, 0.101318f, -0.0559082f, 0.0742188f, -0.0878906f,
+0.0603027f, -0.133789f, 0.0463867f, -0.179688f, 0.0463867f, -0.237793f, 0.0463867f,
+-0.337402f, 0.0695801f, -0.421631f, 0.0927734f, -0.505859f, 0.134521f, -0.567383f,
+0.17627f, -0.628906f, 0.234863f, -0.663574f, 0.293457f, -0.698242f, 0.36377f, -0.698242f,
+0.397461f, -0.698242f, 0.430664f, -0.690918f, 0.463867f, -0.683594f, 0.491211f, -0.665527f,
+0.518555f, -0.647461f, 0.537354f, -0.616943f, 0.556152f, -0.586426f, 0.561523f, -0.540039f,
+0.431641f, -0.52002f, 0.424805f, -0.555664f, 0.406738f, -0.572754f, 0.388672f, -0.589844f,
+0.356445f, -0.589844f, 0.300293f, -0.589844f, 0.258789f, -0.533691f, 0.217285f, -0.477539f,
+0.198242f, -0.364258f, 0.224121f, -0.399414f, 0.263916f, -0.421143f, 0.303711f, -0.442871f,
+0.354004f, -0.442871f, 0.392578f, -0.442871f, 0.424316f, -0.430908f, 0.456055f, -0.418945f,
+0.47876f, -0.395752f, 0.501465f, -0.372559f, 0.513916f, -0.338623f, 0.526367f, -0.304688f,
+0.526367f, -0.260254f, 0.526367f, -0.206055f, 0.507568f, -0.157227f, 0.48877f, -0.108398f,
+0.454102f, -0.0712891f, 0.419434f, -0.0341797f, 0.370361f, -0.012207f, 0.321289f,
+0.00976562f, 0.260254f, 0.00976562f, 0.180176f, -0.209473f, 0.180176f, -0.158203f,
+0.204102f, -0.12793f, 0.228027f, -0.0976562f, 0.272461f, -0.0976562f, 0.297363f,
+-0.0976562f, 0.318359f, -0.107422f, 0.339355f, -0.117188f, 0.354492f, -0.135986f,
+0.369629f, -0.154785f, 0.378174f, -0.181885f, 0.386719f, -0.208984f, 0.386719f, -0.243652f,
+0.386719f, -0.269043f, 0.380127f, -0.287598f, 0.373535f, -0.306152f, 0.361816f, -0.318115f,
+0.350098f, -0.330078f, 0.334229f, -0.335938f, 0.318359f, -0.341797f, 0.299805f, -0.341797f,
+0.277832f, -0.341797f, 0.256348f, -0.333496f, 0.234863f, -0.325195f, 0.218018f, -0.308838f,
+0.201172f, -0.29248f, 0.190674f, -0.267578f, 0.180176f, -0.242676f, 0.180176f, -0.209473f,
+0.0917969f, -0.687988f, 0.595215f, -0.687988f, 0.57373f, -0.579102f, 0.532715f, -0.529297f,
+0.494629f, -0.484375f, 0.456543f, -0.439453f, 0.422607f, -0.395752f, 0.388672f, -0.352051f,
+0.359131f, -0.308105f, 0.32959f, -0.26416f, 0.305176f, -0.216309f, 0.280762f, -0.168457f,
+0.261963f, -0.115234f, 0.243164f, -0.0620117f, 0.230469f, 0, 0.0849609f, 0, 0.102051f,
+-0.0888672f, 0.135498f, -0.163818f, 0.168945f, -0.23877f, 0.2146f, -0.307129f, 0.260254f,
+-0.375488f, 0.31665f, -0.440674f, 0.373047f, -0.505859f, 0.436035f, -0.575195f, 0.0698242f,
+-0.575195f, 0.345215f, -0.697754f, 0.394531f, -0.697754f, 0.43335f, -0.686035f, 0.472168f,
+-0.674316f, 0.499023f, -0.652832f, 0.525879f, -0.631348f, 0.540283f, -0.60083f, 0.554688f,
+-0.570312f, 0.554688f, -0.532715f, 0.554688f, -0.5f, 0.544189f, -0.470947f, 0.533691f,
+-0.441895f, 0.513916f, -0.419678f, 0.494141f, -0.397461f, 0.465332f, -0.382568f,
+0.436523f, -0.367676f, 0.400391f, -0.362793f, 0.399902f, -0.36084f, 0.424805f, -0.353516f,
+0.445557f, -0.340332f, 0.466309f, -0.327148f, 0.480957f, -0.30835f, 0.495605f, -0.289551f,
+0.503906f, -0.265137f, 0.512207f, -0.240723f, 0.512207f, -0.210938f, 0.512207f, -0.163574f,
+0.495117f, -0.123291f, 0.478027f, -0.0830078f, 0.444092f, -0.0534668f, 0.410156f,
+-0.0239258f, 0.359375f, -0.00708008f, 0.308594f, 0.00976562f, 0.240723f, 0.00976562f,
+0.182617f, 0.00976562f, 0.139648f, -0.00415039f, 0.0966797f, -0.0180664f, 0.0686035f,
+-0.0429688f, 0.0405273f, -0.0678711f, 0.0268555f, -0.101807f, 0.0131836f, -0.135742f,
+0.0131836f, -0.175781f, 0.0131836f, -0.221191f, 0.029541f, -0.253174f, 0.0458984f,
+-0.285156f, 0.0715332f, -0.306885f, 0.097168f, -0.328613f, 0.128174f, -0.341309f,
+0.15918f, -0.354004f, 0.188477f, -0.359863f, 0.188477f, -0.361816f, 0.143555f, -0.381836f,
+0.120361f, -0.421143f, 0.097168f, -0.460449f, 0.097168f, -0.513672f, 0.097168f, -0.556152f,
+0.114014f, -0.590332f, 0.130859f, -0.624512f, 0.162842f, -0.648193f, 0.194824f, -0.671875f,
+0.240967f, -0.684814f, 0.287109f, -0.697754f, 0.345215f, -0.697754f, 0.316406f, -0.410156f,
+0.345703f, -0.410156f, 0.364746f, -0.420654f, 0.383789f, -0.431152f, 0.395264f, -0.447266f,
+0.406738f, -0.463379f, 0.411133f, -0.482666f, 0.415527f, -0.501953f, 0.415527f, -0.519531f,
+0.415527f, -0.558594f, 0.39502f, -0.580078f, 0.374512f, -0.601562f, 0.331543f, -0.601562f,
+0.310547f, -0.601562f, 0.29248f, -0.595459f, 0.274414f, -0.589355f, 0.260986f, -0.57666f,
+0.247559f, -0.563965f, 0.23999f, -0.544434f, 0.232422f, -0.524902f, 0.232422f, -0.498047f,
+0.232422f, -0.482422f, 0.236328f, -0.466553f, 0.240234f, -0.450684f, 0.249756f, -0.438232f,
+0.259277f, -0.425781f, 0.275391f, -0.417969f, 0.291504f, -0.410156f, 0.316406f, -0.410156f,
+0.273926f, -0.3125f, 0.244629f, -0.3125f, 0.222412f, -0.303223f, 0.200195f, -0.293945f,
+0.185303f, -0.2771f, 0.17041f, -0.260254f, 0.162598f, -0.236572f, 0.154785f, -0.212891f,
+0.154785f, -0.184082f, 0.154785f, -0.163086f, 0.160645f, -0.145264f, 0.166504f, -0.127441f,
+0.178711f, -0.114502f, 0.190918f, -0.101562f, 0.209717f, -0.0942383f, 0.228516f,
+-0.0869141f, 0.253906f, -0.0869141f, 0.27832f, -0.0869141f, 0.299561f, -0.0952148f,
+0.320801f, -0.103516f, 0.33667f, -0.119873f, 0.352539f, -0.13623f, 0.361816f, -0.1604f,
+0.371094f, -0.18457f, 0.371094f, -0.216797f, 0.371094f, -0.234863f, 0.366455f, -0.251953f,
+0.361816f, -0.269043f, 0.350342f, -0.282471f, 0.338867f, -0.295898f, 0.320312f, -0.304199f,
+0.301758f, -0.3125f, 0.273926f, -0.3125f, 0.398926f, -0.318848f, 0.383789f, -0.300781f,
+0.367432f, -0.287109f, 0.351074f, -0.273438f, 0.33252f, -0.26416f, 0.313965f, -0.254883f,
+0.292236f, -0.250244f, 0.270508f, -0.245605f, 0.244141f, -0.245605f, 0.204102f, -0.245605f,
+0.172119f, -0.259521f, 0.140137f, -0.273438f, 0.11792f, -0.298584f, 0.0957031f, -0.32373f,
+0.0837402f, -0.358887f, 0.0717773f, -0.394043f, 0.0717773f, -0.436035f, 0.0717773f,
+-0.491211f, 0.0915527f, -0.539062f, 0.111328f, -0.586914f, 0.146484f, -0.622314f,
+0.181641f, -0.657715f, 0.230469f, -0.677979f, 0.279297f, -0.698242f, 0.337891f, -0.698242f,
+0.384277f, -0.698242f, 0.42334f, -0.683105f, 0.462402f, -0.667969f, 0.490967f, -0.638428f,
+0.519531f, -0.608887f, 0.535645f, -0.565918f, 0.551758f, -0.522949f, 0.551758f, -0.467285f,
+0.551758f, -0.454102f, 0.550781f, -0.4375f, 0.549805f, -0.420898f, 0.548096f, -0.403076f,
+0.546387f, -0.385254f, 0.543701f, -0.366699f, 0.541016f, -0.348145f, 0.537598f, -0.331543f,
+0.519043f, -0.239746f, 0.487793f, -0.174805f, 0.456543f, -0.109863f, 0.416748f, -0.0688477f,
+0.376953f, -0.027832f, 0.330322f, -0.0090332f, 0.283691f, 0.00976562f, 0.233887f,
+0.00976562f, 0.192383f, 0.00976562f, 0.156738f, 0, 0.121094f, -0.00976562f, 0.09375f,
+-0.0300293f, 0.0664062f, -0.050293f, 0.0483398f, -0.0805664f, 0.0302734f, -0.11084f,
+0.0234375f, -0.151855f, 0.157227f, -0.175293f, 0.164062f, -0.138672f, 0.18457f, -0.118652f,
+0.205078f, -0.0986328f, 0.243164f, -0.0986328f, 0.264648f, -0.0986328f, 0.286865f,
+-0.108154f, 0.309082f, -0.117676f, 0.329834f, -0.142334f, 0.350586f, -0.166992f,
+0.368408f, -0.209717f, 0.38623f, -0.252441f, 0.398926f, -0.318848f, 0.41748f, -0.492676f,
+0.41748f, -0.513184f, 0.411377f, -0.531006f, 0.405273f, -0.548828f, 0.393799f, -0.562256f,
+0.382324f, -0.575684f, 0.366455f, -0.583252f, 0.350586f, -0.59082f, 0.331055f, -0.59082f,
+0.304688f, -0.59082f, 0.282715f, -0.581055f, 0.260742f, -0.571289f, 0.244873f, -0.552002f,
+0.229004f, -0.532715f, 0.219971f, -0.504395f, 0.210938f, -0.476074f, 0.210938f, -0.439453f,
+0.210938f, -0.41748f, 0.217529f, -0.400146f, 0.224121f, -0.382812f, 0.235596f, -0.37085f,
+0.24707f, -0.358887f, 0.263184f, -0.352783f, 0.279297f, -0.34668f, 0.29834f, -0.34668f,
+0.316895f, -0.34668f, 0.335205f, -0.351807f, 0.353516f, -0.356934f, 0.369141f, -0.369141f,
+0.384766f, -0.381348f, 0.396484f, -0.400879f, 0.408203f, -0.42041f, 0.413574f, -0.449219f,
+0.415527f, -0.460938f, 0.416504f, -0.47168f, 0.41748f, -0.482422f, 0.41748f, -0.492676f,
+0.114746f, -0.367188f, 0.141602f, -0.504883f, 0.282227f, -0.504883f, 0.255371f, -0.367188f,
+0.043457f, 0, 0.0703125f, -0.137207f, 0.210938f, -0.137207f, 0.184082f, 0, 0.114746f,
+-0.367188f, 0.141602f, -0.504883f, 0.282227f, -0.504883f, 0.255371f, -0.367188f,
+0.19043f, -0.0322266f, 0.184082f, 0.000488281f, 0.175293f, 0.0273438f, 0.166504f,
+0.0541992f, 0.155273f, 0.0769043f, 0.144043f, 0.0996094f, 0.130371f, 0.118652f, 0.116699f,
+0.137695f, 0.101074f, 0.154785f, 0.0112305f, 0.154785f, 0.0283203f, 0.137695f, 0.0439453f,
+0.118652f, 0.0595703f, 0.0996094f, 0.0722656f, 0.0795898f, 0.0849609f, 0.0595703f,
+0.09375f, 0.0395508f, 0.102539f, 0.0195312f, 0.106445f, 0, 0.043457f, 0, 0.0703125f,
+-0.137207f, 0.210938f, -0.137207f, 0.0605469f, -0.251953f, 0.0605469f, -0.40918f,
+0.562012f, -0.600098f, 0.562012f, -0.48877f, 0.155273f, -0.330078f, 0.562012f, -0.171875f,
+0.562012f, -0.0610352f, 0.0600586f, -0.411133f, 0.0600586f, -0.52002f, 0.561523f,
+-0.52002f, 0.561523f, -0.411133f, 0.0600586f, -0.14209f, 0.0600586f, -0.25f, 0.561523f,
+-0.25f, 0.561523f, -0.14209f, 0.0605469f, -0.0610352f, 0.0605469f, -0.171875f, 0.466797f,
+-0.330078f, 0.0605469f, -0.48877f, 0.0605469f, -0.600098f, 0.562012f, -0.40918f,
+0.562012f, -0.251953f, 0.36377f, -0.698242f, 0.414551f, -0.698242f, 0.456299f, -0.686768f,
+0.498047f, -0.675293f, 0.527832f, -0.65332f, 0.557617f, -0.631348f, 0.573975f, -0.599121f,
+0.590332f, -0.566895f, 0.590332f, -0.524902f, 0.590332f, -0.48291f, 0.574463f, -0.450928f,
+0.558594f, -0.418945f, 0.532959f, -0.393555f, 0.507324f, -0.368164f, 0.475342f, -0.348145f,
+0.443359f, -0.328125f, 0.410645f, -0.310059f, 0.394043f, -0.299316f, 0.379395f, -0.289062f,
+0.364746f, -0.278809f, 0.353516f, -0.26709f, 0.342285f, -0.255371f, 0.334961f, -0.241211f,
+0.327637f, -0.227051f, 0.325195f, -0.208008f, 0.194824f, -0.208008f, 0.201172f, -0.242188f,
+0.213623f, -0.267334f, 0.226074f, -0.29248f, 0.243896f, -0.312256f, 0.261719f, -0.332031f,
+0.285156f, -0.348633f, 0.308594f, -0.365234f, 0.336914f, -0.382812f, 0.370605f, -0.403809f,
+0.392822f, -0.419922f, 0.415039f, -0.436035f, 0.428223f, -0.450928f, 0.441406f, -0.46582f,
+0.446777f, -0.480957f, 0.452148f, -0.496094f, 0.452148f, -0.515137f, 0.452148f, -0.545898f,
+0.428711f, -0.566162f, 0.405273f, -0.586426f, 0.355957f, -0.586426f, 0.302246f, -0.586426f,
+0.267578f, -0.563721f, 0.23291f, -0.541016f, 0.219727f, -0.492188f, 0.0898438f, -0.511719f,
+0.103027f, -0.554688f, 0.125488f, -0.589111f, 0.147949f, -0.623535f, 0.181641f, -0.647705f,
+0.215332f, -0.671875f, 0.260498f, -0.685059f, 0.305664f, -0.698242f, 0.36377f, -0.698242f,
+0.150879f, 0, 0.17627f, -0.131836f, 0.317383f, -0.131836f, 0.291992f, 0, 0.933105f,
+-0.368652f, 0.933105f, -0.29834f, 0.914551f, -0.23999f, 0.895996f, -0.181641f, 0.864014f,
+-0.139648f, 0.832031f, -0.0976562f, 0.789307f, -0.0742188f, 0.746582f, -0.0507812f,
+0.698242f, -0.0507812f, 0.677734f, -0.0507812f, 0.6604f, -0.0559082f, 0.643066f,
+-0.0610352f, 0.630859f, -0.0715332f, 0.618652f, -0.0820312f, 0.611816f, -0.0979004f,
+0.60498f, -0.11377f, 0.60498f, -0.134766f, 0.60498f, -0.141602f, 0.605713f, -0.150879f,
+0.606445f, -0.160156f, 0.60791f, -0.16748f, 0.60498f, -0.16748f, 0.594727f, -0.145996f,
+0.577637f, -0.125f, 0.560547f, -0.104004f, 0.53833f, -0.0876465f, 0.516113f, -0.0712891f,
+0.489502f, -0.0610352f, 0.462891f, -0.0507812f, 0.434082f, -0.0507812f, 0.387695f,
+-0.0507812f, 0.356689f, -0.0673828f, 0.325684f, -0.0839844f, 0.307129f, -0.11084f,
+0.288574f, -0.137695f, 0.280762f, -0.171387f, 0.272949f, -0.205078f, 0.272949f, -0.23877f,
+0.272949f, -0.294922f, 0.289551f, -0.348633f, 0.306152f, -0.402344f, 0.337402f, -0.444336f,
+0.368652f, -0.486328f, 0.414062f, -0.511963f, 0.459473f, -0.537598f, 0.51709f, -0.537598f,
+0.566895f, -0.537598f, 0.598633f, -0.514893f, 0.630371f, -0.492188f, 0.645996f, -0.452637f,
+0.648926f, -0.452637f, 0.667969f, -0.526855f, 0.744141f, -0.526855f, 0.687012f, -0.279785f,
+0.678711f, -0.241211f, 0.673828f, -0.210938f, 0.668945f, -0.180664f, 0.668945f, -0.162598f,
+0.668945f, -0.138184f, 0.68042f, -0.12793f, 0.691895f, -0.117676f, 0.707031f, -0.117676f,
+0.73584f, -0.117676f, 0.762939f, -0.13623f, 0.790039f, -0.154785f, 0.811523f, -0.187988f,
+0.833008f, -0.221191f, 0.845947f, -0.26709f, 0.858887f, -0.312988f, 0.858887f, -0.367676f,
+0.858887f, -0.429199f, 0.838867f, -0.481934f, 0.818848f, -0.534668f, 0.779785f, -0.573242f,
+0.740723f, -0.611816f, 0.683105f, -0.633789f, 0.625488f, -0.655762f, 0.550293f, -0.655762f,
+0.485352f, -0.655762f, 0.430664f, -0.640381f, 0.375977f, -0.625f, 0.331787f, -0.597168f,
+0.287598f, -0.569336f, 0.25415f, -0.530762f, 0.220703f, -0.492188f, 0.197998f, -0.446045f,
+0.175293f, -0.399902f, 0.163818f, -0.347656f, 0.152344f, -0.29541f, 0.152344f, -0.239746f,
+0.152344f, -0.197266f, 0.160645f, -0.157471f, 0.168945f, -0.117676f, 0.185791f, -0.0830078f,
+0.202637f, -0.0483398f, 0.228271f, -0.0195312f, 0.253906f, 0.00927734f, 0.288574f,
+0.0297852f, 0.323242f, 0.050293f, 0.367432f, 0.0617676f, 0.411621f, 0.0732422f, 0.465332f,
+0.0732422f, 0.507324f, 0.0732422f, 0.546387f, 0.0673828f, 0.585449f, 0.0615234f,
+0.621338f, 0.0512695f, 0.657227f, 0.0410156f, 0.690186f, 0.0270996f, 0.723145f, 0.0131836f,
+0.75293f, -0.00244141f, 0.783203f, 0.0571289f, 0.753906f, 0.0737305f, 0.720215f,
+0.0893555f, 0.686523f, 0.10498f, 0.646973f, 0.116943f, 0.607422f, 0.128906f, 0.561523f,
+0.13623f, 0.515625f, 0.143555f, 0.461914f, 0.143555f, 0.398438f, 0.143555f, 0.344727f,
+0.129639f, 0.291016f, 0.115723f, 0.247803f, 0.0905762f, 0.20459f, 0.0654297f, 0.171875f,
+0.0302734f, 0.13916f, -0.00488281f, 0.117188f, -0.0473633f, 0.0952148f, -0.0898438f,
+0.0842285f, -0.138672f, 0.0732422f, -0.1875f, 0.0732422f, -0.239746f, 0.0732422f,
+-0.307617f, 0.088623f, -0.370117f, 0.104004f, -0.432617f, 0.133057f, -0.486328f,
+0.162109f, -0.540039f, 0.203857f, -0.583984f, 0.245605f, -0.62793f, 0.298584f, -0.65918f,
+0.351562f, -0.69043f, 0.414795f, -0.70752f, 0.478027f, -0.724609f, 0.549316f, -0.724609f,
+0.648438f, -0.724609f, 0.720947f, -0.695801f, 0.793457f, -0.666992f, 0.840576f, -0.618164f,
+0.887695f, -0.569336f, 0.9104f, -0.504883f, 0.933105f, -0.44043f, 0.933105f, -0.368652f,
+0.617188f, -0.366699f, 0.617188f, -0.389648f, 0.609619f, -0.408936f, 0.602051f, -0.428223f,
+0.588379f, -0.442139f, 0.574707f, -0.456055f, 0.555664f, -0.463867f, 0.536621f, -0.47168f,
+0.513184f, -0.47168f, 0.486328f, -0.47168f, 0.463867f, -0.46167f, 0.441406f, -0.45166f,
+0.423828f, -0.43457f, 0.40625f, -0.41748f, 0.393066f, -0.394775f, 0.379883f, -0.37207f,
+0.371338f, -0.346191f, 0.362793f, -0.320312f, 0.358398f, -0.292969f, 0.354004f, -0.265625f,
+0.354004f, -0.239746f, 0.354004f, -0.184082f, 0.377686f, -0.151855f, 0.401367f, -0.119629f,
+0.450195f, -0.119629f, 0.473633f, -0.119629f, 0.496826f, -0.130859f, 0.52002f, -0.14209f,
+0.540527f, -0.163818f, 0.561035f, -0.185547f, 0.577881f, -0.217529f, 0.594727f, -0.249512f,
+0.60498f, -0.290527f, 0.607422f, -0.299316f, 0.609619f, -0.309814f, 0.611816f, -0.320312f,
+0.613525f, -0.330566f, 0.615234f, -0.34082f, 0.616211f, -0.350098f, 0.617188f, -0.359375f,
+0.617188f, -0.366699f, 0.507324f, 0, 0.480469f, -0.175781f, 0.218262f, -0.175781f,
+0.123047f, 0, -0.0205078f, 0, 0.36377f, -0.687988f, 0.533691f, -0.687988f, 0.649902f,
+0, 0.436523f, -0.504883f, 0.435547f, -0.512207f, 0.434082f, -0.523193f, 0.432617f,
+-0.53418f, 0.431152f, -0.545654f, 0.429688f, -0.557129f, 0.428711f, -0.567139f, 0.427734f,
+-0.577148f, 0.427734f, -0.582031f, 0.425781f, -0.576172f, 0.420654f, -0.564209f,
+0.415527f, -0.552246f, 0.408936f, -0.537598f, 0.402344f, -0.522949f, 0.394531f, -0.507324f,
+0.386719f, -0.491699f, 0.379883f, -0.478516f, 0.276367f, -0.28418f, 0.469238f, -0.28418f,
+0.151367f, -0.687988f, 0.436523f, -0.687988f, 0.500488f, -0.687988f, 0.547119f, -0.677246f,
+0.59375f, -0.666504f, 0.624512f, -0.645996f, 0.655273f, -0.625488f, 0.670166f, -0.595947f,
+0.685059f, -0.566406f, 0.685059f, -0.528809f, 0.685059f, -0.493164f, 0.673828f, -0.465088f,
+0.662598f, -0.437012f, 0.641846f, -0.41626f, 0.621094f, -0.395508f, 0.591797f, -0.381592f,
+0.5625f, -0.367676f, 0.526855f, -0.360352f, 0.561523f, -0.354492f, 0.587891f, -0.34082f,
+0.614258f, -0.327148f, 0.63208f, -0.307373f, 0.649902f, -0.287598f, 0.658936f, -0.262939f,
+0.667969f, -0.238281f, 0.667969f, -0.210449f, 0.667969f, -0.149414f, 0.643311f, -0.108887f,
+0.618652f, -0.0683594f, 0.576904f, -0.0441895f, 0.535156f, -0.0200195f, 0.479492f,
+-0.0100098f, 0.423828f, 0, 0.361816f, 0, 0.0175781f, 0, 0.241211f, -0.410645f, 0.384766f,
+-0.410645f, 0.427246f, -0.410645f, 0.457275f, -0.416016f, 0.487305f, -0.421387f,
+0.506104f, -0.433105f, 0.524902f, -0.444824f, 0.533447f, -0.463135f, 0.541992f, -0.481445f,
+0.541992f, -0.506836f, 0.541992f, -0.52832f, 0.533936f, -0.542725f, 0.525879f, -0.557129f,
+0.510498f, -0.565674f, 0.495117f, -0.574219f, 0.472412f, -0.577637f, 0.449707f, -0.581055f,
+0.420898f, -0.581055f, 0.273926f, -0.581055f, 0.182129f, -0.106934f, 0.342285f, -0.106934f,
+0.388672f, -0.106934f, 0.422852f, -0.111816f, 0.457031f, -0.116699f, 0.479248f, -0.128906f,
+0.501465f, -0.141113f, 0.512451f, -0.161621f, 0.523438f, -0.182129f, 0.523438f, -0.213379f,
+0.523438f, -0.257324f, 0.490234f, -0.280762f, 0.457031f, -0.304199f, 0.381836f, -0.304199f,
+0.220703f, -0.304199f, 0.195801f, -0.279785f, 0.195801f, -0.23877f, 0.206055f, -0.206055f,
+0.216309f, -0.17334f, 0.236572f, -0.150391f, 0.256836f, -0.127441f, 0.286865f, -0.115234f,
+0.316895f, -0.103027f, 0.356934f, -0.103027f, 0.39502f, -0.103027f, 0.42627f, -0.113281f,
+0.45752f, -0.123535f, 0.482666f, -0.141113f, 0.507812f, -0.158691f, 0.5271f, -0.181396f,
+0.546387f, -0.204102f, 0.561035f, -0.229004f, 0.671875f, -0.171875f, 0.650879f, -0.134766f,
+0.621582f, -0.101562f, 0.592285f, -0.0683594f, 0.552734f, -0.0437012f, 0.513184f,
+-0.019043f, 0.462402f, -0.00463867f, 0.411621f, 0.00976562f, 0.347168f, 0.00976562f,
+0.270508f, 0.00976562f, 0.214111f, -0.0126953f, 0.157715f, -0.0351562f, 0.121094f,
+-0.0739746f, 0.0844727f, -0.112793f, 0.0666504f, -0.165283f, 0.0488281f, -0.217773f,
+0.0488281f, -0.277832f, 0.0488281f, -0.338379f, 0.0615234f, -0.393066f, 0.0742188f,
+-0.447754f, 0.0983887f, -0.494385f, 0.122559f, -0.541016f, 0.157715f, -0.578857f,
+0.192871f, -0.616699f, 0.237793f, -0.643066f, 0.282715f, -0.669434f, 0.33667f, -0.683838f,
+0.390625f, -0.698242f, 0.452637f, -0.698242f, 0.519531f, -0.698242f, 0.568115f, -0.682617f,
+0.616699f, -0.666992f, 0.650391f, -0.640625f, 0.684082f, -0.614258f, 0.704102f, -0.57959f,
+0.724121f, -0.544922f, 0.733887f, -0.506836f, 0.600098f, -0.472168f, 0.594238f, -0.493652f,
+0.582275f, -0.513916f, 0.570312f, -0.53418f, 0.551758f, -0.550049f, 0.533203f, -0.565918f,
+0.507324f, -0.575439f, 0.481445f, -0.584961f, 0.448242f, -0.584961f, 0.386719f, -0.584961f,
+0.3396f, -0.562744f, 0.29248f, -0.540527f, 0.260498f, -0.500244f, 0.228516f, -0.459961f,
+0.212158f, -0.403809f, 0.195801f, -0.347656f, 0.195801f, -0.279785f, 0.358398f, -0.687988f,
+0.437988f, -0.687988f, 0.500244f, -0.669434f, 0.5625f, -0.650879f, 0.605469f, -0.614014f,
+0.648438f, -0.577148f, 0.671143f, -0.522217f, 0.693848f, -0.467285f, 0.693848f, -0.394043f,
+0.693848f, -0.329102f, 0.678955f, -0.274658f, 0.664062f, -0.220215f, 0.637451f, -0.176514f,
+0.61084f, -0.132812f, 0.573975f, -0.0998535f, 0.537109f, -0.0668945f, 0.493408f,
+-0.0446777f, 0.449707f, -0.0224609f, 0.400391f, -0.0112305f, 0.351074f, 0, 0.299805f,
+0, 0.0175781f, 0, 0.151367f, -0.687988f, 0.183105f, -0.111328f, 0.29541f, -0.111328f,
+0.352051f, -0.111328f, 0.400391f, -0.129395f, 0.44873f, -0.147461f, 0.483887f, -0.182373f,
+0.519043f, -0.217285f, 0.539062f, -0.268799f, 0.559082f, -0.320312f, 0.559082f, -0.387695f,
+0.559082f, -0.435547f, 0.54541f, -0.470947f, 0.531738f, -0.506348f, 0.506104f, -0.529785f,
+0.480469f, -0.553223f, 0.443359f, -0.564941f, 0.40625f, -0.57666f, 0.359375f, -0.57666f,
+0.273438f, -0.57666f, 0.0175781f, 0, 0.150879f, -0.687988f, 0.691895f, -0.687988f,
+0.67041f, -0.57666f, 0.273438f, -0.57666f, 0.239746f, -0.403809f, 0.606934f, -0.403809f,
+0.585449f, -0.29248f, 0.218262f, -0.29248f, 0.183105f, -0.111328f, 0.600098f, -0.111328f,
+0.578125f, 0, 0.273438f, -0.57666f, 0.231934f, -0.36377f, 0.558105f, -0.36377f, 0.536621f,
+-0.252441f, 0.210449f, -0.252441f, 0.161133f, 0, 0.0175781f, 0, 0.150879f, -0.687988f,
+0.632324f, -0.687988f, 0.61084f, -0.57666f, 0.683594f, -0.0854492f, 0.650879f, -0.0629883f,
+0.616455f, -0.045166f, 0.582031f, -0.0273438f, 0.542969f, -0.0153809f, 0.503906f,
+-0.00341797f, 0.459229f, 0.00292969f, 0.414551f, 0.00927734f, 0.361328f, 0.00927734f,
+0.282227f, 0.00927734f, 0.223389f, -0.0129395f, 0.164551f, -0.0351562f, 0.125732f,
+-0.0742188f, 0.0869141f, -0.113281f, 0.0678711f, -0.167236f, 0.0488281f, -0.221191f,
+0.0488281f, -0.284668f, 0.0488281f, -0.376465f, 0.0776367f, -0.452637f, 0.106445f,
+-0.528809f, 0.159912f, -0.583496f, 0.213379f, -0.638184f, 0.289551f, -0.668213f,
+0.365723f, -0.698242f, 0.459961f, -0.698242f, 0.523926f, -0.698242f, 0.572754f, -0.682617f,
+0.621582f, -0.666992f, 0.656738f, -0.640625f, 0.691895f, -0.614258f, 0.714111f, -0.579834f,
+0.736328f, -0.54541f, 0.74707f, -0.507324f, 0.609375f, -0.469238f, 0.603516f, -0.491699f,
+0.591553f, -0.512695f, 0.57959f, -0.533691f, 0.560547f, -0.549805f, 0.541504f, -0.565918f,
+0.514648f, -0.575439f, 0.487793f, -0.584961f, 0.452148f, -0.584961f, 0.390137f, -0.584961f,
+0.342041f, -0.5625f, 0.293945f, -0.540039f, 0.26123f, -0.500488f, 0.228516f, -0.460938f,
+0.21167f, -0.406738f, 0.194824f, -0.352539f, 0.194824f, -0.289062f, 0.194824f, -0.251465f,
+0.204834f, -0.217773f, 0.214844f, -0.184082f, 0.236328f, -0.158447f, 0.257812f, -0.132812f,
+0.291748f, -0.11792f, 0.325684f, -0.103027f, 0.373047f, -0.103027f, 0.40332f, -0.103027f,
+0.430664f, -0.106934f, 0.458008f, -0.11084f, 0.481934f, -0.117432f, 0.505859f, -0.124023f,
+0.525635f, -0.132324f, 0.54541f, -0.140625f, 0.560547f, -0.149902f, 0.583008f, -0.26123f,
+0.416016f, -0.26123f, 0.435059f, -0.362793f, 0.734863f, -0.362793f, 0.466797f, 0,
+0.524414f, -0.294922f, 0.21875f, -0.294922f, 0.161133f, 0, 0.0175781f, 0, 0.150879f,
+-0.687988f, 0.294922f, -0.687988f, 0.241699f, -0.414062f, 0.547363f, -0.414062f,
+0.600586f, -0.687988f, 0.739258f, -0.687988f, 0.605469f, 0, 0.0175781f, 0, 0.150879f,
+-0.687988f, 0.294922f, -0.687988f, 0.161133f, 0, 0.234375f, 0.00976562f, 0.183105f,
+0.00976562f, 0.14502f, -0.00390625f, 0.106934f, -0.0175781f, 0.0800781f, -0.0427246f,
+0.0532227f, -0.0678711f, 0.0368652f, -0.104004f, 0.0205078f, -0.140137f, 0.012207f,
+-0.185059f, 0.142578f, -0.213379f, 0.147461f, -0.189453f, 0.155518f, -0.169189f,
+0.163574f, -0.148926f, 0.175537f, -0.134277f, 0.1875f, -0.119629f, 0.204346f, -0.111328f,
+0.221191f, -0.103027f, 0.243652f, -0.103027f, 0.268066f, -0.103027f, 0.28418f, -0.112305f,
+0.300293f, -0.121582f, 0.311035f, -0.136963f, 0.321777f, -0.152344f, 0.327881f, -0.172607f,
+0.333984f, -0.192871f, 0.338379f, -0.214844f, 0.408203f, -0.575195f, 0.270996f, -0.575195f,
+0.29248f, -0.687988f, 0.573242f, -0.687988f, 0.479004f, -0.206543f, 0.46875f, -0.15332f,
+0.450195f, -0.113037f, 0.431641f, -0.0727539f, 0.402344f, -0.0454102f, 0.373047f,
+-0.0180664f, 0.331787f, -0.00415039f, 0.290527f, 0.00976562f, 0.234375f, 0.00976562f,
+0.48584f, 0, 0.3125f, -0.3125f, 0.209473f, -0.252441f, 0.160156f, 0, 0.0175781f,
+0, 0.150879f, -0.687988f, 0.294922f, -0.687988f, 0.231445f, -0.375977f, 0.602539f,
+-0.687988f, 0.782715f, -0.687988f, 0.417969f, -0.387207f, 0.64502f, 0, 0.0175781f,
+0, 0.150879f, -0.687988f, 0.294922f, -0.687988f, 0.183105f, -0.111328f, 0.552246f,
+-0.111328f, 0.530273f, 0, 0.588867f, 0, 0.672852f, -0.431641f, 0.678223f, -0.458496f,
+0.68457f, -0.486084f, 0.690918f, -0.513672f, 0.696289f, -0.536621f, 0.702637f, -0.563477f,
+0.708984f, -0.588867f, 0.691406f, -0.550781f, 0.675293f, -0.515137f, 0.668457f, -0.5f,
+0.660889f, -0.483887f, 0.65332f, -0.467773f, 0.645996f, -0.452393f, 0.638672f, -0.437012f,
+0.63208f, -0.423096f, 0.625488f, -0.40918f, 0.619629f, -0.398438f, 0.418457f, 0,
+0.315918f, 0, 0.27002f, -0.399902f, 0.269043f, -0.40918f, 0.267578f, -0.422119f,
+0.266113f, -0.435059f, 0.264404f, -0.450195f, 0.262695f, -0.465332f, 0.260986f, -0.481445f,
+0.259277f, -0.497559f, 0.257812f, -0.512695f, 0.254395f, -0.548828f, 0.250488f, -0.588867f,
+0.24707f, -0.559082f, 0.243652f, -0.530273f, 0.242188f, -0.518066f, 0.240479f, -0.504883f,
+0.23877f, -0.491699f, 0.237061f, -0.479004f, 0.235352f, -0.466309f, 0.233398f, -0.45459f,
+0.231445f, -0.442871f, 0.229492f, -0.433105f, 0.145508f, 0, 0.0175781f, 0, 0.151367f,
+-0.687988f, 0.344238f, -0.687988f, 0.387207f, -0.303223f, 0.38916f, -0.288086f, 0.391113f,
+-0.265381f, 0.393066f, -0.242676f, 0.39502f, -0.220703f, 0.396973f, -0.195312f, 0.399414f,
+-0.168457f, 0.411621f, -0.195312f, 0.42334f, -0.220215f, 0.433105f, -0.241699f, 0.444092f,
+-0.263916f, 0.455078f, -0.286133f, 0.462402f, -0.300781f, 0.658691f, -0.687988f,
+0.850586f, -0.687988f, 0.716797f, 0, 0.431641f, 0, 0.249023f, -0.552246f, 0.246094f,
+-0.53125f, 0.243164f, -0.510742f, 0.240723f, -0.493164f, 0.237305f, -0.4729f, 0.233887f,
+-0.452637f, 0.230469f, -0.435547f, 0.145508f, 0, 0.0175781f, 0, 0.151367f, -0.687988f,
+0.322266f, -0.687988f, 0.506348f, -0.130859f, 0.509277f, -0.149902f, 0.512207f, -0.170898f,
+0.514648f, -0.188965f, 0.518311f, -0.211182f, 0.521973f, -0.233398f, 0.526367f, -0.255859f,
+0.611328f, -0.687988f, 0.739258f, -0.687988f, 0.605469f, 0, 0.453125f, -0.698242f,
+0.525391f, -0.698242f, 0.58252f, -0.678467f, 0.639648f, -0.658691f, 0.679443f, -0.621826f,
+0.719238f, -0.584961f, 0.740234f, -0.532715f, 0.76123f, -0.480469f, 0.76123f, -0.415527f,
+0.76123f, -0.391602f, 0.758789f, -0.365967f, 0.756348f, -0.340332f, 0.751465f, -0.316895f,
+0.736328f, -0.241699f, 0.701904f, -0.181396f, 0.66748f, -0.121094f, 0.616699f, -0.0786133f,
+0.565918f, -0.0361328f, 0.499756f, -0.0131836f, 0.433594f, 0.00976562f, 0.35498f,
+0.00976562f, 0.280273f, 0.00976562f, 0.223145f, -0.0114746f, 0.166016f, -0.0327148f,
+0.127197f, -0.0710449f, 0.0883789f, -0.109375f, 0.0686035f, -0.162598f, 0.0488281f,
+-0.21582f, 0.0488281f, -0.279785f, 0.0488281f, -0.302246f, 0.0510254f, -0.325684f,
+0.0532227f, -0.349121f, 0.0581055f, -0.373047f, 0.0732422f, -0.446289f, 0.106934f,
+-0.506348f, 0.140625f, -0.566406f, 0.190918f, -0.609131f, 0.241211f, -0.651855f,
+0.307373f, -0.675049f, 0.373535f, -0.698242f, 0.453125f, -0.698242f, 0.446289f, -0.584473f,
+0.394043f, -0.584473f, 0.353027f, -0.568848f, 0.312012f, -0.553223f, 0.281982f, -0.523926f,
+0.251953f, -0.494629f, 0.231934f, -0.451904f, 0.211914f, -0.40918f, 0.20166f, -0.35498f,
+0.198242f, -0.336914f, 0.196777f, -0.318604f, 0.195312f, -0.300293f, 0.195312f, -0.283691f,
+0.195312f, -0.193848f, 0.239258f, -0.148682f, 0.283203f, -0.103516f, 0.361816f, -0.103516f,
+0.414551f, -0.103516f, 0.455566f, -0.119385f, 0.496582f, -0.135254f, 0.526855f, -0.165039f,
+0.557129f, -0.194824f, 0.576904f, -0.237061f, 0.59668f, -0.279297f, 0.606934f, -0.332031f,
+0.610352f, -0.349609f, 0.611572f, -0.369629f, 0.612793f, -0.389648f, 0.612793f, -0.403809f,
+0.612793f, -0.449219f, 0.601074f, -0.48291f, 0.589355f, -0.516602f, 0.567871f, -0.539307f,
+0.546387f, -0.562012f, 0.515381f, -0.573242f, 0.484375f, -0.584473f, 0.446289f, -0.584473f,
+0.415039f, -0.687988f, 0.475586f, -0.687988f, 0.522705f, -0.673828f, 0.569824f, -0.659668f,
+0.602295f, -0.632812f, 0.634766f, -0.605957f, 0.651611f, -0.567871f, 0.668457f, -0.529785f,
+0.668457f, -0.481934f, 0.668457f, -0.42627f, 0.648682f, -0.381836f, 0.628906f, -0.337402f,
+0.592773f, -0.306396f, 0.556641f, -0.275391f, 0.505859f, -0.258789f, 0.455078f, -0.242188f,
+0.393066f, -0.242188f, 0.208984f, -0.242188f, 0.161133f, 0, 0.0175781f, 0, 0.150879f,
+-0.687988f, 0.22998f, -0.353027f, 0.371094f, -0.353027f, 0.446777f, -0.353027f, 0.484619f,
+-0.381348f, 0.522461f, -0.409668f, 0.522461f, -0.474121f, 0.522461f, -0.500977f,
+0.513672f, -0.520264f, 0.504883f, -0.539551f, 0.48877f, -0.552002f, 0.472656f, -0.564453f,
+0.450439f, -0.570312f, 0.428223f, -0.576172f, 0.401367f, -0.576172f, 0.273438f, -0.576172f,
+0.453125f, -0.698242f, 0.525391f, -0.698242f, 0.58252f, -0.678467f, 0.639648f, -0.658691f,
+0.679443f, -0.621826f, 0.719238f, -0.584961f, 0.740234f, -0.532715f, 0.76123f, -0.480469f,
+0.76123f, -0.415527f, 0.76123f, -0.391602f, 0.758789f, -0.365967f, 0.756348f, -0.340332f,
+0.751465f, -0.316895f, 0.738281f, -0.250977f, 0.710205f, -0.196533f, 0.682129f, -0.14209f,
+0.641113f, -0.10083f, 0.600098f, -0.0595703f, 0.547119f, -0.032959f, 0.494141f, -0.00634766f,
+0.430664f, 0.00390625f, 0.439941f, 0.0517578f, 0.462158f, 0.0732422f, 0.484375f,
+0.0947266f, 0.527832f, 0.0947266f, 0.536133f, 0.0947266f, 0.545898f, 0.0942383f,
+0.555664f, 0.09375f, 0.56543f, 0.0927734f, 0.575195f, 0.0917969f, 0.584473f, 0.0905762f,
+0.59375f, 0.0893555f, 0.601074f, 0.0878906f, 0.579102f, 0.183105f, 0.564941f, 0.187988f,
+0.542725f, 0.19165f, 0.520508f, 0.195312f, 0.496582f, 0.195312f, 0.442383f, 0.195312f,
+0.404297f, 0.181641f, 0.366211f, 0.167969f, 0.341309f, 0.142822f, 0.316406f, 0.117676f,
+0.303223f, 0.0825195f, 0.290039f, 0.0473633f, 0.285156f, 0.00439453f, 0.227539f,
+-0.00488281f, 0.18335f, -0.029541f, 0.13916f, -0.0541992f, 0.109131f, -0.0910645f,
+0.0791016f, -0.12793f, 0.0639648f, -0.175781f, 0.0488281f, -0.223633f, 0.0488281f,
+-0.279785f, 0.0488281f, -0.302246f, 0.0510254f, -0.325684f, 0.0532227f, -0.349121f,
+0.0581055f, -0.373047f, 0.0732422f, -0.446289f, 0.106934f, -0.506348f, 0.140625f,
+-0.566406f, 0.190918f, -0.609131f, 0.241211f, -0.651855f, 0.307373f, -0.675049f,
+0.373535f, -0.698242f, 0.453125f, -0.698242f, 0.446289f, -0.584473f, 0.394043f, -0.584473f,
+0.353027f, -0.568848f, 0.312012f, -0.553223f, 0.281982f, -0.523926f, 0.251953f, -0.494629f,
+0.231934f, -0.451904f, 0.211914f, -0.40918f, 0.20166f, -0.35498f, 0.198242f, -0.336914f,
+0.196777f, -0.318604f, 0.195312f, -0.300293f, 0.195312f, -0.283691f, 0.195312f, -0.193848f,
+0.239258f, -0.148682f, 0.283203f, -0.103516f, 0.361816f, -0.103516f, 0.414551f, -0.103516f,
+0.455566f, -0.119385f, 0.496582f, -0.135254f, 0.526855f, -0.165039f, 0.557129f, -0.194824f,
+0.576904f, -0.237061f, 0.59668f, -0.279297f, 0.606934f, -0.332031f, 0.610352f, -0.349609f,
+0.611572f, -0.369629f, 0.612793f, -0.389648f, 0.612793f, -0.403809f, 0.612793f, -0.449219f,
+0.601074f, -0.48291f, 0.589355f, -0.516602f, 0.567871f, -0.539307f, 0.546387f, -0.562012f,
+0.515381f, -0.573242f, 0.484375f, -0.584473f, 0.446289f, -0.584473f, 0.493164f, 0,
+0.380859f, -0.260742f, 0.211914f, -0.260742f, 0.161621f, 0, 0.0175781f, 0, 0.151367f,
+-0.687988f, 0.469238f, -0.687988f, 0.535156f, -0.687988f, 0.582031f, -0.671875f,
+0.628906f, -0.655762f, 0.658447f, -0.628662f, 0.687988f, -0.601562f, 0.70166f, -0.565918f,
+0.715332f, -0.530273f, 0.715332f, -0.491211f, 0.715332f, -0.445312f, 0.698975f, -0.409424f,
+0.682617f, -0.373535f, 0.655518f, -0.347656f, 0.628418f, -0.321777f, 0.592773f, -0.306152f,
+0.557129f, -0.290527f, 0.518555f, -0.284668f, 0.652344f, 0, 0.425781f, -0.373047f,
+0.458496f, -0.373047f, 0.484863f, -0.379395f, 0.51123f, -0.385742f, 0.530029f, -0.399414f,
+0.548828f, -0.413086f, 0.559082f, -0.433838f, 0.569336f, -0.45459f, 0.569336f, -0.48291f,
+0.569336f, -0.508301f, 0.560059f, -0.526123f, 0.550781f, -0.543945f, 0.534668f, -0.554932f,
+0.518555f, -0.565918f, 0.49707f, -0.571045f, 0.475586f, -0.576172f, 0.451172f, -0.576172f,
+0.273438f, -0.576172f, 0.233887f, -0.373047f, 0.292969f, 0.00976562f, 0.227051f,
+0.00976562f, 0.177246f, -0.00195312f, 0.127441f, -0.0136719f, 0.0930176f, -0.0373535f,
+0.0585938f, -0.0610352f, 0.0388184f, -0.0961914f, 0.019043f, -0.131348f, 0.012207f,
+-0.178223f, 0.15332f, -0.202148f, 0.158203f, -0.175781f, 0.168945f, -0.15625f, 0.179688f,
+-0.136719f, 0.197754f, -0.123779f, 0.21582f, -0.11084f, 0.241699f, -0.104492f, 0.267578f,
+-0.0981445f, 0.302734f, -0.0981445f, 0.339844f, -0.0981445f, 0.37085f, -0.103027f,
+0.401855f, -0.10791f, 0.424072f, -0.119385f, 0.446289f, -0.130859f, 0.45874f, -0.149414f,
+0.471191f, -0.167969f, 0.471191f, -0.195312f, 0.471191f, -0.218262f, 0.461914f, -0.234375f,
+0.452637f, -0.250488f, 0.434326f, -0.262207f, 0.416016f, -0.273926f, 0.388916f, -0.283203f,
+0.361816f, -0.29248f, 0.325684f, -0.301758f, 0.279785f, -0.313965f, 0.239502f, -0.329102f,
+0.199219f, -0.344238f, 0.169189f, -0.367432f, 0.13916f, -0.390625f, 0.121582f, -0.424072f,
+0.104004f, -0.45752f, 0.104004f, -0.506348f, 0.104004f, -0.552734f, 0.125977f, -0.588623f,
+0.147949f, -0.624512f, 0.185791f, -0.648926f, 0.223633f, -0.67334f, 0.274658f, -0.685791f,
+0.325684f, -0.698242f, 0.383789f, -0.698242f, 0.446777f, -0.698242f, 0.494385f, -0.686279f,
+0.541992f, -0.674316f, 0.575684f, -0.652588f, 0.609375f, -0.630859f, 0.629395f, -0.600342f,
+0.649414f, -0.569824f, 0.656738f, -0.532715f, 0.516113f, -0.5f, 0.505371f, -0.543945f,
+0.469482f, -0.570068f, 0.433594f, -0.596191f, 0.375977f, -0.596191f, 0.34375f, -0.596191f,
+0.31958f, -0.589844f, 0.29541f, -0.583496f, 0.279053f, -0.572266f, 0.262695f, -0.561035f,
+0.254395f, -0.54541f, 0.246094f, -0.529785f, 0.246094f, -0.51123f, 0.246094f, -0.489258f,
+0.25708f, -0.474365f, 0.268066f, -0.459473f, 0.287354f, -0.44873f, 0.306641f, -0.437988f,
+0.333496f, -0.429688f, 0.360352f, -0.421387f, 0.392578f, -0.412598f, 0.41748f, -0.405762f,
+0.443604f, -0.397705f, 0.469727f, -0.389648f, 0.494141f, -0.378662f, 0.518555f, -0.367676f,
+0.540039f, -0.352783f, 0.561523f, -0.337891f, 0.577637f, -0.317139f, 0.59375f, -0.296387f,
+0.603027f, -0.269287f, 0.612305f, -0.242188f, 0.612305f, -0.206543f, 0.612305f, -0.155273f,
+0.592773f, -0.115234f, 0.573242f, -0.0751953f, 0.533691f, -0.0473633f, 0.494141f,
+-0.0195312f, 0.434082f, -0.00488281f, 0.374023f, 0.00976562f, 0.292969f, 0.00976562f,
+0.437012f, -0.57666f, 0.324707f, 0, 0.180664f, 0, 0.292969f, -0.57666f, 0.0708008f,
+-0.57666f, 0.0922852f, -0.687988f, 0.681152f, -0.687988f, 0.659668f, -0.57666f, 0.335938f,
+-0.103027f, 0.374512f, -0.103027f, 0.404297f, -0.111328f, 0.434082f, -0.119629f,
+0.456299f, -0.138672f, 0.478516f, -0.157715f, 0.493164f, -0.188477f, 0.507812f, -0.219238f,
+0.516602f, -0.26416f, 0.598633f, -0.687988f, 0.742676f, -0.687988f, 0.65918f, -0.258789f,
+0.645508f, -0.189453f, 0.618652f, -0.138916f, 0.591797f, -0.0883789f, 0.551025f,
+-0.0554199f, 0.510254f, -0.0224609f, 0.454834f, -0.00634766f, 0.399414f, 0.00976562f,
+0.328125f, 0.00976562f, 0.265137f, 0.00976562f, 0.214844f, -0.00463867f, 0.164551f,
+-0.019043f, 0.129883f, -0.046875f, 0.0952148f, -0.074707f, 0.0766602f, -0.115967f,
+0.0581055f, -0.157227f, 0.0581055f, -0.210449f, 0.0581055f, -0.220703f, 0.059082f,
+-0.234131f, 0.0600586f, -0.247559f, 0.0617676f, -0.26123f, 0.0634766f, -0.274902f,
+0.0654297f, -0.287842f, 0.0673828f, -0.300781f, 0.0693359f, -0.310059f, 0.141602f,
+-0.687988f, 0.285645f, -0.687988f, 0.210938f, -0.29248f, 0.20752f, -0.275879f, 0.204834f,
+-0.252686f, 0.202148f, -0.229492f, 0.202148f, -0.208496f, 0.202148f, -0.182129f,
+0.211914f, -0.162354f, 0.22168f, -0.142578f, 0.239502f, -0.129395f, 0.257324f, -0.116211f,
+0.281982f, -0.109619f, 0.306641f, -0.103027f, 0.335938f, -0.103027f, 0.359863f, 0,
+0.194336f, 0, 0.0834961f, -0.687988f, 0.232422f, -0.687988f, 0.288086f, -0.246094f,
+0.290527f, -0.224121f, 0.29248f, -0.201172f, 0.294434f, -0.178223f, 0.295898f, -0.15918f,
+0.297852f, -0.136719f, 0.298828f, -0.116211f, 0.307617f, -0.13623f, 0.317383f, -0.158203f,
+0.325684f, -0.176758f, 0.33667f, -0.199951f, 0.347656f, -0.223145f, 0.359375f, -0.246094f,
+0.586426f, -0.687988f, 0.736816f, -0.687988f, 0.703613f, 0, 0.532715f, 0, 0.519531f,
+-0.396484f, 0.519531f, -0.401855f, 0.519043f, -0.419189f, 0.518555f, -0.436523f,
+0.518066f, -0.458496f, 0.517578f, -0.480469f, 0.517334f, -0.503906f, 0.51709f, -0.527344f,
+0.51709f, -0.544922f, 0.506348f, -0.516113f, 0.496094f, -0.48877f, 0.491699f, -0.477051f,
+0.486816f, -0.4646f, 0.481934f, -0.452148f, 0.477295f, -0.440186f, 0.472656f, -0.428223f,
+0.468262f, -0.41748f, 0.463867f, -0.406738f, 0.459961f, -0.397949f, 0.290039f, 0,
+0.116699f, 0, 0.0732422f, -0.687988f, 0.209961f, -0.687988f, 0.227539f, -0.290039f,
+0.228516f, -0.266602f, 0.229248f, -0.237549f, 0.22998f, -0.208496f, 0.230469f, -0.182129f,
+0.230957f, -0.151855f, 0.230957f, -0.121094f, 0.245117f, -0.157227f, 0.258789f, -0.191406f,
+0.264648f, -0.206055f, 0.270996f, -0.22168f, 0.277344f, -0.237305f, 0.283691f, -0.252441f,
+0.290039f, -0.267578f, 0.295654f, -0.281494f, 0.30127f, -0.29541f, 0.306152f, -0.306641f,
+0.469238f, -0.687988f, 0.623535f, -0.687988f, 0.63916f, -0.250977f, 0.640137f, -0.230469f,
+0.640869f, -0.208008f, 0.641602f, -0.185547f, 0.642578f, -0.166016f, 0.643555f, -0.143066f,
+0.644043f, -0.121094f, 0.654297f, -0.148926f, 0.665527f, -0.178223f, 0.675293f, -0.203125f,
+0.687012f, -0.23291f, 0.69873f, -0.262695f, 0.709961f, -0.290527f, 0.873047f, -0.687988f,
+1.01514f, -0.687988f, 0.107422f, -0.687988f, 0.258301f, -0.687988f, 0.367676f, -0.458008f,
+0.563965f, -0.687988f, 0.716797f, -0.687988f, 0.423828f, -0.357422f, 0.603027f, 0,
+0.453125f, 0, 0.32959f, -0.259766f, 0.107422f, 0, -0.0458984f, 0, 0.272461f, -0.359375f,
+0.408203f, -0.282227f, 0.353516f, 0, 0.209961f, 0, 0.264648f, -0.282227f, 0.0839844f,
+-0.687988f, 0.226562f, -0.687988f, 0.353027f, -0.392578f, 0.584473f, -0.687988f,
+0.742188f, -0.687988f, 0.52832f, 0, -0.0234375f, 0, -0.00390625f, -0.102051f, 0.44873f,
+-0.575195f, 0.125f, -0.575195f, 0.146973f, -0.687988f, 0.64209f, -0.687988f, 0.622559f,
+-0.587891f, 0.168457f, -0.112793f, 0.550293f, -0.112793f, -0.0263672f, 0.20752f,
+0.154297f, -0.724609f, 0.418945f, -0.724609f, 0.400879f, -0.631836f, 0.266113f, -0.631836f,
+0.121094f, 0.114258f, 0.255859f, 0.114258f, 0.237793f, 0.20752f, 0.141113f, 0.0200195f,
+0.0541992f, -0.725098f, 0.17041f, -0.725098f, 0.259766f, 0.0200195f, -0.0849609f,
+0.20752f, -0.0668945f, 0.114258f, 0.0683594f, 0.114258f, 0.213379f, -0.631836f, 0.0776367f,
+-0.631836f, 0.0957031f, -0.724609f, 0.360352f, -0.724609f, 0.179199f, 0.20752f, 0.469727f,
+-0.250977f, 0.310547f, -0.618164f, 0.152344f, -0.250977f, 0.0415039f, -0.250977f,
+0.232422f, -0.687988f, 0.389648f, -0.687988f, 0.581543f, -0.250977f, -0.0585938f,
+0.12207f, -0.0585938f, 0.0839844f, 0.516113f, 0.0839844f, 0.516113f, 0.12207f, 0.291016f,
+-0.577637f, 0.141113f, -0.712402f, 0.14502f, -0.733398f, 0.270996f, -0.733398f, 0.366211f,
+-0.592773f, 0.363281f, -0.577637f, 0.52002f, -0.00585938f, 0.499512f, 0.00195312f,
+0.478516f, 0.00341797f, 0.45752f, 0.00488281f, 0.435547f, 0.00488281f, 0.386719f,
+0.00488281f, 0.360352f, -0.015625f, 0.333984f, -0.0361328f, 0.333984f, -0.0698242f,
+0.333984f, -0.0771484f, 0.334473f, -0.0852051f, 0.334961f, -0.0932617f, 0.336426f,
+-0.101074f, 0.333496f, -0.101074f, 0.316895f, -0.0751953f, 0.299805f, -0.0546875f,
+0.282715f, -0.0341797f, 0.261963f, -0.0197754f, 0.241211f, -0.00537109f, 0.215332f,
+0.00219727f, 0.189453f, 0.00976562f, 0.154785f, 0.00976562f, 0.116699f, 0.00976562f,
+0.088623f, -0.00244141f, 0.0605469f, -0.0146484f, 0.0419922f, -0.0349121f, 0.0234375f,
+-0.0551758f, 0.0141602f, -0.081543f, 0.00488281f, -0.10791f, 0.00488281f, -0.135742f,
+0.00488281f, -0.175293f, 0.0158691f, -0.204102f, 0.0268555f, -0.23291f, 0.0458984f,
+-0.253418f, 0.0649414f, -0.273926f, 0.0905762f, -0.286865f, 0.116211f, -0.299805f,
+0.145508f, -0.307129f, 0.174805f, -0.314453f, 0.206543f, -0.317383f, 0.238281f, -0.320312f,
+0.269043f, -0.320801f, 0.362305f, -0.322266f, 0.366211f, -0.339844f, 0.369629f, -0.354492f,
+0.371094f, -0.365479f, 0.372559f, -0.376465f, 0.372559f, -0.38623f, 0.372559f, -0.418457f,
+0.355957f, -0.433594f, 0.339355f, -0.44873f, 0.310547f, -0.44873f, 0.296387f, -0.44873f,
+0.28125f, -0.446777f, 0.266113f, -0.444824f, 0.252686f, -0.437744f, 0.239258f, -0.430664f,
+0.228271f, -0.416748f, 0.217285f, -0.402832f, 0.211426f, -0.379395f, 0.0830078f,
+-0.394531f, 0.0908203f, -0.427246f, 0.108398f, -0.453613f, 0.125977f, -0.47998f,
+0.154297f, -0.498779f, 0.182617f, -0.517578f, 0.221924f, -0.527832f, 0.26123f, -0.538086f,
+0.312988f, -0.538086f, 0.414062f, -0.538086f, 0.461182f, -0.502441f, 0.508301f, -0.466797f,
+0.508301f, -0.394043f, 0.508301f, -0.378906f, 0.504395f, -0.35791f, 0.500488f, -0.336914f,
+0.496582f, -0.317383f, 0.461914f, -0.14502f, 0.460449f, -0.136719f, 0.459229f, -0.127197f,
+0.458008f, -0.117676f, 0.458008f, -0.109863f, 0.458008f, -0.0981445f, 0.462891f,
+-0.0917969f, 0.467773f, -0.0854492f, 0.474121f, -0.0825195f, 0.480469f, -0.0795898f,
+0.486816f, -0.0788574f, 0.493164f, -0.078125f, 0.496582f, -0.078125f, 0.503418f,
+-0.078125f, 0.509521f, -0.0786133f, 0.515625f, -0.0791016f, 0.526855f, -0.081543f,
+0.347168f, -0.245605f, 0.268066f, -0.245605f, 0.210938f, -0.244629f, 0.177979f, -0.222168f,
+0.14502f, -0.199707f, 0.14502f, -0.158691f, 0.14502f, -0.139648f, 0.150879f, -0.125732f,
+0.156738f, -0.111816f, 0.166504f, -0.103027f, 0.17627f, -0.0942383f, 0.189209f, -0.0900879f,
+0.202148f, -0.0859375f, 0.216309f, -0.0859375f, 0.230469f, -0.0859375f, 0.247803f,
+-0.0915527f, 0.265137f, -0.097168f, 0.281982f, -0.110352f, 0.298828f, -0.123535f,
+0.313477f, -0.145752f, 0.328125f, -0.167969f, 0.336426f, -0.200684f, 0.41748f, -0.538086f,
+0.457031f, -0.538086f, 0.487793f, -0.525879f, 0.518555f, -0.513672f, 0.539307f, -0.491211f,
+0.560059f, -0.46875f, 0.571045f, -0.436768f, 0.582031f, -0.404785f, 0.582031f, -0.365234f,
+0.582031f, -0.358398f, 0.582031f, -0.334961f, 0.57959f, -0.307617f, 0.577148f, -0.280273f,
+0.571777f, -0.251953f, 0.558105f, -0.182617f, 0.536621f, -0.133057f, 0.515137f, -0.0834961f,
+0.484619f, -0.0517578f, 0.454102f, -0.0200195f, 0.414795f, -0.00512695f, 0.375488f,
+0.00976562f, 0.32666f, 0.00976562f, 0.265625f, 0.00976562f, 0.227539f, -0.015625f,
+0.189453f, -0.0410156f, 0.173828f, -0.0869141f, 0.172852f, -0.0869141f, 0.169922f,
+-0.0742188f, 0.16626f, -0.0598145f, 0.162598f, -0.0454102f, 0.158936f, -0.0327148f,
+0.155273f, -0.0200195f, 0.152832f, -0.0109863f, 0.150391f, -0.00195312f, 0.149414f,
+0, 0.0170898f, 0, 0.0185547f, -0.00439453f, 0.0209961f, -0.0148926f, 0.0234375f,
+-0.0253906f, 0.0266113f, -0.0400391f, 0.0297852f, -0.0546875f, 0.0336914f, -0.0722656f,
+0.0375977f, -0.0898438f, 0.0410156f, -0.108887f, 0.161133f, -0.724609f, 0.29834f,
+-0.724609f, 0.257324f, -0.516113f, 0.250977f, -0.483887f, 0.246582f, -0.464844f,
+0.242188f, -0.445801f, 0.241699f, -0.445801f, 0.243652f, -0.445801f, 0.270996f, -0.486816f,
+0.314697f, -0.512451f, 0.358398f, -0.538086f, 0.41748f, -0.538086f, 0.358887f, -0.442871f,
+0.333496f, -0.442871f, 0.310059f, -0.434814f, 0.286621f, -0.426758f, 0.26709f, -0.407227f,
+0.247559f, -0.387695f, 0.232178f, -0.354492f, 0.216797f, -0.321289f, 0.207031f, -0.270508f,
+0.203125f, -0.249023f, 0.200928f, -0.230469f, 0.19873f, -0.211914f, 0.19873f, -0.195801f,
+0.19873f, -0.168457f, 0.205811f, -0.147705f, 0.212891f, -0.126953f, 0.22583f, -0.112793f,
+0.23877f, -0.0986328f, 0.256836f, -0.0915527f, 0.274902f, -0.0844727f, 0.296875f,
+-0.0844727f, 0.321777f, -0.0844727f, 0.341553f, -0.092041f, 0.361328f, -0.0996094f,
+0.377197f, -0.118408f, 0.393066f, -0.137207f, 0.405518f, -0.169678f, 0.417969f, -0.202148f,
+0.428223f, -0.251953f, 0.433594f, -0.276855f, 0.436279f, -0.298584f, 0.438965f, -0.320312f,
+0.438965f, -0.338867f, 0.438965f, -0.390137f, 0.421631f, -0.416504f, 0.404297f, -0.442871f,
+0.358887f, -0.442871f, 0.261719f, -0.0844727f, 0.302246f, -0.0844727f, 0.328613f,
+-0.110107f, 0.35498f, -0.135742f, 0.370605f, -0.186035f, 0.50293f, -0.161621f, 0.491211f,
+-0.123047f, 0.470947f, -0.0913086f, 0.450684f, -0.0595703f, 0.420654f, -0.0371094f,
+0.390625f, -0.0146484f, 0.349365f, -0.00244141f, 0.308105f, 0.00976562f, 0.253906f,
+0.00976562f, 0.197266f, 0.00976562f, 0.155273f, -0.00537109f, 0.113281f, -0.0205078f,
+0.0856934f, -0.0480957f, 0.0581055f, -0.0756836f, 0.0444336f, -0.11377f, 0.0307617f,
+-0.151855f, 0.0307617f, -0.197754f, 0.0307617f, -0.217285f, 0.0324707f, -0.240234f,
+0.0341797f, -0.263184f, 0.0395508f, -0.285156f, 0.0517578f, -0.339355f, 0.0705566f,
+-0.37915f, 0.0893555f, -0.418945f, 0.112549f, -0.447021f, 0.135742f, -0.475098f,
+0.162598f, -0.49292f, 0.189453f, -0.510742f, 0.217773f, -0.520752f, 0.246094f, -0.530762f,
+0.275146f, -0.534424f, 0.304199f, -0.538086f, 0.332031f, -0.538086f, 0.384277f, -0.538086f,
+0.422363f, -0.523926f, 0.460449f, -0.509766f, 0.486084f, -0.485596f, 0.511719f, -0.461426f,
+0.525146f, -0.429443f, 0.538574f, -0.397461f, 0.541504f, -0.361816f, 0.402832f, -0.350586f,
+0.400391f, -0.394531f, 0.380615f, -0.419189f, 0.36084f, -0.443848f, 0.321289f, -0.443848f,
+0.293945f, -0.443848f, 0.273682f, -0.434814f, 0.253418f, -0.425781f, 0.237793f, -0.406006f,
+0.222168f, -0.38623f, 0.209717f, -0.355225f, 0.197266f, -0.324219f, 0.186035f, -0.280762f,
+0.184082f, -0.270996f, 0.182129f, -0.26001f, 0.180176f, -0.249023f, 0.178467f, -0.238037f,
+0.176758f, -0.227051f, 0.175781f, -0.217041f, 0.174805f, -0.207031f, 0.174805f, -0.19873f,
+0.174805f, -0.139648f, 0.196777f, -0.112061f, 0.21875f, -0.0844727f, 0.261719f, -0.0844727f,
+0.365723f, -0.078125f, 0.348145f, -0.0551758f, 0.32959f, -0.0385742f, 0.311035f,
+-0.0219727f, 0.290283f, -0.0109863f, 0.269531f, 0, 0.245117f, 0.00512695f, 0.220703f,
+0.0102539f, 0.191406f, 0.0102539f, 0.152344f, 0.0102539f, 0.121826f, -0.00341797f,
+0.0913086f, -0.0170898f, 0.0705566f, -0.0415039f, 0.0498047f, -0.065918f, 0.0390625f,
+-0.0996094f, 0.0283203f, -0.133301f, 0.0283203f, -0.172852f, 0.0283203f, -0.194824f,
+0.0305176f, -0.220215f, 0.0327148f, -0.245605f, 0.0385742f, -0.276367f, 0.0522461f,
+-0.345703f, 0.0759277f, -0.395264f, 0.0996094f, -0.444824f, 0.131104f, -0.476562f,
+0.162598f, -0.508301f, 0.201172f, -0.523193f, 0.239746f, -0.538086f, 0.283203f, -0.538086f,
+0.318848f, -0.538086f, 0.344971f, -0.530518f, 0.371094f, -0.522949f, 0.389404f, -0.509766f,
+0.407715f, -0.496582f, 0.419189f, -0.479004f, 0.430664f, -0.461426f, 0.436523f, -0.441406f,
+0.438965f, -0.441406f, 0.439941f, -0.451172f, 0.442871f, -0.470703f, 0.445801f, -0.490234f,
+0.45166f, -0.520508f, 0.492676f, -0.724609f, 0.62793f, -0.724609f, 0.511719f, -0.112793f,
+0.506348f, -0.0830078f, 0.50293f, -0.0546875f, 0.499512f, -0.0263672f, 0.497559f,
+0, 0.360352f, 0, 0.360352f, -0.00390625f, 0.360596f, -0.0117188f, 0.36084f, -0.0195312f,
+0.361816f, -0.0302734f, 0.362793f, -0.0410156f, 0.364258f, -0.0532227f, 0.365723f,
+-0.0654297f, 0.367676f, -0.078125f, 0.251465f, -0.0839844f, 0.277344f, -0.0839844f,
+0.300537f, -0.092041f, 0.32373f, -0.100098f, 0.343262f, -0.119873f, 0.362793f, -0.139648f,
+0.37793f, -0.173096f, 0.393066f, -0.206543f, 0.402832f, -0.257324f, 0.406738f, -0.278809f,
+0.408936f, -0.297607f, 0.411133f, -0.316406f, 0.411133f, -0.33252f, 0.411133f, -0.391113f,
+0.388184f, -0.417725f, 0.365234f, -0.444336f, 0.319336f, -0.444336f, 0.296387f, -0.444336f,
+0.275391f, -0.436523f, 0.254395f, -0.428711f, 0.236816f, -0.409424f, 0.219238f, -0.390137f,
+0.205078f, -0.357666f, 0.190918f, -0.325195f, 0.182129f, -0.275879f, 0.177734f, -0.250977f,
+0.175537f, -0.230713f, 0.17334f, -0.210449f, 0.17334f, -0.191895f, 0.17334f, -0.140137f,
+0.191895f, -0.112061f, 0.210449f, -0.0839844f, 0.251465f, -0.0839844f, 0.174805f,
+-0.232422f, 0.172852f, -0.22168f, 0.172119f, -0.210938f, 0.171387f, -0.200195f, 0.171387f,
+-0.188965f, 0.171387f, -0.137207f, 0.194092f, -0.109619f, 0.216797f, -0.0820312f,
+0.26123f, -0.0820312f, 0.281738f, -0.0820312f, 0.297852f, -0.0883789f, 0.313965f,
+-0.0947266f, 0.32666f, -0.105713f, 0.339355f, -0.116699f, 0.348877f, -0.131836f,
+0.358398f, -0.146973f, 0.365234f, -0.164551f, 0.484863f, -0.128418f, 0.470215f, -0.097168f,
+0.45166f, -0.0715332f, 0.433105f, -0.0458984f, 0.40625f, -0.027832f, 0.379395f, -0.00976562f,
+0.341797f, 0, 0.304199f, 0.00976562f, 0.251953f, 0.00976562f, 0.198242f, 0.00976562f,
+0.156982f, -0.00537109f, 0.115723f, -0.0205078f, 0.0876465f, -0.0483398f, 0.0595703f,
+-0.0761719f, 0.045166f, -0.115723f, 0.0307617f, -0.155273f, 0.0307617f, -0.204102f,
+0.0307617f, -0.28418f, 0.052002f, -0.346191f, 0.0732422f, -0.408203f, 0.111084f,
+-0.450928f, 0.148926f, -0.493652f, 0.201172f, -0.515869f, 0.253418f, -0.538086f,
+0.31543f, -0.538086f, 0.370117f, -0.538086f, 0.410156f, -0.523438f, 0.450195f, -0.508789f,
+0.476562f, -0.482178f, 0.50293f, -0.455566f, 0.515625f, -0.418701f, 0.52832f, -0.381836f,
+0.52832f, -0.337402f, 0.52832f, -0.31543f, 0.525146f, -0.286865f, 0.521973f, -0.258301f,
+0.516602f, -0.232422f, 0.401367f, -0.32373f, 0.402344f, -0.331543f, 0.402588f, -0.337891f,
+0.402832f, -0.344238f, 0.402832f, -0.351074f, 0.402832f, -0.40332f, 0.378662f, -0.427246f,
+0.354492f, -0.451172f, 0.31543f, -0.451172f, 0.298828f, -0.451172f, 0.280273f, -0.445801f,
+0.261719f, -0.44043f, 0.244385f, -0.426025f, 0.227051f, -0.411621f, 0.213135f, -0.386963f,
+0.199219f, -0.362305f, 0.190918f, -0.32373f, 0.257812f, -0.435547f, 0.172852f, 0,
+0.0361328f, 0, 0.121094f, -0.435547f, 0.0439453f, -0.435547f, 0.0620117f, -0.52832f,
+0.13916f, -0.52832f, 0.149902f, -0.583496f, 0.15625f, -0.616699f, 0.169189f, -0.643066f,
+0.182129f, -0.669434f, 0.204834f, -0.6875f, 0.227539f, -0.705566f, 0.260742f, -0.715088f,
+0.293945f, -0.724609f, 0.34082f, -0.724609f, 0.362793f, -0.724609f, 0.382568f, -0.721924f,
+0.402344f, -0.719238f, 0.416504f, -0.716309f, 0.398926f, -0.62793f, 0.394531f, -0.628906f,
+0.388428f, -0.629639f, 0.382324f, -0.630371f, 0.375732f, -0.631104f, 0.369141f, -0.631836f,
+0.362793f, -0.632324f, 0.356445f, -0.632812f, 0.352051f, -0.632812f, 0.319336f, -0.632812f,
+0.304688f, -0.617188f, 0.290039f, -0.601562f, 0.283691f, -0.569824f, 0.275879f, -0.52832f,
+0.379883f, -0.52832f, 0.361816f, -0.435547f, 0.210449f, 0.20752f, 0.15918f, 0.20752f,
+0.121582f, 0.198486f, 0.0839844f, 0.189453f, 0.0581055f, 0.171875f, 0.0322266f, 0.154297f,
+0.017334f, 0.128662f, 0.00244141f, 0.103027f, -0.00341797f, 0.0693359f, 0.134766f,
+0.0546875f, 0.141602f, 0.0869141f, 0.164551f, 0.101807f, 0.1875f, 0.116699f, 0.226562f,
+0.116699f, 0.254883f, 0.116699f, 0.275879f, 0.109131f, 0.296875f, 0.101562f, 0.312256f,
+0.0856934f, 0.327637f, 0.0698242f, 0.338135f, 0.045166f, 0.348633f, 0.0205078f, 0.356445f,
+-0.0131836f, 0.359375f, -0.0273438f, 0.362061f, -0.0422363f, 0.364746f, -0.0571289f,
+0.367188f, -0.0698242f, 0.369629f, -0.0844727f, 0.371582f, -0.0981445f, 0.370605f,
+-0.0981445f, 0.356934f, -0.0786133f, 0.341553f, -0.0600586f, 0.326172f, -0.0415039f,
+0.305908f, -0.0273438f, 0.285645f, -0.0131836f, 0.259277f, -0.00463867f, 0.23291f,
+0.00390625f, 0.197754f, 0.00390625f, 0.15918f, 0.00390625f, 0.128174f, -0.00927734f,
+0.097168f, -0.0224609f, 0.0759277f, -0.0458984f, 0.0546875f, -0.0693359f, 0.0432129f,
+-0.102051f, 0.0317383f, -0.134766f, 0.0317383f, -0.173828f, 0.0317383f, -0.197754f,
+0.0339355f, -0.225098f, 0.0361328f, -0.252441f, 0.0419922f, -0.283203f, 0.0668945f,
+-0.410645f, 0.125732f, -0.474121f, 0.18457f, -0.537598f, 0.286133f, -0.537598f, 0.313965f,
+-0.537598f, 0.339111f, -0.530762f, 0.364258f, -0.523926f, 0.384277f, -0.510986f,
+0.404297f, -0.498047f, 0.418701f, -0.479248f, 0.433105f, -0.460449f, 0.439941f, -0.436035f,
+0.440918f, -0.436035f, 0.443359f, -0.44873f, 0.447021f, -0.463867f, 0.450684f, -0.479004f,
+0.454102f, -0.49292f, 0.45752f, -0.506836f, 0.460449f, -0.516846f, 0.463379f, -0.526855f,
+0.464355f, -0.52832f, 0.59375f, -0.52832f, 0.592773f, -0.523926f, 0.590332f, -0.513184f,
+0.587891f, -0.502441f, 0.584473f, -0.487549f, 0.581055f, -0.472656f, 0.577393f, -0.454346f,
+0.57373f, -0.436035f, 0.569824f, -0.416504f, 0.489258f, -0.00488281f, 0.478516f,
+0.0478516f, 0.458496f, 0.0876465f, 0.438477f, 0.127441f, 0.405518f, 0.154053f, 0.372559f,
+0.180664f, 0.324707f, 0.194092f, 0.276855f, 0.20752f, 0.210449f, 0.20752f, 0.406738f,
+-0.267578f, 0.410156f, -0.284668f, 0.411621f, -0.303223f, 0.413086f, -0.321777f,
+0.413086f, -0.334961f, 0.413086f, -0.362793f, 0.405762f, -0.383057f, 0.398438f, -0.40332f,
+0.385498f, -0.416992f, 0.372559f, -0.430664f, 0.354736f, -0.437256f, 0.336914f, -0.443848f,
+0.316406f, -0.443848f, 0.291504f, -0.443848f, 0.27124f, -0.436279f, 0.250977f, -0.428711f,
+0.235107f, -0.4104f, 0.219238f, -0.39209f, 0.207031f, -0.361084f, 0.194824f, -0.330078f,
+0.186035f, -0.283691f, 0.181641f, -0.259277f, 0.178467f, -0.235352f, 0.175293f, -0.211426f,
+0.175293f, -0.193359f, 0.175293f, -0.143066f, 0.197021f, -0.119629f, 0.21875f, -0.0961914f,
+0.259766f, -0.0961914f, 0.28125f, -0.0961914f, 0.303711f, -0.105713f, 0.326172f,
+-0.115234f, 0.346191f, -0.135986f, 0.366211f, -0.156738f, 0.38208f, -0.189209f, 0.397949f,
+-0.22168f, 0.406738f, -0.267578f, 0.293457f, -0.724609f, 0.254883f, -0.526855f, 0.25293f,
+-0.516602f, 0.250488f, -0.504639f, 0.248047f, -0.492676f, 0.245361f, -0.480957f,
+0.242676f, -0.469238f, 0.240234f, -0.458008f, 0.237793f, -0.446777f, 0.23584f, -0.437988f,
+0.237305f, -0.437988f, 0.251953f, -0.458496f, 0.269775f, -0.476562f, 0.287598f, -0.494629f,
+0.30957f, -0.508301f, 0.331543f, -0.521973f, 0.358643f, -0.529785f, 0.385742f, -0.537598f,
+0.419434f, -0.537598f, 0.493652f, -0.537598f, 0.53125f, -0.501953f, 0.568848f, -0.466309f,
+0.568848f, -0.398926f, 0.568848f, -0.390137f, 0.567627f, -0.378906f, 0.566406f, -0.367676f,
+0.564941f, -0.356689f, 0.563477f, -0.345703f, 0.561768f, -0.335693f, 0.560059f, -0.325684f,
+0.558594f, -0.318848f, 0.496582f, 0, 0.360352f, 0, 0.417969f, -0.290527f, 0.419922f,
+-0.299805f, 0.422119f, -0.311035f, 0.424316f, -0.322266f, 0.42627f, -0.333496f, 0.428223f,
+-0.344727f, 0.429443f, -0.354736f, 0.430664f, -0.364746f, 0.430664f, -0.371094f,
+0.430664f, -0.401855f, 0.411865f, -0.417969f, 0.393066f, -0.434082f, 0.356445f, -0.434082f,
+0.333496f, -0.434082f, 0.310547f, -0.424316f, 0.287598f, -0.414551f, 0.267822f, -0.396484f,
+0.248047f, -0.378418f, 0.233154f, -0.352783f, 0.218262f, -0.327148f, 0.212402f, -0.295898f,
+0.154785f, 0, 0.0170898f, 0, 0.156738f, -0.724609f, 0.137695f, -0.623535f, 0.157715f,
+-0.724609f, 0.294922f, -0.724609f, 0.274902f, -0.623535f, 0.0170898f, 0, 0.119629f,
+-0.52832f, 0.256836f, -0.52832f, 0.153809f, 0, 0.138184f, -0.623535f, 0.157715f,
+-0.724609f, 0.294922f, -0.724609f, 0.275391f, -0.623535f, -0.0263672f, 0.20752f,
+-0.0507812f, 0.20752f, -0.0717773f, 0.204834f, -0.0927734f, 0.202148f, -0.107422f,
+0.198242f, -0.0898438f, 0.106445f, -0.0834961f, 0.107422f, -0.0754395f, 0.10791f,
+-0.0673828f, 0.108398f, -0.0615234f, 0.108398f, -0.0449219f, 0.108398f, -0.0332031f,
+0.104492f, -0.0214844f, 0.100586f, -0.0131836f, 0.0913086f, -0.00488281f, 0.0820312f,
+0.000732422f, 0.0668945f, 0.00634766f, 0.0517578f, 0.0107422f, 0.0292969f, 0.119629f,
+-0.52832f, 0.256836f, -0.52832f, 0.141602f, 0.0625f, 0.135254f, 0.0942383f, 0.122314f,
+0.120605f, 0.109375f, 0.146973f, 0.0888672f, 0.166504f, 0.0683594f, 0.186035f, 0.0397949f,
+0.196777f, 0.0112305f, 0.20752f, -0.0263672f, 0.20752f, 0.355469f, 0, 0.263672f,
+-0.242676f, 0.195312f, -0.206055f, 0.153809f, 0, 0.0170898f, 0, 0.157715f, -0.724609f,
+0.294922f, -0.724609f, 0.213379f, -0.30957f, 0.44043f, -0.52832f, 0.597656f, -0.52832f,
+0.366699f, -0.322266f, 0.500977f, 0, 0.0170898f, 0, 0.157715f, -0.724609f, 0.294922f,
+-0.724609f, 0.153809f, 0, 0.645508f, -0.435547f, 0.623535f, -0.435547f, 0.60376f,
+-0.425781f, 0.583984f, -0.416016f, 0.568115f, -0.397705f, 0.552246f, -0.379395f,
+0.540771f, -0.35376f, 0.529297f, -0.328125f, 0.522949f, -0.296387f, 0.464844f, 0,
+0.328613f, 0, 0.388672f, -0.310059f, 0.390137f, -0.317871f, 0.391602f, -0.326904f,
+0.393066f, -0.335938f, 0.394287f, -0.345215f, 0.395508f, -0.354492f, 0.39624f, -0.362549f,
+0.396973f, -0.370605f, 0.396973f, -0.376465f, 0.396973f, -0.435547f, 0.335449f, -0.435547f,
+0.312988f, -0.435547f, 0.293457f, -0.425537f, 0.273926f, -0.415527f, 0.257812f, -0.397217f,
+0.241699f, -0.378906f, 0.230225f, -0.352783f, 0.21875f, -0.32666f, 0.212402f, -0.294922f,
+0.154785f, 0, 0.0170898f, 0, 0.0981445f, -0.415527f, 0.101562f, -0.432129f, 0.104736f,
+-0.450439f, 0.10791f, -0.46875f, 0.110596f, -0.485107f, 0.113281f, -0.501465f, 0.11499f,
+-0.513184f, 0.116699f, -0.524902f, 0.117188f, -0.52832f, 0.25f, -0.52832f, 0.25f,
+-0.525879f, 0.248535f, -0.515137f, 0.24707f, -0.504395f, 0.244873f, -0.490479f, 0.242676f,
+-0.476562f, 0.240479f, -0.462158f, 0.238281f, -0.447754f, 0.236328f, -0.437988f,
+0.237793f, -0.437988f, 0.25293f, -0.460938f, 0.268799f, -0.479492f, 0.284668f, -0.498047f,
+0.303467f, -0.510986f, 0.322266f, -0.523926f, 0.345459f, -0.530762f, 0.368652f, -0.537598f,
+0.397949f, -0.537598f, 0.458496f, -0.537598f, 0.493652f, -0.508545f, 0.528809f, -0.479492f,
+0.535645f, -0.424316f, 0.55127f, -0.44873f, 0.568359f, -0.469238f, 0.585449f, -0.489746f,
+0.605957f, -0.505127f, 0.626465f, -0.520508f, 0.651611f, -0.529053f, 0.676758f, -0.537598f,
+0.708496f, -0.537598f, 0.775879f, -0.537598f, 0.811768f, -0.501953f, 0.847656f, -0.466309f,
+0.847656f, -0.398926f, 0.847656f, -0.381348f, 0.844482f, -0.359375f, 0.841309f, -0.337402f,
+0.837402f, -0.318848f, 0.774902f, 0, 0.638672f, 0, 0.698242f, -0.306152f, 0.699707f,
+-0.313477f, 0.701172f, -0.32251f, 0.702637f, -0.331543f, 0.704102f, -0.340576f, 0.705566f,
+-0.349609f, 0.706299f, -0.358398f, 0.707031f, -0.367188f, 0.707031f, -0.374023f,
+0.707031f, -0.376465f, 0.705566f, -0.435547f, 0.645508f, -0.435547f, 0.360352f, 0,
+0.417969f, -0.290527f, 0.419922f, -0.299805f, 0.422119f, -0.311035f, 0.424316f, -0.322266f,
+0.42627f, -0.333496f, 0.428223f, -0.344727f, 0.429443f, -0.354736f, 0.430664f, -0.364746f,
+0.430664f, -0.371094f, 0.430664f, -0.401855f, 0.412109f, -0.417969f, 0.393555f, -0.434082f,
+0.356445f, -0.434082f, 0.333496f, -0.434082f, 0.310547f, -0.424316f, 0.287598f, -0.414551f,
+0.267822f, -0.396484f, 0.248047f, -0.378418f, 0.233154f, -0.352783f, 0.218262f, -0.327148f,
+0.212402f, -0.295898f, 0.154785f, 0, 0.0170898f, 0, 0.0981445f, -0.415527f, 0.101562f,
+-0.432129f, 0.104736f, -0.450439f, 0.10791f, -0.46875f, 0.110352f, -0.485107f, 0.112793f,
+-0.501465f, 0.114502f, -0.513184f, 0.116211f, -0.524902f, 0.116699f, -0.52832f, 0.247559f,
+-0.52832f, 0.247559f, -0.525879f, 0.246338f, -0.515137f, 0.245117f, -0.504395f, 0.243408f,
+-0.490479f, 0.241699f, -0.476562f, 0.239746f, -0.462158f, 0.237793f, -0.447754f,
+0.23584f, -0.437988f, 0.237305f, -0.437988f, 0.251953f, -0.458496f, 0.269775f, -0.476562f,
+0.287598f, -0.494629f, 0.30957f, -0.508301f, 0.331543f, -0.521973f, 0.358643f, -0.529785f,
+0.385742f, -0.537598f, 0.419434f, -0.537598f, 0.493652f, -0.537598f, 0.53125f, -0.501953f,
+0.568848f, -0.466309f, 0.568848f, -0.398926f, 0.568848f, -0.390137f, 0.567627f, -0.378906f,
+0.566406f, -0.367676f, 0.564941f, -0.356689f, 0.563477f, -0.345703f, 0.561768f, -0.335693f,
+0.560059f, -0.325684f, 0.558594f, -0.318848f, 0.496582f, 0, 0.578613f, -0.333496f,
+0.578613f, -0.253906f, 0.554688f, -0.190186f, 0.530762f, -0.126465f, 0.488281f, -0.0820312f,
+0.445801f, -0.0375977f, 0.387695f, -0.013916f, 0.32959f, 0.00976562f, 0.26123f, 0.00976562f,
+0.208984f, 0.00976562f, 0.166504f, -0.00463867f, 0.124023f, -0.019043f, 0.09375f,
+-0.0466309f, 0.0634766f, -0.0742188f, 0.0471191f, -0.114014f, 0.0307617f, -0.153809f,
+0.0307617f, -0.20459f, 0.0307617f, -0.280273f, 0.0534668f, -0.341797f, 0.0761719f,
+-0.40332f, 0.117676f, -0.446777f, 0.15918f, -0.490234f, 0.216797f, -0.513916f, 0.274414f,
+-0.537598f, 0.34375f, -0.537598f, 0.401367f, -0.537598f, 0.445312f, -0.523926f, 0.489258f,
+-0.510254f, 0.518799f, -0.483887f, 0.54834f, -0.45752f, 0.563477f, -0.419678f, 0.578613f,
+-0.381836f, 0.578613f, -0.333496f, 0.435059f, -0.323242f, 0.435059f, -0.355469f,
+0.427979f, -0.378418f, 0.420898f, -0.401367f, 0.407715f, -0.415771f, 0.394531f, -0.430176f,
+0.375732f, -0.437012f, 0.356934f, -0.443848f, 0.333496f, -0.443848f, 0.312012f, -0.443848f,
+0.290039f, -0.438721f, 0.268066f, -0.433594f, 0.248291f, -0.41748f, 0.228516f, -0.401367f,
+0.212158f, -0.371582f, 0.195801f, -0.341797f, 0.18457f, -0.292969f, 0.179199f, -0.269531f,
+0.177002f, -0.248779f, 0.174805f, -0.228027f, 0.174805f, -0.210449f, 0.174805f, -0.175293f,
+0.182373f, -0.151367f, 0.189941f, -0.127441f, 0.203613f, -0.112305f, 0.217285f, -0.097168f,
+0.23584f, -0.0905762f, 0.254395f, -0.0839844f, 0.276367f, -0.0839844f, 0.29834f,
+-0.0839844f, 0.319824f, -0.0888672f, 0.341309f, -0.09375f, 0.36084f, -0.109619f,
+0.380371f, -0.125488f, 0.396484f, -0.155029f, 0.412598f, -0.18457f, 0.423828f, -0.234375f,
+0.429199f, -0.259766f, 0.431641f, -0.281006f, 0.434082f, -0.302246f, 0.435059f, -0.323242f,
+0.355469f, -0.442871f, 0.330078f, -0.442871f, 0.306641f, -0.434814f, 0.283203f, -0.426758f,
+0.263672f, -0.407227f, 0.244141f, -0.387695f, 0.22876f, -0.354492f, 0.213379f, -0.321289f,
+0.203613f, -0.270508f, 0.199707f, -0.249023f, 0.19751f, -0.230469f, 0.195312f, -0.211914f,
+0.195312f, -0.195801f, 0.195312f, -0.168457f, 0.202393f, -0.147705f, 0.209473f, -0.126953f,
+0.222412f, -0.112793f, 0.235352f, -0.0986328f, 0.253418f, -0.0915527f, 0.271484f,
+-0.0844727f, 0.293457f, -0.0844727f, 0.318359f, -0.0844727f, 0.338623f, -0.0922852f,
+0.358887f, -0.100098f, 0.375f, -0.119141f, 0.391113f, -0.138184f, 0.403564f, -0.170654f,
+0.416016f, -0.203125f, 0.424805f, -0.251953f, 0.429199f, -0.276855f, 0.431641f, -0.298584f,
+0.434082f, -0.320312f, 0.434082f, -0.338867f, 0.434082f, -0.390625f, 0.415283f, -0.416748f,
+0.396484f, -0.442871f, 0.355469f, -0.442871f, 0.240723f, -0.445801f, 0.257812f, -0.469727f,
+0.275879f, -0.487061f, 0.293945f, -0.504395f, 0.314941f, -0.515869f, 0.335938f, -0.527344f,
+0.360352f, -0.532715f, 0.384766f, -0.538086f, 0.414062f, -0.538086f, 0.453613f, -0.538086f,
+0.484375f, -0.525879f, 0.515137f, -0.513672f, 0.535889f, -0.491211f, 0.556641f, -0.46875f,
+0.567627f, -0.436768f, 0.578613f, -0.404785f, 0.578613f, -0.365234f, 0.578613f, -0.336426f,
+0.576172f, -0.30835f, 0.57373f, -0.280273f, 0.568359f, -0.251953f, 0.554688f, -0.182617f,
+0.533203f, -0.133057f, 0.511719f, -0.0834961f, 0.481201f, -0.0517578f, 0.450684f,
+-0.0200195f, 0.411377f, -0.00512695f, 0.37207f, 0.00976562f, 0.323242f, 0.00976562f,
+0.262207f, 0.00976562f, 0.224121f, -0.015625f, 0.186035f, -0.0410156f, 0.17041f,
+-0.0869141f, 0.169434f, -0.0869141f, 0.166992f, -0.0664062f, 0.162598f, -0.0419922f,
+0.158203f, -0.0175781f, 0.153809f, 0.00488281f, 0.114746f, 0.20752f, -0.0219727f,
+0.20752f, 0.0966797f, -0.406738f, 0.100098f, -0.423828f, 0.102295f, -0.435791f, 0.104492f,
+-0.447754f, 0.106201f, -0.460205f, 0.10791f, -0.472656f, 0.110107f, -0.488281f, 0.112305f,
+-0.503906f, 0.115723f, -0.52832f, 0.25f, -0.52832f, 0.25f, -0.525391f, 0.249023f,
+-0.515625f, 0.248047f, -0.505859f, 0.246582f, -0.493408f, 0.245117f, -0.480957f,
+0.243164f, -0.468018f, 0.241211f, -0.455078f, 0.23877f, -0.445801f, 0.438477f, -0.440918f,
+0.440918f, -0.453125f, 0.444092f, -0.466553f, 0.447266f, -0.47998f, 0.450439f, -0.491943f,
+0.453613f, -0.503906f, 0.456543f, -0.513672f, 0.459473f, -0.523438f, 0.461426f, -0.52832f,
+0.593262f, -0.52832f, 0.59082f, -0.52002f, 0.583252f, -0.485352f, 0.575684f, -0.450684f,
+0.563477f, -0.388184f, 0.448242f, 0.20752f, 0.311035f, 0.20752f, 0.352539f, -0.00341797f,
+0.355957f, -0.0195312f, 0.360352f, -0.0385742f, 0.364746f, -0.0576172f, 0.370117f,
+-0.0795898f, 0.368164f, -0.0795898f, 0.350586f, -0.0566406f, 0.332031f, -0.0397949f,
+0.313477f, -0.0229492f, 0.292236f, -0.0117188f, 0.270996f, -0.000488281f, 0.246338f,
+0.00488281f, 0.22168f, 0.0102539f, 0.192383f, 0.0102539f, 0.152832f, 0.0102539f,
+0.122559f, -0.00317383f, 0.0922852f, -0.0166016f, 0.0712891f, -0.0402832f, 0.050293f,
+-0.0639648f, 0.0395508f, -0.097168f, 0.0288086f, -0.130371f, 0.0288086f, -0.169922f,
+0.0288086f, -0.191895f, 0.0310059f, -0.218506f, 0.0332031f, -0.245117f, 0.0390625f,
+-0.275879f, 0.0527344f, -0.345703f, 0.0766602f, -0.395508f, 0.100586f, -0.445312f,
+0.132324f, -0.477051f, 0.164062f, -0.508789f, 0.202393f, -0.523438f, 0.240723f, -0.538086f,
+0.283203f, -0.538086f, 0.31543f, -0.538086f, 0.3396f, -0.532715f, 0.36377f, -0.527344f,
+0.381836f, -0.515625f, 0.399902f, -0.503906f, 0.413086f, -0.485352f, 0.42627f, -0.466797f,
+0.436035f, -0.440918f, 0.25293f, -0.0839844f, 0.278809f, -0.0839844f, 0.302002f,
+-0.092041f, 0.325195f, -0.100098f, 0.344727f, -0.119873f, 0.364258f, -0.139648f,
+0.379395f, -0.173096f, 0.394531f, -0.206543f, 0.403809f, -0.257324f, 0.407715f, -0.278809f,
+0.409668f, -0.297363f, 0.411621f, -0.315918f, 0.411621f, -0.332031f, 0.411621f, -0.386719f,
+0.391357f, -0.415527f, 0.371094f, -0.444336f, 0.32666f, -0.444336f, 0.300781f, -0.444336f,
+0.278564f, -0.436768f, 0.256348f, -0.429199f, 0.238037f, -0.410156f, 0.219727f, -0.391113f,
+0.205811f, -0.358643f, 0.191895f, -0.326172f, 0.182617f, -0.275879f, 0.177734f, -0.250488f,
+0.175781f, -0.22876f, 0.173828f, -0.207031f, 0.173828f, -0.188477f, 0.173828f, -0.164551f,
+0.178467f, -0.145264f, 0.183105f, -0.125977f, 0.192627f, -0.112305f, 0.202148f, -0.0986328f,
+0.217041f, -0.0913086f, 0.231934f, -0.0839844f, 0.25293f, -0.0839844f, 0.412109f,
+-0.416504f, 0.400879f, -0.418945f, 0.388184f, -0.421387f, 0.375488f, -0.423828f,
+0.356445f, -0.423828f, 0.296387f, -0.423828f, 0.258545f, -0.381348f, 0.220703f, -0.338867f,
+0.203613f, -0.250977f, 0.154297f, 0, 0.0170898f, 0, 0.0957031f, -0.405273f, 0.0991211f,
+-0.422363f, 0.102051f, -0.439453f, 0.10498f, -0.456543f, 0.107666f, -0.472656f, 0.110352f,
+-0.48877f, 0.112549f, -0.503174f, 0.114746f, -0.517578f, 0.116211f, -0.52832f, 0.24707f,
+-0.52832f, 0.245605f, -0.517578f, 0.243896f, -0.50293f, 0.242188f, -0.488281f, 0.240234f,
+-0.473145f, 0.238281f, -0.458008f, 0.236084f, -0.444092f, 0.233887f, -0.430176f,
+0.232422f, -0.42041f, 0.234375f, -0.42041f, 0.250977f, -0.450684f, 0.267334f, -0.4729f,
+0.283691f, -0.495117f, 0.301514f, -0.509521f, 0.319336f, -0.523926f, 0.3396f, -0.531006f,
+0.359863f, -0.538086f, 0.384277f, -0.538086f, 0.390137f, -0.538086f, 0.397217f, -0.537354f,
+0.404297f, -0.536621f, 0.411377f, -0.535645f, 0.418457f, -0.534668f, 0.424561f, -0.533447f,
+0.430664f, -0.532227f, 0.43457f, -0.53125f, 0.488281f, -0.163086f, 0.488281f, -0.119629f,
+0.471924f, -0.0871582f, 0.455566f, -0.0546875f, 0.424072f, -0.0332031f, 0.392578f,
+-0.0117188f, 0.346924f, -0.000976562f, 0.30127f, 0.00976562f, 0.242676f, 0.00976562f,
+0.144531f, 0.00976562f, 0.0878906f, -0.0249023f, 0.03125f, -0.0595703f, 0.0112305f,
+-0.132324f, 0.133789f, -0.149902f, 0.138672f, -0.132324f, 0.147461f, -0.119385f,
+0.15625f, -0.106445f, 0.17041f, -0.0979004f, 0.18457f, -0.0893555f, 0.204834f, -0.0852051f,
+0.225098f, -0.0810547f, 0.252441f, -0.0810547f, 0.276367f, -0.0810547f, 0.296143f,
+-0.0847168f, 0.315918f, -0.0883789f, 0.330322f, -0.0964355f, 0.344727f, -0.104492f,
+0.352783f, -0.117188f, 0.36084f, -0.129883f, 0.36084f, -0.147461f, 0.36084f, -0.163086f,
+0.354248f, -0.173096f, 0.347656f, -0.183105f, 0.334229f, -0.190186f, 0.320801f, -0.197266f,
+0.300049f, -0.202881f, 0.279297f, -0.208496f, 0.251465f, -0.214355f, 0.212891f, -0.223145f,
+0.18042f, -0.235352f, 0.147949f, -0.247559f, 0.124512f, -0.266357f, 0.101074f, -0.285156f,
+0.0878906f, -0.311768f, 0.074707f, -0.338379f, 0.074707f, -0.375488f, 0.074707f,
+-0.419434f, 0.0930176f, -0.449951f, 0.111328f, -0.480469f, 0.143311f, -0.499756f,
+0.175293f, -0.519043f, 0.218262f, -0.527832f, 0.26123f, -0.536621f, 0.311035f, -0.536621f,
+0.356445f, -0.536621f, 0.392822f, -0.529541f, 0.429199f, -0.522461f, 0.455566f, -0.505859f,
+0.481934f, -0.489258f, 0.498779f, -0.462402f, 0.515625f, -0.435547f, 0.521973f, -0.395996f,
+0.399414f, -0.381836f, 0.391113f, -0.415527f, 0.367188f, -0.430664f, 0.343262f, -0.445801f,
+0.301758f, -0.445801f, 0.280762f, -0.445801f, 0.262451f, -0.443115f, 0.244141f, -0.44043f,
+0.230713f, -0.433594f, 0.217285f, -0.426758f, 0.209473f, -0.415527f, 0.20166f, -0.404297f,
+0.20166f, -0.387207f, 0.20166f, -0.371582f, 0.210938f, -0.361084f, 0.220215f, -0.350586f,
+0.236816f, -0.343018f, 0.253418f, -0.335449f, 0.276367f, -0.329834f, 0.299316f, -0.324219f,
+0.326172f, -0.317871f, 0.360352f, -0.310059f, 0.389893f, -0.298828f, 0.419434f, -0.287598f,
+0.441406f, -0.269775f, 0.463379f, -0.251953f, 0.47583f, -0.226074f, 0.488281f, -0.200195f,
+0.488281f, -0.163086f, 0.273438f, -0.00390625f, 0.255371f, 0.00146484f, 0.232422f,
+0.00463867f, 0.209473f, 0.0078125f, 0.183594f, 0.0078125f, 0.154785f, 0.0078125f,
+0.131348f, 0.000976562f, 0.10791f, -0.00585938f, 0.0913086f, -0.0195312f, 0.074707f,
+-0.0332031f, 0.0656738f, -0.0539551f, 0.0566406f, -0.074707f, 0.0566406f, -0.102051f,
+0.0566406f, -0.124023f, 0.0593262f, -0.144775f, 0.0620117f, -0.165527f, 0.0644531f,
+-0.178711f, 0.114258f, -0.435547f, 0.0419922f, -0.435547f, 0.0600586f, -0.52832f,
+0.13916f, -0.52832f, 0.206055f, -0.652344f, 0.291992f, -0.652344f, 0.268555f, -0.52832f,
+0.367188f, -0.52832f, 0.350098f, -0.435547f, 0.25f, -0.435547f, 0.199219f, -0.174316f,
+0.197266f, -0.164551f, 0.195312f, -0.150635f, 0.193359f, -0.136719f, 0.193848f, -0.126953f,
+0.194824f, -0.106445f, 0.206299f, -0.0964355f, 0.217773f, -0.0864258f, 0.236328f,
+-0.0864258f, 0.248047f, -0.0864258f, 0.26001f, -0.0881348f, 0.271973f, -0.0898438f,
+0.289062f, -0.0927734f, 0.25f, -0.52832f, 0.192383f, -0.237793f, 0.19043f, -0.228516f,
+0.188232f, -0.217285f, 0.186035f, -0.206055f, 0.184082f, -0.194824f, 0.182129f, -0.183594f,
+0.180908f, -0.173828f, 0.179688f, -0.164062f, 0.179688f, -0.157227f, 0.179688f, -0.126465f,
+0.198242f, -0.110352f, 0.216797f, -0.0942383f, 0.253906f, -0.0942383f, 0.276855f,
+-0.0942383f, 0.300049f, -0.104004f, 0.323242f, -0.11377f, 0.343018f, -0.131836f,
+0.362793f, -0.149902f, 0.377441f, -0.175537f, 0.39209f, -0.201172f, 0.397949f, -0.232422f,
+0.455566f, -0.52832f, 0.593262f, -0.52832f, 0.512207f, -0.112793f, 0.508789f, -0.0961914f,
+0.505615f, -0.0778809f, 0.502441f, -0.0595703f, 0.5f, -0.0432129f, 0.497559f, -0.0268555f,
+0.49585f, -0.0151367f, 0.494141f, -0.00341797f, 0.493652f, 0, 0.362793f, 0, 0.362793f,
+-0.00244141f, 0.364014f, -0.0131836f, 0.365234f, -0.0239258f, 0.366943f, -0.0378418f,
+0.368652f, -0.0517578f, 0.370605f, -0.0661621f, 0.372559f, -0.0805664f, 0.374512f,
+-0.090332f, 0.373047f, -0.090332f, 0.358398f, -0.0698242f, 0.34082f, -0.0517578f,
+0.323242f, -0.0336914f, 0.30127f, -0.0200195f, 0.279297f, -0.00634766f, 0.251953f,
+0.00146484f, 0.224609f, 0.00927734f, 0.190918f, 0.00927734f, 0.116699f, 0.00927734f,
+0.0791016f, -0.0263672f, 0.0415039f, -0.0620117f, 0.0415039f, -0.129395f, 0.0415039f,
+-0.138184f, 0.0427246f, -0.149414f, 0.0439453f, -0.160645f, 0.0454102f, -0.171631f,
+0.046875f, -0.182617f, 0.048584f, -0.192871f, 0.050293f, -0.203125f, 0.0517578f,
+-0.209473f, 0.11377f, -0.52832f, 0.303711f, 0, 0.139648f, 0, 0.0537109f, -0.52832f,
+0.194824f, -0.52832f, 0.229492f, -0.23291f, 0.231445f, -0.218262f, 0.23291f, -0.200684f,
+0.234375f, -0.183105f, 0.23584f, -0.165527f, 0.237305f, -0.147949f, 0.238525f, -0.131348f,
+0.239746f, -0.114746f, 0.240234f, -0.101562f, 0.245605f, -0.114258f, 0.252686f, -0.130859f,
+0.259766f, -0.147461f, 0.267822f, -0.165039f, 0.275879f, -0.182617f, 0.28418f, -0.199707f,
+0.29248f, -0.216797f, 0.299805f, -0.231445f, 0.454102f, -0.52832f, 0.601562f, -0.52832f,
+0.589355f, 0, 0.444336f, 0, 0.42334f, -0.322266f, 0.422363f, -0.337402f, 0.422119f,
+-0.356934f, 0.421875f, -0.376465f, 0.421387f, -0.393555f, 0.420898f, -0.413574f,
+0.420898f, -0.43457f, 0.413086f, -0.413574f, 0.404785f, -0.393555f, 0.397949f, -0.376465f,
+0.389893f, -0.356689f, 0.381836f, -0.336914f, 0.374512f, -0.321289f, 0.227051f, 0,
+0.0820312f, 0, 0.0483398f, -0.52832f, 0.174316f, -0.52832f, 0.180664f, -0.217773f,
+0.181152f, -0.20459f, 0.181152f, -0.188232f, 0.181152f, -0.171875f, 0.181152f, -0.157715f,
+0.181152f, -0.124512f, 0.1875f, -0.141113f, 0.194336f, -0.157715f, 0.200195f, -0.171875f,
+0.206787f, -0.188232f, 0.213379f, -0.20459f, 0.219727f, -0.217773f, 0.363281f, -0.52832f,
+0.510254f, -0.52832f, 0.530762f, -0.217773f, 0.531738f, -0.205078f, 0.531982f, -0.188965f,
+0.532227f, -0.172852f, 0.532715f, -0.158691f, 0.533203f, -0.14209f, 0.533203f, -0.124512f,
+0.540039f, -0.14209f, 0.546875f, -0.158691f, 0.552734f, -0.172852f, 0.559082f, -0.188965f,
+0.56543f, -0.205078f, 0.570801f, -0.217773f, 0.701172f, -0.52832f, 0.831055f, -0.52832f,
+0.353516f, 0, 0.262695f, -0.187012f, 0.103027f, 0, -0.0439453f, 0, 0.204102f, -0.274414f,
+0.0678711f, -0.52832f, 0.210449f, -0.52832f, 0.294922f, -0.358887f, 0.439453f, -0.52832f,
+0.589844f, -0.52832f, 0.354004f, -0.271973f, 0.497559f, 0, 0.27832f, 0.027832f, 0.250977f,
+0.0703125f, 0.226318f, 0.103516f, 0.20166f, 0.136719f, 0.174561f, 0.159912f, 0.147461f,
+0.183105f, 0.115723f, 0.195312f, 0.0839844f, 0.20752f, 0.0429688f, 0.20752f, 0.0175781f,
+0.20752f, -0.00268555f, 0.205322f, -0.0229492f, 0.203125f, -0.0415039f, 0.19873f,
+-0.0229492f, 0.103027f, -0.0141602f, 0.10498f, -0.00219727f, 0.106201f, 0.00976562f,
+0.107422f, 0.0195312f, 0.107422f, 0.0380859f, 0.107422f, 0.0539551f, 0.102539f, 0.0698242f,
+0.0976562f, 0.0849609f, 0.0864258f, 0.100098f, 0.0751953f, 0.114746f, 0.0568848f,
+0.129395f, 0.0385742f, 0.144531f, 0.0117188f, 0.158203f, -0.0117188f, 0.0546875f,
+-0.52832f, 0.196777f, -0.52832f, 0.231445f, -0.285645f, 0.232422f, -0.280273f, 0.234131f,
+-0.267578f, 0.23584f, -0.254883f, 0.237549f, -0.238525f, 0.239258f, -0.222168f, 0.241211f,
+-0.204102f, 0.243164f, -0.186035f, 0.244629f, -0.169678f, 0.246094f, -0.15332f, 0.247314f,
+-0.140625f, 0.248535f, -0.12793f, 0.248535f, -0.122559f, 0.250977f, -0.12793f, 0.256592f,
+-0.140381f, 0.262207f, -0.152832f, 0.269775f, -0.168701f, 0.277344f, -0.18457f, 0.285645f,
+-0.202148f, 0.293945f, -0.219727f, 0.301514f, -0.23584f, 0.309082f, -0.251953f, 0.31543f,
+-0.264893f, 0.321777f, -0.277832f, 0.324707f, -0.283691f, 0.451172f, -0.52832f, 0.597656f,
+-0.52832f, -0.0170898f, 0, 0.00146484f, -0.097168f, 0.320312f, -0.429199f, 0.0859375f,
+-0.429199f, 0.105469f, -0.52832f, 0.500488f, -0.52832f, 0.481445f, -0.430176f, 0.164062f,
+-0.100098f, 0.440918f, -0.100098f, 0.421387f, 0, 0.189453f, 0.20752f, 0.160645f,
+0.20752f, 0.137451f, 0.199951f, 0.114258f, 0.192383f, 0.0981445f, 0.178223f, 0.0820312f,
+0.164062f, 0.0732422f, 0.143799f, 0.0644531f, 0.123535f, 0.0644531f, 0.0986328f,
+0.0644531f, 0.090332f, 0.065918f, 0.0761719f, 0.0673828f, 0.0620117f, 0.0698242f,
+0.0493164f, 0.0996094f, -0.101074f, 0.103027f, -0.118164f, 0.103027f, -0.134277f,
+0.103027f, -0.154785f, 0.0964355f, -0.169434f, 0.0898438f, -0.184082f, 0.0776367f,
+-0.193115f, 0.0654297f, -0.202148f, 0.0480957f, -0.206543f, 0.0307617f, -0.210938f,
+0.00927734f, -0.211426f, 0.027832f, -0.305176f, 0.0537109f, -0.305664f, 0.0756836f,
+-0.311768f, 0.0976562f, -0.317871f, 0.114746f, -0.331055f, 0.131836f, -0.344238f,
+0.143799f, -0.36499f, 0.155762f, -0.385742f, 0.161621f, -0.416016f, 0.194336f, -0.581055f,
+0.208496f, -0.652344f, 0.249268f, -0.688477f, 0.290039f, -0.724609f, 0.365234f, -0.724609f,
+0.459961f, -0.724609f, 0.441895f, -0.631836f, 0.404785f, -0.631836f, 0.382812f, -0.631836f,
+0.367432f, -0.625488f, 0.352051f, -0.619141f, 0.341553f, -0.606689f, 0.331055f, -0.594238f,
+0.323975f, -0.575439f, 0.316895f, -0.556641f, 0.312012f, -0.531738f, 0.282715f, -0.380371f,
+0.277832f, -0.355957f, 0.265869f, -0.335693f, 0.253906f, -0.31543f, 0.237061f, -0.300049f,
+0.220215f, -0.284668f, 0.199707f, -0.274414f, 0.179199f, -0.26416f, 0.157715f, -0.259766f,
+0.157227f, -0.257812f, 0.174805f, -0.253418f, 0.189209f, -0.245117f, 0.203613f, -0.236816f,
+0.214355f, -0.224854f, 0.225098f, -0.212891f, 0.230957f, -0.197266f, 0.236816f, -0.181641f,
+0.236816f, -0.162598f, 0.236816f, -0.15625f, 0.236328f, -0.150146f, 0.23584f, -0.144043f,
+0.234375f, -0.137207f, 0.202637f, 0.0258789f, 0.201172f, 0.0327148f, 0.199707f, 0.0437012f,
+0.198242f, 0.0546875f, 0.198242f, 0.0629883f, 0.198242f, 0.0888672f, 0.214355f, 0.101562f,
+0.230469f, 0.114258f, 0.257812f, 0.114258f, 0.296875f, 0.114258f, 0.278809f, 0.20752f,
+0.0932617f, 0.20752f, 0.0932617f, -0.724609f, 0.221191f, -0.724609f, 0.221191f, 0.20752f,
+0.194824f, -0.725098f, 0.223633f, -0.725098f, 0.246826f, -0.717529f, 0.27002f, -0.709961f,
+0.286133f, -0.695801f, 0.302246f, -0.681641f, 0.311035f, -0.661377f, 0.319824f, -0.641113f,
+0.319824f, -0.616211f, 0.319824f, -0.60791f, 0.318359f, -0.593506f, 0.316895f, -0.579102f,
+0.314453f, -0.566895f, 0.284668f, -0.416504f, 0.282715f, -0.407227f, 0.281982f, -0.398926f,
+0.28125f, -0.390625f, 0.28125f, -0.383301f, 0.28125f, -0.362305f, 0.287842f, -0.3479f,
+0.294434f, -0.333496f, 0.306641f, -0.324219f, 0.318848f, -0.314941f, 0.336182f, -0.310791f,
+0.353516f, -0.306641f, 0.375f, -0.306152f, 0.356445f, -0.212402f, 0.330566f, -0.211914f,
+0.308594f, -0.205811f, 0.286621f, -0.199707f, 0.269531f, -0.186523f, 0.252441f, -0.17334f,
+0.240479f, -0.152344f, 0.228516f, -0.131348f, 0.222656f, -0.101074f, 0.189941f, 0.0634766f,
+0.182617f, 0.0996094f, 0.169189f, 0.126465f, 0.155762f, 0.15332f, 0.13501f, 0.171387f,
+0.114258f, 0.189453f, 0.0854492f, 0.198486f, 0.0566406f, 0.20752f, 0.019043f, 0.20752f,
+-0.0756836f, 0.20752f, -0.0576172f, 0.114746f, -0.0205078f, 0.114746f, 0.00146484f,
+0.114746f, 0.0168457f, 0.108398f, 0.0322266f, 0.102051f, 0.0427246f, 0.0895996f,
+0.0532227f, 0.0771484f, 0.0603027f, 0.0583496f, 0.0673828f, 0.0395508f, 0.0722656f,
+0.0146484f, 0.101562f, -0.136719f, 0.106445f, -0.161133f, 0.118408f, -0.181641f,
+0.130371f, -0.202148f, 0.147217f, -0.217529f, 0.164062f, -0.23291f, 0.18457f, -0.243164f,
+0.205078f, -0.253418f, 0.226562f, -0.257812f, 0.227051f, -0.259277f, 0.209473f, -0.263672f,
+0.195068f, -0.271973f, 0.180664f, -0.280273f, 0.169922f, -0.29248f, 0.15918f, -0.304688f,
+0.15332f, -0.320312f, 0.147461f, -0.335938f, 0.147461f, -0.35498f, 0.147461f, -0.36084f,
+0.147949f, -0.367188f, 0.148438f, -0.373535f, 0.149902f, -0.380371f, 0.181641f, -0.542969f,
+0.183105f, -0.550293f, 0.18457f, -0.561279f, 0.186035f, -0.572266f, 0.186035f, -0.580566f,
+0.186035f, -0.606445f, 0.169922f, -0.619141f, 0.153809f, -0.631836f, 0.126465f, -0.631836f,
+0.0874023f, -0.631836f, 0.105469f, -0.725098f, 0.434082f, -0.251953f, 0.397461f,
+-0.251953f, 0.362061f, -0.262207f, 0.32666f, -0.272461f, 0.290039f, -0.285156f, 0.257812f,
+-0.296387f, 0.231201f, -0.302246f, 0.20459f, -0.308105f, 0.182129f, -0.308105f, 0.163086f,
+-0.308105f, 0.146729f, -0.305176f, 0.130371f, -0.302246f, 0.115479f, -0.296631f,
+0.100586f, -0.291016f, 0.0864258f, -0.283203f, 0.0722656f, -0.275391f, 0.0576172f,
+-0.265137f, 0.0576172f, -0.369141f, 0.0825195f, -0.387695f, 0.115723f, -0.398926f,
+0.148926f, -0.410156f, 0.189941f, -0.410156f, 0.229004f, -0.410156f, 0.266357f, -0.399414f,
+0.303711f, -0.388672f, 0.339844f, -0.375977f, 0.366211f, -0.366699f, 0.393066f, -0.359863f,
+0.419922f, -0.353027f, 0.443359f, -0.353027f, 0.476562f, -0.353027f, 0.507812f, -0.365234f,
+0.539062f, -0.377441f, 0.564453f, -0.397949f, 0.564453f, -0.291016f, 0.548828f, -0.280273f,
+0.533936f, -0.272705f, 0.519043f, -0.265137f, 0.503662f, -0.260498f, 0.488281f, -0.255859f,
+0.471191f, -0.253906f, 0.454102f, -0.251953f, 0.434082f, -0.251953f
+};
+
+const unsigned char LiberationSansBoldItalicVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5,
+0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 1, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 5, 6,
+0, 1, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 1, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+1, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSansBoldItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSansBoldItalicWidths[] = {
+0x0000c000, 0x00004720, 0x00005540, 0x00007960, 0x00008e60, 0x00008e60, 0x0000e3a0,
+0x0000b8e0, 0x00003ce0, 0x00005540, 0x00005540, 0x000063a0, 0x00009580, 0x00004720,
+0x00005540, 0x00004720, 0x00004720, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60,
+0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00008e60, 0x00005540,
+0x00005540, 0x00009580, 0x00009580, 0x00009580, 0x00009c60, 0x0000f9a0, 0x0000b8e0,
+0x0000b8e0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000b8e0,
+0x00004720, 0x00008e60, 0x0000b8e0, 0x00009c60, 0x0000d540, 0x0000b8e0, 0x0000c720,
+0x0000aac0, 0x0000c720, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000f1a0, 0x0000aac0, 0x0000aac0, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x00009580, 0x00008e60, 0x00005540, 0x00008e60, 0x00009c60, 0x00008e60, 0x00009c60,
+0x00008e60, 0x00005540, 0x00009c60, 0x00009c60, 0x00004720, 0x00004720, 0x00008e60,
+0x00004720, 0x0000e3a0, 0x00009c60, 0x00009c60, 0x00009c60, 0x00009c60, 0x000063a0,
+0x00008e60, 0x00005540, 0x00009c60, 0x00008e60, 0x0000c720, 0x00008e60, 0x00008e60,
+0x00008000, 0x000063a0, 0x000047a0, 0x000063a0, 0x00009580
+};
+
+const int LiberationSansBoldItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSansBoldItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSansBoldItalicMetrics = {
+0x30307833, -1.02979f, -0.905273f, 0.211914f, 0.303223f, 0.0327148f, 1.3374f, 0.0208969f,
+-0.208984f, 1.12842f, 0.537598f, 0.0109024f, 0.10498f, 0.105957f
+};
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_serif.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/skia/tools/test_font_serif.inc
new file mode 100644 (file)
index 0000000..49279ce
--- /dev/null
@@ -0,0 +1,5149 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+// Auto-generated by create_test_font.cpp
+
+const SkScalar LiberationSerifNormalPoints[] = {
+0.225098f, -0.0449219f, 0.225098f, -0.0327148f, 0.220459f, -0.0219727f, 0.21582f,
+-0.0112305f, 0.208008f, -0.00317383f, 0.200195f, 0.00488281f, 0.189209f, 0.00952148f,
+0.178223f, 0.0141602f, 0.166016f, 0.0141602f, 0.15332f, 0.0141602f, 0.142578f, 0.00952148f,
+0.131836f, 0.00488281f, 0.124023f, -0.00317383f, 0.116211f, -0.0112305f, 0.111572f,
+-0.0219727f, 0.106934f, -0.0327148f, 0.106934f, -0.0449219f, 0.106934f, -0.0571289f,
+0.111572f, -0.0681152f, 0.116211f, -0.0791016f, 0.124023f, -0.0869141f, 0.131836f,
+-0.0947266f, 0.142578f, -0.0993652f, 0.15332f, -0.104004f, 0.166016f, -0.104004f,
+0.178223f, -0.104004f, 0.189209f, -0.0993652f, 0.200195f, -0.0947266f, 0.208008f,
+-0.0869141f, 0.21582f, -0.0791016f, 0.220459f, -0.0681152f, 0.225098f, -0.0571289f,
+0.225098f, -0.0449219f, 0.112793f, -0.654785f, 0.219238f, -0.654785f, 0.188965f,
+-0.189941f, 0.143066f, -0.189941f, 0.25f, -0.654785f, 0.346191f, -0.654785f, 0.315918f,
+-0.419922f, 0.279785f, -0.419922f, 0.0620117f, -0.654785f, 0.158203f, -0.654785f,
+0.12793f, -0.419922f, 0.0917969f, -0.419922f, 0.481934f, -0.255859f, 0.481934f, -0.206055f,
+0.35498f, -0.206055f, 0.316895f, 0, 0.266113f, 0, 0.304199f, -0.206055f, 0.152832f,
+-0.206055f, 0.115234f, 0, 0.0639648f, 0, 0.102051f, -0.206055f, 0.0180664f, -0.206055f,
+0.0180664f, -0.255859f, 0.111816f, -0.255859f, 0.140137f, -0.405762f, 0.0180664f,
+-0.405762f, 0.0180664f, -0.456055f, 0.148926f, -0.456055f, 0.186035f, -0.654785f,
+0.236816f, -0.654785f, 0.200195f, -0.456055f, 0.351074f, -0.456055f, 0.388184f, -0.654785f,
+0.438965f, -0.654785f, 0.401855f, -0.456055f, 0.481934f, -0.456055f, 0.481934f, -0.405762f,
+0.393066f, -0.405762f, 0.365234f, -0.255859f, 0.163086f, -0.255859f, 0.313965f, -0.255859f,
+0.341797f, -0.405762f, 0.190918f, -0.405762f, 0.234863f, 0.00976562f, 0.20752f, 0.00927734f,
+0.179443f, 0.00610352f, 0.151367f, 0.00292969f, 0.125732f, -0.00195312f, 0.100098f,
+-0.00683594f, 0.0786133f, -0.0126953f, 0.0571289f, -0.0185547f, 0.0429688f, -0.0249023f,
+0.0429688f, -0.181152f, 0.0751953f, -0.181152f, 0.0917969f, -0.0878906f, 0.100098f,
+-0.0766602f, 0.116211f, -0.0666504f, 0.132324f, -0.0566406f, 0.1521f, -0.048584f,
+0.171875f, -0.0405273f, 0.193604f, -0.0356445f, 0.215332f, -0.0307617f, 0.234863f,
+-0.0297852f, 0.234863f, -0.306152f, 0.212402f, -0.313965f, 0.19043f, -0.322021f,
+0.168457f, -0.330078f, 0.147949f, -0.340576f, 0.127441f, -0.351074f, 0.109863f, -0.364502f,
+0.0922852f, -0.37793f, 0.0793457f, -0.396484f, 0.0664062f, -0.415039f, 0.059082f,
+-0.439209f, 0.0517578f, -0.463379f, 0.0517578f, -0.495117f, 0.0517578f, -0.530762f,
+0.0649414f, -0.559814f, 0.078125f, -0.588867f, 0.102051f, -0.610107f, 0.125977f,
+-0.631348f, 0.159912f, -0.644531f, 0.193848f, -0.657715f, 0.234863f, -0.661133f,
+0.234863f, -0.724121f, 0.274902f, -0.724121f, 0.274902f, -0.662109f, 0.314453f, -0.660645f,
+0.354492f, -0.654541f, 0.394531f, -0.648438f, 0.424805f, -0.641113f, 0.424805f, -0.504883f,
+0.393066f, -0.504883f, 0.378906f, -0.584961f, 0.371094f, -0.592285f, 0.359375f, -0.598389f,
+0.347656f, -0.604492f, 0.333984f, -0.609131f, 0.320312f, -0.61377f, 0.305176f, -0.616943f,
+0.290039f, -0.620117f, 0.274902f, -0.621094f, 0.274902f, -0.388184f, 0.297852f, -0.379883f,
+0.321045f, -0.371338f, 0.344238f, -0.362793f, 0.365967f, -0.351807f, 0.387695f, -0.34082f,
+0.406494f, -0.32666f, 0.425293f, -0.3125f, 0.439209f, -0.292969f, 0.453125f, -0.273438f,
+0.461182f, -0.248047f, 0.469238f, -0.222656f, 0.469238f, -0.188965f, 0.469238f, -0.146973f,
+0.456055f, -0.112305f, 0.442871f, -0.0776367f, 0.417969f, -0.0522461f, 0.393066f,
+-0.0268555f, 0.356934f, -0.0112305f, 0.320801f, 0.00439453f, 0.274902f, 0.0078125f,
+0.274902f, 0.0761719f, 0.234863f, 0.0761719f, 0.38623f, -0.161133f, 0.38623f, -0.190918f,
+0.377441f, -0.211426f, 0.368652f, -0.231934f, 0.353516f, -0.246582f, 0.338379f, -0.26123f,
+0.318115f, -0.271729f, 0.297852f, -0.282227f, 0.274902f, -0.291016f, 0.274902f, -0.0322266f,
+0.328613f, -0.0405273f, 0.357422f, -0.0727539f, 0.38623f, -0.10498f, 0.38623f, -0.161133f,
+0.133789f, -0.520996f, 0.133789f, -0.494141f, 0.141602f, -0.475586f, 0.149414f, -0.457031f,
+0.163086f, -0.443604f, 0.176758f, -0.430176f, 0.195068f, -0.420898f, 0.213379f, -0.411621f,
+0.234863f, -0.402832f, 0.234863f, -0.619141f, 0.186035f, -0.612793f, 0.159912f, -0.586914f,
+0.133789f, -0.561035f, 0.133789f, -0.520996f, 0.214844f, 0.00976562f, 0.161133f,
+0.00976562f, 0.624023f, -0.665039f, 0.678223f, -0.665039f, 0.352051f, -0.48584f,
+0.352051f, -0.398438f, 0.312744f, -0.351318f, 0.273438f, -0.304199f, 0.190918f, -0.304199f,
+0.112305f, -0.304199f, 0.0732422f, -0.350586f, 0.0341797f, -0.396973f, 0.0341797f,
+-0.48584f, 0.0341797f, -0.572754f, 0.0734863f, -0.618896f, 0.112793f, -0.665039f,
+0.193848f, -0.665039f, 0.271484f, -0.665039f, 0.311768f, -0.620117f, 0.352051f, -0.575195f,
+0.352051f, -0.48584f, 0.275879f, -0.48584f, 0.275879f, -0.52002f, 0.271484f, -0.546631f,
+0.26709f, -0.573242f, 0.257324f, -0.591553f, 0.247559f, -0.609863f, 0.231201f, -0.619385f,
+0.214844f, -0.628906f, 0.190918f, -0.628906f, 0.166992f, -0.628906f, 0.151367f, -0.619385f,
+0.135742f, -0.609863f, 0.126465f, -0.591553f, 0.117188f, -0.573242f, 0.113525f, -0.546631f,
+0.109863f, -0.52002f, 0.109863f, -0.48584f, 0.109863f, -0.451172f, 0.113525f, -0.424072f,
+0.117188f, -0.396973f, 0.126465f, -0.378418f, 0.135742f, -0.359863f, 0.151367f, -0.349854f,
+0.166992f, -0.339844f, 0.190918f, -0.339844f, 0.214844f, -0.339844f, 0.231201f, -0.349854f,
+0.247559f, -0.359863f, 0.257324f, -0.378418f, 0.26709f, -0.396973f, 0.271484f, -0.424072f,
+0.275879f, -0.451172f, 0.275879f, -0.48584f, 0.798828f, -0.168945f, 0.798828f, -0.0810547f,
+0.759766f, -0.0339355f, 0.720703f, 0.0131836f, 0.638184f, 0.0131836f, 0.55957f, 0.0131836f,
+0.520264f, -0.0332031f, 0.480957f, -0.0795898f, 0.480957f, -0.168945f, 0.480957f,
+-0.255859f, 0.520508f, -0.302002f, 0.560059f, -0.348145f, 0.641113f, -0.348145f,
+0.71875f, -0.348145f, 0.758789f, -0.303223f, 0.798828f, -0.258301f, 0.798828f, -0.168945f,
+0.723145f, -0.168945f, 0.723145f, -0.203125f, 0.71875f, -0.229736f, 0.714355f, -0.256348f,
+0.70459f, -0.274658f, 0.694824f, -0.292969f, 0.678467f, -0.30249f, 0.662109f, -0.312012f,
+0.638184f, -0.312012f, 0.614258f, -0.312012f, 0.598633f, -0.30249f, 0.583008f, -0.292969f,
+0.57373f, -0.274658f, 0.564453f, -0.256348f, 0.560791f, -0.229736f, 0.557129f, -0.203125f,
+0.557129f, -0.168945f, 0.557129f, -0.134277f, 0.560791f, -0.107178f, 0.564453f, -0.0800781f,
+0.57373f, -0.0615234f, 0.583008f, -0.0429688f, 0.598633f, -0.032959f, 0.614258f,
+-0.0229492f, 0.638184f, -0.0229492f, 0.662109f, -0.0229492f, 0.678467f, -0.032959f,
+0.694824f, -0.0429688f, 0.70459f, -0.0615234f, 0.714355f, -0.0800781f, 0.71875f,
+-0.107178f, 0.723145f, -0.134277f, 0.723145f, -0.168945f, 0.48291f, -0.528809f, 0.48291f,
+-0.492676f, 0.468994f, -0.467285f, 0.455078f, -0.441895f, 0.432373f, -0.423096f,
+0.409668f, -0.404297f, 0.380371f, -0.390625f, 0.351074f, -0.376953f, 0.320801f, -0.365234f,
+0.526855f, -0.177734f, 0.549316f, -0.223633f, 0.5625f, -0.268799f, 0.575684f, -0.313965f,
+0.577148f, -0.35498f, 0.507812f, -0.368164f, 0.507812f, -0.394043f, 0.730957f, -0.394043f,
+0.730957f, -0.368164f, 0.663086f, -0.35498f, 0.657227f, -0.334473f, 0.648682f, -0.309326f,
+0.640137f, -0.28418f, 0.628662f, -0.256104f, 0.617188f, -0.228027f, 0.602295f, -0.198242f,
+0.587402f, -0.168457f, 0.567871f, -0.139648f, 0.679199f, -0.0380859f, 0.759766f,
+-0.0258789f, 0.759766f, 0, 0.591797f, 0, 0.508301f, -0.0756836f, 0.489258f, -0.0585938f,
+0.466553f, -0.0429688f, 0.443848f, -0.0273438f, 0.416016f, -0.015625f, 0.388184f,
+-0.00390625f, 0.354736f, 0.00292969f, 0.321289f, 0.00976562f, 0.280762f, 0.00976562f,
+0.159668f, 0.00976562f, 0.098877f, -0.0373535f, 0.0380859f, -0.0844727f, 0.0380859f,
+-0.173828f, 0.0380859f, -0.219238f, 0.0532227f, -0.250732f, 0.0683594f, -0.282227f,
+0.0917969f, -0.303711f, 0.115234f, -0.325195f, 0.143799f, -0.338867f, 0.172363f,
+-0.352539f, 0.199219f, -0.362793f, 0.185547f, -0.375977f, 0.172363f, -0.392334f,
+0.15918f, -0.408691f, 0.148682f, -0.428467f, 0.138184f, -0.448242f, 0.131836f, -0.47168f,
+0.125488f, -0.495117f, 0.125488f, -0.522461f, 0.125488f, -0.553223f, 0.135498f, -0.579346f,
+0.145508f, -0.605469f, 0.16748f, -0.624512f, 0.189453f, -0.643555f, 0.224121f, -0.654297f,
+0.258789f, -0.665039f, 0.308105f, -0.665039f, 0.355957f, -0.665039f, 0.389404f, -0.654541f,
+0.422852f, -0.644043f, 0.443604f, -0.625732f, 0.464355f, -0.607422f, 0.473633f, -0.58252f,
+0.48291f, -0.557617f, 0.48291f, -0.528809f, 0.293945f, -0.0322266f, 0.325195f, -0.0322266f,
+0.351807f, -0.0380859f, 0.378418f, -0.0439453f, 0.400391f, -0.0541992f, 0.422363f,
+-0.0644531f, 0.440674f, -0.0778809f, 0.458984f, -0.0913086f, 0.474609f, -0.106934f,
+0.230957f, -0.330078f, 0.212891f, -0.322266f, 0.195557f, -0.310791f, 0.178223f, -0.299316f,
+0.164551f, -0.281738f, 0.150879f, -0.26416f, 0.142334f, -0.239258f, 0.133789f, -0.214355f,
+0.133789f, -0.179199f, 0.133789f, -0.14209f, 0.14502f, -0.114502f, 0.15625f, -0.0869141f,
+0.177002f, -0.0686035f, 0.197754f, -0.050293f, 0.227295f, -0.0412598f, 0.256836f,
+-0.0322266f, 0.293945f, -0.0322266f, 0.211914f, -0.532227f, 0.211914f, -0.505859f,
+0.219238f, -0.484619f, 0.226562f, -0.463379f, 0.237549f, -0.446777f, 0.248535f, -0.430176f,
+0.261963f, -0.41748f, 0.275391f, -0.404785f, 0.287109f, -0.395996f, 0.312012f, -0.405273f,
+0.33252f, -0.415771f, 0.353027f, -0.42627f, 0.367188f, -0.441406f, 0.381348f, -0.456543f,
+0.38916f, -0.478271f, 0.396973f, -0.5f, 0.396973f, -0.532227f, 0.396973f, -0.625977f,
+0.308105f, -0.625977f, 0.256836f, -0.625977f, 0.234375f, -0.602539f, 0.211914f, -0.579102f,
+0.211914f, -0.532227f, 0.0419922f, -0.654785f, 0.138184f, -0.654785f, 0.10791f, -0.419922f,
+0.0717773f, -0.419922f, 0.138184f, -0.241211f, 0.138184f, -0.200195f, 0.140137f,
+-0.159424f, 0.14209f, -0.118652f, 0.147705f, -0.079834f, 0.15332f, -0.0410156f, 0.164307f,
+-0.00463867f, 0.175293f, 0.0317383f, 0.193359f, 0.0637207f, 0.211426f, 0.0957031f,
+0.237793f, 0.123291f, 0.26416f, 0.150879f, 0.300781f, 0.171875f, 0.300781f, 0.212891f,
+0.235352f, 0.178223f, 0.187256f, 0.137451f, 0.13916f, 0.0966797f, 0.107178f, 0.0432129f,
+0.0751953f, -0.0102539f, 0.0595703f, -0.0795898f, 0.0439453f, -0.148926f, 0.0439453f,
+-0.241211f, 0.0439453f, -0.333496f, 0.0595703f, -0.402588f, 0.0751953f, -0.47168f,
+0.107178f, -0.524902f, 0.13916f, -0.578125f, 0.187256f, -0.618652f, 0.235352f, -0.65918f,
+0.300781f, -0.693848f, 0.300781f, -0.652832f, 0.245605f, -0.621094f, 0.213379f, -0.575928f,
+0.181152f, -0.530762f, 0.164307f, -0.476807f, 0.147461f, -0.422852f, 0.142822f, -0.362793f,
+0.138184f, -0.302734f, 0.138184f, -0.241211f, 0.0322266f, 0.212891f, 0.0322266f,
+0.171875f, 0.0688477f, 0.150879f, 0.0952148f, 0.123291f, 0.121582f, 0.0957031f, 0.139648f,
+0.0637207f, 0.157715f, 0.0317383f, 0.168701f, -0.00463867f, 0.179688f, -0.0410156f,
+0.185303f, -0.079834f, 0.190918f, -0.118652f, 0.192871f, -0.159424f, 0.194824f, -0.200195f,
+0.194824f, -0.241211f, 0.194824f, -0.302734f, 0.190186f, -0.362793f, 0.185547f, -0.422852f,
+0.168701f, -0.476807f, 0.151855f, -0.530762f, 0.119629f, -0.575928f, 0.0874023f,
+-0.621094f, 0.0322266f, -0.652832f, 0.0322266f, -0.693848f, 0.097168f, -0.65918f,
+0.145508f, -0.618652f, 0.193848f, -0.578125f, 0.22583f, -0.524902f, 0.257812f, -0.47168f,
+0.273438f, -0.402588f, 0.289062f, -0.333496f, 0.289062f, -0.241211f, 0.289062f, -0.148926f,
+0.273438f, -0.0795898f, 0.257812f, -0.0102539f, 0.22583f, 0.0432129f, 0.193848f,
+0.0966797f, 0.145508f, 0.137451f, 0.097168f, 0.178223f, 0.0322266f, 0.212891f, 0.0488281f,
+-0.52002f, 0.0800781f, -0.589844f, 0.233887f, -0.495117f, 0.212891f, -0.654785f,
+0.289062f, -0.654785f, 0.266113f, -0.495117f, 0.420898f, -0.587891f, 0.452148f, -0.519043f,
+0.290039f, -0.471191f, 0.452148f, -0.423828f, 0.420898f, -0.35498f, 0.266113f, -0.446777f,
+0.289062f, -0.288086f, 0.212891f, -0.288086f, 0.233887f, -0.448242f, 0.0800781f,
+-0.353027f, 0.0488281f, -0.422852f, 0.208984f, -0.471191f, 0.307129f, -0.307129f,
+0.307129f, -0.0991211f, 0.256836f, -0.0991211f, 0.256836f, -0.307129f, 0.0498047f,
+-0.307129f, 0.0498047f, -0.356934f, 0.256836f, -0.356934f, 0.256836f, -0.564941f,
+0.307129f, -0.564941f, 0.307129f, -0.356934f, 0.515137f, -0.356934f, 0.515137f, -0.307129f,
+0.187012f, -0.0239258f, 0.187012f, 0.00488281f, 0.178955f, 0.0319824f, 0.170898f,
+0.059082f, 0.153076f, 0.0820312f, 0.135254f, 0.10498f, 0.106934f, 0.123535f, 0.0786133f,
+0.14209f, 0.0380859f, 0.153809f, 0.0380859f, 0.116211f, 0.0825195f, 0.102051f, 0.103271f,
+0.081543f, 0.124023f, 0.0610352f, 0.124023f, 0.0341797f, 0.124023f, 0.0253906f, 0.119141f,
+0.0192871f, 0.114258f, 0.0131836f, 0.106934f, 0.00854492f, 0.0996094f, 0.00390625f,
+0.0910645f, -0.000488281f, 0.0825195f, -0.00488281f, 0.0751953f, -0.0109863f, 0.0678711f,
+-0.0170898f, 0.0629883f, -0.026123f, 0.0581055f, -0.0351562f, 0.0581055f, -0.0488281f,
+0.0581055f, -0.0751953f, 0.074707f, -0.0891113f, 0.0913086f, -0.103027f, 0.117188f,
+-0.103027f, 0.130859f, -0.103027f, 0.143555f, -0.0979004f, 0.15625f, -0.0927734f,
+0.165771f, -0.0827637f, 0.175293f, -0.0727539f, 0.181152f, -0.0578613f, 0.187012f,
+-0.0429688f, 0.187012f, -0.0239258f, 0.0371094f, -0.198242f, 0.0371094f, -0.272949f,
+0.296875f, -0.272949f, 0.296875f, -0.198242f, 0.184082f, -0.0449219f, 0.184082f,
+-0.0327148f, 0.179443f, -0.0219727f, 0.174805f, -0.0112305f, 0.166992f, -0.00317383f,
+0.15918f, 0.00488281f, 0.148193f, 0.00952148f, 0.137207f, 0.0141602f, 0.125f, 0.0141602f,
+0.112305f, 0.0141602f, 0.101562f, 0.00952148f, 0.0908203f, 0.00488281f, 0.0830078f,
+-0.00317383f, 0.0751953f, -0.0112305f, 0.0705566f, -0.0219727f, 0.065918f, -0.0327148f,
+0.065918f, -0.0449219f, 0.065918f, -0.0571289f, 0.0705566f, -0.0681152f, 0.0751953f,
+-0.0791016f, 0.0830078f, -0.0869141f, 0.0908203f, -0.0947266f, 0.101562f, -0.0993652f,
+0.112305f, -0.104004f, 0.125f, -0.104004f, 0.137207f, -0.104004f, 0.148193f, -0.0993652f,
+0.15918f, -0.0947266f, 0.166992f, -0.0869141f, 0.174805f, -0.0791016f, 0.179443f,
+-0.0681152f, 0.184082f, -0.0571289f, 0.184082f, -0.0449219f, 0.0488281f, 0.00976562f,
+0, 0.00976562f, 0.22998f, -0.65918f, 0.277832f, -0.65918f, 0.461914f, -0.330078f,
+0.461914f, -0.248047f, 0.448975f, -0.18457f, 0.436035f, -0.121094f, 0.409668f, -0.0778809f,
+0.383301f, -0.034668f, 0.342773f, -0.0124512f, 0.302246f, 0.00976562f, 0.24707f,
+0.00976562f, 0.143555f, 0.00976562f, 0.0908203f, -0.0771484f, 0.0380859f, -0.164062f,
+0.0380859f, -0.330078f, 0.0380859f, -0.492676f, 0.0908203f, -0.578857f, 0.143555f,
+-0.665039f, 0.250977f, -0.665039f, 0.354492f, -0.665039f, 0.408203f, -0.579834f,
+0.461914f, -0.494629f, 0.461914f, -0.330078f, 0.37207f, -0.330078f, 0.37207f, -0.400391f,
+0.365967f, -0.455566f, 0.359863f, -0.510742f, 0.345459f, -0.548584f, 0.331055f, -0.586426f,
+0.306885f, -0.606201f, 0.282715f, -0.625977f, 0.24707f, -0.625977f, 0.210938f, -0.625977f,
+0.187744f, -0.606201f, 0.164551f, -0.586426f, 0.151367f, -0.548584f, 0.138184f, -0.510742f,
+0.133057f, -0.455566f, 0.12793f, -0.400391f, 0.12793f, -0.330078f, 0.12793f, -0.259766f,
+0.133057f, -0.203857f, 0.138184f, -0.147949f, 0.151367f, -0.109131f, 0.164551f, -0.0703125f,
+0.187744f, -0.0495605f, 0.210938f, -0.0288086f, 0.24707f, -0.0288086f, 0.282715f,
+-0.0288086f, 0.306885f, -0.0495605f, 0.331055f, -0.0703125f, 0.345459f, -0.109131f,
+0.359863f, -0.147949f, 0.365967f, -0.203857f, 0.37207f, -0.259766f, 0.37207f, -0.330078f,
+0.306152f, -0.0390625f, 0.439941f, -0.0258789f, 0.439941f, 0, 0.0878906f, 0, 0.0878906f,
+-0.0258789f, 0.222168f, -0.0390625f, 0.222168f, -0.573242f, 0.0898438f, -0.525879f,
+0.0898438f, -0.551758f, 0.280762f, -0.660156f, 0.306152f, -0.660156f, 0.444824f,
+0, 0.0439453f, 0, 0.0439453f, -0.0717773f, 0.0932617f, -0.117676f, 0.134521f, -0.154053f,
+0.175781f, -0.19043f, 0.20874f, -0.221924f, 0.241699f, -0.253418f, 0.266357f, -0.282227f,
+0.291016f, -0.311035f, 0.307373f, -0.342285f, 0.32373f, -0.373535f, 0.331787f, -0.409668f,
+0.339844f, -0.445801f, 0.339844f, -0.491211f, 0.339844f, -0.554688f, 0.311035f, -0.587891f,
+0.282227f, -0.621094f, 0.216797f, -0.621094f, 0.202148f, -0.621094f, 0.187744f, -0.618896f,
+0.17334f, -0.616699f, 0.160156f, -0.613037f, 0.146973f, -0.609375f, 0.135498f, -0.604736f,
+0.124023f, -0.600098f, 0.115234f, -0.595215f, 0.0981445f, -0.515137f, 0.065918f,
+-0.515137f, 0.065918f, -0.641113f, 0.103027f, -0.649902f, 0.138916f, -0.656006f,
+0.174805f, -0.662109f, 0.216797f, -0.662109f, 0.324219f, -0.662109f, 0.378174f, -0.617432f,
+0.432129f, -0.572754f, 0.432129f, -0.491211f, 0.432129f, -0.451172f, 0.421631f, -0.416992f,
+0.411133f, -0.382812f, 0.391602f, -0.351318f, 0.37207f, -0.319824f, 0.34375f, -0.289307f,
+0.31543f, -0.258789f, 0.279297f, -0.226074f, 0.243164f, -0.193359f, 0.199951f, -0.156494f,
+0.156738f, -0.119629f, 0.10791f, -0.0751953f, 0.444824f, -0.0751953f, 0.460938f,
+-0.178223f, 0.460938f, -0.133789f, 0.445312f, -0.098877f, 0.429688f, -0.0639648f,
+0.400146f, -0.0397949f, 0.370605f, -0.015625f, 0.327393f, -0.00292969f, 0.28418f,
+0.00976562f, 0.229004f, 0.00976562f, 0.180664f, 0.00976562f, 0.135254f, 0.00390625f,
+0.0898438f, -0.00195312f, 0.0532227f, -0.0112305f, 0.0478516f, -0.148926f, 0.0800781f,
+-0.148926f, 0.102051f, -0.0571289f, 0.11084f, -0.0522461f, 0.125f, -0.0473633f, 0.13916f,
+-0.0424805f, 0.155518f, -0.0388184f, 0.171875f, -0.0351562f, 0.189209f, -0.032959f,
+0.206543f, -0.0307617f, 0.221191f, -0.0307617f, 0.266602f, -0.0307617f, 0.295654f,
+-0.0419922f, 0.324707f, -0.0532227f, 0.341553f, -0.0734863f, 0.358398f, -0.09375f,
+0.364746f, -0.121826f, 0.371094f, -0.149902f, 0.371094f, -0.183105f, 0.371094f, -0.221191f,
+0.360352f, -0.246338f, 0.349609f, -0.271484f, 0.330811f, -0.286865f, 0.312012f, -0.302246f,
+0.286865f, -0.309326f, 0.261719f, -0.316406f, 0.23291f, -0.317871f, 0.163086f, -0.321777f,
+0.163086f, -0.361816f, 0.23291f, -0.366211f, 0.288086f, -0.369141f, 0.314453f, -0.400391f,
+0.34082f, -0.431641f, 0.34082f, -0.495117f, 0.34082f, -0.526855f, 0.334229f, -0.550537f,
+0.327637f, -0.574219f, 0.313477f, -0.589844f, 0.299316f, -0.605469f, 0.276611f, -0.613281f,
+0.253906f, -0.621094f, 0.221191f, -0.621094f, 0.206543f, -0.621094f, 0.19165f, -0.618896f,
+0.176758f, -0.616699f, 0.163086f, -0.613037f, 0.149414f, -0.609375f, 0.137695f, -0.604736f,
+0.125977f, -0.600098f, 0.117188f, -0.595215f, 0.100098f, -0.515137f, 0.0678711f,
+-0.515137f, 0.0678711f, -0.641113f, 0.0849609f, -0.645508f, 0.102051f, -0.649414f,
+0.119141f, -0.65332f, 0.137695f, -0.656006f, 0.15625f, -0.658691f, 0.176758f, -0.6604f,
+0.197266f, -0.662109f, 0.221191f, -0.662109f, 0.324219f, -0.662109f, 0.377686f, -0.622559f,
+0.431152f, -0.583008f, 0.431152f, -0.500977f, 0.431152f, -0.470215f, 0.422852f, -0.443604f,
+0.414551f, -0.416992f, 0.396973f, -0.396484f, 0.379395f, -0.375977f, 0.352295f, -0.362061f,
+0.325195f, -0.348145f, 0.288086f, -0.342773f, 0.376953f, -0.33252f, 0.418945f, -0.291748f,
+0.460938f, -0.250977f, 0.460938f, -0.178223f, 0.395508f, -0.144043f, 0.395508f, 0,
+0.311523f, 0, 0.311523f, -0.144043f, 0.0195312f, -0.144043f, 0.0195312f, -0.208984f,
+0.339355f, -0.658203f, 0.395508f, -0.658203f, 0.395508f, -0.213867f, 0.484375f, -0.213867f,
+0.484375f, -0.144043f, 0.311523f, -0.543457f, 0.309082f, -0.543457f, 0.074707f, -0.213867f,
+0.311523f, -0.213867f, 0.236816f, -0.382812f, 0.291504f, -0.382812f, 0.333496f, -0.371826f,
+0.375488f, -0.36084f, 0.403809f, -0.337891f, 0.432129f, -0.314941f, 0.446533f, -0.279541f,
+0.460938f, -0.244141f, 0.460938f, -0.194824f, 0.460938f, -0.148438f, 0.447021f, -0.11084f,
+0.433105f, -0.0732422f, 0.404297f, -0.0463867f, 0.375488f, -0.0195312f, 0.331787f,
+-0.00488281f, 0.288086f, 0.00976562f, 0.229004f, 0.00976562f, 0.183105f, 0.00976562f,
+0.141846f, 0.00463867f, 0.100586f, -0.000488281f, 0.0634766f, -0.0112305f, 0.0581055f,
+-0.148926f, 0.090332f, -0.148926f, 0.112305f, -0.0571289f, 0.121094f, -0.0522461f,
+0.133545f, -0.0473633f, 0.145996f, -0.0424805f, 0.160645f, -0.0388184f, 0.175293f,
+-0.0351562f, 0.190918f, -0.032959f, 0.206543f, -0.0307617f, 0.221191f, -0.0307617f,
+0.266602f, -0.0307617f, 0.295654f, -0.0422363f, 0.324707f, -0.0537109f, 0.341553f,
+-0.074707f, 0.358398f, -0.0957031f, 0.364746f, -0.125f, 0.371094f, -0.154297f, 0.371094f,
+-0.189941f, 0.371094f, -0.228027f, 0.364502f, -0.256348f, 0.35791f, -0.284668f, 0.340332f,
+-0.303711f, 0.322754f, -0.322754f, 0.292236f, -0.332275f, 0.261719f, -0.341797f,
+0.213867f, -0.341797f, 0.185059f, -0.341797f, 0.163086f, -0.337891f, 0.141113f, -0.333984f,
+0.126953f, -0.330078f, 0.0800781f, -0.330078f, 0.0800781f, -0.654785f, 0.412109f,
+-0.654785f, 0.412109f, -0.580078f, 0.124023f, -0.580078f, 0.124023f, -0.371094f,
+0.132812f, -0.373047f, 0.143799f, -0.375f, 0.154785f, -0.376953f, 0.168213f, -0.378662f,
+0.181641f, -0.380371f, 0.198486f, -0.381592f, 0.215332f, -0.382812f, 0.236816f, -0.382812f,
+0.470215f, -0.203125f, 0.470215f, -0.152344f, 0.457275f, -0.112793f, 0.444336f, -0.0732422f,
+0.418945f, -0.0458984f, 0.393555f, -0.0185547f, 0.356201f, -0.00439453f, 0.318848f,
+0.00976562f, 0.27002f, 0.00976562f, 0.216309f, 0.00976562f, 0.174072f, -0.0112305f,
+0.131836f, -0.0322266f, 0.102783f, -0.0739746f, 0.0737305f, -0.115723f, 0.0583496f,
+-0.177979f, 0.0429688f, -0.240234f, 0.0429688f, -0.323242f, 0.0429688f, -0.412109f,
+0.0632324f, -0.476074f, 0.0834961f, -0.540039f, 0.117432f, -0.581543f, 0.151367f,
+-0.623047f, 0.195801f, -0.642578f, 0.240234f, -0.662109f, 0.288086f, -0.662109f,
+0.324707f, -0.662109f, 0.362305f, -0.657227f, 0.399902f, -0.652344f, 0.430176f, -0.64502f,
+0.430176f, -0.532227f, 0.397949f, -0.532227f, 0.380859f, -0.599121f, 0.37207f, -0.604004f,
+0.360596f, -0.60791f, 0.349121f, -0.611816f, 0.33667f, -0.614746f, 0.324219f, -0.617676f,
+0.311768f, -0.619385f, 0.299316f, -0.621094f, 0.288086f, -0.621094f, 0.253418f, -0.621094f,
+0.22583f, -0.604492f, 0.198242f, -0.587891f, 0.178223f, -0.554199f, 0.158203f, -0.520508f,
+0.146729f, -0.469727f, 0.135254f, -0.418945f, 0.133301f, -0.350098f, 0.168457f, -0.368652f,
+0.210205f, -0.380371f, 0.251953f, -0.39209f, 0.292969f, -0.39209f, 0.333984f, -0.39209f,
+0.366943f, -0.380615f, 0.399902f, -0.369141f, 0.422852f, -0.345703f, 0.445801f, -0.322266f,
+0.458008f, -0.286621f, 0.470215f, -0.250977f, 0.470215f, -0.203125f, 0.268066f, -0.0288086f,
+0.299316f, -0.0288086f, 0.320801f, -0.0390625f, 0.342285f, -0.0493164f, 0.355469f,
+-0.0700684f, 0.368652f, -0.0908203f, 0.374268f, -0.121826f, 0.379883f, -0.152832f,
+0.379883f, -0.193848f, 0.379883f, -0.273926f, 0.354736f, -0.30957f, 0.32959f, -0.345215f,
+0.274902f, -0.345215f, 0.241699f, -0.345215f, 0.205322f, -0.338867f, 0.168945f, -0.33252f,
+0.132812f, -0.320801f, 0.132812f, -0.250488f, 0.140381f, -0.196289f, 0.147949f, -0.14209f,
+0.164551f, -0.104736f, 0.181152f, -0.0673828f, 0.206543f, -0.0480957f, 0.231934f,
+-0.0288086f, 0.268066f, -0.0288086f, 0.0981445f, -0.5f, 0.065918f, -0.5f, 0.065918f,
+-0.654785f, 0.471191f, -0.654785f, 0.471191f, -0.617188f, 0.179199f, 0, 0.116211f,
+0, 0.402832f, -0.580078f, 0.115234f, -0.580078f, 0.441895f, -0.495117f, 0.441895f,
+-0.441406f, 0.415771f, -0.404053f, 0.389648f, -0.366699f, 0.345215f, -0.347168f,
+0.371582f, -0.337402f, 0.393066f, -0.321777f, 0.414551f, -0.306152f, 0.429932f, -0.284912f,
+0.445312f, -0.263672f, 0.453613f, -0.236572f, 0.461914f, -0.209473f, 0.461914f, -0.176758f,
+0.461914f, -0.0839844f, 0.409668f, -0.0371094f, 0.357422f, 0.00976562f, 0.24707f,
+0.00976562f, 0.142578f, 0.00976562f, 0.090332f, -0.036377f, 0.0380859f, -0.0825195f,
+0.0380859f, -0.176758f, 0.0380859f, -0.241699f, 0.0693359f, -0.284424f, 0.100586f,
+-0.327148f, 0.153809f, -0.347168f, 0.111328f, -0.366699f, 0.0847168f, -0.403809f,
+0.0581055f, -0.440918f, 0.0581055f, -0.495117f, 0.0581055f, -0.533691f, 0.0700684f,
+-0.565186f, 0.0820312f, -0.59668f, 0.105957f, -0.618896f, 0.129883f, -0.641113f,
+0.166016f, -0.653076f, 0.202148f, -0.665039f, 0.250977f, -0.665039f, 0.297852f, -0.665039f,
+0.333496f, -0.65332f, 0.369141f, -0.641602f, 0.393311f, -0.619629f, 0.41748f, -0.597656f,
+0.429688f, -0.566162f, 0.441895f, -0.534668f, 0.441895f, -0.495117f, 0.374023f, -0.176758f,
+0.374023f, -0.212402f, 0.367676f, -0.23999f, 0.361328f, -0.267578f, 0.346436f, -0.286621f,
+0.331543f, -0.305664f, 0.307129f, -0.31543f, 0.282715f, -0.325195f, 0.24707f, -0.325195f,
+0.210938f, -0.325195f, 0.1875f, -0.31543f, 0.164062f, -0.305664f, 0.150391f, -0.286621f,
+0.136719f, -0.267578f, 0.131348f, -0.23999f, 0.125977f, -0.212402f, 0.125977f, -0.176758f,
+0.125977f, -0.140625f, 0.131348f, -0.113037f, 0.136719f, -0.0854492f, 0.150391f,
+-0.0668945f, 0.164062f, -0.0483398f, 0.1875f, -0.0385742f, 0.210938f, -0.0288086f,
+0.24707f, -0.0288086f, 0.282715f, -0.0288086f, 0.307129f, -0.0385742f, 0.331543f,
+-0.0483398f, 0.346436f, -0.0668945f, 0.361328f, -0.0854492f, 0.367676f, -0.113037f,
+0.374023f, -0.140625f, 0.374023f, -0.176758f, 0.354004f, -0.495117f, 0.354004f, -0.523926f,
+0.348877f, -0.547852f, 0.34375f, -0.571777f, 0.331543f, -0.589111f, 0.319336f, -0.606445f,
+0.298828f, -0.616211f, 0.27832f, -0.625977f, 0.248047f, -0.625977f, 0.217773f, -0.625977f,
+0.197998f, -0.616211f, 0.178223f, -0.606445f, 0.166748f, -0.589111f, 0.155273f, -0.571777f,
+0.150635f, -0.547852f, 0.145996f, -0.523926f, 0.145996f, -0.495117f, 0.145996f, -0.46582f,
+0.150635f, -0.442383f, 0.155273f, -0.418945f, 0.166748f, -0.402344f, 0.178223f, -0.385742f,
+0.197998f, -0.376953f, 0.217773f, -0.368164f, 0.248047f, -0.368164f, 0.27832f, -0.368164f,
+0.298828f, -0.376953f, 0.319336f, -0.385742f, 0.331543f, -0.402344f, 0.34375f, -0.418945f,
+0.348877f, -0.442383f, 0.354004f, -0.46582f, 0.354004f, -0.495117f, 0.0322266f, -0.455078f,
+0.0322266f, -0.505371f, 0.046875f, -0.544189f, 0.0615234f, -0.583008f, 0.0888672f,
+-0.609131f, 0.116211f, -0.635254f, 0.155273f, -0.648682f, 0.194336f, -0.662109f,
+0.243164f, -0.662109f, 0.298828f, -0.662109f, 0.339355f, -0.642578f, 0.379883f, -0.623047f,
+0.406494f, -0.582275f, 0.433105f, -0.541504f, 0.446045f, -0.478516f, 0.458984f, -0.415527f,
+0.458984f, -0.329102f, 0.458984f, -0.266113f, 0.449463f, -0.216553f, 0.439941f, -0.166992f,
+0.422852f, -0.129395f, 0.405762f, -0.0917969f, 0.38208f, -0.0651855f, 0.358398f,
+-0.0385742f, 0.330078f, -0.0219727f, 0.301758f, -0.00537109f, 0.269775f, 0.00219727f,
+0.237793f, 0.00976562f, 0.204102f, 0.00976562f, 0.161133f, 0.00976562f, 0.126221f,
+0.00561523f, 0.0913086f, 0.00146484f, 0.0581055f, -0.00683594f, 0.0581055f, -0.120117f,
+0.0898438f, -0.120117f, 0.106934f, -0.0498047f, 0.116211f, -0.0454102f, 0.127686f,
+-0.0419922f, 0.13916f, -0.0385742f, 0.151611f, -0.0358887f, 0.164062f, -0.0332031f,
+0.177002f, -0.0319824f, 0.189941f, -0.0307617f, 0.202148f, -0.0307617f, 0.236328f,
+-0.0307617f, 0.265869f, -0.045166f, 0.29541f, -0.0595703f, 0.317383f, -0.0917969f,
+0.339355f, -0.124023f, 0.352783f, -0.175537f, 0.366211f, -0.227051f, 0.368652f, -0.30127f,
+0.336426f, -0.283203f, 0.298828f, -0.271484f, 0.26123f, -0.259766f, 0.217773f, -0.259766f,
+0.176758f, -0.259766f, 0.142578f, -0.272217f, 0.108398f, -0.284668f, 0.0837402f,
+-0.309326f, 0.059082f, -0.333984f, 0.0456543f, -0.370605f, 0.0322266f, -0.407227f,
+0.0322266f, -0.455078f, 0.244141f, -0.623047f, 0.181152f, -0.623047f, 0.151611f,
+-0.579346f, 0.12207f, -0.535645f, 0.12207f, -0.453125f, 0.12207f, -0.413086f, 0.130127f,
+-0.385254f, 0.138184f, -0.357422f, 0.153564f, -0.340088f, 0.168945f, -0.322754f,
+0.191162f, -0.314941f, 0.213379f, -0.307129f, 0.242188f, -0.307129f, 0.274414f, -0.307129f,
+0.306641f, -0.313965f, 0.338867f, -0.320801f, 0.369141f, -0.333008f, 0.369141f, -0.404785f,
+0.362305f, -0.459229f, 0.355469f, -0.513672f, 0.34082f, -0.550049f, 0.326172f, -0.586426f,
+0.302246f, -0.604736f, 0.27832f, -0.623047f, 0.244141f, -0.623047f, 0.196777f, -0.0449219f,
+0.196777f, -0.0327148f, 0.192139f, -0.0219727f, 0.1875f, -0.0112305f, 0.179688f,
+-0.00317383f, 0.171875f, 0.00488281f, 0.161133f, 0.00952148f, 0.150391f, 0.0141602f,
+0.138184f, 0.0141602f, 0.125488f, 0.0141602f, 0.114746f, 0.00952148f, 0.104004f,
+0.00488281f, 0.0961914f, -0.00317383f, 0.0883789f, -0.0112305f, 0.0837402f, -0.0219727f,
+0.0791016f, -0.0327148f, 0.0791016f, -0.0449219f, 0.0791016f, -0.0571289f, 0.0837402f,
+-0.0681152f, 0.0883789f, -0.0791016f, 0.0961914f, -0.0869141f, 0.104004f, -0.0947266f,
+0.114746f, -0.0993652f, 0.125488f, -0.104004f, 0.138184f, -0.104004f, 0.150391f,
+-0.104004f, 0.161133f, -0.0993652f, 0.171875f, -0.0947266f, 0.179688f, -0.0869141f,
+0.1875f, -0.0791016f, 0.192139f, -0.0681152f, 0.196777f, -0.0571289f, 0.196777f,
+-0.0449219f, 0.196777f, -0.410156f, 0.196777f, -0.397461f, 0.192139f, -0.386719f,
+0.1875f, -0.375977f, 0.179688f, -0.368164f, 0.171875f, -0.360352f, 0.161133f, -0.355713f,
+0.150391f, -0.351074f, 0.138184f, -0.351074f, 0.125488f, -0.351074f, 0.114746f, -0.355713f,
+0.104004f, -0.360352f, 0.0961914f, -0.368164f, 0.0883789f, -0.375977f, 0.0837402f,
+-0.386719f, 0.0791016f, -0.397461f, 0.0791016f, -0.410156f, 0.0791016f, -0.422363f,
+0.0837402f, -0.433105f, 0.0883789f, -0.443848f, 0.0961914f, -0.451904f, 0.104004f,
+-0.459961f, 0.114746f, -0.4646f, 0.125488f, -0.469238f, 0.138184f, -0.469238f, 0.150391f,
+-0.469238f, 0.161133f, -0.4646f, 0.171875f, -0.459961f, 0.179688f, -0.451904f, 0.1875f,
+-0.443848f, 0.192139f, -0.433105f, 0.196777f, -0.422363f, 0.196777f, -0.410156f,
+0.196777f, -0.410156f, 0.196777f, -0.397461f, 0.192139f, -0.386719f, 0.1875f, -0.375977f,
+0.179688f, -0.368164f, 0.171875f, -0.360352f, 0.161133f, -0.355713f, 0.150391f, -0.351074f,
+0.138184f, -0.351074f, 0.125488f, -0.351074f, 0.114746f, -0.355713f, 0.104004f, -0.360352f,
+0.0961914f, -0.368164f, 0.0883789f, -0.375977f, 0.0837402f, -0.386719f, 0.0791016f,
+-0.397461f, 0.0791016f, -0.410156f, 0.0791016f, -0.422363f, 0.0837402f, -0.433105f,
+0.0883789f, -0.443848f, 0.0961914f, -0.451904f, 0.104004f, -0.459961f, 0.114746f,
+-0.4646f, 0.125488f, -0.469238f, 0.138184f, -0.469238f, 0.150391f, -0.469238f, 0.161133f,
+-0.4646f, 0.171875f, -0.459961f, 0.179688f, -0.451904f, 0.1875f, -0.443848f, 0.192139f,
+-0.433105f, 0.196777f, -0.422363f, 0.196777f, -0.410156f, 0.201172f, -0.0239258f,
+0.201172f, 0.00488281f, 0.193115f, 0.0319824f, 0.185059f, 0.059082f, 0.167236f, 0.0820312f,
+0.149414f, 0.10498f, 0.12085f, 0.123535f, 0.0922852f, 0.14209f, 0.0517578f, 0.153809f,
+0.0517578f, 0.116211f, 0.0961914f, 0.102051f, 0.117188f, 0.081543f, 0.138184f, 0.0610352f,
+0.138184f, 0.0341797f, 0.138184f, 0.0253906f, 0.133301f, 0.0192871f, 0.128418f, 0.0131836f,
+0.121094f, 0.00854492f, 0.11377f, 0.00390625f, 0.10498f, -0.000488281f, 0.0961914f,
+-0.00488281f, 0.0888672f, -0.0109863f, 0.081543f, -0.0170898f, 0.0766602f, -0.026123f,
+0.0717773f, -0.0351562f, 0.0717773f, -0.0488281f, 0.0717773f, -0.0751953f, 0.088623f,
+-0.0891113f, 0.105469f, -0.103027f, 0.130859f, -0.103027f, 0.144531f, -0.103027f,
+0.157471f, -0.0979004f, 0.17041f, -0.0927734f, 0.179932f, -0.0827637f, 0.189453f,
+-0.0727539f, 0.195312f, -0.0578613f, 0.201172f, -0.0429688f, 0.201172f, -0.0239258f,
+0.0498047f, -0.319824f, 0.0498047f, -0.344238f, 0.515137f, -0.573242f, 0.515137f,
+-0.522949f, 0.120117f, -0.332031f, 0.515137f, -0.141113f, 0.515137f, -0.0908203f,
+0.515137f, -0.256836f, 0.515137f, -0.207031f, 0.0498047f, -0.207031f, 0.0498047f,
+-0.256836f, 0.515137f, -0.457031f, 0.515137f, -0.407227f, 0.0498047f, -0.407227f,
+0.0498047f, -0.457031f, 0.0507812f, -0.0908203f, 0.0507812f, -0.141113f, 0.445801f,
+-0.332031f, 0.0507812f, -0.522949f, 0.0507812f, -0.573242f, 0.516113f, -0.344238f,
+0.516113f, -0.319824f, 0.214844f, -0.170898f, 0.175781f, -0.170898f, 0.163086f, -0.333984f,
+0.23291f, -0.348145f, 0.250488f, -0.351562f, 0.265137f, -0.360107f, 0.279785f, -0.368652f,
+0.290527f, -0.38501f, 0.30127f, -0.401367f, 0.307129f, -0.427002f, 0.312988f, -0.452637f,
+0.312988f, -0.490234f, 0.312988f, -0.525879f, 0.306885f, -0.550781f, 0.300781f, -0.575684f,
+0.287109f, -0.591309f, 0.273438f, -0.606934f, 0.250977f, -0.614014f, 0.228516f, -0.621094f,
+0.195801f, -0.621094f, 0.166504f, -0.621094f, 0.142334f, -0.614258f, 0.118164f, -0.607422f,
+0.101074f, -0.597168f, 0.0839844f, -0.51709f, 0.0517578f, -0.51709f, 0.0517578f,
+-0.641113f, 0.0859375f, -0.650391f, 0.120361f, -0.65625f, 0.154785f, -0.662109f,
+0.195801f, -0.662109f, 0.299316f, -0.662109f, 0.351074f, -0.620117f, 0.402832f, -0.578125f,
+0.402832f, -0.496094f, 0.402832f, -0.461914f, 0.394775f, -0.430908f, 0.386719f, -0.399902f,
+0.368408f, -0.374756f, 0.350098f, -0.349609f, 0.320801f, -0.331299f, 0.291504f, -0.312988f,
+0.249023f, -0.304199f, 0.221191f, -0.297852f, 0.258789f, -0.0449219f, 0.258789f,
+-0.0327148f, 0.25415f, -0.0219727f, 0.249512f, -0.0112305f, 0.241699f, -0.00317383f,
+0.233887f, 0.00488281f, 0.223145f, 0.00952148f, 0.212402f, 0.0141602f, 0.200195f,
+0.0141602f, 0.1875f, 0.0141602f, 0.176758f, 0.00952148f, 0.166016f, 0.00488281f,
+0.158203f, -0.00317383f, 0.150391f, -0.0112305f, 0.145752f, -0.0219727f, 0.141113f,
+-0.0327148f, 0.141113f, -0.0449219f, 0.141113f, -0.0571289f, 0.145752f, -0.0681152f,
+0.150391f, -0.0791016f, 0.158203f, -0.0869141f, 0.166016f, -0.0947266f, 0.176758f,
+-0.0993652f, 0.1875f, -0.104004f, 0.200195f, -0.104004f, 0.212402f, -0.104004f, 0.223145f,
+-0.0993652f, 0.233887f, -0.0947266f, 0.241699f, -0.0869141f, 0.249512f, -0.0791016f,
+0.25415f, -0.0681152f, 0.258789f, -0.0571289f, 0.258789f, -0.0449219f, 0.711914f,
+0.0898438f, 0.685547f, 0.110352f, 0.656006f, 0.128418f, 0.626465f, 0.146484f, 0.591064f,
+0.160156f, 0.555664f, 0.173828f, 0.513916f, 0.181885f, 0.472168f, 0.189941f, 0.421875f,
+0.189941f, 0.333496f, 0.189941f, 0.264893f, 0.161377f, 0.196289f, 0.132812f, 0.14917f,
+0.0830078f, 0.102051f, 0.0332031f, 0.0776367f, -0.0336914f, 0.0532227f, -0.100586f,
+0.0532227f, -0.176758f, 0.0532227f, -0.246582f, 0.0690918f, -0.310059f, 0.0849609f,
+-0.373535f, 0.114502f, -0.427734f, 0.144043f, -0.481934f, 0.186279f, -0.526123f,
+0.228516f, -0.570312f, 0.280762f, -0.601318f, 0.333008f, -0.632324f, 0.394287f, -0.64917f,
+0.455566f, -0.666016f, 0.523926f, -0.666016f, 0.609375f, -0.666016f, 0.673828f, -0.644775f,
+0.738281f, -0.623535f, 0.781494f, -0.584473f, 0.824707f, -0.54541f, 0.846436f, -0.490234f,
+0.868164f, -0.435059f, 0.868164f, -0.367188f, 0.868164f, -0.316895f, 0.854492f, -0.270996f,
+0.84082f, -0.225098f, 0.816895f, -0.185791f, 0.792969f, -0.146484f, 0.760254f, -0.114258f,
+0.727539f, -0.0820312f, 0.689453f, -0.0593262f, 0.651367f, -0.0366211f, 0.609375f,
+-0.0244141f, 0.567383f, -0.012207f, 0.524902f, -0.012207f, 0.519043f, -0.012207f,
+0.513428f, -0.0131836f, 0.507812f, -0.0141602f, 0.503418f, -0.0170898f, 0.499023f,
+-0.0200195f, 0.496094f, -0.0249023f, 0.493164f, -0.0297852f, 0.493164f, -0.0371094f,
+0.493164f, -0.0507812f, 0.494385f, -0.067627f, 0.495605f, -0.0844727f, 0.49707f,
+-0.0981445f, 0.483887f, -0.0849609f, 0.466064f, -0.0698242f, 0.448242f, -0.0546875f,
+0.427734f, -0.0419922f, 0.407227f, -0.0292969f, 0.384766f, -0.020752f, 0.362305f,
+-0.012207f, 0.339844f, -0.012207f, 0.304688f, -0.012207f, 0.2854f, -0.0388184f, 0.266113f,
+-0.0654297f, 0.266113f, -0.109863f, 0.266113f, -0.150391f, 0.273438f, -0.190186f,
+0.280762f, -0.22998f, 0.294922f, -0.266113f, 0.309082f, -0.302246f, 0.330566f, -0.333008f,
+0.352051f, -0.36377f, 0.379883f, -0.38623f, 0.40332f, -0.404785f, 0.424805f, -0.416748f,
+0.446289f, -0.428711f, 0.468994f, -0.435303f, 0.491699f, -0.441895f, 0.51709f, -0.444336f,
+0.54248f, -0.446777f, 0.573242f, -0.446777f, 0.583008f, -0.446777f, 0.590576f, -0.446777f,
+0.598145f, -0.446777f, 0.60498f, -0.446533f, 0.611816f, -0.446289f, 0.618408f, -0.445557f,
+0.625f, -0.444824f, 0.632812f, -0.443848f, 0.577148f, -0.185059f, 0.574707f, -0.174805f,
+0.572754f, -0.162598f, 0.570801f, -0.150391f, 0.569336f, -0.138916f, 0.567871f, -0.127441f,
+0.566895f, -0.117188f, 0.565918f, -0.106934f, 0.565918f, -0.100098f, 0.565918f, -0.0942383f,
+0.566895f, -0.088623f, 0.567871f, -0.0830078f, 0.571533f, -0.0788574f, 0.575195f,
+-0.074707f, 0.582275f, -0.0722656f, 0.589355f, -0.0698242f, 0.602051f, -0.0698242f,
+0.633789f, -0.0698242f, 0.661621f, -0.0820312f, 0.689453f, -0.0942383f, 0.712158f,
+-0.115479f, 0.734863f, -0.136719f, 0.752686f, -0.165527f, 0.770508f, -0.194336f,
+0.782471f, -0.227295f, 0.794434f, -0.260254f, 0.800781f, -0.295654f, 0.807129f, -0.331055f,
+0.807129f, -0.366211f, 0.807129f, -0.429199f, 0.787109f, -0.477539f, 0.76709f, -0.525879f,
+0.729736f, -0.558838f, 0.692383f, -0.591797f, 0.639404f, -0.608887f, 0.586426f, -0.625977f,
+0.520996f, -0.625977f, 0.458496f, -0.625977f, 0.404541f, -0.609619f, 0.350586f, -0.593262f,
+0.305908f, -0.563965f, 0.26123f, -0.534668f, 0.226807f, -0.493408f, 0.192383f, -0.452148f,
+0.168701f, -0.402588f, 0.14502f, -0.353027f, 0.132568f, -0.296143f, 0.120117f, -0.239258f,
+0.120117f, -0.178223f, 0.120117f, -0.11377f, 0.13916f, -0.0546875f, 0.158203f, 0.00439453f,
+0.19751f, 0.0495605f, 0.236816f, 0.0947266f, 0.296387f, 0.121826f, 0.355957f, 0.148926f,
+0.437012f, 0.148926f, 0.483398f, 0.148926f, 0.520752f, 0.14209f, 0.558105f, 0.135254f,
+0.588867f, 0.123779f, 0.619629f, 0.112305f, 0.645752f, 0.097168f, 0.671875f, 0.0820312f,
+0.695801f, 0.0649414f, 0.556152f, -0.394043f, 0.55127f, -0.394531f, 0.546875f, -0.39502f,
+0.542969f, -0.395508f, 0.539062f, -0.395752f, 0.535156f, -0.395996f, 0.532227f, -0.395996f,
+0.518066f, -0.395996f, 0.501221f, -0.394531f, 0.484375f, -0.393066f, 0.467041f, -0.388916f,
+0.449707f, -0.384766f, 0.432617f, -0.377441f, 0.415527f, -0.370117f, 0.401855f, -0.35791f,
+0.387695f, -0.345215f, 0.375f, -0.323975f, 0.362305f, -0.302734f, 0.352783f, -0.275391f,
+0.343262f, -0.248047f, 0.337646f, -0.216309f, 0.332031f, -0.18457f, 0.332031f, -0.150879f,
+0.332031f, -0.116211f, 0.341797f, -0.097168f, 0.351562f, -0.078125f, 0.371094f, -0.078125f,
+0.388672f, -0.078125f, 0.406982f, -0.0834961f, 0.425293f, -0.0888672f, 0.442627f,
+-0.0969238f, 0.459961f, -0.10498f, 0.474854f, -0.11499f, 0.489746f, -0.125f, 0.5f,
+-0.133789f, 0.225098f, -0.0258789f, 0.225098f, 0, 0.00976562f, 0, 0.00976562f, -0.0258789f,
+0.0839844f, -0.0390625f, 0.307129f, -0.660156f, 0.399902f, -0.660156f, 0.631836f,
+-0.0390625f, 0.714844f, -0.0258789f, 0.714844f, 0, 0.437988f, 0, 0.437988f, -0.0258789f,
+0.525879f, -0.0390625f, 0.460938f, -0.228027f, 0.203125f, -0.228027f, 0.137207f,
+-0.0390625f, 0.330078f, -0.589844f, 0.217773f, -0.271973f, 0.445801f, -0.271973f,
+0.467773f, -0.496094f, 0.467773f, -0.524902f, 0.459229f, -0.546387f, 0.450684f, -0.567871f,
+0.431641f, -0.582275f, 0.412598f, -0.59668f, 0.382324f, -0.60376f, 0.352051f, -0.61084f,
+0.308105f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.363281f, 0.313965f, -0.363281f,
+0.359375f, -0.363281f, 0.38916f, -0.372803f, 0.418945f, -0.382324f, 0.436279f, -0.399658f,
+0.453613f, -0.416992f, 0.460693f, -0.441406f, 0.467773f, -0.46582f, 0.467773f, -0.496094f,
+0.51709f, -0.186523f, 0.51709f, -0.220703f, 0.506104f, -0.245605f, 0.495117f, -0.270508f,
+0.471924f, -0.286865f, 0.44873f, -0.303223f, 0.412109f, -0.311279f, 0.375488f, -0.319336f,
+0.324219f, -0.319336f, 0.207031f, -0.319336f, 0.207031f, -0.0439453f, 0.229492f,
+-0.0429688f, 0.253906f, -0.0424805f, 0.274902f, -0.0415039f, 0.300293f, -0.0412598f,
+0.325684f, -0.0410156f, 0.350586f, -0.0410156f, 0.396484f, -0.0410156f, 0.428223f,
+-0.0512695f, 0.459961f, -0.0615234f, 0.479736f, -0.0803223f, 0.499512f, -0.0991211f,
+0.508301f, -0.125977f, 0.51709f, -0.152832f, 0.51709f, -0.186523f, 0.0288086f, 0,
+0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f,
+-0.628906f, 0.0288086f, -0.654785f, 0.328125f, -0.654785f, 0.396973f, -0.654785f,
+0.442871f, -0.644287f, 0.48877f, -0.633789f, 0.516602f, -0.61377f, 0.544434f, -0.59375f,
+0.556152f, -0.565186f, 0.567871f, -0.536621f, 0.567871f, -0.500977f, 0.567871f, -0.470215f,
+0.557861f, -0.444824f, 0.547852f, -0.419434f, 0.530029f, -0.400146f, 0.512207f, -0.380859f,
+0.487305f, -0.36792f, 0.462402f, -0.35498f, 0.433105f, -0.348633f, 0.475586f, -0.344238f,
+0.51001f, -0.331543f, 0.544434f, -0.318848f, 0.568359f, -0.298584f, 0.592285f, -0.27832f,
+0.605225f, -0.250488f, 0.618164f, -0.222656f, 0.618164f, -0.188477f, 0.618164f, -0.145996f,
+0.60376f, -0.110596f, 0.589355f, -0.0751953f, 0.558594f, -0.0500488f, 0.527832f,
+-0.0249023f, 0.479492f, -0.0109863f, 0.431152f, 0.00292969f, 0.362793f, 0.00292969f,
+0.308105f, 0.00292969f, 0.253906f, 0.00146484f, 0.199707f, 0, 0.153809f, 0, 0.37793f,
+0.00976562f, 0.297852f, 0.00976562f, 0.235107f, -0.0126953f, 0.172363f, -0.0351562f,
+0.12915f, -0.0776367f, 0.0859375f, -0.120117f, 0.0634766f, -0.181396f, 0.0410156f,
+-0.242676f, 0.0410156f, -0.319824f, 0.0410156f, -0.407715f, 0.0637207f, -0.472168f,
+0.0864258f, -0.536621f, 0.129639f, -0.578857f, 0.172852f, -0.621094f, 0.23584f, -0.641602f,
+0.298828f, -0.662109f, 0.379883f, -0.662109f, 0.413574f, -0.662109f, 0.443359f, -0.659912f,
+0.473145f, -0.657715f, 0.500244f, -0.654297f, 0.527344f, -0.650879f, 0.551758f, -0.646484f,
+0.576172f, -0.64209f, 0.599121f, -0.637207f, 0.602051f, -0.494141f, 0.569824f, -0.494141f,
+0.555176f, -0.579102f, 0.520996f, -0.600098f, 0.47583f, -0.611572f, 0.430664f, -0.623047f,
+0.383789f, -0.623047f, 0.32666f, -0.623047f, 0.281982f, -0.607422f, 0.237305f, -0.591797f,
+0.206543f, -0.556396f, 0.175781f, -0.520996f, 0.159424f, -0.463135f, 0.143066f, -0.405273f,
+0.143066f, -0.320801f, 0.143066f, -0.246582f, 0.15918f, -0.19165f, 0.175293f, -0.136719f,
+0.205566f, -0.100342f, 0.23584f, -0.0639648f, 0.279541f, -0.0458984f, 0.323242f,
+-0.027832f, 0.378906f, -0.027832f, 0.40918f, -0.027832f, 0.436768f, -0.0317383f,
+0.464355f, -0.0356445f, 0.488037f, -0.0424805f, 0.511719f, -0.0493164f, 0.530518f,
+-0.0583496f, 0.549316f, -0.0673828f, 0.562012f, -0.0771484f, 0.580078f, -0.174805f,
+0.611816f, -0.174805f, 0.608887f, -0.0209961f, 0.588379f, -0.0151367f, 0.562012f,
+-0.00952148f, 0.535645f, -0.00390625f, 0.505859f, 0.000488281f, 0.476074f, 0.00488281f,
+0.443359f, 0.00732422f, 0.410645f, 0.00976562f, 0.37793f, 0.00976562f, 0.580078f,
+-0.332031f, 0.580078f, -0.404297f, 0.560059f, -0.456787f, 0.540039f, -0.509277f,
+0.502686f, -0.543457f, 0.465332f, -0.577637f, 0.412598f, -0.594238f, 0.359863f, -0.61084f,
+0.294922f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.0458984f, 0.22168f, -0.0449219f,
+0.23877f, -0.0444336f, 0.255859f, -0.0439453f, 0.273926f, -0.0432129f, 0.291992f,
+-0.0424805f, 0.310303f, -0.0422363f, 0.328613f, -0.0419922f, 0.346191f, -0.0419922f,
+0.408203f, -0.0419922f, 0.452393f, -0.0603027f, 0.496582f, -0.0786133f, 0.524902f,
+-0.11499f, 0.553223f, -0.151367f, 0.56665f, -0.205566f, 0.580078f, -0.259766f, 0.580078f,
+-0.332031f, 0.326172f, -0.654785f, 0.407715f, -0.654785f, 0.473389f, -0.637695f,
+0.539062f, -0.620605f, 0.585449f, -0.582031f, 0.631836f, -0.543457f, 0.656982f, -0.481934f,
+0.682129f, -0.42041f, 0.682129f, -0.331055f, 0.682129f, -0.250977f, 0.661621f, -0.188965f,
+0.641113f, -0.126953f, 0.599609f, -0.0844727f, 0.558105f, -0.0419922f, 0.494873f,
+-0.0200195f, 0.431641f, 0.00195312f, 0.346191f, 0.00195312f, 0.318359f, 0.00195312f,
+0.2854f, 0.00170898f, 0.252441f, 0.00146484f, 0.220703f, 0.000976562f, 0.188965f,
+0.000488281f, 0.1604f, 0.000244141f, 0.131836f, 0, 0.112793f, 0, 0.0288086f, 0, 0.0288086f,
+-0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f,
+0.0288086f, -0.654785f, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f,
+-0.616211f, 0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.52002f, -0.654785f,
+0.52002f, -0.498047f, 0.487793f, -0.498047f, 0.472168f, -0.604004f, 0.456543f, -0.605957f,
+0.434326f, -0.607422f, 0.412109f, -0.608887f, 0.38916f, -0.609619f, 0.366211f, -0.610352f,
+0.345703f, -0.610596f, 0.325195f, -0.61084f, 0.313965f, -0.61084f, 0.207031f, -0.61084f,
+0.207031f, -0.35498f, 0.383789f, -0.35498f, 0.398926f, -0.433105f, 0.430176f, -0.433105f,
+0.430176f, -0.231934f, 0.398926f, -0.231934f, 0.383789f, -0.311035f, 0.207031f, -0.311035f,
+0.207031f, -0.0439453f, 0.335938f, -0.0439453f, 0.366211f, -0.0439453f, 0.393066f,
+-0.0446777f, 0.419922f, -0.0454102f, 0.441406f, -0.0463867f, 0.462891f, -0.0473633f,
+0.478271f, -0.0488281f, 0.493652f, -0.050293f, 0.500977f, -0.0517578f, 0.528809f,
+-0.172852f, 0.561035f, -0.172852f, 0.551758f, 0, 0.0288086f, 0, 0.207031f, -0.293945f,
+0.207031f, -0.0390625f, 0.315918f, -0.0258789f, 0.315918f, 0, 0.0351562f, 0, 0.0351562f,
+-0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f,
+0.0288086f, -0.654785f, 0.52002f, -0.654785f, 0.52002f, -0.498047f, 0.487793f, -0.498047f,
+0.472168f, -0.604004f, 0.456543f, -0.605957f, 0.434326f, -0.607422f, 0.412109f, -0.608887f,
+0.38916f, -0.609619f, 0.366211f, -0.610352f, 0.345703f, -0.610596f, 0.325195f, -0.61084f,
+0.313965f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.337891f, 0.399902f, -0.337891f,
+0.415039f, -0.416016f, 0.444824f, -0.416016f, 0.444824f, -0.214844f, 0.415039f, -0.214844f,
+0.399902f, -0.293945f, 0.626953f, -0.0341797f, 0.570312f, -0.015625f, 0.509277f,
+-0.00292969f, 0.448242f, 0.00976562f, 0.37793f, 0.00976562f, 0.300293f, 0.00976562f,
+0.238037f, -0.0114746f, 0.175781f, -0.0327148f, 0.131836f, -0.0744629f, 0.0878906f,
+-0.116211f, 0.0644531f, -0.177734f, 0.0410156f, -0.239258f, 0.0410156f, -0.319824f,
+0.0410156f, -0.491699f, 0.127197f, -0.576904f, 0.213379f, -0.662109f, 0.379883f,
+-0.662109f, 0.443359f, -0.662109f, 0.500732f, -0.654297f, 0.558105f, -0.646484f,
+0.609863f, -0.632812f, 0.609863f, -0.492188f, 0.577148f, -0.492188f, 0.563965f, -0.573242f,
+0.530273f, -0.597168f, 0.483154f, -0.610107f, 0.436035f, -0.623047f, 0.383789f, -0.623047f,
+0.32666f, -0.623047f, 0.281982f, -0.607178f, 0.237305f, -0.591309f, 0.206543f, -0.555664f,
+0.175781f, -0.52002f, 0.159424f, -0.462158f, 0.143066f, -0.404297f, 0.143066f, -0.320801f,
+0.143066f, -0.236328f, 0.162109f, -0.179932f, 0.181152f, -0.123535f, 0.213623f, -0.0898438f,
+0.246094f, -0.0561523f, 0.288818f, -0.0419922f, 0.331543f, -0.027832f, 0.378906f,
+-0.027832f, 0.402832f, -0.027832f, 0.426514f, -0.0310059f, 0.450195f, -0.0341797f,
+0.470947f, -0.0390625f, 0.491699f, -0.0439453f, 0.507812f, -0.0498047f, 0.523926f,
+-0.0556641f, 0.533203f, -0.0610352f, 0.533203f, -0.24707f, 0.449219f, -0.259766f,
+0.449219f, -0.286133f, 0.690918f, -0.286133f, 0.690918f, -0.259766f, 0.626953f, -0.24707f,
+0.0288086f, 0, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f,
+0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.291016f, -0.654785f, 0.291016f,
+-0.628906f, 0.207031f, -0.616211f, 0.207031f, -0.358887f, 0.515137f, -0.358887f,
+0.515137f, -0.616211f, 0.431152f, -0.628906f, 0.431152f, -0.654785f, 0.692871f, -0.654785f,
+0.692871f, -0.628906f, 0.608887f, -0.616211f, 0.608887f, -0.0390625f, 0.692871f,
+-0.0258789f, 0.692871f, 0, 0.431152f, 0, 0.431152f, -0.0258789f, 0.515137f, -0.0390625f,
+0.515137f, -0.314941f, 0.207031f, -0.314941f, 0.207031f, -0.0390625f, 0.291016f,
+-0.0258789f, 0.291016f, 0, 0.213867f, -0.0390625f, 0.297852f, -0.0258789f, 0.297852f,
+0, 0.0361328f, 0, 0.0361328f, -0.0258789f, 0.120117f, -0.0390625f, 0.120117f, -0.616211f,
+0.0361328f, -0.628906f, 0.0361328f, -0.654785f, 0.297852f, -0.654785f, 0.297852f,
+-0.628906f, 0.213867f, -0.616211f, 0.200195f, -0.616211f, 0.116211f, -0.628906f,
+0.116211f, -0.654785f, 0.368164f, -0.654785f, 0.368164f, -0.628906f, 0.293945f, -0.616211f,
+0.293945f, -0.210938f, 0.293945f, -0.166504f, 0.285645f, -0.132812f, 0.277344f, -0.0991211f,
+0.263672f, -0.074707f, 0.25f, -0.050293f, 0.232178f, -0.0339355f, 0.214355f, -0.0175781f,
+0.195312f, -0.0078125f, 0.17627f, 0.00195312f, 0.157227f, 0.00585938f, 0.138184f,
+0.00976562f, 0.12207f, 0.00976562f, 0.090332f, 0.00976562f, 0.0646973f, 0.00585938f,
+0.0390625f, 0.00195312f, 0.0209961f, -0.00488281f, 0.0209961f, -0.124023f, 0.0532227f,
+-0.124023f, 0.0678711f, -0.0561523f, 0.0771484f, -0.0449219f, 0.0942383f, -0.0385742f,
+0.111328f, -0.0322266f, 0.131836f, -0.0322266f, 0.200195f, -0.0322266f, 0.200195f,
+-0.125f, 0.660645f, -0.654785f, 0.660645f, -0.628906f, 0.584961f, -0.616211f, 0.361328f,
+-0.397461f, 0.641113f, -0.0390625f, 0.711914f, -0.0258789f, 0.711914f, 0, 0.551758f,
+0, 0.29541f, -0.331055f, 0.207031f, -0.260254f, 0.207031f, -0.0390625f, 0.300781f,
+-0.0258789f, 0.300781f, 0, 0.0288086f, 0, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f,
+0.112793f, -0.616211f, 0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.291016f,
+-0.654785f, 0.291016f, -0.628906f, 0.207031f, -0.616211f, 0.207031f, -0.307617f,
+0.520508f, -0.616211f, 0.455566f, -0.628906f, 0.455566f, -0.654785f, 0.308105f, -0.628906f,
+0.207031f, -0.616211f, 0.207031f, -0.0419922f, 0.335938f, -0.0419922f, 0.396973f,
+-0.0419922f, 0.435547f, -0.0454102f, 0.474121f, -0.0488281f, 0.48877f, -0.0517578f,
+0.519043f, -0.187988f, 0.550781f, -0.187988f, 0.541992f, 0, 0.0288086f, 0, 0.0288086f,
+-0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f,
+0.0288086f, -0.654785f, 0.308105f, -0.654785f, 0.420898f, 0, 0.403809f, 0, 0.164062f,
+-0.562988f, 0.164062f, -0.0390625f, 0.251953f, -0.0258789f, 0.251953f, 0, 0.0288086f,
+0, 0.0288086f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f,
+-0.628906f, 0.0288086f, -0.654785f, 0.227051f, -0.654785f, 0.439941f, -0.156738f,
+0.672363f, -0.654785f, 0.859863f, -0.654785f, 0.859863f, -0.628906f, 0.775879f, -0.616211f,
+0.775879f, -0.0390625f, 0.859863f, -0.0258789f, 0.859863f, 0, 0.594238f, 0, 0.594238f,
+-0.0258789f, 0.682129f, -0.0390625f, 0.682129f, -0.562988f, 0.563965f, -0.616211f,
+0.476074f, -0.628906f, 0.476074f, -0.654785f, 0.699219f, -0.654785f, 0.699219f, -0.628906f,
+0.615234f, -0.616211f, 0.615234f, 0, 0.567871f, 0, 0.164062f, -0.588867f, 0.164062f,
+-0.0390625f, 0.251953f, -0.0258789f, 0.251953f, 0, 0.0288086f, 0, 0.0288086f, -0.0258789f,
+0.112793f, -0.0390625f, 0.112793f, -0.616211f, 0.0288086f, -0.628906f, 0.0288086f,
+-0.654785f, 0.227051f, -0.654785f, 0.563965f, -0.169922f, 0.143066f, -0.328125f,
+0.143066f, -0.259766f, 0.15332f, -0.20459f, 0.163574f, -0.149414f, 0.188477f, -0.110352f,
+0.213379f, -0.0712891f, 0.255371f, -0.0500488f, 0.297363f, -0.0288086f, 0.36084f,
+-0.0288086f, 0.424316f, -0.0288086f, 0.466309f, -0.0500488f, 0.508301f, -0.0712891f,
+0.533447f, -0.110352f, 0.558594f, -0.149414f, 0.568848f, -0.20459f, 0.579102f, -0.259766f,
+0.579102f, -0.328125f, 0.579102f, -0.395996f, 0.568848f, -0.450684f, 0.558594f, -0.505371f,
+0.533447f, -0.543701f, 0.508301f, -0.582031f, 0.466309f, -0.602539f, 0.424316f, -0.623047f,
+0.36084f, -0.623047f, 0.297363f, -0.623047f, 0.255371f, -0.602539f, 0.213379f, -0.582031f,
+0.188477f, -0.543701f, 0.163574f, -0.505371f, 0.15332f, -0.450684f, 0.143066f, -0.395996f,
+0.143066f, -0.328125f, 0.0410156f, -0.328125f, 0.0410156f, -0.415039f, 0.0622559f,
+-0.478027f, 0.0834961f, -0.541016f, 0.124023f, -0.582031f, 0.164551f, -0.623047f,
+0.224121f, -0.642578f, 0.283691f, -0.662109f, 0.36084f, -0.662109f, 0.435547f, -0.662109f,
+0.494873f, -0.642578f, 0.554199f, -0.623047f, 0.595703f, -0.582031f, 0.637207f, -0.541016f,
+0.65918f, -0.478027f, 0.681152f, -0.415039f, 0.681152f, -0.328125f, 0.681152f, -0.241211f,
+0.65918f, -0.17749f, 0.637207f, -0.11377f, 0.595703f, -0.0722656f, 0.554199f, -0.0307617f,
+0.494873f, -0.010498f, 0.435547f, 0.00976562f, 0.36084f, 0.00976562f, 0.286133f,
+0.00976562f, 0.227051f, -0.010498f, 0.167969f, -0.0307617f, 0.126465f, -0.0722656f,
+0.0849609f, -0.11377f, 0.0629883f, -0.17749f, 0.0410156f, -0.241211f, 0.0410156f,
+-0.328125f, 0.418945f, -0.460938f, 0.418945f, -0.5f, 0.4104f, -0.52832f, 0.401855f,
+-0.556641f, 0.382568f, -0.574951f, 0.363281f, -0.593262f, 0.332031f, -0.602051f,
+0.300781f, -0.61084f, 0.254883f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.300781f,
+0.257812f, -0.300781f, 0.303711f, -0.300781f, 0.334717f, -0.311768f, 0.365723f, -0.322754f,
+0.384521f, -0.343262f, 0.40332f, -0.36377f, 0.411133f, -0.393555f, 0.418945f, -0.42334f,
+0.418945f, -0.460938f, 0.207031f, -0.256836f, 0.207031f, -0.0390625f, 0.311035f,
+-0.0258789f, 0.311035f, 0, 0.0351562f, 0, 0.0351562f, -0.0258789f, 0.112793f, -0.0390625f,
+0.112793f, -0.616211f, 0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.275879f,
+-0.654785f, 0.344727f, -0.654785f, 0.390869f, -0.639893f, 0.437012f, -0.625f, 0.464844f,
+-0.598877f, 0.492676f, -0.572754f, 0.504395f, -0.537598f, 0.516113f, -0.502441f,
+0.516113f, -0.461914f, 0.516113f, -0.421875f, 0.504639f, -0.384766f, 0.493164f, -0.347656f,
+0.466064f, -0.319336f, 0.438965f, -0.291016f, 0.393555f, -0.273926f, 0.348145f, -0.256836f,
+0.280762f, -0.256836f, 0.143066f, -0.327148f, 0.143066f, -0.258789f, 0.15332f, -0.203613f,
+0.163574f, -0.148438f, 0.188477f, -0.109619f, 0.213379f, -0.0708008f, 0.255371f,
+-0.0498047f, 0.297363f, -0.0288086f, 0.36084f, -0.0288086f, 0.424316f, -0.0288086f,
+0.466309f, -0.0498047f, 0.508301f, -0.0708008f, 0.533447f, -0.109619f, 0.558594f,
+-0.148438f, 0.568848f, -0.203613f, 0.579102f, -0.258789f, 0.579102f, -0.327148f,
+0.579102f, -0.39502f, 0.568848f, -0.449951f, 0.558594f, -0.504883f, 0.533447f, -0.543213f,
+0.508301f, -0.581543f, 0.466309f, -0.602295f, 0.424316f, -0.623047f, 0.36084f, -0.623047f,
+0.297363f, -0.623047f, 0.255371f, -0.602295f, 0.213379f, -0.581543f, 0.188477f, -0.543213f,
+0.163574f, -0.504883f, 0.15332f, -0.449951f, 0.143066f, -0.39502f, 0.143066f, -0.327148f,
+0.0410156f, -0.327148f, 0.0410156f, -0.414062f, 0.0622559f, -0.477295f, 0.0834961f,
+-0.540527f, 0.124023f, -0.581543f, 0.164551f, -0.622559f, 0.224121f, -0.642334f,
+0.283691f, -0.662109f, 0.36084f, -0.662109f, 0.435547f, -0.662109f, 0.494873f, -0.642334f,
+0.554199f, -0.622559f, 0.595703f, -0.581543f, 0.637207f, -0.540527f, 0.65918f, -0.477295f,
+0.681152f, -0.414062f, 0.681152f, -0.327148f, 0.681152f, -0.264648f, 0.669678f, -0.2146f,
+0.658203f, -0.164551f, 0.635986f, -0.126221f, 0.61377f, -0.0878906f, 0.581543f, -0.0605469f,
+0.549316f, -0.0332031f, 0.507812f, -0.0161133f, 0.532227f, 0.0141602f, 0.553223f,
+0.0405273f, 0.571289f, 0.0595703f, 0.589355f, 0.0786133f, 0.605225f, 0.0905762f,
+0.621094f, 0.102539f, 0.635742f, 0.108154f, 0.650391f, 0.11377f, 0.665039f, 0.11377f,
+0.668457f, 0.11377f, 0.674316f, 0.113525f, 0.680176f, 0.113281f, 0.686035f, 0.113037f,
+0.691895f, 0.112793f, 0.697266f, 0.112549f, 0.702637f, 0.112305f, 0.705078f, 0.111816f,
+0.705078f, 0.144043f, 0.699707f, 0.146484f, 0.688965f, 0.149414f, 0.678223f, 0.152344f,
+0.664795f, 0.155273f, 0.651367f, 0.158203f, 0.636719f, 0.160156f, 0.62207f, 0.162109f,
+0.608887f, 0.162109f, 0.581055f, 0.162109f, 0.558838f, 0.155029f, 0.536621f, 0.147949f,
+0.515381f, 0.132568f, 0.494141f, 0.117188f, 0.471924f, 0.0925293f, 0.449707f, 0.0678711f,
+0.421875f, 0.0332031f, 0.401855f, 0.0078125f, 0.393066f, 0.00878906f, 0.383057f,
+0.00927734f, 0.373047f, 0.00976562f, 0.36084f, 0.00976562f, 0.286133f, 0.00976562f,
+0.227051f, -0.0102539f, 0.167969f, -0.0302734f, 0.126465f, -0.0717773f, 0.0849609f,
+-0.113281f, 0.0629883f, -0.176758f, 0.0410156f, -0.240234f, 0.0410156f, -0.327148f,
+0.207031f, -0.287109f, 0.207031f, -0.0390625f, 0.306152f, -0.0258789f, 0.306152f,
+0, 0.0351562f, 0, 0.0351562f, -0.0258789f, 0.112793f, -0.0390625f, 0.112793f, -0.616211f,
+0.0288086f, -0.628906f, 0.0288086f, -0.654785f, 0.311523f, -0.654785f, 0.380371f,
+-0.654785f, 0.426514f, -0.642578f, 0.472656f, -0.630371f, 0.500488f, -0.607666f,
+0.52832f, -0.584961f, 0.540039f, -0.552734f, 0.551758f, -0.520508f, 0.551758f, -0.47998f,
+0.551758f, -0.442383f, 0.540771f, -0.412842f, 0.529785f, -0.383301f, 0.51123f, -0.36084f,
+0.492676f, -0.338379f, 0.468262f, -0.323486f, 0.443848f, -0.308594f, 0.41748f, -0.300781f,
+0.594727f, -0.0390625f, 0.665527f, -0.0258789f, 0.665527f, 0, 0.508789f, 0, 0.324707f,
+-0.287109f, 0.45459f, -0.473145f, 0.45459f, -0.512207f, 0.445312f, -0.538574f, 0.436035f,
+-0.564941f, 0.41626f, -0.581055f, 0.396484f, -0.597168f, 0.365479f, -0.604004f, 0.334473f,
+-0.61084f, 0.290527f, -0.61084f, 0.207031f, -0.61084f, 0.207031f, -0.331055f, 0.293457f,
+-0.331055f, 0.338379f, -0.331055f, 0.369141f, -0.339111f, 0.399902f, -0.347168f,
+0.418945f, -0.364502f, 0.437988f, -0.381836f, 0.446289f, -0.408691f, 0.45459f, -0.435547f,
+0.45459f, -0.473145f, 0.0678711f, -0.17627f, 0.0996094f, -0.17627f, 0.116699f, -0.0878906f,
+0.125977f, -0.0761719f, 0.142578f, -0.0656738f, 0.15918f, -0.0551758f, 0.179443f,
+-0.0471191f, 0.199707f, -0.0390625f, 0.222168f, -0.0344238f, 0.244629f, -0.0297852f,
+0.266113f, -0.0297852f, 0.303223f, -0.0297852f, 0.330566f, -0.0397949f, 0.35791f,
+-0.0498047f, 0.375732f, -0.0673828f, 0.393555f, -0.0849609f, 0.402344f, -0.108887f,
+0.411133f, -0.132812f, 0.411133f, -0.161133f, 0.411133f, -0.196289f, 0.39624f, -0.219238f,
+0.381348f, -0.242188f, 0.357178f, -0.258057f, 0.333008f, -0.273926f, 0.302246f, -0.284912f,
+0.271484f, -0.295898f, 0.239014f, -0.307129f, 0.206543f, -0.318359f, 0.175781f, -0.332031f,
+0.14502f, -0.345703f, 0.12085f, -0.366699f, 0.0966797f, -0.387695f, 0.0817871f, -0.418701f,
+0.0668945f, -0.449707f, 0.0668945f, -0.495117f, 0.0668945f, -0.533203f, 0.081543f,
+-0.564209f, 0.0961914f, -0.595215f, 0.124512f, -0.616943f, 0.152832f, -0.638672f,
+0.194092f, -0.650391f, 0.235352f, -0.662109f, 0.288086f, -0.662109f, 0.336426f, -0.662109f,
+0.379883f, -0.655762f, 0.42334f, -0.649414f, 0.459961f, -0.641113f, 0.459961f, -0.504883f,
+0.428223f, -0.504883f, 0.411133f, -0.584961f, 0.389648f, -0.600586f, 0.358398f, -0.61084f,
+0.327148f, -0.621094f, 0.288086f, -0.621094f, 0.251953f, -0.621094f, 0.22583f, -0.613281f,
+0.199707f, -0.605469f, 0.182617f, -0.592041f, 0.165527f, -0.578613f, 0.157227f, -0.560303f,
+0.148926f, -0.541992f, 0.148926f, -0.520996f, 0.148926f, -0.489258f, 0.163818f, -0.468262f,
+0.178711f, -0.447266f, 0.202881f, -0.432373f, 0.227051f, -0.41748f, 0.258057f, -0.406738f,
+0.289062f, -0.395996f, 0.321533f, -0.384521f, 0.354004f, -0.373047f, 0.38501f, -0.358643f,
+0.416016f, -0.344238f, 0.440186f, -0.322021f, 0.464355f, -0.299805f, 0.479248f, -0.267822f,
+0.494141f, -0.23584f, 0.494141f, -0.188965f, 0.494141f, -0.143555f, 0.480225f, -0.106934f,
+0.466309f, -0.0703125f, 0.438232f, -0.0441895f, 0.410156f, -0.0180664f, 0.36792f,
+-0.00415039f, 0.325684f, 0.00976562f, 0.268555f, 0.00976562f, 0.238281f, 0.00976562f,
+0.208984f, 0.00683594f, 0.179688f, 0.00390625f, 0.153809f, -0.000976562f, 0.12793f,
+-0.00585938f, 0.105957f, -0.012207f, 0.0839844f, -0.0185547f, 0.0678711f, -0.0249023f,
+0.153809f, 0, 0.153809f, -0.0258789f, 0.257812f, -0.0390625f, 0.257812f, -0.612793f,
+0.23291f, -0.612793f, 0.168945f, -0.612793f, 0.125488f, -0.609863f, 0.0820312f, -0.606934f,
+0.0639648f, -0.603027f, 0.0507812f, -0.500977f, 0.0180664f, -0.500977f, 0.0180664f,
+-0.654785f, 0.594238f, -0.654785f, 0.594238f, -0.500977f, 0.561035f, -0.500977f,
+0.547852f, -0.603027f, 0.539062f, -0.60498f, 0.521729f, -0.606445f, 0.504395f, -0.60791f,
+0.481445f, -0.609131f, 0.458496f, -0.610352f, 0.431396f, -0.611084f, 0.404297f, -0.611816f,
+0.375977f, -0.611816f, 0.352051f, -0.611816f, 0.352051f, -0.0390625f, 0.456055f,
+-0.0258789f, 0.456055f, 0, 0.565918f, -0.616211f, 0.478027f, -0.628906f, 0.478027f,
+-0.654785f, 0.701172f, -0.654785f, 0.701172f, -0.628906f, 0.617188f, -0.616211f,
+0.617188f, -0.225098f, 0.617188f, -0.180176f, 0.605957f, -0.137939f, 0.594727f, -0.0957031f,
+0.566406f, -0.0629883f, 0.538086f, -0.0302734f, 0.489014f, -0.0102539f, 0.439941f,
+0.00976562f, 0.364746f, 0.00976562f, 0.234375f, 0.00976562f, 0.169678f, -0.0490723f,
+0.10498f, -0.10791f, 0.10498f, -0.21582f, 0.10498f, -0.616211f, 0.0209961f, -0.628906f,
+0.0209961f, -0.654785f, 0.282715f, -0.654785f, 0.282715f, -0.628906f, 0.19873f, -0.616211f,
+0.19873f, -0.223145f, 0.19873f, -0.183105f, 0.208252f, -0.150146f, 0.217773f, -0.117188f,
+0.238525f, -0.09375f, 0.259277f, -0.0703125f, 0.292236f, -0.0576172f, 0.325195f,
+-0.0449219f, 0.37207f, -0.0449219f, 0.42334f, -0.0449219f, 0.459961f, -0.0576172f,
+0.496582f, -0.0703125f, 0.520264f, -0.0932617f, 0.543945f, -0.116211f, 0.554932f,
+-0.148926f, 0.565918f, -0.181641f, 0.565918f, -0.221191f, 0.710938f, -0.654785f,
+0.710938f, -0.628906f, 0.63916f, -0.616211f, 0.375977f, 0.0151367f, 0.351074f, 0.0151367f,
+0.0849609f, -0.616211f, 0.0112305f, -0.628906f, 0.0112305f, -0.654785f, 0.275879f,
+-0.654785f, 0.275879f, -0.628906f, 0.187988f, -0.616211f, 0.38623f, -0.134277f, 0.583984f,
+-0.616211f, 0.498047f, -0.628906f, 0.498047f, -0.654785f, 0.884766f, -0.616211f,
+0.670898f, 0.0151367f, 0.64502f, 0.0151367f, 0.475098f, -0.436035f, 0.300781f, 0.0151367f,
+0.274902f, 0.0151367f, 0.0581055f, -0.616211f, 0.000976562f, -0.628906f, 0.000976562f,
+-0.654785f, 0.250977f, -0.654785f, 0.250977f, -0.628906f, 0.154785f, -0.616211f,
+0.310547f, -0.154785f, 0.486816f, -0.608887f, 0.508789f, -0.608887f, 0.678711f, -0.154785f,
+0.827148f, -0.616211f, 0.725098f, -0.628906f, 0.725098f, -0.654785f, 0.941895f, -0.654785f,
+0.941895f, -0.628906f, 0.154785f, -0.0390625f, 0.23584f, -0.0258789f, 0.23584f, 0,
+0.0219727f, 0, 0.0219727f, -0.0258789f, 0.0942383f, -0.0390625f, 0.316895f, -0.334961f,
+0.126953f, -0.616211f, 0.0532227f, -0.628906f, 0.0532227f, -0.654785f, 0.323242f,
+-0.654785f, 0.323242f, -0.628906f, 0.240234f, -0.616211f, 0.375977f, -0.414062f,
+0.527832f, -0.616211f, 0.446777f, -0.628906f, 0.446777f, -0.654785f, 0.661133f, -0.654785f,
+0.661133f, -0.628906f, 0.588867f, -0.616211f, 0.404785f, -0.371094f, 0.629883f, -0.0390625f,
+0.704102f, -0.0258789f, 0.704102f, 0, 0.434082f, 0, 0.434082f, -0.0258789f, 0.51709f,
+-0.0390625f, 0.345215f, -0.292969f, 0.40918f, -0.257812f, 0.40918f, -0.0390625f,
+0.513184f, -0.0258789f, 0.513184f, 0, 0.210938f, 0, 0.210938f, -0.0258789f, 0.314941f,
+-0.0390625f, 0.314941f, -0.254883f, 0.0849609f, -0.616211f, 0.0112305f, -0.628906f,
+0.0112305f, -0.654785f, 0.288086f, -0.654785f, 0.288086f, -0.628906f, 0.200195f,
+-0.616211f, 0.388184f, -0.313965f, 0.566895f, -0.616211f, 0.483887f, -0.628906f,
+0.483887f, -0.654785f, 0.696777f, -0.654785f, 0.696777f, -0.628906f, 0.625f, -0.616211f,
+0.0478516f, -0.0458984f, 0.415039f, -0.612793f, 0.292969f, -0.612793f, 0.229004f,
+-0.612793f, 0.187012f, -0.609863f, 0.14502f, -0.606934f, 0.126953f, -0.603027f, 0.111816f,
+-0.5f, 0.078125f, -0.5f, 0.078125f, -0.654785f, 0.523926f, -0.654785f, 0.523926f,
+-0.612793f, 0.154297f, -0.0410156f, 0.295898f, -0.0410156f, 0.327637f, -0.0410156f,
+0.359131f, -0.0427246f, 0.390625f, -0.0444336f, 0.41748f, -0.0471191f, 0.444336f,
+-0.0498047f, 0.464355f, -0.0524902f, 0.484375f, -0.0551758f, 0.493164f, -0.0571289f,
+0.521973f, -0.182129f, 0.556152f, -0.182129f, 0.542969f, 0, 0.0478516f, 0, 0.0742188f,
+0.133789f, 0.0742188f, -0.693848f, 0.296875f, -0.693848f, 0.296875f, -0.670898f,
+0.151855f, -0.650879f, 0.151855f, 0.0908203f, 0.296875f, 0.11084f, 0.296875f, 0.133789f,
+0, -0.65918f, 0.0478516f, -0.65918f, 0.277832f, 0.00976562f, 0.229004f, 0.00976562f,
+0.0361328f, 0.133789f, 0.0361328f, 0.11084f, 0.181152f, 0.0908203f, 0.181152f, -0.650879f,
+0.0361328f, -0.670898f, 0.0361328f, -0.693848f, 0.258789f, -0.693848f, 0.258789f,
+0.133789f, 0.223145f, -0.654785f, 0.24707f, -0.654785f, 0.456055f, -0.189941f, 0.405762f,
+-0.189941f, 0.234863f, -0.584961f, 0.0639648f, -0.189941f, 0.0141602f, -0.189941f,
+-0.0078125f, 0.128906f, -0.0078125f, 0.0791016f, 0.507812f, 0.0791016f, 0.507812f,
+0.128906f, 0.230957f, -0.546387f, 0.0581055f, -0.677246f, 0.0581055f, -0.695312f,
+0.162109f, -0.695312f, 0.257812f, -0.5625f, 0.257812f, -0.546387f, 0.227051f, -0.469238f,
+0.258301f, -0.469238f, 0.285156f, -0.463379f, 0.312012f, -0.45752f, 0.331543f, -0.443359f,
+0.351074f, -0.429199f, 0.362061f, -0.405029f, 0.373047f, -0.380859f, 0.373047f, -0.344238f,
+0.373047f, -0.0341797f, 0.430176f, -0.0219727f, 0.430176f, 0, 0.304199f, 0, 0.294922f,
+-0.0458984f, 0.287598f, -0.0385742f, 0.275146f, -0.0288086f, 0.262695f, -0.019043f,
+0.245117f, -0.010498f, 0.227539f, -0.00195312f, 0.204346f, 0.00390625f, 0.181152f,
+0.00976562f, 0.152832f, 0.00976562f, 0.119629f, 0.00976562f, 0.0969238f, -0.000488281f,
+0.0742188f, -0.0107422f, 0.0605469f, -0.0290527f, 0.046875f, -0.0473633f, 0.0410156f,
+-0.0725098f, 0.0351562f, -0.0976562f, 0.0351562f, -0.126953f, 0.0351562f, -0.157227f,
+0.0424805f, -0.179443f, 0.0498047f, -0.20166f, 0.0629883f, -0.216797f, 0.0761719f,
+-0.231934f, 0.0939941f, -0.241455f, 0.111816f, -0.250977f, 0.132568f, -0.256348f,
+0.15332f, -0.261719f, 0.176514f, -0.263672f, 0.199707f, -0.265625f, 0.223145f, -0.266113f,
+0.291992f, -0.268066f, 0.291992f, -0.339844f, 0.291992f, -0.360352f, 0.288574f, -0.377197f,
+0.285156f, -0.394043f, 0.2771f, -0.40625f, 0.269043f, -0.418457f, 0.255371f, -0.425293f,
+0.241699f, -0.432129f, 0.221191f, -0.432129f, 0.197754f, -0.432129f, 0.173828f, -0.425781f,
+0.149902f, -0.419434f, 0.131836f, -0.40918f, 0.115234f, -0.352051f, 0.0878906f, -0.352051f,
+0.0878906f, -0.452148f, 0.119629f, -0.458984f, 0.153564f, -0.464111f, 0.1875f, -0.469238f,
+0.227051f, -0.469238f, 0.291992f, -0.233887f, 0.228027f, -0.231934f, 0.199219f, -0.230957f,
+0.178223f, -0.226318f, 0.157227f, -0.22168f, 0.143555f, -0.210449f, 0.129883f, -0.199219f,
+0.123047f, -0.179688f, 0.116211f, -0.160156f, 0.116211f, -0.129883f, 0.116211f, -0.0439453f,
+0.186035f, -0.0439453f, 0.219238f, -0.0439453f, 0.243408f, -0.0515137f, 0.267578f,
+-0.059082f, 0.291992f, -0.0708008f, 0.374023f, -0.242188f, 0.374023f, -0.291992f,
+0.36499f, -0.325928f, 0.355957f, -0.359863f, 0.339111f, -0.380859f, 0.322266f, -0.401855f,
+0.298584f, -0.410889f, 0.274902f, -0.419922f, 0.246094f, -0.419922f, 0.234375f, -0.419922f,
+0.220947f, -0.418945f, 0.20752f, -0.417969f, 0.194336f, -0.415771f, 0.181152f, -0.413574f,
+0.168945f, -0.410645f, 0.156738f, -0.407715f, 0.147949f, -0.403809f, 0.147949f, -0.0400391f,
+0.168457f, -0.0361328f, 0.194824f, -0.0341797f, 0.221191f, -0.0322266f, 0.246094f,
+-0.0322266f, 0.313477f, -0.0322266f, 0.34375f, -0.0849609f, 0.374023f, -0.137695f,
+0.374023f, -0.242188f, 0.0668945f, -0.660156f, 0, -0.671875f, 0, -0.693848f, 0.147949f,
+-0.693848f, 0.147949f, -0.529785f, 0.147949f, -0.520508f, 0.147705f, -0.508545f,
+0.147461f, -0.496582f, 0.147217f, -0.483643f, 0.146973f, -0.470703f, 0.14624f, -0.457764f,
+0.145508f, -0.444824f, 0.14502f, -0.433105f, 0.166992f, -0.450195f, 0.198486f, -0.460693f,
+0.22998f, -0.471191f, 0.268066f, -0.471191f, 0.361816f, -0.471191f, 0.411865f, -0.414307f,
+0.461914f, -0.357422f, 0.461914f, -0.242188f, 0.461914f, -0.184082f, 0.449219f, -0.137451f,
+0.436523f, -0.0908203f, 0.410156f, -0.0581055f, 0.383789f, -0.0253906f, 0.343506f,
+-0.0078125f, 0.303223f, 0.00976562f, 0.248047f, 0.00976562f, 0.224609f, 0.00976562f,
+0.200439f, 0.00708008f, 0.17627f, 0.00439453f, 0.152832f, 0, 0.129395f, -0.00439453f,
+0.107422f, -0.010498f, 0.0854492f, -0.0166016f, 0.0668945f, -0.0239258f, 0.413086f,
+-0.027832f, 0.400391f, -0.0185547f, 0.382812f, -0.0114746f, 0.365234f, -0.00439453f,
+0.345215f, 0.000244141f, 0.325195f, 0.00488281f, 0.303467f, 0.00732422f, 0.281738f,
+0.00976562f, 0.26123f, 0.00976562f, 0.20166f, 0.00976562f, 0.159424f, -0.0065918f,
+0.117188f, -0.0229492f, 0.090332f, -0.0541992f, 0.0634766f, -0.0854492f, 0.0507812f,
+-0.130615f, 0.0380859f, -0.175781f, 0.0380859f, -0.23291f, 0.0380859f, -0.29541f,
+0.0544434f, -0.340576f, 0.0708008f, -0.385742f, 0.100098f, -0.414795f, 0.129395f,
+-0.443848f, 0.169678f, -0.45752f, 0.209961f, -0.471191f, 0.257812f, -0.471191f, 0.297363f,
+-0.471191f, 0.334473f, -0.466553f, 0.371582f, -0.461914f, 0.401855f, -0.456055f,
+0.401855f, -0.328125f, 0.375f, -0.328125f, 0.354004f, -0.40918f, 0.335938f, -0.419434f,
+0.310303f, -0.425781f, 0.284668f, -0.432129f, 0.256836f, -0.432129f, 0.225098f, -0.432129f,
+0.200928f, -0.420654f, 0.176758f, -0.40918f, 0.159912f, -0.384766f, 0.143066f, -0.360352f,
+0.134521f, -0.322754f, 0.125977f, -0.285156f, 0.125977f, -0.23291f, 0.125977f, -0.188965f,
+0.133301f, -0.153564f, 0.140625f, -0.118164f, 0.15918f, -0.0932617f, 0.177734f, -0.0683594f,
+0.209229f, -0.0546875f, 0.240723f, -0.0410156f, 0.289062f, -0.0410156f, 0.305664f,
+-0.0410156f, 0.322998f, -0.0422363f, 0.340332f, -0.043457f, 0.356689f, -0.0456543f,
+0.373047f, -0.0478516f, 0.387451f, -0.0507812f, 0.401855f, -0.0537109f, 0.413086f,
+-0.0571289f, 0.353027f, -0.0341797f, 0.331543f, -0.0170898f, 0.299561f, -0.00366211f,
+0.267578f, 0.00976562f, 0.224121f, 0.00976562f, 0.0361328f, 0.00976562f, 0.0361328f,
+-0.225098f, 0.0361328f, -0.282227f, 0.048584f, -0.327881f, 0.0610352f, -0.373535f,
+0.0869141f, -0.405518f, 0.112793f, -0.4375f, 0.152344f, -0.454346f, 0.191895f, -0.471191f,
+0.246094f, -0.471191f, 0.270996f, -0.471191f, 0.299072f, -0.468262f, 0.327148f, -0.465332f,
+0.353027f, -0.459961f, 0.352051f, -0.465332f, 0.351562f, -0.47583f, 0.351074f, -0.486328f,
+0.35083f, -0.498291f, 0.350586f, -0.510254f, 0.350342f, -0.521973f, 0.350098f, -0.533691f,
+0.350098f, -0.541016f, 0.350098f, -0.660156f, 0.272949f, -0.671875f, 0.272949f, -0.693848f,
+0.431152f, -0.693848f, 0.431152f, -0.0341797f, 0.487793f, -0.0219727f, 0.487793f,
+0, 0.358887f, 0, 0.124023f, -0.225098f, 0.124023f, -0.173828f, 0.133057f, -0.138672f,
+0.14209f, -0.103516f, 0.158691f, -0.0817871f, 0.175293f, -0.0600586f, 0.19873f, -0.0505371f,
+0.222168f, -0.0410156f, 0.250977f, -0.0410156f, 0.280273f, -0.0410156f, 0.306152f,
+-0.0466309f, 0.332031f, -0.0522461f, 0.350098f, -0.0600586f, 0.350098f, -0.422852f,
+0.32959f, -0.426758f, 0.302734f, -0.428955f, 0.275879f, -0.431152f, 0.250977f, -0.431152f,
+0.186035f, -0.431152f, 0.155029f, -0.378906f, 0.124023f, -0.32666f, 0.124023f, -0.225098f,
+0.126953f, -0.230957f, 0.126953f, -0.222168f, 0.126953f, -0.186523f, 0.13208f, -0.153809f,
+0.137207f, -0.121094f, 0.152588f, -0.0959473f, 0.167969f, -0.0708008f, 0.195801f,
+-0.0559082f, 0.223633f, -0.0410156f, 0.269043f, -0.0410156f, 0.283691f, -0.0410156f,
+0.299805f, -0.0422363f, 0.315918f, -0.043457f, 0.332031f, -0.0454102f, 0.348145f,
+-0.0473633f, 0.363281f, -0.0498047f, 0.378418f, -0.0522461f, 0.391113f, -0.0551758f,
+0.391113f, -0.027832f, 0.379883f, -0.0205078f, 0.364014f, -0.013916f, 0.348145f,
+-0.00732422f, 0.329102f, -0.00195312f, 0.310059f, 0.00341797f, 0.288574f, 0.0065918f,
+0.26709f, 0.00976562f, 0.245117f, 0.00976562f, 0.187988f, 0.00976562f, 0.148682f,
+-0.00585938f, 0.109375f, -0.0214844f, 0.0849609f, -0.0522461f, 0.0605469f, -0.0830078f,
+0.0498047f, -0.128418f, 0.0390625f, -0.173828f, 0.0390625f, -0.23291f, 0.0390625f,
+-0.353027f, 0.0893555f, -0.412109f, 0.139648f, -0.471191f, 0.23291f, -0.471191f,
+0.269531f, -0.471191f, 0.301514f, -0.461426f, 0.333496f, -0.45166f, 0.357422f, -0.428711f,
+0.381348f, -0.405762f, 0.395264f, -0.367188f, 0.40918f, -0.328613f, 0.40918f, -0.270996f,
+0.40918f, -0.230957f, 0.23291f, -0.432129f, 0.205566f, -0.432129f, 0.185791f, -0.420654f,
+0.166016f, -0.40918f, 0.153076f, -0.388184f, 0.140137f, -0.367188f, 0.134033f, -0.337158f,
+0.12793f, -0.307129f, 0.12793f, -0.27002f, 0.324219f, -0.27002f, 0.324219f, -0.307129f,
+0.320068f, -0.337158f, 0.315918f, -0.367188f, 0.30542f, -0.388184f, 0.294922f, -0.40918f,
+0.277344f, -0.420654f, 0.259766f, -0.432129f, 0.23291f, -0.432129f, 0.109863f, -0.417969f,
+0.0307617f, -0.417969f, 0.0307617f, -0.441895f, 0.109863f, -0.460938f, 0.109863f,
+-0.493164f, 0.109863f, -0.544922f, 0.120361f, -0.584229f, 0.130859f, -0.623535f,
+0.150635f, -0.650146f, 0.17041f, -0.676758f, 0.198975f, -0.69043f, 0.227539f, -0.704102f,
+0.263184f, -0.704102f, 0.285156f, -0.704102f, 0.302246f, -0.701416f, 0.319336f, -0.69873f,
+0.333008f, -0.694824f, 0.333008f, -0.594727f, 0.309082f, -0.594727f, 0.287109f, -0.654785f,
+0.279297f, -0.659668f, 0.27002f, -0.662354f, 0.260742f, -0.665039f, 0.24707f, -0.665039f,
+0.22998f, -0.665039f, 0.219238f, -0.657471f, 0.208496f, -0.649902f, 0.202148f, -0.634033f,
+0.195801f, -0.618164f, 0.193359f, -0.59375f, 0.190918f, -0.569336f, 0.190918f, -0.535156f,
+0.190918f, -0.458984f, 0.312988f, -0.458984f, 0.312988f, -0.417969f, 0.190918f, -0.417969f,
+0.190918f, -0.0380859f, 0.290039f, -0.0219727f, 0.290039f, 0, 0.0419922f, 0, 0.0419922f,
+-0.0219727f, 0.109863f, -0.0380859f, 0.424805f, -0.313965f, 0.424805f, -0.234863f,
+0.377441f, -0.194336f, 0.330078f, -0.153809f, 0.241211f, -0.153809f, 0.221191f, -0.153809f,
+0.200928f, -0.156006f, 0.180664f, -0.158203f, 0.166992f, -0.161133f, 0.13623f, -0.097168f,
+0.137695f, -0.0888672f, 0.155273f, -0.081543f, 0.172852f, -0.0742188f, 0.199219f,
+-0.0742188f, 0.334961f, -0.0742188f, 0.40918f, -0.0742188f, 0.445068f, -0.0419922f,
+0.480957f, -0.00976562f, 0.480957f, 0.046875f, 0.480957f, 0.0786133f, 0.468018f,
+0.109131f, 0.455078f, 0.139648f, 0.426025f, 0.16333f, 0.396973f, 0.187012f, 0.350098f,
+0.201416f, 0.303223f, 0.21582f, 0.234863f, 0.21582f, 0.182617f, 0.21582f, 0.145996f,
+0.207275f, 0.109375f, 0.19873f, 0.0864258f, 0.183594f, 0.0634766f, 0.168457f, 0.0532227f,
+0.148438f, 0.0429688f, 0.128418f, 0.0429688f, 0.10498f, 0.0429688f, 0.0888672f, 0.0490723f,
+0.0744629f, 0.0551758f, 0.0600586f, 0.0661621f, 0.0466309f, 0.0771484f, 0.0332031f,
+0.0922852f, 0.0205078f, 0.107422f, 0.0078125f, 0.125f, -0.00488281f, 0.116211f, -0.0078125f,
+0.104736f, -0.0144043f, 0.0932617f, -0.0209961f, 0.0830078f, -0.03125f, 0.0727539f,
+-0.0415039f, 0.065918f, -0.0549316f, 0.059082f, -0.0683594f, 0.059082f, -0.0849609f,
+0.13623f, -0.171875f, 0.059082f, -0.208008f, 0.059082f, -0.313965f, 0.059082f, -0.352539f,
+0.0717773f, -0.38208f, 0.0844727f, -0.411621f, 0.108154f, -0.431396f, 0.131836f,
+-0.451172f, 0.166504f, -0.461182f, 0.201172f, -0.471191f, 0.245117f, -0.471191f,
+0.258789f, -0.471191f, 0.272949f, -0.469727f, 0.287109f, -0.468262f, 0.299561f, -0.466553f,
+0.312012f, -0.464844f, 0.321289f, -0.462646f, 0.330566f, -0.460449f, 0.334961f, -0.458984f,
+0.442871f, -0.513184f, 0.459961f, -0.492188f, 0.39209f, -0.421875f, 0.408691f, -0.40332f,
+0.416748f, -0.375244f, 0.424805f, -0.347168f, 0.424805f, -0.313965f, 0.404785f, 0.0620117f,
+0.404785f, 0.0341797f, 0.387695f, 0.0185547f, 0.370605f, 0.00292969f, 0.335938f,
+0.00292969f, 0.158203f, 0.00292969f, 0.147949f, 0.0117188f, 0.139404f, 0.0231934f,
+0.130859f, 0.034668f, 0.124756f, 0.0473633f, 0.118652f, 0.0600586f, 0.115234f, 0.072998f,
+0.111816f, 0.0859375f, 0.111816f, 0.0981445f, 0.111816f, 0.115723f, 0.117432f, 0.130127f,
+0.123047f, 0.144531f, 0.136963f, 0.154785f, 0.150879f, 0.165039f, 0.174805f, 0.170898f,
+0.19873f, 0.176758f, 0.234863f, 0.176758f, 0.278809f, 0.176758f, 0.310791f, 0.168213f,
+0.342773f, 0.159668f, 0.36377f, 0.144287f, 0.384766f, 0.128906f, 0.394775f, 0.10791f,
+0.404785f, 0.0869141f, 0.404785f, 0.0620117f, 0.242188f, -0.190918f, 0.29541f, -0.190918f,
+0.317627f, -0.221436f, 0.339844f, -0.251953f, 0.339844f, -0.313965f, 0.339844f, -0.344727f,
+0.334717f, -0.367432f, 0.32959f, -0.390137f, 0.318115f, -0.404785f, 0.306641f, -0.419434f,
+0.288086f, -0.426758f, 0.269531f, -0.434082f, 0.243164f, -0.434082f, 0.216309f, -0.434082f,
+0.19751f, -0.426758f, 0.178711f, -0.419434f, 0.166748f, -0.404785f, 0.154785f, -0.390137f,
+0.149414f, -0.367432f, 0.144043f, -0.344727f, 0.144043f, -0.313965f, 0.144043f, -0.283203f,
+0.149414f, -0.26001f, 0.154785f, -0.236816f, 0.166504f, -0.221436f, 0.178223f, -0.206055f,
+0.196777f, -0.198486f, 0.215332f, -0.190918f, 0.242188f, -0.190918f, 0.15918f, -0.495117f,
+0.15918f, -0.488281f, 0.158936f, -0.478516f, 0.158691f, -0.46875f, 0.158447f, -0.458252f,
+0.158203f, -0.447754f, 0.157471f, -0.437988f, 0.156738f, -0.428223f, 0.155762f, -0.421875f,
+0.169434f, -0.429688f, 0.188965f, -0.438477f, 0.208496f, -0.447266f, 0.229736f, -0.45459f,
+0.250977f, -0.461914f, 0.272217f, -0.466553f, 0.293457f, -0.471191f, 0.311035f, -0.471191f,
+0.337402f, -0.471191f, 0.359375f, -0.463867f, 0.381348f, -0.456543f, 0.397217f, -0.44043f,
+0.413086f, -0.424316f, 0.422119f, -0.398438f, 0.431152f, -0.372559f, 0.431152f, -0.335938f,
+0.431152f, -0.0341797f, 0.486816f, -0.0219727f, 0.486816f, 0, 0.289062f, 0, 0.289062f,
+-0.0219727f, 0.350098f, -0.0341797f, 0.350098f, -0.330078f, 0.350098f, -0.370605f,
+0.330322f, -0.392334f, 0.310547f, -0.414062f, 0.269043f, -0.414062f, 0.255371f, -0.414062f,
+0.23999f, -0.412598f, 0.224609f, -0.411133f, 0.209473f, -0.40918f, 0.194336f, -0.407227f,
+0.181152f, -0.404541f, 0.167969f, -0.401855f, 0.15918f, -0.399902f, 0.15918f, -0.0341797f,
+0.221191f, -0.0219727f, 0.221191f, 0, 0.0200195f, 0, 0.0200195f, -0.0219727f, 0.078125f,
+-0.0341797f, 0.078125f, -0.660156f, 0.00976562f, -0.671875f, 0.00976562f, -0.693848f,
+0.15918f, -0.693848f, 0.185059f, -0.608887f, 0.185059f, -0.598145f, 0.180908f, -0.588623f,
+0.176758f, -0.579102f, 0.169434f, -0.571777f, 0.162109f, -0.564453f, 0.152344f, -0.560303f,
+0.142578f, -0.556152f, 0.131836f, -0.556152f, 0.121094f, -0.556152f, 0.111572f, -0.560303f,
+0.102051f, -0.564453f, 0.0947266f, -0.571777f, 0.0874023f, -0.579102f, 0.083252f,
+-0.588623f, 0.0791016f, -0.598145f, 0.0791016f, -0.608887f, 0.0791016f, -0.619629f,
+0.083252f, -0.629395f, 0.0874023f, -0.63916f, 0.0947266f, -0.646484f, 0.102051f,
+-0.653809f, 0.111572f, -0.657959f, 0.121094f, -0.662109f, 0.131836f, -0.662109f,
+0.142578f, -0.662109f, 0.152344f, -0.657959f, 0.162109f, -0.653809f, 0.169434f, -0.646484f,
+0.176758f, -0.63916f, 0.180908f, -0.629395f, 0.185059f, -0.619629f, 0.185059f, -0.608887f,
+0.180176f, -0.0341797f, 0.258789f, -0.0219727f, 0.258789f, 0, 0.0209961f, 0, 0.0209961f,
+-0.0219727f, 0.0991211f, -0.0341797f, 0.0991211f, -0.424805f, 0.0341797f, -0.437012f,
+0.0341797f, -0.458984f, 0.180176f, -0.458984f, 0.191895f, -0.608887f, 0.191895f,
+-0.598145f, 0.187744f, -0.588623f, 0.183594f, -0.579102f, 0.17627f, -0.571777f, 0.168945f,
+-0.564453f, 0.159424f, -0.560303f, 0.149902f, -0.556152f, 0.13916f, -0.556152f, 0.12793f,
+-0.556152f, 0.118408f, -0.560303f, 0.108887f, -0.564453f, 0.101562f, -0.571777f,
+0.0942383f, -0.579102f, 0.0900879f, -0.588623f, 0.0859375f, -0.598145f, 0.0859375f,
+-0.608887f, 0.0859375f, -0.619629f, 0.0900879f, -0.629395f, 0.0942383f, -0.63916f,
+0.101562f, -0.646484f, 0.108887f, -0.653809f, 0.118408f, -0.657959f, 0.12793f, -0.662109f,
+0.13916f, -0.662109f, 0.149902f, -0.662109f, 0.159424f, -0.657959f, 0.168945f, -0.653809f,
+0.17627f, -0.646484f, 0.183594f, -0.63916f, 0.187744f, -0.629395f, 0.191895f, -0.619629f,
+0.191895f, -0.608887f, 0.187012f, 0.019043f, 0.187012f, 0.0708008f, 0.176514f, 0.107666f,
+0.166016f, 0.144531f, 0.146729f, 0.167969f, 0.127441f, 0.191406f, 0.10083f, 0.202148f,
+0.0742188f, 0.212891f, 0.0419922f, 0.212891f, 0.0205078f, 0.212891f, 0.00488281f,
+0.210449f, -0.0107422f, 0.208008f, -0.0288086f, 0.204102f, -0.0288086f, 0.106934f,
+-0.00585938f, 0.106934f, 0.00732422f, 0.160156f, 0.0234375f, 0.173828f, 0.0478516f,
+0.173828f, 0.0766602f, 0.173828f, 0.0913086f, 0.143066f, 0.105957f, 0.112305f, 0.105957f,
+0.0439453f, 0.105957f, -0.424805f, 0.0371094f, -0.437012f, 0.0371094f, -0.458984f,
+0.187012f, -0.458984f, 0.167969f, -0.221191f, 0.355957f, -0.423828f, 0.308105f, -0.437012f,
+0.308105f, -0.458984f, 0.470215f, -0.458984f, 0.470215f, -0.437012f, 0.413086f, -0.425781f,
+0.282227f, -0.291992f, 0.450195f, -0.0332031f, 0.5f, -0.0219727f, 0.5f, 0, 0.312012f,
+0, 0.312012f, -0.0219727f, 0.354004f, -0.0341797f, 0.228027f, -0.231934f, 0.167969f,
+-0.166016f, 0.167969f, -0.0341797f, 0.216797f, -0.0219727f, 0.216797f, 0, 0.0288086f,
+0, 0.0288086f, -0.0219727f, 0.0869141f, -0.0341797f, 0.0869141f, -0.660156f, 0.019043f,
+-0.671875f, 0.019043f, -0.693848f, 0.167969f, -0.693848f, 0.179199f, -0.0341797f,
+0.257812f, -0.0219727f, 0.257812f, 0, 0.0200195f, 0, 0.0200195f, -0.0219727f, 0.0981445f,
+-0.0341797f, 0.0981445f, -0.660156f, 0.0200195f, -0.671875f, 0.0200195f, -0.693848f,
+0.179199f, -0.693848f, 0.15918f, -0.421875f, 0.172852f, -0.429688f, 0.19165f, -0.438477f,
+0.210449f, -0.447266f, 0.230469f, -0.45459f, 0.250488f, -0.461914f, 0.270996f, -0.466553f,
+0.291504f, -0.471191f, 0.309082f, -0.471191f, 0.342773f, -0.471191f, 0.371338f, -0.458496f,
+0.399902f, -0.445801f, 0.414062f, -0.417969f, 0.429688f, -0.426758f, 0.45166f, -0.436279f,
+0.473633f, -0.445801f, 0.497314f, -0.453613f, 0.520996f, -0.461426f, 0.544189f, -0.466309f,
+0.567383f, -0.471191f, 0.585938f, -0.471191f, 0.612305f, -0.471191f, 0.633789f, -0.463867f,
+0.655273f, -0.456543f, 0.670654f, -0.44043f, 0.686035f, -0.424316f, 0.69458f, -0.398438f,
+0.703125f, -0.372559f, 0.703125f, -0.335938f, 0.703125f, -0.0341797f, 0.762207f,
+-0.0219727f, 0.762207f, 0, 0.553711f, 0, 0.553711f, -0.0219727f, 0.62207f, -0.0341797f,
+0.62207f, -0.327148f, 0.62207f, -0.367676f, 0.60376f, -0.389404f, 0.585449f, -0.411133f,
+0.543945f, -0.411133f, 0.53125f, -0.411133f, 0.514404f, -0.40918f, 0.497559f, -0.407227f,
+0.480713f, -0.404785f, 0.463867f, -0.402344f, 0.448486f, -0.39917f, 0.433105f, -0.395996f,
+0.422852f, -0.394043f, 0.431152f, -0.367676f, 0.431152f, -0.335938f, 0.431152f, -0.0341797f,
+0.5f, -0.0219727f, 0.5f, 0, 0.282227f, 0, 0.282227f, -0.0219727f, 0.350098f, -0.0341797f,
+0.350098f, -0.327148f, 0.350098f, -0.367676f, 0.329346f, -0.389404f, 0.308594f, -0.411133f,
+0.26709f, -0.411133f, 0.253418f, -0.411133f, 0.238525f, -0.409668f, 0.223633f, -0.408203f,
+0.209229f, -0.40625f, 0.194824f, -0.404297f, 0.181885f, -0.401611f, 0.168945f, -0.398926f,
+0.160156f, -0.396973f, 0.160156f, -0.0341797f, 0.229004f, -0.0219727f, 0.229004f,
+0, 0.0209961f, 0, 0.0209961f, -0.0219727f, 0.0791016f, -0.0341797f, 0.0791016f, -0.424805f,
+0.0209961f, -0.437012f, 0.0209961f, -0.458984f, 0.155273f, -0.458984f, 0.158203f,
+-0.421875f, 0.171875f, -0.429688f, 0.190674f, -0.438477f, 0.209473f, -0.447266f,
+0.22998f, -0.45459f, 0.250488f, -0.461914f, 0.270996f, -0.466553f, 0.291504f, -0.471191f,
+0.309082f, -0.471191f, 0.335449f, -0.471191f, 0.357422f, -0.463867f, 0.379395f, -0.456543f,
+0.395264f, -0.44043f, 0.411133f, -0.424316f, 0.420166f, -0.398438f, 0.429199f, -0.372559f,
+0.429199f, -0.335938f, 0.429199f, -0.0341797f, 0.484863f, -0.0219727f, 0.484863f,
+0, 0.287109f, 0, 0.287109f, -0.0219727f, 0.348145f, -0.0341797f, 0.348145f, -0.327148f,
+0.348145f, -0.367676f, 0.328369f, -0.390869f, 0.308594f, -0.414062f, 0.26709f, -0.414062f,
+0.253418f, -0.414062f, 0.238281f, -0.412598f, 0.223145f, -0.411133f, 0.208496f, -0.40918f,
+0.193848f, -0.407227f, 0.180908f, -0.404541f, 0.167969f, -0.401855f, 0.15918f, -0.399902f,
+0.15918f, -0.0341797f, 0.221191f, -0.0219727f, 0.221191f, 0, 0.0229492f, 0, 0.0229492f,
+-0.0219727f, 0.078125f, -0.0341797f, 0.078125f, -0.424805f, 0.0229492f, -0.437012f,
+0.0229492f, -0.458984f, 0.153809f, -0.458984f, 0.461914f, -0.231934f, 0.461914f,
+-0.115234f, 0.409668f, -0.0527344f, 0.357422f, 0.00976562f, 0.24707f, 0.00976562f,
+0.143555f, 0.00976562f, 0.0908203f, -0.0522461f, 0.0380859f, -0.114258f, 0.0380859f,
+-0.231934f, 0.0380859f, -0.348145f, 0.0908203f, -0.409668f, 0.143555f, -0.471191f,
+0.250977f, -0.471191f, 0.355469f, -0.471191f, 0.408691f, -0.410889f, 0.461914f, -0.350586f,
+0.461914f, -0.231934f, 0.374023f, -0.231934f, 0.374023f, -0.279297f, 0.367676f, -0.31665f,
+0.361328f, -0.354004f, 0.346436f, -0.379639f, 0.331543f, -0.405273f, 0.307129f, -0.418701f,
+0.282715f, -0.432129f, 0.24707f, -0.432129f, 0.210938f, -0.432129f, 0.1875f, -0.418701f,
+0.164062f, -0.405273f, 0.150391f, -0.379639f, 0.136719f, -0.354004f, 0.131348f, -0.31665f,
+0.125977f, -0.279297f, 0.125977f, -0.231934f, 0.125977f, -0.184082f, 0.131348f, -0.146484f,
+0.136719f, -0.108887f, 0.150391f, -0.0827637f, 0.164062f, -0.0566406f, 0.1875f, -0.0427246f,
+0.210938f, -0.0288086f, 0.24707f, -0.0288086f, 0.282715f, -0.0288086f, 0.307129f,
+-0.0427246f, 0.331543f, -0.0566406f, 0.346436f, -0.0827637f, 0.361328f, -0.108887f,
+0.367676f, -0.146484f, 0.374023f, -0.184082f, 0.374023f, -0.231934f, 0.0742188f,
+-0.424805f, 0.0219727f, -0.437012f, 0.0219727f, -0.458984f, 0.150879f, -0.458984f,
+0.151855f, -0.432129f, 0.162109f, -0.440918f, 0.176025f, -0.447998f, 0.189941f, -0.455078f,
+0.206055f, -0.460205f, 0.222168f, -0.465332f, 0.240234f, -0.468262f, 0.258301f, -0.471191f,
+0.276855f, -0.471191f, 0.319824f, -0.471191f, 0.354004f, -0.456055f, 0.388184f, -0.440918f,
+0.412109f, -0.410889f, 0.436035f, -0.380859f, 0.448486f, -0.33667f, 0.460938f, -0.29248f,
+0.460938f, -0.234863f, 0.460938f, -0.178711f, 0.448242f, -0.133545f, 0.435547f, -0.0883789f,
+0.410156f, -0.0563965f, 0.384766f, -0.0244141f, 0.346436f, -0.00732422f, 0.308105f,
+0.00976562f, 0.256836f, 0.00976562f, 0.231934f, 0.00976562f, 0.204346f, 0.00708008f,
+0.176758f, 0.00439453f, 0.151855f, -0.000976562f, 0.152344f, 0.00488281f, 0.153076f,
+0.0124512f, 0.153809f, 0.0200195f, 0.154053f, 0.0280762f, 0.154297f, 0.0361328f,
+0.154541f, 0.0429688f, 0.154785f, 0.0498047f, 0.154785f, 0.0541992f, 0.154785f, 0.178223f,
+0.234863f, 0.189941f, 0.234863f, 0.212891f, 0.0161133f, 0.212891f, 0.0161133f, 0.189941f,
+0.0742188f, 0.178223f, 0.373047f, -0.234863f, 0.373047f, -0.284668f, 0.364746f, -0.319824f,
+0.356445f, -0.35498f, 0.340576f, -0.377197f, 0.324707f, -0.399414f, 0.301758f, -0.409668f,
+0.278809f, -0.419922f, 0.25f, -0.419922f, 0.226562f, -0.419922f, 0.199951f, -0.415771f,
+0.17334f, -0.411621f, 0.154785f, -0.403809f, 0.154785f, -0.0371094f, 0.175293f, -0.0332031f,
+0.200195f, -0.0310059f, 0.225098f, -0.0288086f, 0.25f, -0.0288086f, 0.314453f, -0.0288086f,
+0.34375f, -0.0822754f, 0.373047f, -0.135742f, 0.373047f, -0.234863f, 0.396973f, -0.480957f,
+0.431152f, -0.480957f, 0.431152f, 0.178223f, 0.481934f, 0.189941f, 0.481934f, 0.212891f,
+0.287109f, 0.212891f, 0.287109f, 0.189941f, 0.350098f, 0.178223f, 0.350098f, 0.0507812f,
+0.350098f, 0.0322266f, 0.351074f, 0.0109863f, 0.352051f, -0.0102539f, 0.35498f, -0.0307617f,
+0.333008f, -0.0136719f, 0.300537f, -0.00195312f, 0.268066f, 0.00976562f, 0.224121f,
+0.00976562f, 0.12793f, 0.00976562f, 0.0820312f, -0.0515137f, 0.0361328f, -0.112793f,
+0.0361328f, -0.228027f, 0.0361328f, -0.28418f, 0.0488281f, -0.329346f, 0.0615234f,
+-0.374512f, 0.0871582f, -0.406006f, 0.112793f, -0.4375f, 0.1521f, -0.454346f, 0.191406f,
+-0.471191f, 0.244141f, -0.471191f, 0.269043f, -0.471191f, 0.298096f, -0.468262f,
+0.327148f, -0.465332f, 0.353027f, -0.459961f, 0.124023f, -0.228027f, 0.124023f, -0.178223f,
+0.132568f, -0.142822f, 0.141113f, -0.107422f, 0.157227f, -0.0847168f, 0.17334f, -0.0620117f,
+0.197021f, -0.0515137f, 0.220703f, -0.0410156f, 0.250977f, -0.0410156f, 0.262695f,
+-0.0410156f, 0.276367f, -0.0419922f, 0.290039f, -0.0429688f, 0.303467f, -0.045166f,
+0.316895f, -0.0473633f, 0.329102f, -0.050293f, 0.341309f, -0.0532227f, 0.350098f,
+-0.0571289f, 0.350098f, -0.422852f, 0.32959f, -0.426758f, 0.302734f, -0.428955f,
+0.275879f, -0.431152f, 0.250977f, -0.431152f, 0.186523f, -0.431152f, 0.155273f, -0.378906f,
+0.124023f, -0.32666f, 0.124023f, -0.228027f, 0.324219f, -0.471191f, 0.324219f, -0.347168f,
+0.303223f, -0.347168f, 0.274902f, -0.400879f, 0.26123f, -0.400879f, 0.245605f, -0.398926f,
+0.22998f, -0.396973f, 0.214355f, -0.393799f, 0.19873f, -0.390625f, 0.184326f, -0.38623f,
+0.169922f, -0.381836f, 0.15918f, -0.376953f, 0.15918f, -0.0341797f, 0.237793f, -0.0219727f,
+0.237793f, 0, 0.0200195f, 0, 0.0200195f, -0.0219727f, 0.078125f, -0.0341797f, 0.078125f,
+-0.424805f, 0.0200195f, -0.437012f, 0.0200195f, -0.458984f, 0.153809f, -0.458984f,
+0.158203f, -0.401855f, 0.169434f, -0.411133f, 0.188965f, -0.423096f, 0.208496f, -0.435059f,
+0.231201f, -0.445801f, 0.253906f, -0.456543f, 0.276611f, -0.463867f, 0.299316f, -0.471191f,
+0.316895f, -0.471191f, 0.353027f, -0.128906f, 0.353027f, -0.0981445f, 0.343506f,
+-0.0725098f, 0.333984f, -0.046875f, 0.313477f, -0.0285645f, 0.292969f, -0.0102539f,
+0.260498f, -0.000244141f, 0.228027f, 0.00976562f, 0.182129f, 0.00976562f, 0.15918f,
+0.00976562f, 0.136963f, 0.00708008f, 0.114746f, 0.00439453f, 0.0957031f, 0.000732422f,
+0.0766602f, -0.00292969f, 0.0625f, -0.00683594f, 0.0483398f, -0.0107422f, 0.0419922f,
+-0.0131836f, 0.0419922f, -0.125977f, 0.0639648f, -0.125977f, 0.0878906f, -0.0620117f,
+0.103027f, -0.0483398f, 0.126953f, -0.0385742f, 0.150879f, -0.0288086f, 0.183105f,
+-0.0288086f, 0.228516f, -0.0288086f, 0.253174f, -0.048584f, 0.277832f, -0.0683594f,
+0.277832f, -0.109863f, 0.277832f, -0.134277f, 0.267578f, -0.150146f, 0.257324f, -0.166016f,
+0.240723f, -0.176758f, 0.224121f, -0.1875f, 0.202881f, -0.19458f, 0.181641f, -0.20166f,
+0.159424f, -0.208984f, 0.137207f, -0.216309f, 0.115967f, -0.225586f, 0.0947266f,
+-0.234863f, 0.078125f, -0.249512f, 0.0615234f, -0.26416f, 0.0512695f, -0.286133f,
+0.0410156f, -0.308105f, 0.0410156f, -0.34082f, 0.0410156f, -0.37207f, 0.0522461f,
+-0.396484f, 0.0634766f, -0.420898f, 0.0837402f, -0.4375f, 0.104004f, -0.454102f,
+0.13208f, -0.462646f, 0.160156f, -0.471191f, 0.193848f, -0.471191f, 0.227051f, -0.471191f,
+0.258789f, -0.466553f, 0.290527f, -0.461914f, 0.319824f, -0.456055f, 0.319824f, -0.355957f,
+0.296875f, -0.355957f, 0.276367f, -0.40918f, 0.263672f, -0.42041f, 0.241699f, -0.42627f,
+0.219727f, -0.432129f, 0.194824f, -0.432129f, 0.155273f, -0.432129f, 0.134521f, -0.412598f,
+0.11377f, -0.393066f, 0.11377f, -0.359863f, 0.11377f, -0.337402f, 0.124023f, -0.322998f,
+0.134277f, -0.308594f, 0.151123f, -0.298584f, 0.167969f, -0.288574f, 0.189453f, -0.28125f,
+0.210938f, -0.273926f, 0.233398f, -0.266113f, 0.255859f, -0.258301f, 0.277344f, -0.248291f,
+0.298828f, -0.238281f, 0.315674f, -0.222656f, 0.33252f, -0.207031f, 0.342773f, -0.18457f,
+0.353027f, -0.162109f, 0.353027f, -0.128906f, 0.163086f, 0.00976562f, 0.116211f,
+0.00976562f, 0.0930176f, -0.0180664f, 0.0698242f, -0.0458984f, 0.0698242f, -0.0961914f,
+0.0698242f, -0.417969f, 0.00976562f, -0.417969f, 0.00976562f, -0.439941f, 0.0708008f,
+-0.458984f, 0.120117f, -0.562988f, 0.150879f, -0.562988f, 0.150879f, -0.458984f,
+0.255859f, -0.458984f, 0.255859f, -0.417969f, 0.150879f, -0.417969f, 0.150879f, -0.10498f,
+0.150879f, -0.0732422f, 0.165283f, -0.0571289f, 0.179688f, -0.0410156f, 0.203125f,
+-0.0410156f, 0.221191f, -0.0410156f, 0.239014f, -0.043457f, 0.256836f, -0.0458984f,
+0.271973f, -0.0488281f, 0.271973f, -0.0170898f, 0.264648f, -0.012207f, 0.252686f,
+-0.00732422f, 0.240723f, -0.00244141f, 0.226318f, 0.0012207f, 0.211914f, 0.00488281f,
+0.195801f, 0.00732422f, 0.179688f, 0.00976562f, 0.163086f, 0.00976562f, 0.152832f,
+-0.130859f, 0.152832f, -0.090332f, 0.171143f, -0.0686035f, 0.189453f, -0.046875f,
+0.230957f, -0.046875f, 0.258301f, -0.046875f, 0.287598f, -0.0505371f, 0.316895f,
+-0.0541992f, 0.344238f, -0.0620117f, 0.344238f, -0.424805f, 0.274902f, -0.437012f,
+0.274902f, -0.458984f, 0.424805f, -0.458984f, 0.424805f, -0.0341797f, 0.48291f, -0.0219727f,
+0.48291f, 0, 0.349121f, 0, 0.345215f, -0.0371094f, 0.331055f, -0.0292969f, 0.311523f,
+-0.0209961f, 0.291992f, -0.0126953f, 0.270752f, -0.00585938f, 0.249512f, 0.000976562f,
+0.228027f, 0.00537109f, 0.206543f, 0.00976562f, 0.188965f, 0.00976562f, 0.162598f,
+0.00976562f, 0.141113f, 0.00244141f, 0.119629f, -0.00488281f, 0.104248f, -0.0209961f,
+0.0888672f, -0.0371094f, 0.0803223f, -0.0627441f, 0.0717773f, -0.0883789f, 0.0717773f,
+-0.125f, 0.0717773f, -0.424805f, 0.0131836f, -0.437012f, 0.0131836f, -0.458984f,
+0.152832f, -0.458984f, 0.456055f, -0.426758f, 0.271973f, 0.00976562f, 0.23584f, 0.00976562f,
+0.046875f, -0.424805f, 0, -0.437012f, 0, -0.458984f, 0.213867f, -0.458984f, 0.213867f,
+-0.437012f, 0.141113f, -0.423828f, 0.274902f, -0.106934f, 0.402832f, -0.424805f,
+0.330078f, -0.437012f, 0.330078f, -0.458984f, 0.5f, -0.458984f, 0.5f, -0.437012f,
+0.666992f, -0.426758f, 0.513184f, 0.00976562f, 0.475098f, 0.00976562f, 0.361816f,
+-0.292969f, 0.25f, 0.00976562f, 0.213867f, 0.00976562f, 0.0551758f, -0.424805f, 0.000976562f,
+-0.437012f, 0.000976562f, -0.458984f, 0.219238f, -0.458984f, 0.219238f, -0.437012f,
+0.143066f, -0.423828f, 0.251953f, -0.11377f, 0.362793f, -0.413086f, 0.403809f, -0.413086f,
+0.51416f, -0.111816f, 0.618164f, -0.424805f, 0.542969f, -0.437012f, 0.542969f, -0.458984f,
+0.717773f, -0.458984f, 0.717773f, -0.437012f, 0.434082f, -0.0322266f, 0.487793f,
+-0.0219727f, 0.487793f, 0, 0.279785f, 0, 0.279785f, -0.0219727f, 0.34082f, -0.0332031f,
+0.234863f, -0.195801f, 0.11084f, -0.0322266f, 0.173828f, -0.0219727f, 0.173828f,
+0, 0.00878906f, 0, 0.00878906f, -0.0219727f, 0.0620117f, -0.0297852f, 0.212891f,
+-0.229004f, 0.0800781f, -0.424805f, 0.0258789f, -0.437012f, 0.0258789f, -0.458984f,
+0.233887f, -0.458984f, 0.233887f, -0.437012f, 0.172852f, -0.423828f, 0.26123f, -0.291992f,
+0.362793f, -0.424805f, 0.299805f, -0.437012f, 0.299805f, -0.458984f, 0.464844f, -0.458984f,
+0.464844f, -0.437012f, 0.412109f, -0.426758f, 0.283203f, -0.259766f, 0.448242f, -0.426758f,
+0.269043f, 0.0288086f, 0.253418f, 0.0683594f, 0.237305f, 0.102539f, 0.221191f, 0.136719f,
+0.201416f, 0.161865f, 0.181641f, 0.187012f, 0.15625f, 0.201416f, 0.130859f, 0.21582f,
+0.097168f, 0.21582f, 0.0844727f, 0.21582f, 0.0749512f, 0.215332f, 0.0654297f, 0.214844f,
+0.0571289f, 0.213623f, 0.0488281f, 0.212402f, 0.0405273f, 0.210938f, 0.0322266f,
+0.209473f, 0.0219727f, 0.207031f, 0.0219727f, 0.10791f, 0.0449219f, 0.10791f, 0.0610352f,
+0.154785f, 0.0761719f, 0.166016f, 0.103027f, 0.166016f, 0.124023f, 0.166016f, 0.141113f,
+0.156738f, 0.158203f, 0.147461f, 0.172607f, 0.130615f, 0.187012f, 0.11377f, 0.19873f,
+0.0908203f, 0.210449f, 0.0678711f, 0.221191f, 0.0400391f, 0.233887f, 0.00488281f,
+0.059082f, -0.424805f, 0.012207f, -0.437012f, 0.012207f, -0.458984f, 0.225098f, -0.458984f,
+0.225098f, -0.437012f, 0.152832f, -0.423828f, 0.276855f, -0.103027f, 0.396973f, -0.424805f,
+0.325195f, -0.437012f, 0.325195f, -0.458984f, 0.496094f, -0.458984f, 0.496094f, -0.437012f,
+0.0268555f, 0, 0.0268555f, -0.0219727f, 0.278809f, -0.419922f, 0.170898f, -0.419922f,
+0.157227f, -0.419922f, 0.143799f, -0.418701f, 0.130371f, -0.41748f, 0.118408f, -0.415283f,
+0.106445f, -0.413086f, 0.097168f, -0.409912f, 0.0878906f, -0.406738f, 0.0830078f,
+-0.402832f, 0.0678711f, -0.336914f, 0.0449219f, -0.336914f, 0.0449219f, -0.458984f,
+0.383789f, -0.458984f, 0.383789f, -0.435059f, 0.131836f, -0.0390625f, 0.266113f,
+-0.0390625f, 0.279297f, -0.0390625f, 0.294189f, -0.0407715f, 0.309082f, -0.0424805f,
+0.322998f, -0.0454102f, 0.336914f, -0.0483398f, 0.348877f, -0.0524902f, 0.36084f,
+-0.0566406f, 0.368164f, -0.0620117f, 0.393066f, -0.158203f, 0.416016f, -0.158203f,
+0.403809f, 0, 0.323242f, 0.133789f, 0.291504f, 0.133789f, 0.267578f, 0.123779f, 0.243652f,
+0.11377f, 0.227783f, 0.0949707f, 0.211914f, 0.0761719f, 0.203857f, 0.0498047f, 0.195801f,
+0.0234375f, 0.195801f, -0.00976562f, 0.195801f, -0.153809f, 0.195801f, -0.18457f,
+0.188721f, -0.206055f, 0.181641f, -0.227539f, 0.168213f, -0.241455f, 0.154785f, -0.255371f,
+0.135254f, -0.262207f, 0.115723f, -0.269043f, 0.0908203f, -0.27002f, 0.0908203f,
+-0.291992f, 0.115723f, -0.29248f, 0.135254f, -0.299316f, 0.154785f, -0.306152f, 0.168213f,
+-0.320068f, 0.181641f, -0.333984f, 0.188721f, -0.355469f, 0.195801f, -0.376953f,
+0.195801f, -0.407227f, 0.195801f, -0.550781f, 0.195801f, -0.619629f, 0.227539f, -0.656738f,
+0.259277f, -0.693848f, 0.323242f, -0.693848f, 0.38916f, -0.693848f, 0.38916f, -0.670898f,
+0.358887f, -0.670898f, 0.314453f, -0.670898f, 0.295654f, -0.644287f, 0.276855f, -0.617676f,
+0.276855f, -0.565918f, 0.276855f, -0.404785f, 0.276855f, -0.380371f, 0.269775f, -0.359863f,
+0.262695f, -0.339355f, 0.250244f, -0.323486f, 0.237793f, -0.307617f, 0.220459f, -0.297119f,
+0.203125f, -0.286621f, 0.183105f, -0.282227f, 0.183105f, -0.280762f, 0.204102f, -0.275879f,
+0.221191f, -0.265381f, 0.238281f, -0.254883f, 0.250732f, -0.239014f, 0.263184f, -0.223145f,
+0.27002f, -0.202637f, 0.276855f, -0.182129f, 0.276855f, -0.157227f, 0.276855f, 0.00585938f,
+0.276855f, 0.0576172f, 0.295654f, 0.0842285f, 0.314453f, 0.11084f, 0.358887f, 0.11084f,
+0.38916f, 0.11084f, 0.38916f, 0.133789f, 0.0751953f, 0.21582f, 0.0751953f, -0.693848f,
+0.125f, -0.693848f, 0.125f, 0.21582f, 0.0908203f, 0.133789f, 0.0908203f, 0.11084f,
+0.121094f, 0.11084f, 0.165527f, 0.11084f, 0.184326f, 0.0842285f, 0.203125f, 0.0576172f,
+0.203125f, 0.00585938f, 0.203125f, -0.157227f, 0.203125f, -0.182129f, 0.209961f,
+-0.202637f, 0.216797f, -0.223145f, 0.229248f, -0.239014f, 0.241699f, -0.254883f,
+0.258789f, -0.265381f, 0.275879f, -0.275879f, 0.296875f, -0.280762f, 0.296875f, -0.282227f,
+0.276855f, -0.286621f, 0.259521f, -0.297119f, 0.242188f, -0.307617f, 0.229736f, -0.323486f,
+0.217285f, -0.339355f, 0.210205f, -0.359863f, 0.203125f, -0.380371f, 0.203125f, -0.404785f,
+0.203125f, -0.565918f, 0.203125f, -0.617676f, 0.184326f, -0.644287f, 0.165527f, -0.670898f,
+0.121094f, -0.670898f, 0.0908203f, -0.670898f, 0.0908203f, -0.693848f, 0.157227f,
+-0.693848f, 0.220703f, -0.693848f, 0.252441f, -0.656738f, 0.28418f, -0.619629f, 0.28418f,
+-0.550781f, 0.28418f, -0.407227f, 0.28418f, -0.376953f, 0.29126f, -0.355469f, 0.29834f,
+-0.333984f, 0.312012f, -0.320068f, 0.325684f, -0.306152f, 0.344971f, -0.299316f,
+0.364258f, -0.29248f, 0.38916f, -0.291992f, 0.38916f, -0.27002f, 0.364258f, -0.269043f,
+0.344971f, -0.262207f, 0.325684f, -0.255371f, 0.312012f, -0.241455f, 0.29834f, -0.227539f,
+0.29126f, -0.206055f, 0.28418f, -0.18457f, 0.28418f, -0.153809f, 0.28418f, -0.00976562f,
+0.28418f, 0.0234375f, 0.276123f, 0.0498047f, 0.268066f, 0.0761719f, 0.252197f, 0.0949707f,
+0.236328f, 0.11377f, 0.212402f, 0.123779f, 0.188477f, 0.133789f, 0.157227f, 0.133789f,
+0.380859f, -0.245117f, 0.358398f, -0.245117f, 0.337891f, -0.253906f, 0.317383f, -0.262695f,
+0.298096f, -0.275635f, 0.278809f, -0.288574f, 0.260986f, -0.303955f, 0.243164f, -0.319336f,
+0.226074f, -0.332275f, 0.208984f, -0.345215f, 0.192383f, -0.354004f, 0.175781f, -0.362793f,
+0.15918f, -0.362793f, 0.13916f, -0.362793f, 0.125f, -0.355713f, 0.11084f, -0.348633f,
+0.101074f, -0.333984f, 0.0913086f, -0.319336f, 0.0856934f, -0.297119f, 0.0800781f,
+-0.274902f, 0.0771484f, -0.245117f, 0.027832f, -0.245117f, 0.0307617f, -0.274902f,
+0.0373535f, -0.304932f, 0.0439453f, -0.334961f, 0.0581055f, -0.359131f, 0.0722656f,
+-0.383301f, 0.0964355f, -0.398193f, 0.120605f, -0.413086f, 0.15918f, -0.413086f,
+0.182617f, -0.413086f, 0.203613f, -0.404297f, 0.224609f, -0.395508f, 0.243896f, -0.382324f,
+0.263184f, -0.369141f, 0.28125f, -0.354004f, 0.299316f, -0.338867f, 0.316162f, -0.325684f,
+0.333008f, -0.3125f, 0.349121f, -0.303711f, 0.365234f, -0.294922f, 0.380859f, -0.294922f,
+0.400391f, -0.294922f, 0.414062f, -0.302734f, 0.427734f, -0.310547f, 0.437256f, -0.325684f,
+0.446777f, -0.34082f, 0.452393f, -0.362793f, 0.458008f, -0.384766f, 0.461914f, -0.413086f,
+0.512207f, -0.413086f, 0.508301f, -0.383301f, 0.501221f, -0.353516f, 0.494141f, -0.32373f,
+0.479736f, -0.299561f, 0.465332f, -0.275391f, 0.44165f, -0.260254f, 0.417969f, -0.245117f,
+0.380859f, -0.245117f
+};
+
+const unsigned char LiberationSerifNormalVerbs[] = {
+6, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2,
+1, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5, 0,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 1, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 5, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifNormalCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifNormalWidths[] = {
+0x0000c720, 0x00004000, 0x00005540, 0x00006880, 0x00008000, 0x00008000, 0x0000d540,
+0x0000c720, 0x00002e20, 0x00005540, 0x00005540, 0x00008000, 0x00009060, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00004720,
+0x00004720, 0x00009060, 0x00009060, 0x00009060, 0x000071a0, 0x0000ebc0, 0x0000b8e0,
+0x0000aac0, 0x0000aac0, 0x0000b8e0, 0x00009c60, 0x00008e60, 0x0000b8e0, 0x0000b8e0,
+0x00005540, 0x000063a0, 0x0000b8e0, 0x00009c60, 0x0000e3a0, 0x0000b8e0, 0x0000b8e0,
+0x00008e60, 0x0000b8e0, 0x0000aac0, 0x00008e60, 0x00009c60, 0x0000b8e0, 0x0000b8e0,
+0x0000f1a0, 0x0000b8e0, 0x0000b8e0, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x00007820, 0x00008000, 0x00005540, 0x000071a0, 0x00008000, 0x000071a0, 0x00008000,
+0x000071a0, 0x00005540, 0x00008000, 0x00008000, 0x00004720, 0x00004720, 0x00008000,
+0x00004720, 0x0000c720, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x000063a0, 0x00004720, 0x00008000, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x000071a0, 0x00007ae0, 0x00003340, 0x00007ae0, 0x00008a80
+};
+
+const int LiberationSerifNormalCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifNormalCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifNormalMetrics = {
+0x30307833, -0.981445f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.18359f, 0.0184937f,
+-0.176758f, 1.00684f, 0.469727f, 0.0103607f, 0.0488281f, 0.108887f
+};
+
+const SkScalar LiberationSerifBoldPoints[] = {
+0.193848f, -0.205078f, 0.137695f, -0.205078f, 0.0927734f, -0.654785f, 0.23877f, -0.654785f,
+0.166016f, 0.0141602f, 0.148926f, 0.0141602f, 0.134277f, 0.0078125f, 0.119629f, 0.00146484f,
+0.108643f, -0.00952148f, 0.0976562f, -0.0205078f, 0.0913086f, -0.0351562f, 0.0849609f,
+-0.0498047f, 0.0849609f, -0.0668945f, 0.0849609f, -0.0834961f, 0.0913086f, -0.0983887f,
+0.0976562f, -0.113281f, 0.108643f, -0.124268f, 0.119629f, -0.135254f, 0.134277f,
+-0.141602f, 0.148926f, -0.147949f, 0.166016f, -0.147949f, 0.182617f, -0.147949f,
+0.19751f, -0.141602f, 0.212402f, -0.135254f, 0.223389f, -0.124268f, 0.234375f, -0.113281f,
+0.240723f, -0.0983887f, 0.24707f, -0.0834961f, 0.24707f, -0.0668945f, 0.24707f, -0.0498047f,
+0.240723f, -0.0351562f, 0.234375f, -0.0205078f, 0.223389f, -0.00952148f, 0.212402f,
+0.00146484f, 0.19751f, 0.0078125f, 0.182617f, 0.0141602f, 0.166016f, 0.0141602f,
+0.318848f, -0.654785f, 0.444824f, -0.654785f, 0.406738f, -0.419922f, 0.355957f, -0.419922f,
+0.11084f, -0.654785f, 0.236816f, -0.654785f, 0.19873f, -0.419922f, 0.147949f, -0.419922f,
+0.361816f, -0.200684f, 0.324707f, 0, 0.254883f, 0, 0.291992f, -0.200684f, 0.160156f,
+-0.200684f, 0.124023f, 0, 0.0527344f, 0, 0.0898438f, -0.200684f, 0.0131836f, -0.200684f,
+0.0131836f, -0.260742f, 0.102051f, -0.260742f, 0.12793f, -0.400879f, 0.0131836f,
+-0.400879f, 0.0131836f, -0.460938f, 0.13916f, -0.460938f, 0.174805f, -0.654785f,
+0.245117f, -0.654785f, 0.208984f, -0.460938f, 0.34082f, -0.460938f, 0.376953f, -0.654785f,
+0.446777f, -0.654785f, 0.410645f, -0.460938f, 0.486816f, -0.460938f, 0.486816f, -0.400879f,
+0.399902f, -0.400879f, 0.375f, -0.260742f, 0.486816f, -0.260742f, 0.486816f, -0.200684f,
+0.197754f, -0.400879f, 0.171875f, -0.260742f, 0.303711f, -0.260742f, 0.330078f, -0.400879f,
+0.227539f, 0.00976562f, 0.200195f, 0.00927734f, 0.172119f, 0.00610352f, 0.144043f,
+0.00292969f, 0.118408f, -0.00195312f, 0.0927734f, -0.00683594f, 0.0712891f, -0.0126953f,
+0.0498047f, -0.0185547f, 0.0356445f, -0.0249023f, 0.0356445f, -0.181152f, 0.0810547f,
+-0.181152f, 0.0986328f, -0.090332f, 0.105957f, -0.0805664f, 0.120361f, -0.0715332f,
+0.134766f, -0.0625f, 0.152832f, -0.0554199f, 0.170898f, -0.0483398f, 0.19043f, -0.043457f,
+0.209961f, -0.0385742f, 0.227539f, -0.0380859f, 0.227539f, -0.276367f, 0.193848f,
+-0.289551f, 0.160889f, -0.304932f, 0.12793f, -0.320312f, 0.101807f, -0.343994f, 0.0756836f,
+-0.367676f, 0.0595703f, -0.403809f, 0.043457f, -0.439941f, 0.043457f, -0.495117f,
+0.043457f, -0.530762f, 0.0566406f, -0.559814f, 0.0698242f, -0.588867f, 0.0939941f,
+-0.610107f, 0.118164f, -0.631348f, 0.1521f, -0.644531f, 0.186035f, -0.657715f, 0.227539f,
+-0.661133f, 0.227539f, -0.724121f, 0.277344f, -0.724121f, 0.277344f, -0.662109f,
+0.316895f, -0.660645f, 0.356689f, -0.654541f, 0.396484f, -0.648438f, 0.426758f, -0.641113f,
+0.426758f, -0.504883f, 0.382324f, -0.504883f, 0.366699f, -0.574707f, 0.352539f, -0.588867f,
+0.328125f, -0.599854f, 0.303711f, -0.61084f, 0.277344f, -0.613281f, 0.277344f, -0.410645f,
+0.300293f, -0.401367f, 0.323486f, -0.391602f, 0.34668f, -0.381836f, 0.368408f, -0.369873f,
+0.390137f, -0.35791f, 0.408936f, -0.342041f, 0.427734f, -0.326172f, 0.44165f, -0.304688f,
+0.455566f, -0.283203f, 0.463623f, -0.254639f, 0.47168f, -0.226074f, 0.47168f, -0.188965f,
+0.47168f, -0.146973f, 0.458496f, -0.112305f, 0.445312f, -0.0776367f, 0.42041f, -0.0522461f,
+0.395508f, -0.0268555f, 0.359375f, -0.0112305f, 0.323242f, 0.00439453f, 0.277344f,
+0.0078125f, 0.277344f, 0.0761719f, 0.227539f, 0.0761719f, 0.367188f, -0.161133f,
+0.367188f, -0.183105f, 0.360107f, -0.198486f, 0.353027f, -0.213867f, 0.34082f, -0.224854f,
+0.328613f, -0.23584f, 0.312256f, -0.243408f, 0.295898f, -0.250977f, 0.277344f, -0.257812f,
+0.277344f, -0.0375977f, 0.320801f, -0.0454102f, 0.343994f, -0.076416f, 0.367188f,
+-0.107422f, 0.367188f, -0.161133f, 0.147949f, -0.520996f, 0.147949f, -0.5f, 0.154053f,
+-0.485596f, 0.160156f, -0.471191f, 0.170898f, -0.460938f, 0.181641f, -0.450684f,
+0.196289f, -0.443359f, 0.210938f, -0.436035f, 0.227539f, -0.429199f, 0.227539f, -0.612305f,
+0.188965f, -0.606445f, 0.168457f, -0.582275f, 0.147949f, -0.558105f, 0.147949f, -0.520996f,
+0.3125f, 0.00976562f, 0.239258f, 0.00976562f, 0.702148f, -0.665039f, 0.775879f, -0.665039f,
+0.42041f, -0.48584f, 0.42041f, -0.398438f, 0.381104f, -0.351318f, 0.341797f, -0.304199f,
+0.259277f, -0.304199f, 0.180664f, -0.304199f, 0.141602f, -0.350586f, 0.102539f, -0.396973f,
+0.102539f, -0.48584f, 0.102539f, -0.572754f, 0.141846f, -0.618896f, 0.181152f, -0.665039f,
+0.262207f, -0.665039f, 0.339844f, -0.665039f, 0.380127f, -0.620117f, 0.42041f, -0.575195f,
+0.42041f, -0.48584f, 0.314941f, -0.48584f, 0.314941f, -0.517578f, 0.312256f, -0.54248f,
+0.30957f, -0.567383f, 0.302979f, -0.584473f, 0.296387f, -0.601562f, 0.285645f, -0.610352f,
+0.274902f, -0.619141f, 0.259277f, -0.619141f, 0.243652f, -0.619141f, 0.233643f, -0.610352f,
+0.223633f, -0.601562f, 0.217773f, -0.584473f, 0.211914f, -0.567383f, 0.209717f, -0.54248f,
+0.20752f, -0.517578f, 0.20752f, -0.48584f, 0.20752f, -0.453613f, 0.209717f, -0.428467f,
+0.211914f, -0.40332f, 0.217773f, -0.385742f, 0.223633f, -0.368164f, 0.233643f, -0.358887f,
+0.243652f, -0.349609f, 0.259277f, -0.349609f, 0.274902f, -0.349609f, 0.285645f, -0.358887f,
+0.296387f, -0.368164f, 0.302979f, -0.385742f, 0.30957f, -0.40332f, 0.312256f, -0.428467f,
+0.314941f, -0.453613f, 0.314941f, -0.48584f, 0.90625f, -0.168945f, 0.90625f, -0.0810547f,
+0.867188f, -0.0339355f, 0.828125f, 0.0131836f, 0.745605f, 0.0131836f, 0.666992f,
+0.0131836f, 0.627686f, -0.0332031f, 0.588379f, -0.0795898f, 0.588379f, -0.168945f,
+0.588379f, -0.255859f, 0.62793f, -0.302002f, 0.66748f, -0.348145f, 0.748535f, -0.348145f,
+0.826172f, -0.348145f, 0.866211f, -0.303223f, 0.90625f, -0.258301f, 0.90625f, -0.168945f,
+0.80127f, -0.168945f, 0.80127f, -0.200684f, 0.798584f, -0.225586f, 0.795898f, -0.250488f,
+0.789307f, -0.267578f, 0.782715f, -0.284668f, 0.771973f, -0.293457f, 0.76123f, -0.302246f,
+0.745605f, -0.302246f, 0.72998f, -0.302246f, 0.719971f, -0.293457f, 0.709961f, -0.284668f,
+0.704102f, -0.267578f, 0.698242f, -0.250488f, 0.696045f, -0.225586f, 0.693848f, -0.200684f,
+0.693848f, -0.168945f, 0.693848f, -0.136719f, 0.696045f, -0.111572f, 0.698242f, -0.0864258f,
+0.704102f, -0.0688477f, 0.709961f, -0.0512695f, 0.719971f, -0.0419922f, 0.72998f,
+-0.0327148f, 0.745605f, -0.0327148f, 0.76123f, -0.0327148f, 0.771973f, -0.0419922f,
+0.782715f, -0.0512695f, 0.789307f, -0.0688477f, 0.795898f, -0.0864258f, 0.798584f,
+-0.111572f, 0.80127f, -0.136719f, 0.80127f, -0.168945f, 0.509277f, -0.523926f, 0.509277f,
+-0.489746f, 0.497559f, -0.465332f, 0.48584f, -0.440918f, 0.466309f, -0.422852f, 0.446777f,
+-0.404785f, 0.421143f, -0.391846f, 0.395508f, -0.378906f, 0.367188f, -0.367676f,
+0.552734f, -0.200195f, 0.567871f, -0.23877f, 0.573975f, -0.277832f, 0.580078f, -0.316895f,
+0.581543f, -0.350098f, 0.527344f, -0.362793f, 0.527344f, -0.394043f, 0.760254f, -0.394043f,
+0.760254f, -0.362793f, 0.706543f, -0.350098f, 0.700684f, -0.330566f, 0.693359f, -0.305664f,
+0.686035f, -0.280762f, 0.676025f, -0.253174f, 0.666016f, -0.225586f, 0.652344f, -0.196533f,
+0.638672f, -0.16748f, 0.620117f, -0.139648f, 0.727539f, -0.0429688f, 0.78418f, -0.0307617f,
+0.78418f, 0, 0.59668f, 0, 0.538574f, -0.0537109f, 0.499512f, -0.0249023f, 0.446289f,
+-0.00756836f, 0.393066f, 0.00976562f, 0.322266f, 0.00976562f, 0.25293f, 0.00976562f,
+0.202881f, -0.00219727f, 0.152832f, -0.0141602f, 0.120605f, -0.0375977f, 0.0883789f,
+-0.0610352f, 0.072998f, -0.0952148f, 0.0576172f, -0.129395f, 0.0576172f, -0.173828f,
+0.0576172f, -0.217773f, 0.0715332f, -0.249023f, 0.0854492f, -0.280273f, 0.107422f,
+-0.30249f, 0.129395f, -0.324707f, 0.156494f, -0.339111f, 0.183594f, -0.353516f, 0.209961f,
+-0.36377f, 0.196777f, -0.378906f, 0.185547f, -0.395996f, 0.174316f, -0.413086f, 0.166016f,
+-0.432373f, 0.157715f, -0.45166f, 0.153076f, -0.473633f, 0.148438f, -0.495605f, 0.148438f,
+-0.520996f, 0.148438f, -0.549316f, 0.158203f, -0.575439f, 0.167969f, -0.601562f,
+0.189941f, -0.621582f, 0.211914f, -0.641602f, 0.246826f, -0.65332f, 0.281738f, -0.665039f,
+0.33252f, -0.665039f, 0.381836f, -0.665039f, 0.415527f, -0.653809f, 0.449219f, -0.642578f,
+0.470215f, -0.623291f, 0.491211f, -0.604004f, 0.500244f, -0.578369f, 0.509277f, -0.552734f,
+0.509277f, -0.523926f, 0.322266f, -0.0419922f, 0.37793f, -0.0419922f, 0.418457f,
+-0.0581055f, 0.458984f, -0.0742188f, 0.487793f, -0.100586f, 0.254883f, -0.317383f,
+0.242676f, -0.309082f, 0.231445f, -0.297852f, 0.220215f, -0.286621f, 0.211426f, -0.270264f,
+0.202637f, -0.253906f, 0.19751f, -0.231689f, 0.192383f, -0.209473f, 0.192383f, -0.179199f,
+0.192383f, -0.109375f, 0.227051f, -0.0756836f, 0.261719f, -0.0419922f, 0.322266f,
+-0.0419922f, 0.270508f, -0.531738f, 0.270508f, -0.51123f, 0.274414f, -0.494629f,
+0.27832f, -0.478027f, 0.285156f, -0.463623f, 0.291992f, -0.449219f, 0.301758f, -0.436768f,
+0.311523f, -0.424316f, 0.322754f, -0.412109f, 0.337402f, -0.419922f, 0.349365f, -0.429199f,
+0.361328f, -0.438477f, 0.369873f, -0.452148f, 0.378418f, -0.46582f, 0.382812f, -0.484863f,
+0.387207f, -0.503906f, 0.387207f, -0.531738f, 0.387207f, -0.616211f, 0.33252f, -0.616211f,
+0.299316f, -0.616211f, 0.284912f, -0.594971f, 0.270508f, -0.57373f, 0.270508f, -0.531738f,
+0.0761719f, -0.654785f, 0.202148f, -0.654785f, 0.164062f, -0.419922f, 0.113281f,
+-0.419922f, 0.177246f, -0.241211f, 0.177246f, -0.181641f, 0.181396f, -0.123291f,
+0.185547f, -0.0649414f, 0.19873f, -0.0129395f, 0.211914f, 0.0390625f, 0.236084f,
+0.0827637f, 0.260254f, 0.126465f, 0.300781f, 0.157227f, 0.300781f, 0.212891f, 0.235352f,
+0.178223f, 0.187256f, 0.137451f, 0.13916f, 0.0966797f, 0.107178f, 0.0432129f, 0.0751953f,
+-0.0102539f, 0.0595703f, -0.079834f, 0.0439453f, -0.149414f, 0.0439453f, -0.241699f,
+0.0439453f, -0.333496f, 0.0595703f, -0.402588f, 0.0751953f, -0.47168f, 0.107178f,
+-0.524902f, 0.13916f, -0.578125f, 0.187256f, -0.618652f, 0.235352f, -0.65918f, 0.300781f,
+-0.693848f, 0.300781f, -0.638184f, 0.260254f, -0.607422f, 0.236084f, -0.563965f,
+0.211914f, -0.520508f, 0.19873f, -0.468506f, 0.185547f, -0.416504f, 0.181396f, -0.358643f,
+0.177246f, -0.300781f, 0.177246f, -0.241211f, 0.0322266f, 0.212891f, 0.0322266f,
+0.157227f, 0.0722656f, 0.126465f, 0.0966797f, 0.0827637f, 0.121094f, 0.0390625f,
+0.134277f, -0.0129395f, 0.147461f, -0.0649414f, 0.151611f, -0.123291f, 0.155762f,
+-0.181641f, 0.155762f, -0.241211f, 0.155762f, -0.300781f, 0.151611f, -0.358643f,
+0.147461f, -0.416504f, 0.134277f, -0.468506f, 0.121094f, -0.520508f, 0.0966797f,
+-0.563965f, 0.0722656f, -0.607422f, 0.0322266f, -0.638184f, 0.0322266f, -0.693848f,
+0.097168f, -0.65918f, 0.145508f, -0.618652f, 0.193848f, -0.578125f, 0.22583f, -0.524902f,
+0.257812f, -0.47168f, 0.273438f, -0.402588f, 0.289062f, -0.333496f, 0.289062f, -0.241699f,
+0.289062f, -0.149414f, 0.273438f, -0.079834f, 0.257812f, -0.0102539f, 0.22583f, 0.0432129f,
+0.193848f, 0.0966797f, 0.145508f, 0.137451f, 0.097168f, 0.178223f, 0.0322266f, 0.212891f,
+0.271484f, -0.437012f, 0.307129f, -0.282715f, 0.193359f, -0.282715f, 0.227539f, -0.438965f,
+0.0874023f, -0.32373f, 0.0415039f, -0.427734f, 0.191406f, -0.470703f, 0.0415039f,
+-0.514648f, 0.0874023f, -0.618652f, 0.227539f, -0.504883f, 0.193359f, -0.659668f,
+0.307129f, -0.659668f, 0.271484f, -0.504883f, 0.412109f, -0.615723f, 0.458496f, -0.513672f,
+0.306152f, -0.470703f, 0.458496f, -0.428711f, 0.412109f, -0.325684f, 0.319824f, -0.296875f,
+0.319824f, -0.0991211f, 0.25f, -0.0991211f, 0.25f, -0.296875f, 0.0527344f, -0.296875f,
+0.0527344f, -0.366699f, 0.25f, -0.366699f, 0.25f, -0.564941f, 0.319824f, -0.564941f,
+0.319824f, -0.366699f, 0.517578f, -0.366699f, 0.517578f, -0.296875f, 0.211914f, -0.0517578f,
+0.211914f, -0.0170898f, 0.200928f, 0.013916f, 0.189941f, 0.0449219f, 0.166016f, 0.0715332f,
+0.14209f, 0.0981445f, 0.104248f, 0.119385f, 0.0664062f, 0.140625f, 0.0131836f, 0.154785f,
+0.0131836f, 0.109863f, 0.0410156f, 0.101562f, 0.0598145f, 0.0895996f, 0.0786133f,
+0.0776367f, 0.0900879f, 0.0646973f, 0.101562f, 0.0517578f, 0.106689f, 0.0390625f,
+0.111816f, 0.0263672f, 0.111816f, 0.0170898f, 0.111816f, 0.00732422f, 0.106445f,
+0.000732422f, 0.101074f, -0.00585938f, 0.0927734f, -0.0109863f, 0.0844727f, -0.0161133f,
+0.0749512f, -0.0212402f, 0.0654297f, -0.0263672f, 0.0571289f, -0.0341797f, 0.0488281f,
+-0.0419922f, 0.043457f, -0.0532227f, 0.0380859f, -0.0644531f, 0.0380859f, -0.0820312f,
+0.0380859f, -0.11377f, 0.0600586f, -0.130371f, 0.0820312f, -0.146973f, 0.115723f,
+-0.146973f, 0.134277f, -0.146973f, 0.151611f, -0.140869f, 0.168945f, -0.134766f,
+0.182373f, -0.122559f, 0.195801f, -0.110352f, 0.203857f, -0.0927734f, 0.211914f,
+-0.0751953f, 0.211914f, -0.0517578f, 0.0366211f, -0.192871f, 0.0366211f, -0.277832f,
+0.296387f, -0.277832f, 0.296387f, -0.192871f, 0.125f, 0.0141602f, 0.10791f, 0.0141602f,
+0.0932617f, 0.0078125f, 0.0786133f, 0.00146484f, 0.067627f, -0.00952148f, 0.0566406f,
+-0.0205078f, 0.050293f, -0.0351562f, 0.0439453f, -0.0498047f, 0.0439453f, -0.0668945f,
+0.0439453f, -0.0834961f, 0.050293f, -0.0983887f, 0.0566406f, -0.113281f, 0.067627f,
+-0.124268f, 0.0786133f, -0.135254f, 0.0932617f, -0.141602f, 0.10791f, -0.147949f,
+0.125f, -0.147949f, 0.141602f, -0.147949f, 0.156494f, -0.141602f, 0.171387f, -0.135254f,
+0.182373f, -0.124268f, 0.193359f, -0.113281f, 0.199707f, -0.0983887f, 0.206055f,
+-0.0834961f, 0.206055f, -0.0668945f, 0.206055f, -0.0498047f, 0.199707f, -0.0351562f,
+0.193359f, -0.0205078f, 0.182373f, -0.00952148f, 0.171387f, 0.00146484f, 0.156494f,
+0.0078125f, 0.141602f, 0.0141602f, 0.125f, 0.0141602f, 0.059082f, 0.00976562f, -0.00976562f,
+0.00976562f, 0.219727f, -0.658691f, 0.288086f, -0.658691f, 0.461914f, -0.330078f,
+0.461914f, -0.248047f, 0.448975f, -0.18457f, 0.436035f, -0.121094f, 0.409668f, -0.0778809f,
+0.383301f, -0.034668f, 0.342773f, -0.0124512f, 0.302246f, 0.00976562f, 0.24707f,
+0.00976562f, 0.143555f, 0.00976562f, 0.0908203f, -0.0771484f, 0.0380859f, -0.164062f,
+0.0380859f, -0.330078f, 0.0380859f, -0.492676f, 0.0908203f, -0.578857f, 0.143555f,
+-0.665039f, 0.250977f, -0.665039f, 0.354492f, -0.665039f, 0.408203f, -0.579834f,
+0.461914f, -0.494629f, 0.461914f, -0.330078f, 0.318848f, -0.330078f, 0.318848f, -0.397949f,
+0.31543f, -0.451172f, 0.312012f, -0.504395f, 0.303711f, -0.541016f, 0.29541f, -0.577637f,
+0.281982f, -0.59668f, 0.268555f, -0.615723f, 0.248047f, -0.615723f, 0.227539f, -0.615723f,
+0.2146f, -0.59668f, 0.20166f, -0.577637f, 0.194336f, -0.541016f, 0.187012f, -0.504395f,
+0.184082f, -0.451172f, 0.181152f, -0.397949f, 0.181152f, -0.330078f, 0.181152f, -0.261719f,
+0.184082f, -0.207764f, 0.187012f, -0.153809f, 0.194336f, -0.116455f, 0.20166f, -0.0791016f,
+0.2146f, -0.059082f, 0.227539f, -0.0390625f, 0.248047f, -0.0390625f, 0.268555f, -0.0390625f,
+0.281982f, -0.059082f, 0.29541f, -0.0791016f, 0.303711f, -0.116455f, 0.312012f, -0.153809f,
+0.31543f, -0.207764f, 0.318848f, -0.261719f, 0.318848f, -0.330078f, 0.334473f, -0.0537109f,
+0.448242f, -0.0419922f, 0.448242f, 0, 0.0800781f, 0, 0.0800781f, -0.0419922f, 0.193359f,
+-0.0537109f, 0.193359f, -0.547363f, 0.0805664f, -0.510254f, 0.0805664f, -0.551758f,
+0.265137f, -0.660156f, 0.334473f, -0.660156f, 0.457031f, 0, 0.0419922f, 0, 0.0419922f,
+-0.0922852f, 0.0839844f, -0.137207f, 0.119629f, -0.172607f, 0.155273f, -0.208008f,
+0.184326f, -0.238525f, 0.213379f, -0.269043f, 0.23584f, -0.296631f, 0.258301f, -0.324219f,
+0.273193f, -0.35376f, 0.288086f, -0.383301f, 0.295898f, -0.416992f, 0.303711f, -0.450684f,
+0.303711f, -0.493652f, 0.303711f, -0.523438f, 0.295898f, -0.545654f, 0.288086f, -0.567871f,
+0.275146f, -0.582764f, 0.262207f, -0.597656f, 0.245117f, -0.60498f, 0.228027f, -0.612305f,
+0.208984f, -0.612305f, 0.178711f, -0.612305f, 0.160645f, -0.605957f, 0.142578f, -0.599609f,
+0.127441f, -0.586914f, 0.106445f, -0.492188f, 0.0639648f, -0.492188f, 0.0639648f,
+-0.641113f, 0.103027f, -0.649902f, 0.140381f, -0.656006f, 0.177734f, -0.662109f,
+0.22168f, -0.662109f, 0.32959f, -0.662109f, 0.386963f, -0.617676f, 0.444336f, -0.573242f,
+0.444336f, -0.491211f, 0.444336f, -0.452148f, 0.435059f, -0.420654f, 0.425781f, -0.38916f,
+0.407959f, -0.361328f, 0.390137f, -0.333496f, 0.36377f, -0.307129f, 0.337402f, -0.280762f,
+0.302979f, -0.251465f, 0.268555f, -0.222168f, 0.226562f, -0.187988f, 0.18457f, -0.153809f,
+0.135742f, -0.110352f, 0.457031f, -0.110352f, 0.46582f, -0.178223f, 0.46582f, -0.133789f,
+0.449707f, -0.098877f, 0.433594f, -0.0639648f, 0.402588f, -0.0397949f, 0.371582f,
+-0.015625f, 0.32666f, -0.00292969f, 0.281738f, 0.00976562f, 0.224121f, 0.00976562f,
+0.174316f, 0.00976562f, 0.12793f, 0.00415039f, 0.081543f, -0.00146484f, 0.043457f,
+-0.00976562f, 0.0375977f, -0.168457f, 0.0825195f, -0.168457f, 0.10791f, -0.0634766f,
+0.123535f, -0.0546875f, 0.146729f, -0.0471191f, 0.169922f, -0.0395508f, 0.196777f,
+-0.0395508f, 0.229004f, -0.0395508f, 0.252441f, -0.050293f, 0.275879f, -0.0610352f,
+0.291504f, -0.0800781f, 0.307129f, -0.0991211f, 0.314697f, -0.125488f, 0.322266f,
+-0.151855f, 0.322266f, -0.183105f, 0.322266f, -0.218262f, 0.313477f, -0.241943f,
+0.304688f, -0.265625f, 0.289551f, -0.280029f, 0.274414f, -0.294434f, 0.253662f, -0.301025f,
+0.23291f, -0.307617f, 0.209473f, -0.309082f, 0.152832f, -0.3125f, 0.152832f, -0.371582f,
+0.20752f, -0.375488f, 0.250977f, -0.378418f, 0.271729f, -0.407471f, 0.29248f, -0.436523f,
+0.29248f, -0.495117f, 0.29248f, -0.524902f, 0.2854f, -0.546875f, 0.27832f, -0.568848f,
+0.265869f, -0.583496f, 0.253418f, -0.598145f, 0.23584f, -0.605225f, 0.218262f, -0.612305f,
+0.197754f, -0.612305f, 0.171387f, -0.612305f, 0.154541f, -0.604248f, 0.137695f, -0.596191f,
+0.122559f, -0.586914f, 0.101562f, -0.492188f, 0.059082f, -0.492188f, 0.059082f, -0.641113f,
+0.0766602f, -0.645508f, 0.0942383f, -0.649414f, 0.111816f, -0.65332f, 0.130859f,
+-0.656006f, 0.149902f, -0.658691f, 0.170898f, -0.6604f, 0.191895f, -0.662109f, 0.216309f,
+-0.662109f, 0.324219f, -0.662109f, 0.380371f, -0.622559f, 0.436523f, -0.583008f,
+0.436523f, -0.500977f, 0.436523f, -0.470215f, 0.428467f, -0.443604f, 0.42041f, -0.416992f,
+0.403809f, -0.396484f, 0.387207f, -0.375977f, 0.361572f, -0.362061f, 0.335938f, -0.348145f,
+0.300781f, -0.342773f, 0.384766f, -0.33252f, 0.425293f, -0.291504f, 0.46582f, -0.250488f,
+0.46582f, -0.178223f, 0.416016f, -0.129395f, 0.416016f, 0, 0.284668f, 0, 0.284668f,
+-0.129395f, 0.0136719f, -0.129395f, 0.0136719f, -0.208984f, 0.308594f, -0.658203f,
+0.416016f, -0.658203f, 0.416016f, -0.229492f, 0.481445f, -0.229492f, 0.481445f, -0.129395f,
+0.284668f, -0.42334f, 0.284668f, -0.436035f, 0.285156f, -0.450195f, 0.285645f, -0.464355f,
+0.286377f, -0.478271f, 0.287109f, -0.492188f, 0.287842f, -0.504639f, 0.288574f, -0.51709f,
+0.289551f, -0.526855f, 0.0947266f, -0.229492f, 0.284668f, -0.229492f, 0.234375f,
+-0.387207f, 0.290527f, -0.387207f, 0.333252f, -0.375977f, 0.375977f, -0.364746f,
+0.404785f, -0.341309f, 0.433594f, -0.317871f, 0.448486f, -0.281494f, 0.463379f, -0.245117f,
+0.463379f, -0.194824f, 0.463379f, -0.148438f, 0.449219f, -0.11084f, 0.435059f, -0.0732422f,
+0.405762f, -0.0463867f, 0.376465f, -0.0195312f, 0.331787f, -0.00488281f, 0.287109f,
+0.00976562f, 0.226562f, 0.00976562f, 0.176758f, 0.00976562f, 0.130371f, 0.00415039f,
+0.0839844f, -0.00146484f, 0.0458984f, -0.00976562f, 0.0400391f, -0.168457f, 0.0849609f,
+-0.168457f, 0.110352f, -0.0634766f, 0.118164f, -0.059082f, 0.129395f, -0.0546875f,
+0.140625f, -0.050293f, 0.153564f, -0.0471191f, 0.166504f, -0.0439453f, 0.18042f,
+-0.041748f, 0.194336f, -0.0395508f, 0.20752f, -0.0395508f, 0.238281f, -0.0395508f,
+0.259521f, -0.0505371f, 0.280762f, -0.0615234f, 0.294189f, -0.0812988f, 0.307617f,
+-0.101074f, 0.313721f, -0.128662f, 0.319824f, -0.15625f, 0.319824f, -0.189941f, 0.319824f,
+-0.226562f, 0.313477f, -0.254395f, 0.307129f, -0.282227f, 0.292969f, -0.300781f,
+0.278809f, -0.319336f, 0.256104f, -0.328613f, 0.233398f, -0.337891f, 0.200195f, -0.337891f,
+0.185547f, -0.337891f, 0.174072f, -0.336182f, 0.162598f, -0.334473f, 0.153564f, -0.331543f,
+0.144531f, -0.328613f, 0.136719f, -0.325195f, 0.128906f, -0.321777f, 0.121582f, -0.318848f,
+0.0727539f, -0.318848f, 0.0727539f, -0.654785f, 0.414551f, -0.654785f, 0.414551f,
+-0.545898f, 0.126953f, -0.545898f, 0.126953f, -0.374023f, 0.135742f, -0.375977f,
+0.145996f, -0.378174f, 0.15625f, -0.380371f, 0.169189f, -0.382324f, 0.182129f, -0.384277f,
+0.198242f, -0.385742f, 0.214355f, -0.387207f, 0.234375f, -0.387207f, 0.470703f, -0.203125f,
+0.470703f, -0.152344f, 0.45752f, -0.112793f, 0.444336f, -0.0732422f, 0.418213f, -0.0458984f,
+0.39209f, -0.0185547f, 0.354004f, -0.00439453f, 0.315918f, 0.00976562f, 0.266113f,
+0.00976562f, 0.211426f, 0.00976562f, 0.168213f, -0.0112305f, 0.125f, -0.0322266f,
+0.0952148f, -0.0739746f, 0.0654297f, -0.115723f, 0.0498047f, -0.177979f, 0.0341797f,
+-0.240234f, 0.0341797f, -0.323242f, 0.0341797f, -0.412109f, 0.0549316f, -0.476074f,
+0.0756836f, -0.540039f, 0.110352f, -0.581543f, 0.14502f, -0.623047f, 0.190186f, -0.642578f,
+0.235352f, -0.662109f, 0.28418f, -0.662109f, 0.322266f, -0.662109f, 0.361084f, -0.65625f,
+0.399902f, -0.650391f, 0.431152f, -0.641113f, 0.431152f, -0.492188f, 0.388672f, -0.492188f,
+0.367676f, -0.586914f, 0.352051f, -0.598633f, 0.333252f, -0.605469f, 0.314453f, -0.612305f,
+0.293945f, -0.612305f, 0.271484f, -0.612305f, 0.251709f, -0.597656f, 0.231934f, -0.583008f,
+0.216797f, -0.553711f, 0.20166f, -0.524414f, 0.19165f, -0.479736f, 0.181641f, -0.435059f,
+0.178711f, -0.375f, 0.203613f, -0.385742f, 0.229248f, -0.391846f, 0.254883f, -0.397949f,
+0.28418f, -0.397949f, 0.32666f, -0.397949f, 0.361084f, -0.385986f, 0.395508f, -0.374023f,
+0.419922f, -0.349854f, 0.444336f, -0.325684f, 0.45752f, -0.289062f, 0.470703f, -0.252441f,
+0.470703f, -0.203125f, 0.26416f, -0.0395508f, 0.299805f, -0.0395508f, 0.313477f,
+-0.078125f, 0.327148f, -0.116699f, 0.327148f, -0.193848f, 0.327148f, -0.235352f,
+0.320801f, -0.262939f, 0.314453f, -0.290527f, 0.303955f, -0.307129f, 0.293457f, -0.32373f,
+0.279785f, -0.330322f, 0.266113f, -0.336914f, 0.251465f, -0.336914f, 0.229004f, -0.336914f,
+0.212402f, -0.333984f, 0.195801f, -0.331055f, 0.177734f, -0.325684f, 0.177734f, -0.323242f,
+0.177734f, -0.254883f, 0.182617f, -0.202148f, 0.1875f, -0.149414f, 0.197998f, -0.113281f,
+0.208496f, -0.0771484f, 0.224854f, -0.0583496f, 0.241211f, -0.0395508f, 0.26416f,
+-0.0395508f, 0.0996094f, -0.467773f, 0.0571289f, -0.467773f, 0.0571289f, -0.654785f,
+0.475586f, -0.654785f, 0.475586f, -0.616211f, 0.221191f, 0, 0.104492f, 0, 0.380371f,
+-0.545898f, 0.12207f, -0.545898f, 0.45166f, -0.493652f, 0.45166f, -0.439941f, 0.425293f,
+-0.4021f, 0.398926f, -0.364258f, 0.351074f, -0.347168f, 0.376953f, -0.337402f, 0.398438f,
+-0.321777f, 0.419922f, -0.306152f, 0.435059f, -0.284912f, 0.450195f, -0.263672f,
+0.458496f, -0.236572f, 0.466797f, -0.209473f, 0.466797f, -0.176758f, 0.466797f, -0.0839844f,
+0.41333f, -0.0371094f, 0.359863f, 0.00976562f, 0.24707f, 0.00976562f, 0.140137f,
+0.00976562f, 0.0866699f, -0.036377f, 0.0332031f, -0.0825195f, 0.0332031f, -0.176758f,
+0.0332031f, -0.208984f, 0.0412598f, -0.236084f, 0.0493164f, -0.263184f, 0.064209f,
+-0.284424f, 0.0791016f, -0.305664f, 0.100098f, -0.321533f, 0.121094f, -0.337402f,
+0.147461f, -0.347168f, 0.100098f, -0.365234f, 0.0742188f, -0.402832f, 0.0483398f,
+-0.44043f, 0.0483398f, -0.495117f, 0.0483398f, -0.533691f, 0.0612793f, -0.565186f,
+0.0742188f, -0.59668f, 0.0996094f, -0.618896f, 0.125f, -0.641113f, 0.163086f, -0.653076f,
+0.201172f, -0.665039f, 0.250977f, -0.665039f, 0.299316f, -0.665039f, 0.33667f, -0.653076f,
+0.374023f, -0.641113f, 0.399658f, -0.618652f, 0.425293f, -0.596191f, 0.438477f, -0.564697f,
+0.45166f, -0.533203f, 0.45166f, -0.493652f, 0.328125f, -0.176758f, 0.328125f, -0.211426f,
+0.323975f, -0.238037f, 0.319824f, -0.264648f, 0.310303f, -0.282959f, 0.300781f, -0.30127f,
+0.2854f, -0.310791f, 0.27002f, -0.320312f, 0.24707f, -0.320312f, 0.224609f, -0.320312f,
+0.210205f, -0.310791f, 0.195801f, -0.30127f, 0.187256f, -0.282959f, 0.178711f, -0.264648f,
+0.175293f, -0.238037f, 0.171875f, -0.211426f, 0.171875f, -0.176758f, 0.171875f, -0.143555f,
+0.175293f, -0.11792f, 0.178711f, -0.0922852f, 0.187256f, -0.0749512f, 0.195801f,
+-0.0576172f, 0.210205f, -0.048584f, 0.224609f, -0.0395508f, 0.24707f, -0.0395508f,
+0.27002f, -0.0395508f, 0.2854f, -0.048584f, 0.300781f, -0.0576172f, 0.310303f, -0.0749512f,
+0.319824f, -0.0922852f, 0.323975f, -0.11792f, 0.328125f, -0.143555f, 0.328125f, -0.176758f,
+0.312988f, -0.493652f, 0.312988f, -0.52002f, 0.310059f, -0.54248f, 0.307129f, -0.564941f,
+0.299561f, -0.581299f, 0.291992f, -0.597656f, 0.279541f, -0.606689f, 0.26709f, -0.615723f,
+0.248047f, -0.615723f, 0.229492f, -0.615723f, 0.217773f, -0.606689f, 0.206055f, -0.597656f,
+0.199219f, -0.581299f, 0.192383f, -0.564941f, 0.189697f, -0.54248f, 0.187012f, -0.52002f,
+0.187012f, -0.493652f, 0.187012f, -0.465332f, 0.189697f, -0.442871f, 0.192383f, -0.42041f,
+0.199219f, -0.404785f, 0.206055f, -0.38916f, 0.217773f, -0.380859f, 0.229492f, -0.372559f,
+0.248047f, -0.372559f, 0.26709f, -0.372559f, 0.279541f, -0.380859f, 0.291992f, -0.38916f,
+0.299561f, -0.404785f, 0.307129f, -0.42041f, 0.310059f, -0.442871f, 0.312988f, -0.465332f,
+0.312988f, -0.493652f, 0.0273438f, -0.455078f, 0.0273438f, -0.505371f, 0.0422363f,
+-0.544189f, 0.0571289f, -0.583008f, 0.0852051f, -0.609131f, 0.113281f, -0.635254f,
+0.15332f, -0.648682f, 0.193359f, -0.662109f, 0.243164f, -0.662109f, 0.299805f, -0.662109f,
+0.341553f, -0.642578f, 0.383301f, -0.623047f, 0.4104f, -0.582275f, 0.4375f, -0.541504f,
+0.450684f, -0.478516f, 0.463867f, -0.415527f, 0.463867f, -0.329102f, 0.463867f, -0.234375f,
+0.442627f, -0.169678f, 0.421387f, -0.10498f, 0.385498f, -0.0651855f, 0.349609f, -0.0253906f,
+0.30249f, -0.0078125f, 0.255371f, 0.00976562f, 0.204102f, 0.00976562f, 0.15918f,
+0.00976562f, 0.123047f, 0.00439453f, 0.0869141f, -0.000976562f, 0.0522461f, -0.0112305f,
+0.0522461f, -0.160156f, 0.0947266f, -0.160156f, 0.115723f, -0.0654297f, 0.132812f,
+-0.0532227f, 0.156494f, -0.0463867f, 0.180176f, -0.0395508f, 0.202148f, -0.0395508f,
+0.225098f, -0.0395508f, 0.245117f, -0.052002f, 0.265137f, -0.0644531f, 0.280518f,
+-0.0922852f, 0.295898f, -0.120117f, 0.305908f, -0.164307f, 0.315918f, -0.208496f,
+0.318848f, -0.272461f, 0.29541f, -0.26416f, 0.270508f, -0.259277f, 0.245605f, -0.254395f,
+0.217773f, -0.254395f, 0.175293f, -0.254395f, 0.140381f, -0.267334f, 0.105469f, -0.280273f,
+0.0803223f, -0.30542f, 0.0551758f, -0.330566f, 0.0412598f, -0.368164f, 0.0273438f,
+-0.405762f, 0.0273438f, -0.455078f, 0.170898f, -0.453125f, 0.170898f, -0.415039f,
+0.176514f, -0.388428f, 0.182129f, -0.361816f, 0.192139f, -0.345215f, 0.202148f, -0.328613f,
+0.216064f, -0.321045f, 0.22998f, -0.313477f, 0.24707f, -0.313477f, 0.28418f, -0.313477f,
+0.320312f, -0.322266f, 0.320312f, -0.329102f, 0.320312f, -0.470215f, 0.303467f, -0.541504f,
+0.286621f, -0.612793f, 0.244141f, -0.612793f, 0.206055f, -0.612793f, 0.188477f, -0.571777f,
+0.170898f, -0.530762f, 0.170898f, -0.453125f, 0.162598f, 0.0141602f, 0.145508f, 0.0141602f,
+0.130615f, 0.0078125f, 0.115723f, 0.00146484f, 0.10498f, -0.00952148f, 0.0942383f,
+-0.0205078f, 0.0881348f, -0.0351562f, 0.0820312f, -0.0498047f, 0.0820312f, -0.0668945f,
+0.0820312f, -0.0834961f, 0.0881348f, -0.0983887f, 0.0942383f, -0.113281f, 0.10498f,
+-0.124268f, 0.115723f, -0.135254f, 0.130615f, -0.141602f, 0.145508f, -0.147949f,
+0.162598f, -0.147949f, 0.179688f, -0.147949f, 0.194336f, -0.141602f, 0.208984f, -0.135254f,
+0.219971f, -0.124268f, 0.230957f, -0.113281f, 0.237305f, -0.0983887f, 0.243652f,
+-0.0834961f, 0.243652f, -0.0668945f, 0.243652f, -0.0498047f, 0.237305f, -0.0351562f,
+0.230957f, -0.0205078f, 0.219971f, -0.00952148f, 0.208984f, 0.00146484f, 0.194336f,
+0.0078125f, 0.179688f, 0.0141602f, 0.162598f, 0.0141602f, 0.162598f, -0.306641f,
+0.145508f, -0.306641f, 0.130615f, -0.312988f, 0.115723f, -0.319336f, 0.10498f, -0.330322f,
+0.0942383f, -0.341309f, 0.0881348f, -0.355957f, 0.0820312f, -0.370605f, 0.0820312f,
+-0.387695f, 0.0820312f, -0.404785f, 0.0881348f, -0.419678f, 0.0942383f, -0.43457f,
+0.10498f, -0.445557f, 0.115723f, -0.456543f, 0.130615f, -0.462646f, 0.145508f, -0.46875f,
+0.162598f, -0.46875f, 0.179688f, -0.46875f, 0.194336f, -0.462646f, 0.208984f, -0.456543f,
+0.219971f, -0.445557f, 0.230957f, -0.43457f, 0.237305f, -0.419678f, 0.243652f, -0.404785f,
+0.243652f, -0.387695f, 0.243652f, -0.370605f, 0.237305f, -0.355957f, 0.230957f, -0.341309f,
+0.219971f, -0.330322f, 0.208984f, -0.319336f, 0.194336f, -0.312988f, 0.179688f, -0.306641f,
+0.162598f, -0.306641f, 0.163574f, -0.306641f, 0.146484f, -0.306641f, 0.131592f, -0.312988f,
+0.116699f, -0.319336f, 0.105957f, -0.330322f, 0.0952148f, -0.341309f, 0.0891113f,
+-0.355957f, 0.0830078f, -0.370605f, 0.0830078f, -0.387695f, 0.0830078f, -0.404785f,
+0.0891113f, -0.419678f, 0.0952148f, -0.43457f, 0.105957f, -0.445557f, 0.116699f,
+-0.456543f, 0.131592f, -0.462646f, 0.146484f, -0.46875f, 0.163574f, -0.46875f, 0.180664f,
+-0.46875f, 0.195312f, -0.462646f, 0.209961f, -0.456543f, 0.220947f, -0.445557f, 0.231934f,
+-0.43457f, 0.238281f, -0.419678f, 0.244629f, -0.404785f, 0.244629f, -0.387695f, 0.244629f,
+-0.370605f, 0.238281f, -0.355957f, 0.231934f, -0.341309f, 0.220947f, -0.330322f,
+0.209961f, -0.319336f, 0.195312f, -0.312988f, 0.180664f, -0.306641f, 0.163574f, -0.306641f,
+0.250977f, -0.0517578f, 0.250977f, -0.0170898f, 0.23999f, 0.013916f, 0.229004f, 0.0449219f,
+0.205078f, 0.0715332f, 0.181152f, 0.0981445f, 0.143311f, 0.119385f, 0.105469f, 0.140625f,
+0.0517578f, 0.154785f, 0.0517578f, 0.109863f, 0.0795898f, 0.101562f, 0.0986328f,
+0.0895996f, 0.117676f, 0.0776367f, 0.12915f, 0.0646973f, 0.140625f, 0.0517578f, 0.145752f,
+0.0390625f, 0.150879f, 0.0263672f, 0.150879f, 0.0170898f, 0.150879f, 0.00732422f,
+0.145264f, 0.000732422f, 0.139648f, -0.00585938f, 0.131348f, -0.0109863f, 0.123047f,
+-0.0161133f, 0.113281f, -0.0212402f, 0.103516f, -0.0263672f, 0.0952148f, -0.0341797f,
+0.0869141f, -0.0419922f, 0.0812988f, -0.0532227f, 0.0756836f, -0.0644531f, 0.0756836f,
+-0.0820312f, 0.0756836f, -0.0976562f, 0.0817871f, -0.109863f, 0.0878906f, -0.12207f,
+0.0983887f, -0.130371f, 0.108887f, -0.138672f, 0.123291f, -0.142822f, 0.137695f,
+-0.146973f, 0.154785f, -0.146973f, 0.172852f, -0.146973f, 0.189941f, -0.140869f,
+0.207031f, -0.134766f, 0.220703f, -0.122559f, 0.234375f, -0.110352f, 0.242676f, -0.0927734f,
+0.250977f, -0.0751953f, 0.250977f, -0.0517578f, 0.0498047f, -0.310059f, 0.0498047f,
+-0.354004f, 0.514648f, -0.58252f, 0.514648f, -0.512695f, 0.140137f, -0.332031f, 0.514648f,
+-0.150879f, 0.514648f, -0.0810547f, 0.514648f, -0.26709f, 0.514648f, -0.196777f,
+0.0498047f, -0.196777f, 0.0498047f, -0.26709f, 0.514648f, -0.466797f, 0.514648f,
+-0.396973f, 0.0498047f, -0.396973f, 0.0498047f, -0.466797f, 0.0507812f, -0.0810547f,
+0.0507812f, -0.150879f, 0.425781f, -0.332031f, 0.0507812f, -0.512695f, 0.0507812f,
+-0.58252f, 0.515625f, -0.354004f, 0.515625f, -0.310059f, 0.217285f, 0.0141602f, 0.200195f,
+0.0141602f, 0.185303f, 0.0078125f, 0.17041f, 0.00146484f, 0.159668f, -0.00952148f,
+0.148926f, -0.0205078f, 0.142822f, -0.0351562f, 0.136719f, -0.0498047f, 0.136719f,
+-0.0668945f, 0.136719f, -0.0834961f, 0.142822f, -0.0983887f, 0.148926f, -0.113281f,
+0.159668f, -0.124268f, 0.17041f, -0.135254f, 0.185303f, -0.141602f, 0.200195f, -0.147949f,
+0.217285f, -0.147949f, 0.234375f, -0.147949f, 0.249023f, -0.141602f, 0.263672f, -0.135254f,
+0.274658f, -0.124268f, 0.285645f, -0.113281f, 0.291992f, -0.0983887f, 0.29834f, -0.0834961f,
+0.29834f, -0.0668945f, 0.29834f, -0.0498047f, 0.291992f, -0.0351562f, 0.285645f,
+-0.0205078f, 0.274658f, -0.00952148f, 0.263672f, 0.00146484f, 0.249023f, 0.0078125f,
+0.234375f, 0.0141602f, 0.217285f, 0.0141602f, 0.239746f, -0.19043f, 0.189453f, -0.19043f,
+0.161621f, -0.343262f, 0.208008f, -0.355469f, 0.226562f, -0.360352f, 0.243164f, -0.368408f,
+0.259766f, -0.376465f, 0.272217f, -0.391113f, 0.284668f, -0.405762f, 0.291992f, -0.428467f,
+0.299316f, -0.451172f, 0.299316f, -0.485352f, 0.299316f, -0.519531f, 0.293457f, -0.543701f,
+0.287598f, -0.567871f, 0.275146f, -0.583252f, 0.262695f, -0.598633f, 0.243652f, -0.605469f,
+0.224609f, -0.612305f, 0.197754f, -0.612305f, 0.174316f, -0.612305f, 0.156494f, -0.606445f,
+0.138672f, -0.600586f, 0.125f, -0.591797f, 0.104004f, -0.49707f, 0.0605469f, -0.49707f,
+0.0605469f, -0.641113f, 0.0981445f, -0.650879f, 0.135986f, -0.656494f, 0.173828f,
+-0.662109f, 0.21875f, -0.662109f, 0.328613f, -0.662109f, 0.384521f, -0.618896f, 0.44043f,
+-0.575684f, 0.44043f, -0.48877f, 0.44043f, -0.456055f, 0.431641f, -0.42627f, 0.422852f,
+-0.396484f, 0.404785f, -0.37207f, 0.386719f, -0.347656f, 0.359375f, -0.329346f, 0.332031f,
+-0.311035f, 0.29541f, -0.300781f, 0.25293f, -0.289062f, 0.87793f, -0.367188f, 0.87793f,
+-0.316895f, 0.864014f, -0.270996f, 0.850098f, -0.225098f, 0.825928f, -0.185791f,
+0.801758f, -0.146484f, 0.768555f, -0.114258f, 0.735352f, -0.0820312f, 0.696777f,
+-0.0593262f, 0.658203f, -0.0366211f, 0.615479f, -0.0244141f, 0.572754f, -0.012207f,
+0.529785f, -0.012207f, 0.498047f, -0.012207f, 0.483154f, -0.0288086f, 0.468262f,
+-0.0454102f, 0.467285f, -0.0732422f, 0.455078f, -0.0629883f, 0.44165f, -0.052002f,
+0.428223f, -0.0410156f, 0.412109f, -0.0322266f, 0.395996f, -0.0234375f, 0.377197f,
+-0.0178223f, 0.358398f, -0.012207f, 0.334961f, -0.012207f, 0.313965f, -0.012207f,
+0.297119f, -0.0209961f, 0.280273f, -0.0297852f, 0.268555f, -0.0461426f, 0.256836f,
+-0.0625f, 0.250488f, -0.0856934f, 0.244141f, -0.108887f, 0.244141f, -0.138184f, 0.244141f,
+-0.172363f, 0.252197f, -0.208008f, 0.260254f, -0.243652f, 0.276367f, -0.2771f, 0.29248f,
+-0.310547f, 0.31665f, -0.340332f, 0.34082f, -0.370117f, 0.373047f, -0.393066f, 0.397949f,
+-0.411133f, 0.421631f, -0.422363f, 0.445312f, -0.433594f, 0.469971f, -0.439941f,
+0.494629f, -0.446289f, 0.52124f, -0.44873f, 0.547852f, -0.451172f, 0.578125f, -0.451172f,
+0.601562f, -0.451172f, 0.625977f, -0.449463f, 0.650391f, -0.447754f, 0.66748f, -0.445801f,
+0.608398f, -0.181641f, 0.605957f, -0.171875f, 0.604004f, -0.161133f, 0.602051f, -0.150391f,
+0.600586f, -0.139893f, 0.599121f, -0.129395f, 0.598145f, -0.120117f, 0.597168f, -0.11084f,
+0.597168f, -0.10498f, 0.597168f, -0.09375f, 0.601318f, -0.0856934f, 0.605469f, -0.0776367f,
+0.621582f, -0.0776367f, 0.647461f, -0.0776367f, 0.669922f, -0.0895996f, 0.692383f,
+-0.101562f, 0.710938f, -0.122314f, 0.729492f, -0.143066f, 0.743896f, -0.170898f,
+0.758301f, -0.19873f, 0.768066f, -0.230957f, 0.777832f, -0.263184f, 0.782959f, -0.297852f,
+0.788086f, -0.33252f, 0.788086f, -0.366699f, 0.788086f, -0.427246f, 0.769775f, -0.473877f,
+0.751465f, -0.520508f, 0.717285f, -0.552246f, 0.683105f, -0.583984f, 0.63501f, -0.600342f,
+0.586914f, -0.616699f, 0.526855f, -0.616699f, 0.466797f, -0.616699f, 0.415039f, -0.60083f,
+0.363281f, -0.584961f, 0.320312f, -0.555908f, 0.277344f, -0.526855f, 0.244385f, -0.486572f,
+0.211426f, -0.446289f, 0.188477f, -0.397461f, 0.165527f, -0.348633f, 0.153809f, -0.292725f,
+0.14209f, -0.236816f, 0.14209f, -0.177246f, 0.14209f, -0.114746f, 0.159912f, -0.0576172f,
+0.177734f, -0.000488281f, 0.214355f, 0.0432129f, 0.250977f, 0.0869141f, 0.306396f,
+0.112793f, 0.361816f, 0.138672f, 0.437012f, 0.138672f, 0.481445f, 0.138672f, 0.519287f,
+0.131836f, 0.557129f, 0.125f, 0.589355f, 0.113281f, 0.621582f, 0.101562f, 0.64917f,
+0.0859375f, 0.676758f, 0.0703125f, 0.701172f, 0.0532227f, 0.722656f, 0.0844727f,
+0.695312f, 0.106445f, 0.664551f, 0.125488f, 0.633789f, 0.144531f, 0.597168f, 0.158936f,
+0.560547f, 0.17334f, 0.51709f, 0.181641f, 0.473633f, 0.189941f, 0.421875f, 0.189941f,
+0.332031f, 0.189941f, 0.262939f, 0.161377f, 0.193848f, 0.132812f, 0.146973f, 0.0830078f,
+0.100098f, 0.0332031f, 0.0761719f, -0.0336914f, 0.0522461f, -0.100586f, 0.0522461f,
+-0.176758f, 0.0522461f, -0.246582f, 0.0683594f, -0.310059f, 0.0844727f, -0.373535f,
+0.114502f, -0.427734f, 0.144531f, -0.481934f, 0.187012f, -0.526123f, 0.229492f, -0.570312f,
+0.282471f, -0.601318f, 0.335449f, -0.632324f, 0.397461f, -0.64917f, 0.459473f, -0.666016f,
+0.528809f, -0.666016f, 0.615723f, -0.666016f, 0.681152f, -0.644775f, 0.746582f, -0.623535f,
+0.790283f, -0.584473f, 0.833984f, -0.54541f, 0.855957f, -0.490234f, 0.87793f, -0.435059f,
+0.87793f, -0.367188f, 0.361328f, -0.154297f, 0.361328f, -0.119141f, 0.371826f, -0.10083f,
+0.382324f, -0.0825195f, 0.395996f, -0.0825195f, 0.405762f, -0.0825195f, 0.416504f,
+-0.0856934f, 0.427246f, -0.0888672f, 0.4375f, -0.09375f, 0.447754f, -0.0986328f,
+0.456543f, -0.104492f, 0.465332f, -0.110352f, 0.471191f, -0.115723f, 0.529785f, -0.389648f,
+0.526367f, -0.390625f, 0.516846f, -0.391357f, 0.507324f, -0.39209f, 0.5f, -0.39209f,
+0.476074f, -0.39209f, 0.454834f, -0.385498f, 0.433594f, -0.378906f, 0.416016f, -0.35791f,
+0.40625f, -0.346191f, 0.396484f, -0.325195f, 0.386719f, -0.304199f, 0.378906f, -0.2771f,
+0.371094f, -0.25f, 0.366211f, -0.218506f, 0.361328f, -0.187012f, 0.361328f, -0.154297f,
+0.208984f, -0.0356445f, 0.208984f, 0, 0.00976562f, 0, 0.00976562f, -0.0356445f, 0.0585938f,
+-0.0488281f, 0.291504f, -0.660156f, 0.433105f, -0.660156f, 0.665039f, -0.0488281f,
+0.714844f, -0.0356445f, 0.714844f, 0, 0.42334f, 0, 0.42334f, -0.0356445f, 0.499023f,
+-0.0488281f, 0.436523f, -0.218262f, 0.185059f, -0.218262f, 0.125f, -0.0488281f, 0.312988f,
+-0.561523f, 0.205078f, -0.271973f, 0.417969f, -0.271973f, 0.428711f, -0.493164f,
+0.428711f, -0.520996f, 0.423096f, -0.54126f, 0.41748f, -0.561523f, 0.404785f, -0.574951f,
+0.39209f, -0.588379f, 0.371826f, -0.594727f, 0.351562f, -0.601074f, 0.322754f, -0.601074f,
+0.254883f, -0.601074f, 0.254883f, -0.373047f, 0.32666f, -0.373047f, 0.356445f, -0.373047f,
+0.376221f, -0.381348f, 0.395996f, -0.389648f, 0.407715f, -0.405029f, 0.419434f, -0.42041f,
+0.424072f, -0.442627f, 0.428711f, -0.464844f, 0.428711f, -0.493164f, 0.478027f, -0.190918f,
+0.478027f, -0.255859f, 0.445557f, -0.287598f, 0.413086f, -0.319336f, 0.339355f, -0.319336f,
+0.254883f, -0.319336f, 0.254883f, -0.0537109f, 0.27832f, -0.0527344f, 0.299805f,
+-0.0522461f, 0.317871f, -0.0512695f, 0.336426f, -0.0510254f, 0.35498f, -0.0507812f,
+0.365723f, -0.0507812f, 0.396484f, -0.0507812f, 0.417969f, -0.0605469f, 0.439453f,
+-0.0703125f, 0.452637f, -0.0883789f, 0.46582f, -0.106445f, 0.471924f, -0.132324f,
+0.478027f, -0.158203f, 0.478027f, -0.190918f, 0.0166016f, 0, 0.0166016f, -0.0356445f,
+0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0166016f, -0.619141f, 0.0166016f,
+-0.654785f, 0.334473f, -0.654785f, 0.407227f, -0.654785f, 0.456055f, -0.644531f,
+0.504883f, -0.634277f, 0.534424f, -0.615234f, 0.563965f, -0.596191f, 0.576416f, -0.568848f,
+0.588867f, -0.541504f, 0.588867f, -0.506836f, 0.588867f, -0.474121f, 0.577881f, -0.447754f,
+0.566895f, -0.421387f, 0.54834f, -0.401611f, 0.529785f, -0.381836f, 0.505371f, -0.368896f,
+0.480957f, -0.355957f, 0.454102f, -0.350098f, 0.502441f, -0.345215f, 0.537354f, -0.332031f,
+0.572266f, -0.318848f, 0.594971f, -0.29834f, 0.617676f, -0.277832f, 0.628418f, -0.250732f,
+0.63916f, -0.223633f, 0.63916f, -0.190918f, 0.63916f, -0.148438f, 0.624023f, -0.112793f,
+0.608887f, -0.0771484f, 0.575928f, -0.0515137f, 0.542969f, -0.0258789f, 0.491455f,
+-0.0114746f, 0.439941f, 0.00292969f, 0.367188f, 0.00292969f, 0.308594f, 0.00292969f,
+0.250977f, 0.00146484f, 0.193359f, 0, 0.144531f, 0, 0.397949f, 0.00976562f, 0.31543f,
+0.00976562f, 0.250732f, -0.0126953f, 0.186035f, -0.0351562f, 0.141113f, -0.0776367f,
+0.0961914f, -0.120117f, 0.0725098f, -0.181396f, 0.0488281f, -0.242676f, 0.0488281f,
+-0.319824f, 0.0488281f, -0.407715f, 0.0725098f, -0.472168f, 0.0961914f, -0.536621f,
+0.140869f, -0.578857f, 0.185547f, -0.621094f, 0.250244f, -0.641602f, 0.314941f, -0.662109f,
+0.397461f, -0.662109f, 0.467285f, -0.662109f, 0.526611f, -0.6521f, 0.585938f, -0.64209f,
+0.633301f, -0.629395f, 0.63623f, -0.472168f, 0.592285f, -0.472168f, 0.578613f, -0.566895f,
+0.547852f, -0.587891f, 0.509277f, -0.599365f, 0.470703f, -0.61084f, 0.428711f, -0.61084f,
+0.377441f, -0.61084f, 0.336914f, -0.595947f, 0.296387f, -0.581055f, 0.268311f, -0.546875f,
+0.240234f, -0.512695f, 0.225586f, -0.45752f, 0.210938f, -0.402344f, 0.210938f, -0.321289f,
+0.210938f, -0.25f, 0.225586f, -0.197266f, 0.240234f, -0.144531f, 0.267578f, -0.109863f,
+0.294922f, -0.0751953f, 0.334717f, -0.0578613f, 0.374512f, -0.0405273f, 0.424805f,
+-0.0405273f, 0.47998f, -0.0405273f, 0.52124f, -0.0551758f, 0.5625f, -0.0698242f,
+0.585938f, -0.0898438f, 0.601562f, -0.197266f, 0.645996f, -0.197266f, 0.643066f,
+-0.03125f, 0.62207f, -0.0229492f, 0.593506f, -0.015625f, 0.564941f, -0.00830078f,
+0.532471f, -0.00268555f, 0.5f, 0.00292969f, 0.465332f, 0.00634766f, 0.430664f, 0.00976562f,
+0.397949f, 0.00976562f, 0.51123f, -0.327148f, 0.51123f, -0.403809f, 0.496826f, -0.456299f,
+0.482422f, -0.508789f, 0.45459f, -0.541016f, 0.426758f, -0.573242f, 0.385742f, -0.587158f,
+0.344727f, -0.601074f, 0.291016f, -0.601074f, 0.254883f, -0.601074f, 0.254883f, -0.0556641f,
+0.266602f, -0.0546875f, 0.276123f, -0.0541992f, 0.285645f, -0.0537109f, 0.295166f,
+-0.0529785f, 0.304688f, -0.0522461f, 0.315186f, -0.052002f, 0.325684f, -0.0517578f,
+0.339844f, -0.0517578f, 0.388672f, -0.0517578f, 0.421387f, -0.067627f, 0.454102f,
+-0.0834961f, 0.474121f, -0.117188f, 0.494141f, -0.150879f, 0.502686f, -0.202881f,
+0.51123f, -0.254883f, 0.51123f, -0.327148f, 0.328613f, -0.654785f, 0.407715f, -0.654785f,
+0.471436f, -0.637939f, 0.535156f, -0.621094f, 0.580078f, -0.583008f, 0.625f, -0.544922f,
+0.64917f, -0.483154f, 0.67334f, -0.421387f, 0.67334f, -0.331055f, 0.67334f, -0.250977f,
+0.654785f, -0.188965f, 0.63623f, -0.126953f, 0.59668f, -0.0844727f, 0.557129f, -0.0419922f,
+0.49585f, -0.0200195f, 0.43457f, 0.00195312f, 0.349121f, 0.00195312f, 0.321289f,
+0.00195312f, 0.290527f, 0.00170898f, 0.259766f, 0.00146484f, 0.230469f, 0.000976562f,
+0.201172f, 0.000488281f, 0.175049f, 0.000244141f, 0.148926f, 0, 0.129883f, 0, 0.0175781f,
+0, 0.0175781f, -0.0356445f, 0.101562f, -0.0488281f, 0.101562f, -0.606445f, 0.0175781f,
+-0.619141f, 0.0175781f, -0.654785f, 0.0170898f, -0.0356445f, 0.101074f, -0.0488281f,
+0.101074f, -0.606445f, 0.0170898f, -0.619141f, 0.0170898f, -0.654785f, 0.574707f,
+-0.654785f, 0.574707f, -0.488281f, 0.530273f, -0.488281f, 0.514648f, -0.594238f,
+0.499023f, -0.596191f, 0.476807f, -0.597656f, 0.45459f, -0.599121f, 0.431641f, -0.599854f,
+0.408691f, -0.600586f, 0.388184f, -0.60083f, 0.367676f, -0.601074f, 0.356445f, -0.601074f,
+0.254883f, -0.601074f, 0.254883f, -0.36084f, 0.42627f, -0.36084f, 0.441406f, -0.433105f,
+0.484863f, -0.433105f, 0.484863f, -0.231934f, 0.441406f, -0.231934f, 0.42627f, -0.306152f,
+0.254883f, -0.306152f, 0.254883f, -0.0537109f, 0.378418f, -0.0537109f, 0.408691f,
+-0.0537109f, 0.435547f, -0.0544434f, 0.462402f, -0.0551758f, 0.483887f, -0.0561523f,
+0.505371f, -0.0571289f, 0.520752f, -0.0585938f, 0.536133f, -0.0600586f, 0.543457f,
+-0.0615234f, 0.571289f, -0.182617f, 0.615723f, -0.182617f, 0.606445f, 0, 0.0170898f,
+0, 0.254883f, -0.279297f, 0.254883f, -0.0488281f, 0.36377f, -0.0356445f, 0.36377f,
+0, 0.0234375f, 0, 0.0234375f, -0.0356445f, 0.101074f, -0.0488281f, 0.101074f, -0.606445f,
+0.0170898f, -0.619141f, 0.0170898f, -0.654785f, 0.562988f, -0.654785f, 0.562988f,
+-0.478516f, 0.51709f, -0.478516f, 0.501465f, -0.594238f, 0.491211f, -0.595703f, 0.475342f,
+-0.59668f, 0.459473f, -0.597656f, 0.441162f, -0.598633f, 0.422852f, -0.599609f, 0.403564f,
+-0.599854f, 0.384277f, -0.600098f, 0.366943f, -0.600586f, 0.349609f, -0.601074f,
+0.335449f, -0.601074f, 0.321289f, -0.601074f, 0.313965f, -0.601074f, 0.254883f, -0.601074f,
+0.254883f, -0.333008f, 0.414551f, -0.333008f, 0.429688f, -0.416016f, 0.473145f, -0.416016f,
+0.473145f, -0.195312f, 0.429688f, -0.195312f, 0.414551f, -0.279297f, 0.686523f, -0.0341797f,
+0.658203f, -0.0249023f, 0.623291f, -0.0168457f, 0.588379f, -0.00878906f, 0.550781f,
+-0.00292969f, 0.513184f, 0.00292969f, 0.475098f, 0.00634766f, 0.437012f, 0.00976562f,
+0.401855f, 0.00976562f, 0.324219f, 0.00976562f, 0.259277f, -0.0114746f, 0.194336f,
+-0.0327148f, 0.147705f, -0.0744629f, 0.101074f, -0.116211f, 0.0749512f, -0.177734f,
+0.0488281f, -0.239258f, 0.0488281f, -0.319824f, 0.0488281f, -0.405762f, 0.0742188f,
+-0.469971f, 0.0996094f, -0.53418f, 0.146729f, -0.576904f, 0.193848f, -0.619629f,
+0.260986f, -0.640869f, 0.328125f, -0.662109f, 0.411133f, -0.662109f, 0.453613f, -0.662109f,
+0.488525f, -0.658691f, 0.523438f, -0.655273f, 0.553711f, -0.649414f, 0.583984f, -0.643555f,
+0.61084f, -0.635986f, 0.637695f, -0.628418f, 0.665039f, -0.620605f, 0.665039f, -0.470215f,
+0.621094f, -0.470215f, 0.609375f, -0.555176f, 0.592285f, -0.566895f, 0.571777f, -0.577148f,
+0.55127f, -0.587402f, 0.528076f, -0.594971f, 0.504883f, -0.602539f, 0.479736f, -0.606689f,
+0.45459f, -0.61084f, 0.428711f, -0.61084f, 0.378906f, -0.61084f, 0.338867f, -0.596924f,
+0.298828f, -0.583008f, 0.270264f, -0.549561f, 0.241699f, -0.516113f, 0.226318f, -0.460205f,
+0.210938f, -0.404297f, 0.210938f, -0.320801f, 0.210938f, -0.26416f, 0.219727f, -0.22168f,
+0.228516f, -0.179199f, 0.243652f, -0.147949f, 0.258789f, -0.116699f, 0.279541f, -0.0959473f,
+0.300293f, -0.0751953f, 0.323975f, -0.0629883f, 0.347656f, -0.0507812f, 0.373535f,
+-0.0456543f, 0.399414f, -0.0405273f, 0.424805f, -0.0405273f, 0.452637f, -0.0405273f,
+0.480957f, -0.045166f, 0.509277f, -0.0498047f, 0.532715f, -0.0576172f, 0.532715f,
+-0.24707f, 0.44873f, -0.259766f, 0.44873f, -0.295898f, 0.750488f, -0.295898f, 0.750488f,
+-0.259766f, 0.686523f, -0.24707f, 0.0170898f, 0, 0.0170898f, -0.0361328f, 0.101074f,
+-0.0488281f, 0.101074f, -0.605957f, 0.0170898f, -0.619141f, 0.0170898f, -0.654785f,
+0.338867f, -0.654785f, 0.338867f, -0.619141f, 0.254883f, -0.605957f, 0.254883f, -0.36377f,
+0.522461f, -0.36377f, 0.522461f, -0.605957f, 0.438477f, -0.619141f, 0.438477f, -0.654785f,
+0.76123f, -0.654785f, 0.76123f, -0.619141f, 0.676758f, -0.605957f, 0.676758f, -0.0488281f,
+0.76123f, -0.0361328f, 0.76123f, 0, 0.438477f, 0, 0.438477f, -0.0361328f, 0.522461f,
+-0.0488281f, 0.522461f, -0.310059f, 0.254883f, -0.310059f, 0.254883f, -0.0488281f,
+0.338867f, -0.0361328f, 0.338867f, 0, 0.271484f, -0.0488281f, 0.355469f, -0.0361328f,
+0.355469f, 0, 0.0336914f, 0, 0.0336914f, -0.0361328f, 0.117676f, -0.0488281f, 0.117676f,
+-0.605957f, 0.0336914f, -0.619141f, 0.0336914f, -0.654785f, 0.355469f, -0.654785f,
+0.355469f, -0.619141f, 0.271484f, -0.605957f, 0.244629f, -0.606445f, 0.160645f, -0.619141f,
+0.160645f, -0.654785f, 0.472656f, -0.654785f, 0.472656f, -0.619141f, 0.398438f, -0.606445f,
+0.398438f, -0.210938f, 0.398438f, -0.166504f, 0.388672f, -0.132812f, 0.378906f, -0.0991211f,
+0.362305f, -0.074707f, 0.345703f, -0.050293f, 0.32373f, -0.0339355f, 0.301758f, -0.0175781f,
+0.276611f, -0.0078125f, 0.251465f, 0.00195312f, 0.224854f, 0.00585938f, 0.198242f,
+0.00976562f, 0.172852f, 0.00976562f, 0.15625f, 0.00976562f, 0.138428f, 0.00878906f,
+0.120605f, 0.0078125f, 0.103516f, 0.00585938f, 0.0864258f, 0.00390625f, 0.0710449f,
+0.0012207f, 0.0556641f, -0.00146484f, 0.0444336f, -0.00488281f, 0.0444336f, -0.15332f,
+0.0878906f, -0.15332f, 0.102539f, -0.065918f, 0.111816f, -0.0546875f, 0.128906f,
+-0.0483398f, 0.145996f, -0.0419922f, 0.166504f, -0.0419922f, 0.200195f, -0.0419922f,
+0.222412f, -0.0654297f, 0.244629f, -0.0888672f, 0.244629f, -0.134766f, 0.717285f,
+-0.654785f, 0.717285f, -0.619141f, 0.637207f, -0.606445f, 0.420898f, -0.415527f,
+0.708984f, -0.0488281f, 0.77002f, -0.0356445f, 0.77002f, 0, 0.556152f, 0, 0.311523f,
+-0.31543f, 0.254883f, -0.266602f, 0.254883f, -0.0488281f, 0.349121f, -0.0356445f,
+0.349121f, 0, 0.0170898f, 0, 0.0170898f, -0.0356445f, 0.101074f, -0.0488281f, 0.101074f,
+-0.606445f, 0.0170898f, -0.619141f, 0.0170898f, -0.654785f, 0.339355f, -0.654785f,
+0.339355f, -0.619141f, 0.254883f, -0.606445f, 0.254883f, -0.339844f, 0.553223f, -0.606445f,
+0.493164f, -0.619141f, 0.493164f, -0.654785f, 0.355957f, -0.619141f, 0.254883f, -0.606445f,
+0.254883f, -0.0517578f, 0.388184f, -0.0517578f, 0.449219f, -0.0517578f, 0.487793f,
+-0.0551758f, 0.526367f, -0.0585938f, 0.541016f, -0.0615234f, 0.581055f, -0.197754f,
+0.625f, -0.197754f, 0.606445f, 0, 0.0170898f, 0, 0.0170898f, -0.0356445f, 0.101074f,
+-0.0488281f, 0.101074f, -0.606445f, 0.0175781f, -0.619141f, 0.0175781f, -0.654785f,
+0.355957f, -0.654785f, 0.430664f, 0, 0.403809f, 0, 0.162109f, -0.553223f, 0.162109f,
+-0.0488281f, 0.25f, -0.0356445f, 0.25f, 0, 0.0170898f, 0, 0.0170898f, -0.0356445f,
+0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0170898f, -0.619141f, 0.0170898f,
+-0.654785f, 0.274414f, -0.654785f, 0.461426f, -0.224121f, 0.652344f, -0.654785f,
+0.915039f, -0.654785f, 0.915039f, -0.619141f, 0.831055f, -0.606445f, 0.831055f, -0.0488281f,
+0.915039f, -0.0356445f, 0.915039f, 0, 0.589355f, 0, 0.589355f, -0.0356445f, 0.677246f,
+-0.0488281f, 0.677246f, -0.553223f, 0.563965f, -0.606445f, 0.476074f, -0.619141f,
+0.476074f, -0.654785f, 0.708984f, -0.654785f, 0.708984f, -0.619141f, 0.625f, -0.606445f,
+0.625f, 0, 0.567871f, 0, 0.164062f, -0.526367f, 0.164062f, -0.0488281f, 0.251953f,
+-0.0356445f, 0.251953f, 0, 0.019043f, 0, 0.019043f, -0.0356445f, 0.103027f, -0.0488281f,
+0.103027f, -0.606445f, 0.019043f, -0.619141f, 0.019043f, -0.654785f, 0.243164f, -0.654785f,
+0.563965f, -0.236328f, 0.210938f, -0.328125f, 0.210938f, -0.259766f, 0.219238f, -0.206055f,
+0.227539f, -0.152344f, 0.248047f, -0.115234f, 0.268555f, -0.078125f, 0.302979f, -0.0585938f,
+0.337402f, -0.0390625f, 0.38916f, -0.0390625f, 0.440918f, -0.0390625f, 0.475098f,
+-0.0585938f, 0.509277f, -0.078125f, 0.529785f, -0.115234f, 0.550293f, -0.152344f,
+0.558594f, -0.206055f, 0.566895f, -0.259766f, 0.566895f, -0.328125f, 0.566895f, -0.395996f,
+0.558594f, -0.449219f, 0.550293f, -0.502441f, 0.529785f, -0.538574f, 0.509277f, -0.574707f,
+0.475098f, -0.59375f, 0.440918f, -0.612793f, 0.38916f, -0.612793f, 0.337402f, -0.612793f,
+0.302979f, -0.59375f, 0.268555f, -0.574707f, 0.248047f, -0.538574f, 0.227539f, -0.502441f,
+0.219238f, -0.449219f, 0.210938f, -0.395996f, 0.210938f, -0.328125f, 0.0488281f,
+-0.328125f, 0.0488281f, -0.415039f, 0.0712891f, -0.478027f, 0.09375f, -0.541016f,
+0.137207f, -0.582031f, 0.180664f, -0.623047f, 0.243896f, -0.642578f, 0.307129f, -0.662109f,
+0.38916f, -0.662109f, 0.468262f, -0.662109f, 0.53125f, -0.642578f, 0.594238f, -0.623047f,
+0.638184f, -0.582031f, 0.682129f, -0.541016f, 0.705566f, -0.478027f, 0.729004f, -0.415039f,
+0.729004f, -0.328125f, 0.729004f, -0.241211f, 0.705566f, -0.17749f, 0.682129f, -0.11377f,
+0.638184f, -0.0722656f, 0.594238f, -0.0307617f, 0.53125f, -0.010498f, 0.468262f,
+0.00976562f, 0.38916f, 0.00976562f, 0.310059f, 0.00976562f, 0.24707f, -0.010498f,
+0.184082f, -0.0307617f, 0.139893f, -0.0722656f, 0.0957031f, -0.11377f, 0.0722656f,
+-0.17749f, 0.0488281f, -0.241211f, 0.0488281f, -0.328125f, 0.425293f, -0.460938f,
+0.425293f, -0.5f, 0.418457f, -0.526855f, 0.411621f, -0.553711f, 0.39624f, -0.570068f,
+0.380859f, -0.586426f, 0.355713f, -0.59375f, 0.330566f, -0.601074f, 0.293945f, -0.601074f,
+0.255371f, -0.601074f, 0.255371f, -0.310547f, 0.295898f, -0.310547f, 0.333008f, -0.310547f,
+0.357666f, -0.320068f, 0.382324f, -0.32959f, 0.397461f, -0.348389f, 0.412598f, -0.367188f,
+0.418945f, -0.395264f, 0.425293f, -0.42334f, 0.425293f, -0.460938f, 0.255371f, -0.256836f,
+0.255371f, -0.0488281f, 0.364258f, -0.0356445f, 0.364258f, 0, 0.0234375f, 0, 0.0234375f,
+-0.0356445f, 0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0170898f, -0.619141f,
+0.0170898f, -0.654785f, 0.305664f, -0.654785f, 0.387695f, -0.654785f, 0.441162f,
+-0.639893f, 0.494629f, -0.625f, 0.526123f, -0.598877f, 0.557617f, -0.572754f, 0.570068f,
+-0.537598f, 0.58252f, -0.502441f, 0.58252f, -0.461914f, 0.58252f, -0.421875f, 0.572021f,
+-0.384766f, 0.561523f, -0.347656f, 0.534424f, -0.319336f, 0.507324f, -0.291016f,
+0.460938f, -0.273926f, 0.414551f, -0.256836f, 0.343262f, -0.256836f, 0.0488281f,
+-0.328125f, 0.0488281f, -0.415039f, 0.0712891f, -0.478027f, 0.09375f, -0.541016f,
+0.137207f, -0.582031f, 0.180664f, -0.623047f, 0.243896f, -0.642578f, 0.307129f, -0.662109f,
+0.38916f, -0.662109f, 0.468262f, -0.662109f, 0.53125f, -0.642578f, 0.594238f, -0.623047f,
+0.638184f, -0.582031f, 0.682129f, -0.541016f, 0.705566f, -0.478027f, 0.729004f, -0.415039f,
+0.729004f, -0.328125f, 0.729004f, -0.265625f, 0.716797f, -0.215088f, 0.70459f, -0.164551f,
+0.681152f, -0.125732f, 0.657715f, -0.0869141f, 0.623779f, -0.0595703f, 0.589844f,
+-0.0322266f, 0.546387f, -0.015625f, 0.570801f, 0.0141602f, 0.591797f, 0.0405273f,
+0.609863f, 0.0578613f, 0.62793f, 0.0751953f, 0.643066f, 0.0854492f, 0.658203f, 0.0957031f,
+0.670654f, 0.0998535f, 0.683105f, 0.104004f, 0.693848f, 0.104004f, 0.719238f, 0.104004f,
+0.733887f, 0.100098f, 0.733887f, 0.14209f, 0.728516f, 0.144531f, 0.716064f, 0.147705f,
+0.703613f, 0.150879f, 0.6875f, 0.154297f, 0.671387f, 0.157715f, 0.65332f, 0.159912f,
+0.635254f, 0.162109f, 0.618652f, 0.162109f, 0.579102f, 0.162109f, 0.549805f, 0.154053f,
+0.520508f, 0.145996f, 0.496094f, 0.129883f, 0.47168f, 0.11377f, 0.449463f, 0.0895996f,
+0.427246f, 0.0654297f, 0.401855f, 0.0332031f, 0.383301f, 0.00976562f, 0.305664f,
+0.00927734f, 0.243652f, -0.0114746f, 0.181641f, -0.0322266f, 0.138428f, -0.0737305f,
+0.0952148f, -0.115234f, 0.0720215f, -0.178467f, 0.0488281f, -0.241699f, 0.0488281f,
+-0.328125f, 0.210938f, -0.328125f, 0.210938f, -0.259766f, 0.219238f, -0.206055f,
+0.227539f, -0.152344f, 0.248047f, -0.115234f, 0.268555f, -0.078125f, 0.302979f, -0.0585938f,
+0.337402f, -0.0390625f, 0.38916f, -0.0390625f, 0.440918f, -0.0390625f, 0.475098f,
+-0.0585938f, 0.509277f, -0.078125f, 0.529785f, -0.115234f, 0.550293f, -0.152344f,
+0.558594f, -0.206055f, 0.566895f, -0.259766f, 0.566895f, -0.328125f, 0.566895f, -0.395996f,
+0.558594f, -0.449219f, 0.550293f, -0.502441f, 0.529785f, -0.538574f, 0.509277f, -0.574707f,
+0.475098f, -0.59375f, 0.440918f, -0.612793f, 0.38916f, -0.612793f, 0.337402f, -0.612793f,
+0.302979f, -0.59375f, 0.268555f, -0.574707f, 0.248047f, -0.538574f, 0.227539f, -0.502441f,
+0.219238f, -0.449219f, 0.210938f, -0.395996f, 0.210938f, -0.328125f, 0.255371f, -0.277344f,
+0.255371f, -0.0488281f, 0.339355f, -0.0356445f, 0.339355f, 0, 0.0234375f, 0, 0.0234375f,
+-0.0356445f, 0.101074f, -0.0488281f, 0.101074f, -0.606445f, 0.0170898f, -0.619141f,
+0.0170898f, -0.654785f, 0.330078f, -0.654785f, 0.412109f, -0.654785f, 0.467285f,
+-0.641357f, 0.522461f, -0.62793f, 0.555664f, -0.60376f, 0.588867f, -0.57959f, 0.603027f,
+-0.545898f, 0.617188f, -0.512207f, 0.617188f, -0.47168f, 0.617188f, -0.440918f, 0.610352f,
+-0.413086f, 0.603516f, -0.385254f, 0.588135f, -0.361816f, 0.572754f, -0.338379f,
+0.547607f, -0.320312f, 0.522461f, -0.302246f, 0.485352f, -0.291016f, 0.660156f, -0.0488281f,
+0.730957f, -0.0356445f, 0.730957f, 0, 0.519043f, 0, 0.336426f, -0.277344f, 0.464844f,
+-0.470703f, 0.464844f, -0.509766f, 0.457031f, -0.534912f, 0.449219f, -0.560059f,
+0.432129f, -0.574707f, 0.415039f, -0.589355f, 0.388184f, -0.595215f, 0.361328f, -0.601074f,
+0.32373f, -0.601074f, 0.255371f, -0.601074f, 0.255371f, -0.331055f, 0.326172f, -0.331055f,
+0.364746f, -0.331055f, 0.391357f, -0.338867f, 0.417969f, -0.34668f, 0.434326f, -0.363525f,
+0.450684f, -0.380371f, 0.457764f, -0.406738f, 0.464844f, -0.433105f, 0.464844f, -0.470703f,
+0.0532227f, -0.200684f, 0.0961914f, -0.200684f, 0.118164f, -0.0957031f, 0.128418f,
+-0.0839844f, 0.144043f, -0.0739746f, 0.159668f, -0.0639648f, 0.179199f, -0.0561523f,
+0.19873f, -0.0483398f, 0.220947f, -0.0439453f, 0.243164f, -0.0395508f, 0.266113f,
+-0.0395508f, 0.304199f, -0.0395508f, 0.331055f, -0.0480957f, 0.35791f, -0.0566406f,
+0.374512f, -0.0717773f, 0.391113f, -0.0869141f, 0.398682f, -0.108154f, 0.40625f,
+-0.129395f, 0.40625f, -0.154785f, 0.40625f, -0.184082f, 0.391357f, -0.203125f, 0.376465f,
+-0.222168f, 0.351807f, -0.23584f, 0.327148f, -0.249512f, 0.295898f, -0.26001f, 0.264648f,
+-0.270508f, 0.231689f, -0.282227f, 0.19873f, -0.293945f, 0.16748f, -0.309082f, 0.13623f,
+-0.324219f, 0.111572f, -0.347412f, 0.0869141f, -0.370605f, 0.0720215f, -0.403809f,
+0.0571289f, -0.437012f, 0.0571289f, -0.485352f, 0.0571289f, -0.571777f, 0.115967f,
+-0.616943f, 0.174805f, -0.662109f, 0.288086f, -0.662109f, 0.312012f, -0.662109f,
+0.33667f, -0.6604f, 0.361328f, -0.658691f, 0.384766f, -0.655762f, 0.408203f, -0.652832f,
+0.429688f, -0.648926f, 0.451172f, -0.64502f, 0.469727f, -0.641113f, 0.469727f, -0.485352f,
+0.42627f, -0.485352f, 0.404297f, -0.575195f, 0.382812f, -0.59082f, 0.35498f, -0.601074f,
+0.327148f, -0.611328f, 0.288086f, -0.611328f, 0.254883f, -0.611328f, 0.231201f, -0.604736f,
+0.20752f, -0.598145f, 0.192383f, -0.586426f, 0.177246f, -0.574707f, 0.17041f, -0.558105f,
+0.163574f, -0.541504f, 0.163574f, -0.520996f, 0.163574f, -0.494629f, 0.178711f, -0.477051f,
+0.193848f, -0.459473f, 0.218262f, -0.446777f, 0.242676f, -0.434082f, 0.27417f, -0.423828f,
+0.305664f, -0.413574f, 0.338623f, -0.401611f, 0.371582f, -0.389648f, 0.403076f, -0.374268f,
+0.43457f, -0.358887f, 0.458984f, -0.335693f, 0.483398f, -0.3125f, 0.498535f, -0.279297f,
+0.513672f, -0.246094f, 0.513672f, -0.19873f, 0.513672f, -0.150879f, 0.5f, -0.112305f,
+0.486328f, -0.0737305f, 0.456543f, -0.0466309f, 0.426758f, -0.0195312f, 0.380371f,
+-0.00488281f, 0.333984f, 0.00976562f, 0.268066f, 0.00976562f, 0.236328f, 0.00976562f,
+0.205078f, 0.00683594f, 0.173828f, 0.00390625f, 0.145752f, -0.000976562f, 0.117676f,
+-0.00585938f, 0.09375f, -0.012207f, 0.0698242f, -0.0185547f, 0.0532227f, -0.0249023f,
+0.151367f, 0, 0.151367f, -0.0356445f, 0.255371f, -0.0488281f, 0.255371f, -0.603027f,
+0.230469f, -0.603027f, 0.166504f, -0.603027f, 0.128906f, -0.600098f, 0.0913086f,
+-0.597168f, 0.0732422f, -0.593262f, 0.0600586f, -0.47168f, 0.015625f, -0.47168f,
+0.015625f, -0.654785f, 0.651855f, -0.654785f, 0.651855f, -0.47168f, 0.606934f, -0.47168f,
+0.59375f, -0.593262f, 0.575684f, -0.597168f, 0.533447f, -0.599609f, 0.491211f, -0.602051f,
+0.433594f, -0.602051f, 0.409668f, -0.602051f, 0.409668f, -0.0488281f, 0.513672f,
+-0.0356445f, 0.513672f, 0, 0.40918f, -0.0595703f, 0.449219f, -0.0595703f, 0.478271f,
+-0.0715332f, 0.507324f, -0.0834961f, 0.526123f, -0.104736f, 0.544922f, -0.125977f,
+0.553711f, -0.155762f, 0.5625f, -0.185547f, 0.5625f, -0.221191f, 0.5625f, -0.606445f,
+0.474609f, -0.619141f, 0.474609f, -0.654785f, 0.697266f, -0.654785f, 0.697266f, -0.619141f,
+0.623047f, -0.606445f, 0.623047f, -0.225098f, 0.623047f, -0.181641f, 0.611084f, -0.139648f,
+0.599121f, -0.0976562f, 0.570312f, -0.0644531f, 0.541504f, -0.03125f, 0.492676f,
+-0.0109863f, 0.443848f, 0.00927734f, 0.370605f, 0.00927734f, 0.302246f, 0.00927734f,
+0.251465f, -0.00708008f, 0.200684f, -0.0234375f, 0.166748f, -0.0541992f, 0.132812f,
+-0.0849609f, 0.115967f, -0.12915f, 0.0991211f, -0.17334f, 0.0991211f, -0.229004f,
+0.0991211f, -0.606445f, 0.0249023f, -0.619141f, 0.0249023f, -0.654785f, 0.336914f,
+-0.654785f, 0.336914f, -0.619141f, 0.25293f, -0.606445f, 0.25293f, -0.222168f, 0.25293f,
+-0.185059f, 0.262207f, -0.155029f, 0.271484f, -0.125f, 0.290527f, -0.10376f, 0.30957f,
+-0.0825195f, 0.339111f, -0.0710449f, 0.368652f, -0.0595703f, 0.40918f, -0.0595703f,
+0.710938f, -0.654785f, 0.710938f, -0.619141f, 0.648926f, -0.605957f, 0.395996f, 0.0151367f,
+0.331055f, 0.0151367f, 0.0649414f, -0.605957f, 0.0112305f, -0.619141f, 0.0112305f,
+-0.654785f, 0.295898f, -0.654785f, 0.295898f, -0.619141f, 0.228027f, -0.605957f,
+0.412109f, -0.176758f, 0.583984f, -0.605957f, 0.518066f, -0.619141f, 0.518066f, -0.654785f,
+0.927246f, -0.606445f, 0.73291f, 0.0151367f, 0.672852f, 0.0151367f, 0.509766f, -0.388672f,
+0.348145f, 0.0151367f, 0.288086f, 0.0151367f, 0.0712891f, -0.606445f, 0.0141602f,
+-0.619141f, 0.0141602f, -0.654785f, 0.308105f, -0.654785f, 0.308105f, -0.619141f,
+0.231445f, -0.606445f, 0.371094f, -0.216309f, 0.524414f, -0.599121f, 0.585449f, -0.599121f,
+0.739258f, -0.217285f, 0.85498f, -0.606445f, 0.772461f, -0.619141f, 0.772461f, -0.654785f,
+0.984375f, -0.654785f, 0.984375f, -0.619141f, 0.161133f, -0.0488281f, 0.242188f,
+-0.0356445f, 0.242188f, 0, 0.0185547f, 0, 0.0185547f, -0.0356445f, 0.0908203f, -0.0488281f,
+0.30127f, -0.316406f, 0.11377f, -0.606445f, 0.0400391f, -0.619141f, 0.0400391f, -0.654785f,
+0.358887f, -0.654785f, 0.358887f, -0.619141f, 0.275879f, -0.606445f, 0.390137f, -0.429688f,
+0.529297f, -0.606445f, 0.448242f, -0.619141f, 0.448242f, -0.654785f, 0.672363f, -0.654785f,
+0.672363f, -0.619141f, 0.600098f, -0.606445f, 0.421875f, -0.380371f, 0.63623f, -0.0488281f,
+0.710449f, -0.0356445f, 0.710449f, 0, 0.391602f, 0, 0.391602f, -0.0356445f, 0.474609f,
+-0.0488281f, 0.333008f, -0.26709f, 0.444824f, -0.257812f, 0.444824f, -0.0488281f,
+0.548828f, -0.0356445f, 0.548828f, 0, 0.186523f, 0, 0.186523f, -0.0356445f, 0.290527f,
+-0.0488281f, 0.290527f, -0.254883f, 0.0913086f, -0.606445f, 0.0175781f, -0.619141f,
+0.0175781f, -0.654785f, 0.354492f, -0.654785f, 0.354492f, -0.619141f, 0.266602f,
+-0.606445f, 0.416016f, -0.332031f, 0.560547f, -0.606445f, 0.480469f, -0.619141f,
+0.480469f, -0.654785f, 0.703125f, -0.654785f, 0.703125f, -0.619141f, 0.633789f, -0.606445f,
+0.0478516f, -0.0556641f, 0.410156f, -0.603027f, 0.292969f, -0.603027f, 0.229004f,
+-0.603027f, 0.191895f, -0.600098f, 0.154785f, -0.597168f, 0.136719f, -0.593262f,
+0.121582f, -0.490234f, 0.078125f, -0.490234f, 0.078125f, -0.654785f, 0.583984f, -0.654785f,
+0.583984f, -0.603027f, 0.219238f, -0.0507812f, 0.355957f, -0.0507812f, 0.387695f,
+-0.0507812f, 0.417725f, -0.0524902f, 0.447754f, -0.0541992f, 0.472656f, -0.0568848f,
+0.497559f, -0.0595703f, 0.516113f, -0.0622559f, 0.534668f, -0.0649414f, 0.543457f,
+-0.0668945f, 0.572266f, -0.191895f, 0.616211f, -0.191895f, 0.603027f, 0, 0.0478516f,
+0, 0.0742188f, 0.133789f, 0.0742188f, -0.693848f, 0.296875f, -0.693848f, 0.296875f,
+-0.661133f, 0.197754f, -0.641113f, 0.197754f, 0.0810547f, 0.296875f, 0.101074f, 0.296875f,
+0.133789f, -0.00976562f, -0.658691f, 0.0585938f, -0.658691f, 0.288086f, 0.00976562f,
+0.219238f, 0.00976562f, 0.0361328f, 0.133789f, 0.0361328f, 0.101074f, 0.135254f,
+0.0810547f, 0.135254f, -0.641113f, 0.0361328f, -0.661133f, 0.0361328f, -0.693848f,
+0.258789f, -0.693848f, 0.258789f, 0.133789f, 0.45166f, -0.189941f, 0.290527f, -0.561523f,
+0.129395f, -0.189941f, 0.0595703f, -0.189941f, 0.268555f, -0.654785f, 0.3125f, -0.654785f,
+0.521484f, -0.189941f, -0.0078125f, 0.13916f, -0.0078125f, 0.0688477f, 0.507812f,
+0.0688477f, 0.507812f, 0.13916f, 0.220703f, -0.545898f, 0.0429688f, -0.676758f, 0.0429688f,
+-0.694824f, 0.182129f, -0.694824f, 0.262695f, -0.561523f, 0.262695f, -0.545898f,
+0.266602f, -0.469238f, 0.304199f, -0.469238f, 0.335938f, -0.462891f, 0.367676f, -0.456543f,
+0.390625f, -0.44165f, 0.413574f, -0.426758f, 0.42627f, -0.402344f, 0.438965f, -0.37793f,
+0.438965f, -0.342285f, 0.438965f, -0.0439453f, 0.484863f, -0.0322266f, 0.484863f,
+0, 0.315918f, 0, 0.305176f, -0.0351562f, 0.295898f, -0.0288086f, 0.283447f, -0.0209961f,
+0.270996f, -0.0131836f, 0.254883f, -0.00634766f, 0.23877f, 0.000488281f, 0.21875f,
+0.00512695f, 0.19873f, 0.00976562f, 0.174316f, 0.00976562f, 0.134277f, 0.00976562f,
+0.107178f, -0.000488281f, 0.0800781f, -0.0107422f, 0.0634766f, -0.0290527f, 0.046875f,
+-0.0473633f, 0.0395508f, -0.0725098f, 0.0322266f, -0.0976562f, 0.0322266f, -0.126953f,
+0.0322266f, -0.174316f, 0.0488281f, -0.202637f, 0.0654297f, -0.230957f, 0.0935059f,
+-0.246338f, 0.121582f, -0.261719f, 0.158936f, -0.266602f, 0.196289f, -0.271484f,
+0.238281f, -0.272461f, 0.297852f, -0.273926f, 0.297852f, -0.34082f, 0.297852f, -0.381348f,
+0.28125f, -0.402588f, 0.264648f, -0.423828f, 0.22998f, -0.423828f, 0.203125f, -0.423828f,
+0.180908f, -0.41626f, 0.158691f, -0.408691f, 0.138184f, -0.398438f, 0.119629f, -0.341309f,
+0.0874023f, -0.341309f, 0.0874023f, -0.452148f, 0.109863f, -0.455566f, 0.130127f,
+-0.458496f, 0.150391f, -0.461426f, 0.171387f, -0.463867f, 0.192383f, -0.466309f,
+0.215576f, -0.467773f, 0.23877f, -0.469238f, 0.266602f, -0.469238f, 0.297852f, -0.230469f,
+0.256836f, -0.229004f, 0.235352f, -0.228027f, 0.219727f, -0.223145f, 0.204102f, -0.218262f,
+0.193604f, -0.206787f, 0.183105f, -0.195312f, 0.177979f, -0.176758f, 0.172852f, -0.158203f,
+0.172852f, -0.129883f, 0.172852f, -0.0883789f, 0.1875f, -0.0688477f, 0.202148f, -0.0493164f,
+0.225586f, -0.0493164f, 0.249023f, -0.0493164f, 0.265625f, -0.0544434f, 0.282227f,
+-0.0595703f, 0.297852f, -0.0664062f, 0.372559f, -0.242676f, 0.372559f, -0.29248f,
+0.366211f, -0.325928f, 0.359863f, -0.359375f, 0.347656f, -0.379639f, 0.335449f, -0.399902f,
+0.317627f, -0.408447f, 0.299805f, -0.416992f, 0.277344f, -0.416992f, 0.258789f, -0.416992f,
+0.236816f, -0.412842f, 0.214844f, -0.408691f, 0.200684f, -0.400391f, 0.200684f, -0.0493164f,
+0.216309f, -0.0454102f, 0.237061f, -0.043457f, 0.257812f, -0.0415039f, 0.277344f,
+-0.0415039f, 0.303711f, -0.0415039f, 0.321777f, -0.0546875f, 0.339844f, -0.0678711f,
+0.351318f, -0.0935059f, 0.362793f, -0.119141f, 0.367676f, -0.156738f, 0.372559f,
+-0.194336f, 0.372559f, -0.242676f, 0.0595703f, -0.650879f, 0.0126953f, -0.662109f,
+0.0126953f, -0.693848f, 0.200684f, -0.693848f, 0.200684f, -0.525391f, 0.200684f,
+-0.507324f, 0.199463f, -0.481934f, 0.198242f, -0.456543f, 0.195801f, -0.433105f,
+0.206543f, -0.441895f, 0.221436f, -0.44873f, 0.236328f, -0.455566f, 0.253662f, -0.460693f,
+0.270996f, -0.46582f, 0.289062f, -0.468506f, 0.307129f, -0.471191f, 0.324219f, -0.471191f,
+0.375488f, -0.471191f, 0.411621f, -0.457275f, 0.447754f, -0.443359f, 0.470947f, -0.415039f,
+0.494141f, -0.386719f, 0.504883f, -0.34375f, 0.515625f, -0.300781f, 0.515625f, -0.242188f,
+0.515625f, -0.186523f, 0.501709f, -0.140381f, 0.487793f, -0.0942383f, 0.459961f,
+-0.060791f, 0.432129f, -0.0273438f, 0.389893f, -0.00878906f, 0.347656f, 0.00976562f,
+0.291016f, 0.00976562f, 0.244141f, 0.00976562f, 0.184326f, 0.000244141f, 0.124512f,
+-0.00927734f, 0.0595703f, -0.0234375f, 0.418945f, -0.027832f, 0.407227f, -0.0185547f,
+0.391357f, -0.0117188f, 0.375488f, -0.00488281f, 0.356689f, -0.000244141f, 0.337891f,
+0.00439453f, 0.317871f, 0.00683594f, 0.297852f, 0.00927734f, 0.27832f, 0.00927734f,
+0.212891f, 0.00927734f, 0.166504f, -0.00708008f, 0.120117f, -0.0234375f, 0.0908203f,
+-0.0541992f, 0.0615234f, -0.0849609f, 0.0478516f, -0.129395f, 0.0341797f, -0.173828f,
+0.0341797f, -0.230469f, 0.0341797f, -0.293457f, 0.0522461f, -0.339111f, 0.0703125f,
+-0.384766f, 0.101318f, -0.414062f, 0.132324f, -0.443359f, 0.17334f, -0.457275f, 0.214355f,
+-0.471191f, 0.259766f, -0.471191f, 0.301758f, -0.471191f, 0.339111f, -0.466064f,
+0.376465f, -0.460938f, 0.408691f, -0.454102f, 0.408691f, -0.318359f, 0.373535f, -0.318359f,
+0.353027f, -0.398926f, 0.345215f, -0.404785f, 0.337646f, -0.408936f, 0.330078f, -0.413086f,
+0.321289f, -0.415771f, 0.3125f, -0.418457f, 0.302002f, -0.419678f, 0.291504f, -0.420898f,
+0.277832f, -0.420898f, 0.258789f, -0.420898f, 0.240723f, -0.409912f, 0.222656f, -0.398926f,
+0.208252f, -0.376221f, 0.193848f, -0.353516f, 0.185059f, -0.317871f, 0.17627f, -0.282227f,
+0.17627f, -0.233398f, 0.17627f, -0.192383f, 0.181885f, -0.158691f, 0.1875f, -0.125f,
+0.20166f, -0.101074f, 0.21582f, -0.0771484f, 0.240723f, -0.064209f, 0.265625f, -0.0512695f,
+0.303711f, -0.0512695f, 0.335449f, -0.0512695f, 0.366455f, -0.0551758f, 0.397461f,
+-0.059082f, 0.418945f, -0.0654297f, 0.35791f, -0.0258789f, 0.34668f, -0.0185547f,
+0.335693f, -0.0119629f, 0.324707f, -0.00537109f, 0.311279f, -0.000732422f, 0.297852f,
+0.00390625f, 0.281006f, 0.00683594f, 0.26416f, 0.00976562f, 0.241699f, 0.00976562f,
+0.140137f, 0.00976562f, 0.090332f, -0.048584f, 0.0405273f, -0.106934f, 0.0405273f,
+-0.228027f, 0.0405273f, -0.283691f, 0.0527344f, -0.328613f, 0.0649414f, -0.373535f,
+0.0905762f, -0.405273f, 0.116211f, -0.437012f, 0.155518f, -0.454102f, 0.194824f,
+-0.471191f, 0.249023f, -0.471191f, 0.302246f, -0.471191f, 0.356445f, -0.458008f,
+0.355469f, -0.463379f, 0.35498f, -0.473145f, 0.354492f, -0.48291f, 0.354248f, -0.493896f,
+0.354004f, -0.504883f, 0.35376f, -0.515625f, 0.353516f, -0.526367f, 0.353516f, -0.533691f,
+0.353516f, -0.649902f, 0.306641f, -0.661621f, 0.306641f, -0.693848f, 0.494629f, -0.693848f,
+0.494629f, -0.0439453f, 0.544922f, -0.0322266f, 0.544922f, 0, 0.368164f, 0, 0.183594f,
+-0.231934f, 0.183594f, -0.178223f, 0.190918f, -0.142334f, 0.198242f, -0.106445f,
+0.210693f, -0.0847168f, 0.223145f, -0.0629883f, 0.239258f, -0.0537109f, 0.255371f,
+-0.0444336f, 0.272461f, -0.0444336f, 0.297363f, -0.0444336f, 0.316162f, -0.050293f,
+0.334961f, -0.0561523f, 0.353516f, -0.0654297f, 0.353516f, -0.411133f, 0.333496f,
+-0.416504f, 0.315918f, -0.418945f, 0.29834f, -0.421387f, 0.276367f, -0.421387f, 0.232422f,
+-0.421387f, 0.208008f, -0.373291f, 0.183594f, -0.325195f, 0.183594f, -0.231934f,
+0.241211f, -0.470215f, 0.281738f, -0.470215f, 0.314453f, -0.460449f, 0.347168f, -0.450684f,
+0.370117f, -0.427002f, 0.393066f, -0.40332f, 0.405518f, -0.364014f, 0.417969f, -0.324707f,
+0.417969f, -0.265625f, 0.417969f, -0.225586f, 0.177246f, -0.225586f, 0.177246f, -0.217773f,
+0.177246f, -0.185059f, 0.179932f, -0.155029f, 0.182617f, -0.125f, 0.19458f, -0.101807f,
+0.206543f, -0.0786133f, 0.231201f, -0.0649414f, 0.255859f, -0.0512695f, 0.299316f,
+-0.0512695f, 0.328125f, -0.0512695f, 0.355469f, -0.0556641f, 0.382812f, -0.0600586f,
+0.407715f, -0.0654297f, 0.407715f, -0.027832f, 0.396484f, -0.0209961f, 0.379395f,
+-0.0141602f, 0.362305f, -0.00732422f, 0.342041f, -0.00219727f, 0.321777f, 0.00292969f,
+0.299316f, 0.00610352f, 0.276855f, 0.00927734f, 0.254883f, 0.00927734f, 0.195801f,
+0.00927734f, 0.153809f, -0.00634766f, 0.111816f, -0.0219727f, 0.0852051f, -0.0527344f,
+0.0585938f, -0.0834961f, 0.0463867f, -0.128418f, 0.0341797f, -0.17334f, 0.0341797f,
+-0.231934f, 0.0341797f, -0.352051f, 0.0856934f, -0.411133f, 0.137207f, -0.470215f,
+0.241211f, -0.470215f, 0.23584f, -0.420898f, 0.218262f, -0.420898f, 0.207031f, -0.410645f,
+0.195801f, -0.400391f, 0.189209f, -0.381836f, 0.182617f, -0.363281f, 0.180176f, -0.336426f,
+0.177734f, -0.30957f, 0.177734f, -0.276855f, 0.28418f, -0.276855f, 0.28418f, -0.30957f,
+0.282959f, -0.336426f, 0.281738f, -0.363281f, 0.2771f, -0.381836f, 0.272461f, -0.400391f,
+0.262695f, -0.410645f, 0.25293f, -0.420898f, 0.23584f, -0.420898f, 0.0766602f, -0.408203f,
+0.00732422f, -0.408203f, 0.00732422f, -0.441895f, 0.0766602f, -0.460938f, 0.0766602f,
+-0.510254f, 0.0766602f, -0.558594f, 0.0893555f, -0.594971f, 0.102051f, -0.631348f,
+0.125732f, -0.655518f, 0.149414f, -0.679688f, 0.183838f, -0.691895f, 0.218262f, -0.704102f,
+0.261719f, -0.704102f, 0.272461f, -0.704102f, 0.283936f, -0.703369f, 0.29541f, -0.702637f,
+0.306396f, -0.701416f, 0.317383f, -0.700195f, 0.32666f, -0.698486f, 0.335938f, -0.696777f,
+0.342773f, -0.694824f, 0.342773f, -0.585449f, 0.311523f, -0.585449f, 0.297363f, -0.638672f,
+0.292969f, -0.643066f, 0.2854f, -0.646729f, 0.277832f, -0.650391f, 0.266602f, -0.650391f,
+0.255859f, -0.650391f, 0.246826f, -0.643799f, 0.237793f, -0.637207f, 0.231445f, -0.622314f,
+0.225098f, -0.607422f, 0.221436f, -0.58374f, 0.217773f, -0.560059f, 0.217773f, -0.525879f,
+0.217773f, -0.458984f, 0.311035f, -0.458984f, 0.311035f, -0.408203f, 0.217773f, -0.408203f,
+0.217773f, -0.0439453f, 0.29248f, -0.0322266f, 0.29248f, 0, 0.0268555f, 0, 0.0268555f,
+-0.0322266f, 0.0766602f, -0.0439453f, 0.125488f, -0.169434f, 0.0385742f, -0.206055f,
+0.0385742f, -0.3125f, 0.0385742f, -0.351562f, 0.0524902f, -0.381104f, 0.0664062f,
+-0.410645f, 0.0927734f, -0.430664f, 0.119141f, -0.450684f, 0.157471f, -0.460938f,
+0.195801f, -0.471191f, 0.244141f, -0.471191f, 0.259766f, -0.471191f, 0.275879f, -0.469727f,
+0.291992f, -0.468262f, 0.305908f, -0.466553f, 0.319824f, -0.464844f, 0.330566f, -0.462646f,
+0.341309f, -0.460449f, 0.346191f, -0.458984f, 0.456055f, -0.513184f, 0.473145f, -0.492188f,
+0.41748f, -0.413086f, 0.432617f, -0.394531f, 0.440186f, -0.368652f, 0.447754f, -0.342773f,
+0.447754f, -0.3125f, 0.447754f, -0.272949f, 0.434082f, -0.24292f, 0.42041f, -0.212891f,
+0.394287f, -0.192383f, 0.368164f, -0.171875f, 0.329834f, -0.161621f, 0.291504f, -0.151367f,
+0.242188f, -0.151367f, 0.222656f, -0.151367f, 0.202637f, -0.153076f, 0.182617f, -0.154785f,
+0.16748f, -0.157227f, 0.155762f, -0.120117f, 0.15625f, -0.112793f, 0.161133f, -0.105957f,
+0.166016f, -0.0991211f, 0.173828f, -0.0935059f, 0.181641f, -0.0878906f, 0.192383f,
+-0.0844727f, 0.203125f, -0.0810547f, 0.21582f, -0.0810547f, 0.322754f, -0.0810547f,
+0.40332f, -0.0810547f, 0.446777f, -0.0498047f, 0.490234f, -0.0185547f, 0.490234f,
+0.0478516f, 0.490234f, 0.078125f, 0.478271f, 0.108887f, 0.466309f, 0.139648f, 0.437012f,
+0.164551f, 0.407715f, 0.189453f, 0.358643f, 0.205078f, 0.30957f, 0.220703f, 0.235352f,
+0.220703f, 0.179688f, 0.220703f, 0.140137f, 0.212158f, 0.100586f, 0.203613f, 0.0754395f,
+0.188965f, 0.050293f, 0.174316f, 0.0383301f, 0.154785f, 0.0263672f, 0.135254f, 0.0263672f,
+0.11377f, 0.0263672f, 0.0996094f, 0.032959f, 0.0874023f, 0.0395508f, 0.0751953f,
+0.0512695f, 0.0639648f, 0.0629883f, 0.0527344f, 0.0788574f, 0.0422363f, 0.0947266f,
+0.0317383f, 0.113281f, 0.0209961f, 0.104492f, 0.0175781f, 0.0925293f, 0.00952148f,
+0.0805664f, 0.00146484f, 0.0698242f, -0.0109863f, 0.059082f, -0.0234375f, 0.0515137f,
+-0.0400391f, 0.0439453f, -0.0566406f, 0.0439453f, -0.0766602f, 0.383301f, 0.0810547f,
+0.383301f, 0.0581055f, 0.367188f, 0.0463867f, 0.351074f, 0.034668f, 0.321289f, 0.034668f,
+0.166504f, 0.034668f, 0.146484f, 0.0493164f, 0.13501f, 0.0673828f, 0.123535f, 0.0854492f,
+0.123535f, 0.105469f, 0.123535f, 0.116699f, 0.128418f, 0.12793f, 0.133301f, 0.13916f,
+0.145996f, 0.147949f, 0.158691f, 0.156738f, 0.18042f, 0.162354f, 0.202148f, 0.167969f,
+0.23584f, 0.167969f, 0.274414f, 0.167969f, 0.302246f, 0.161377f, 0.330078f, 0.154785f,
+0.348145f, 0.143066f, 0.366211f, 0.131348f, 0.374756f, 0.115479f, 0.383301f, 0.0996094f,
+0.383301f, 0.0810547f, 0.241211f, -0.200195f, 0.277344f, -0.200195f, 0.293457f, -0.228271f,
+0.30957f, -0.256348f, 0.30957f, -0.3125f, 0.30957f, -0.368652f, 0.293701f, -0.395264f,
+0.277832f, -0.421875f, 0.241211f, -0.421875f, 0.20752f, -0.421875f, 0.192139f, -0.395264f,
+0.176758f, -0.368652f, 0.176758f, -0.3125f, 0.176758f, -0.256348f, 0.191895f, -0.228271f,
+0.207031f, -0.200195f, 0.241211f, -0.200195f, 0.212891f, -0.495117f, 0.212891f, -0.487793f,
+0.212646f, -0.477783f, 0.212402f, -0.467773f, 0.211914f, -0.457031f, 0.211426f, -0.446289f,
+0.210938f, -0.436279f, 0.210449f, -0.42627f, 0.209961f, -0.418945f, 0.225098f, -0.426758f,
+0.243408f, -0.436035f, 0.261719f, -0.445312f, 0.282227f, -0.453125f, 0.302734f, -0.460938f,
+0.324463f, -0.466064f, 0.346191f, -0.471191f, 0.368164f, -0.471191f, 0.395996f, -0.471191f,
+0.419434f, -0.463867f, 0.442871f, -0.456543f, 0.459717f, -0.44043f, 0.476562f, -0.424316f,
+0.48584f, -0.398438f, 0.495117f, -0.372559f, 0.495117f, -0.335938f, 0.495117f, -0.0439453f,
+0.541016f, -0.0322266f, 0.541016f, 0, 0.312988f, 0, 0.312988f, -0.0322266f, 0.354004f,
+-0.0439453f, 0.354004f, -0.316895f, 0.354004f, -0.35791f, 0.33667f, -0.380859f, 0.319336f,
+-0.403809f, 0.287109f, -0.403809f, 0.25f, -0.403809f, 0.212891f, -0.387207f, 0.212891f,
+-0.0439453f, 0.254883f, -0.0322266f, 0.254883f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f,
+0.0717773f, -0.0439453f, 0.0717773f, -0.649902f, 0.0249023f, -0.661621f, 0.0249023f,
+-0.693848f, 0.212891f, -0.693848f, 0.212891f, -0.0439453f, 0.263184f, -0.0322266f,
+0.263184f, 0, 0.0219727f, 0, 0.0219727f, -0.0322266f, 0.0717773f, -0.0439453f, 0.0717773f,
+-0.415039f, 0.0249023f, -0.426758f, 0.0249023f, -0.458984f, 0.212891f, -0.458984f,
+0.0668945f, -0.619141f, 0.0668945f, -0.634766f, 0.0727539f, -0.648438f, 0.0786133f,
+-0.662109f, 0.0888672f, -0.672119f, 0.0991211f, -0.682129f, 0.112793f, -0.687988f,
+0.126465f, -0.693848f, 0.14209f, -0.693848f, 0.157715f, -0.693848f, 0.171387f, -0.687988f,
+0.185059f, -0.682129f, 0.195068f, -0.672119f, 0.205078f, -0.662109f, 0.210938f, -0.648438f,
+0.216797f, -0.634766f, 0.216797f, -0.619141f, 0.216797f, -0.603516f, 0.210938f, -0.589844f,
+0.205078f, -0.576172f, 0.195068f, -0.565918f, 0.185059f, -0.555664f, 0.171387f, -0.549805f,
+0.157715f, -0.543945f, 0.14209f, -0.543945f, 0.126465f, -0.543945f, 0.112793f, -0.549805f,
+0.0991211f, -0.555664f, 0.0888672f, -0.565918f, 0.0786133f, -0.576172f, 0.0727539f,
+-0.589844f, 0.0668945f, -0.603516f, 0.0668945f, -0.619141f, 0.27002f, -0.619141f,
+0.27002f, -0.603516f, 0.26416f, -0.589844f, 0.258301f, -0.576172f, 0.248047f, -0.565918f,
+0.237793f, -0.555664f, 0.224121f, -0.549805f, 0.210449f, -0.543945f, 0.195312f, -0.543945f,
+0.179688f, -0.543945f, 0.166016f, -0.549805f, 0.152344f, -0.555664f, 0.14209f, -0.565918f,
+0.131836f, -0.576172f, 0.125977f, -0.589844f, 0.120117f, -0.603516f, 0.120117f, -0.619141f,
+0.120117f, -0.634277f, 0.125977f, -0.647949f, 0.131836f, -0.661621f, 0.14209f, -0.671875f,
+0.152344f, -0.682129f, 0.166016f, -0.687988f, 0.179688f, -0.693848f, 0.195312f, -0.693848f,
+0.210449f, -0.693848f, 0.224121f, -0.687988f, 0.237793f, -0.682129f, 0.248047f, -0.671875f,
+0.258301f, -0.661621f, 0.26416f, -0.647949f, 0.27002f, -0.634277f, 0.27002f, -0.619141f,
+0.266113f, 0.019043f, 0.266113f, 0.0708008f, 0.250977f, 0.107666f, 0.23584f, 0.144531f,
+0.209961f, 0.167969f, 0.184082f, 0.191406f, 0.149414f, 0.202148f, 0.114746f, 0.212891f,
+0.0756836f, 0.212891f, 0.0537109f, 0.212891f, 0.0317383f, 0.210449f, 0.00976562f,
+0.208008f, -0.00830078f, 0.204102f, -0.00830078f, 0.0942383f, 0.0229492f, 0.0942383f,
+0.0439453f, 0.149902f, 0.0488281f, 0.153809f, 0.0537109f, 0.156494f, 0.0585938f,
+0.15918f, 0.0678711f, 0.15918f, 0.0786133f, 0.15918f, 0.0888672f, 0.152588f, 0.0991211f,
+0.145996f, 0.107178f, 0.131348f, 0.115234f, 0.116699f, 0.120117f, 0.0930176f, 0.125f,
+0.0693359f, 0.125f, 0.034668f, 0.125f, -0.410156f, 0.0439453f, -0.426758f, 0.0439453f,
+-0.458984f, 0.266113f, -0.458984f, 0.212891f, -0.220215f, 0.39209f, -0.415527f, 0.343262f,
+-0.426758f, 0.343262f, -0.458984f, 0.518066f, -0.458984f, 0.518066f, -0.426758f,
+0.465332f, -0.416016f, 0.355957f, -0.300781f, 0.513672f, -0.0439453f, 0.554688f,
+-0.0322266f, 0.554688f, 0, 0.333984f, 0, 0.333984f, -0.0322266f, 0.36084f, -0.0439453f,
+0.269043f, -0.20459f, 0.212891f, -0.165527f, 0.212891f, -0.0439453f, 0.258301f, -0.0322266f,
+0.258301f, 0, 0.0283203f, 0, 0.0283203f, -0.0322266f, 0.0717773f, -0.0439453f, 0.0717773f,
+-0.649902f, 0.0249023f, -0.661621f, 0.0249023f, -0.693848f, 0.212891f, -0.693848f,
+0.210449f, -0.0439453f, 0.260742f, -0.0322266f, 0.260742f, 0, 0.0195312f, 0, 0.0195312f,
+-0.0322266f, 0.0693359f, -0.0439453f, 0.0693359f, -0.649902f, 0.0224609f, -0.661621f,
+0.0224609f, -0.693848f, 0.210449f, -0.693848f, 0.211914f, -0.418945f, 0.227051f,
+-0.426758f, 0.245117f, -0.436035f, 0.263184f, -0.445312f, 0.283203f, -0.453125f,
+0.303223f, -0.460938f, 0.324463f, -0.466064f, 0.345703f, -0.471191f, 0.367676f, -0.471191f,
+0.405762f, -0.471191f, 0.434082f, -0.457275f, 0.462402f, -0.443359f, 0.477051f, -0.411621f,
+0.492676f, -0.420898f, 0.512939f, -0.431396f, 0.533203f, -0.441895f, 0.55542f, -0.450684f,
+0.577637f, -0.459473f, 0.601074f, -0.465332f, 0.624512f, -0.471191f, 0.645996f, -0.471191f,
+0.673828f, -0.471191f, 0.696777f, -0.463867f, 0.719727f, -0.456543f, 0.736084f, -0.44043f,
+0.752441f, -0.424316f, 0.76123f, -0.398438f, 0.77002f, -0.372559f, 0.77002f, -0.335938f,
+0.77002f, -0.0439453f, 0.815918f, -0.0322266f, 0.815918f, 0, 0.587891f, 0, 0.587891f,
+-0.0322266f, 0.628906f, -0.0439453f, 0.628906f, -0.316895f, 0.628906f, -0.35791f,
+0.613037f, -0.380859f, 0.597168f, -0.403809f, 0.564941f, -0.403809f, 0.547363f, -0.403809f,
+0.526611f, -0.398193f, 0.505859f, -0.392578f, 0.486816f, -0.383301f, 0.489258f, -0.373047f,
+0.490479f, -0.361084f, 0.491699f, -0.349121f, 0.491699f, -0.335938f, 0.491699f, -0.0439453f,
+0.537598f, -0.0322266f, 0.537598f, 0, 0.30957f, 0, 0.30957f, -0.0322266f, 0.350586f,
+-0.0439453f, 0.350586f, -0.316895f, 0.350586f, -0.35791f, 0.334717f, -0.380859f,
+0.318848f, -0.403809f, 0.286621f, -0.403809f, 0.268555f, -0.403809f, 0.249756f, -0.398438f,
+0.230957f, -0.393066f, 0.212891f, -0.384766f, 0.212891f, -0.0439453f, 0.254883f,
+-0.0322266f, 0.254883f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f, 0.0717773f, -0.0439453f,
+0.0717773f, -0.415039f, 0.0268555f, -0.426758f, 0.0268555f, -0.458984f, 0.205078f,
+-0.458984f, 0.211914f, -0.418945f, 0.227051f, -0.426758f, 0.245117f, -0.436035f,
+0.263184f, -0.445312f, 0.283203f, -0.453125f, 0.303223f, -0.460938f, 0.324707f, -0.466064f,
+0.346191f, -0.471191f, 0.368164f, -0.471191f, 0.395996f, -0.471191f, 0.419434f, -0.463867f,
+0.442871f, -0.456543f, 0.459717f, -0.44043f, 0.476562f, -0.424316f, 0.48584f, -0.398438f,
+0.495117f, -0.372559f, 0.495117f, -0.335938f, 0.495117f, -0.0439453f, 0.541016f,
+-0.0322266f, 0.541016f, 0, 0.312988f, 0, 0.312988f, -0.0322266f, 0.354004f, -0.0439453f,
+0.354004f, -0.316895f, 0.354004f, -0.35791f, 0.33667f, -0.380859f, 0.319336f, -0.403809f,
+0.287109f, -0.403809f, 0.25f, -0.403809f, 0.212891f, -0.387207f, 0.212891f, -0.0439453f,
+0.254883f, -0.0322266f, 0.254883f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f, 0.0717773f,
+-0.0439453f, 0.0717773f, -0.415039f, 0.0268555f, -0.426758f, 0.0268555f, -0.458984f,
+0.205078f, -0.458984f, 0.461914f, -0.231934f, 0.461914f, -0.17334f, 0.449951f, -0.128418f,
+0.437988f, -0.0834961f, 0.412109f, -0.0527344f, 0.38623f, -0.0219727f, 0.345459f,
+-0.00610352f, 0.304688f, 0.00976562f, 0.24707f, 0.00976562f, 0.192871f, 0.00976562f,
+0.15332f, -0.00585938f, 0.11377f, -0.0214844f, 0.0881348f, -0.0522461f, 0.0625f,
+-0.0830078f, 0.050293f, -0.128174f, 0.0380859f, -0.17334f, 0.0380859f, -0.231934f,
+0.0380859f, -0.290039f, 0.050293f, -0.334717f, 0.0625f, -0.379395f, 0.0883789f, -0.409668f,
+0.114258f, -0.439941f, 0.154541f, -0.455566f, 0.194824f, -0.471191f, 0.250977f, -0.471191f,
+0.359863f, -0.471191f, 0.410889f, -0.4104f, 0.461914f, -0.349609f, 0.461914f, -0.231934f,
+0.318848f, -0.231934f, 0.318848f, -0.279297f, 0.315918f, -0.314941f, 0.312988f, -0.350586f,
+0.305176f, -0.374512f, 0.297363f, -0.398438f, 0.283691f, -0.410156f, 0.27002f, -0.421875f,
+0.248047f, -0.421875f, 0.226562f, -0.421875f, 0.213379f, -0.410156f, 0.200195f, -0.398438f,
+0.193115f, -0.374512f, 0.186035f, -0.350586f, 0.183594f, -0.314941f, 0.181152f, -0.279297f,
+0.181152f, -0.231934f, 0.181152f, -0.184082f, 0.183594f, -0.148193f, 0.186035f, -0.112305f,
+0.193115f, -0.0878906f, 0.200195f, -0.0634766f, 0.213379f, -0.0512695f, 0.226562f,
+-0.0390625f, 0.248047f, -0.0390625f, 0.27002f, -0.0390625f, 0.283691f, -0.0512695f,
+0.297363f, -0.0634766f, 0.305176f, -0.0878906f, 0.312988f, -0.112305f, 0.315918f,
+-0.148193f, 0.318848f, -0.184082f, 0.318848f, -0.231934f, 0.199707f, -0.435547f,
+0.210449f, -0.442871f, 0.223389f, -0.449463f, 0.236328f, -0.456055f, 0.251709f, -0.460693f,
+0.26709f, -0.465332f, 0.285645f, -0.468262f, 0.304199f, -0.471191f, 0.32666f, -0.471191f,
+0.422363f, -0.471191f, 0.468994f, -0.415039f, 0.515625f, -0.358887f, 0.515625f, -0.237793f,
+0.515625f, -0.182129f, 0.503174f, -0.136475f, 0.490723f, -0.0908203f, 0.464844f,
+-0.0583496f, 0.438965f, -0.0258789f, 0.399414f, -0.00805664f, 0.359863f, 0.00976562f,
+0.305664f, 0.00976562f, 0.279297f, 0.00976562f, 0.253906f, 0.0065918f, 0.228516f,
+0.00341797f, 0.201172f, -0.00341797f, 0.20166f, 0.00195312f, 0.202393f, 0.0112305f,
+0.203125f, 0.0205078f, 0.203369f, 0.0310059f, 0.203613f, 0.0415039f, 0.203857f, 0.0515137f,
+0.204102f, 0.0615234f, 0.204102f, 0.0688477f, 0.204102f, 0.168945f, 0.271484f, 0.180664f,
+0.271484f, 0.212891f, 0.0131836f, 0.212891f, 0.0131836f, 0.180664f, 0.0629883f, 0.168945f,
+0.0629883f, -0.415039f, 0.0126953f, -0.426758f, 0.0126953f, -0.458984f, 0.19873f,
+-0.458984f, 0.372559f, -0.234375f, 0.372559f, -0.287598f, 0.365723f, -0.322998f,
+0.358887f, -0.358398f, 0.347168f, -0.37915f, 0.335449f, -0.399902f, 0.320068f, -0.408447f,
+0.304688f, -0.416992f, 0.287598f, -0.416992f, 0.262695f, -0.416992f, 0.241455f, -0.411621f,
+0.220215f, -0.40625f, 0.204102f, -0.398438f, 0.204102f, -0.0522461f, 0.243652f, -0.0419922f,
+0.286621f, -0.0419922f, 0.330566f, -0.0419922f, 0.351562f, -0.090332f, 0.372559f,
+-0.138672f, 0.372559f, -0.234375f, 0.184082f, -0.21875f, 0.184082f, -0.168945f, 0.190918f,
+-0.135498f, 0.197754f, -0.102051f, 0.210205f, -0.0817871f, 0.222656f, -0.0615234f,
+0.240723f, -0.0529785f, 0.258789f, -0.0444336f, 0.281738f, -0.0444336f, 0.300293f,
+-0.0444336f, 0.321045f, -0.0495605f, 0.341797f, -0.0546875f, 0.355957f, -0.0629883f,
+0.355957f, -0.412598f, 0.340332f, -0.416504f, 0.320801f, -0.418701f, 0.30127f, -0.420898f,
+0.281738f, -0.420898f, 0.255371f, -0.420898f, 0.236816f, -0.407471f, 0.218262f, -0.394043f,
+0.206543f, -0.368408f, 0.194824f, -0.342773f, 0.189453f, -0.304932f, 0.184082f, -0.26709f,
+0.184082f, -0.21875f, 0.49707f, 0.168945f, 0.546875f, 0.180664f, 0.546875f, 0.212891f,
+0.288574f, 0.212891f, 0.288574f, 0.180664f, 0.355957f, 0.168945f, 0.355957f, 0.0639648f,
+0.355957f, 0.0458984f, 0.357178f, 0.0205078f, 0.358398f, -0.00488281f, 0.36084f,
+-0.0283203f, 0.339355f, -0.0112305f, 0.309082f, -0.000732422f, 0.278809f, 0.00976562f,
+0.241211f, 0.00976562f, 0.13916f, 0.00976562f, 0.0900879f, -0.0505371f, 0.0410156f,
+-0.11084f, 0.0410156f, -0.231445f, 0.0410156f, -0.287109f, 0.0537109f, -0.331299f,
+0.0664062f, -0.375488f, 0.0930176f, -0.406738f, 0.119629f, -0.437988f, 0.160645f,
+-0.45459f, 0.20166f, -0.471191f, 0.258301f, -0.471191f, 0.272949f, -0.471191f, 0.291016f,
+-0.469971f, 0.309082f, -0.46875f, 0.327637f, -0.467041f, 0.346191f, -0.465332f, 0.36377f,
+-0.463379f, 0.381348f, -0.461426f, 0.394531f, -0.459961f, 0.452637f, -0.480957f,
+0.49707f, -0.480957f, 0.225098f, -0.36377f, 0.237793f, -0.37793f, 0.256592f, -0.396973f,
+0.275391f, -0.416016f, 0.297607f, -0.433105f, 0.319824f, -0.450195f, 0.344971f, -0.461914f,
+0.370117f, -0.473633f, 0.395996f, -0.473633f, 0.422363f, -0.473633f, 0.422363f, -0.306152f,
+0.39502f, -0.306152f, 0.366211f, -0.367676f, 0.350098f, -0.367676f, 0.331055f, -0.36377f,
+0.312012f, -0.359863f, 0.293457f, -0.353271f, 0.274902f, -0.34668f, 0.257568f, -0.338623f,
+0.240234f, -0.330566f, 0.227539f, -0.322754f, 0.227539f, -0.0439453f, 0.30127f, -0.0322266f,
+0.30127f, 0, 0.0268555f, 0, 0.0268555f, -0.0322266f, 0.0864258f, -0.0439453f, 0.0864258f,
+-0.415039f, 0.0268555f, -0.426758f, 0.0268555f, -0.458984f, 0.219727f, -0.458984f,
+0.364746f, -0.145508f, 0.364746f, -0.109375f, 0.35376f, -0.0805664f, 0.342773f, -0.0517578f,
+0.320068f, -0.0317383f, 0.297363f, -0.0117188f, 0.262695f, -0.000976562f, 0.228027f,
+0.00976562f, 0.180664f, 0.00976562f, 0.157227f, 0.00976562f, 0.133301f, 0.00683594f,
+0.109375f, 0.00390625f, 0.0888672f, -0.000244141f, 0.0683594f, -0.00439453f, 0.0529785f,
+-0.00854492f, 0.0375977f, -0.0126953f, 0.03125f, -0.0151367f, 0.03125f, -0.140137f,
+0.0634766f, -0.140137f, 0.0820312f, -0.0756836f, 0.0893555f, -0.0683594f, 0.100098f,
+-0.0612793f, 0.11084f, -0.0541992f, 0.124023f, -0.0483398f, 0.137207f, -0.0424805f,
+0.152344f, -0.0390625f, 0.16748f, -0.0356445f, 0.183594f, -0.0356445f, 0.226074f,
+-0.0356445f, 0.246826f, -0.0539551f, 0.267578f, -0.0722656f, 0.267578f, -0.100586f,
+0.267578f, -0.116211f, 0.261475f, -0.127441f, 0.255371f, -0.138672f, 0.242188f, -0.147461f,
+0.229004f, -0.15625f, 0.20874f, -0.164062f, 0.188477f, -0.171875f, 0.160156f, -0.180664f,
+0.136719f, -0.187988f, 0.113281f, -0.198975f, 0.0898438f, -0.209961f, 0.0715332f,
+-0.227539f, 0.0532227f, -0.245117f, 0.041748f, -0.270996f, 0.0302734f, -0.296875f,
+0.0302734f, -0.334473f, 0.0302734f, -0.367676f, 0.0432129f, -0.393066f, 0.0561523f,
+-0.418457f, 0.0786133f, -0.435791f, 0.101074f, -0.453125f, 0.131348f, -0.462158f,
+0.161621f, -0.471191f, 0.196289f, -0.471191f, 0.230469f, -0.471191f, 0.264893f, -0.466797f,
+0.299316f, -0.462402f, 0.331543f, -0.457031f, 0.331543f, -0.339355f, 0.299316f, -0.339355f,
+0.283691f, -0.393066f, 0.277344f, -0.399414f, 0.267578f, -0.405273f, 0.257812f, -0.411133f,
+0.24585f, -0.415527f, 0.233887f, -0.419922f, 0.220703f, -0.422607f, 0.20752f, -0.425293f,
+0.195312f, -0.425293f, 0.160156f, -0.425293f, 0.143311f, -0.410889f, 0.126465f, -0.396484f,
+0.126465f, -0.371582f, 0.126465f, -0.355469f, 0.133545f, -0.344238f, 0.140625f, -0.333008f,
+0.154541f, -0.324219f, 0.168457f, -0.31543f, 0.188232f, -0.308105f, 0.208008f, -0.300781f,
+0.233887f, -0.292969f, 0.260742f, -0.284668f, 0.284668f, -0.273193f, 0.308594f, -0.261719f,
+0.326416f, -0.244385f, 0.344238f, -0.227051f, 0.354492f, -0.203125f, 0.364746f, -0.179199f,
+0.364746f, -0.145508f, 0.213867f, 0.00976562f, 0.177246f, 0.00976562f, 0.151123f,
+0.000976562f, 0.125f, -0.0078125f, 0.108398f, -0.0231934f, 0.0917969f, -0.0385742f,
+0.0839844f, -0.0598145f, 0.0761719f, -0.0810547f, 0.0761719f, -0.105957f, 0.0761719f,
+-0.408203f, 0.0161133f, -0.408203f, 0.0161133f, -0.439941f, 0.0869141f, -0.458984f,
+0.144043f, -0.562988f, 0.217285f, -0.562988f, 0.217285f, -0.458984f, 0.313965f, -0.458984f,
+0.313965f, -0.408203f, 0.217285f, -0.408203f, 0.217285f, -0.114746f, 0.217285f, -0.0830078f,
+0.230469f, -0.0668945f, 0.243652f, -0.0507812f, 0.265137f, -0.0507812f, 0.281738f,
+-0.0507812f, 0.298096f, -0.0532227f, 0.314453f, -0.0556641f, 0.328613f, -0.0585938f,
+0.328613f, -0.0170898f, 0.321777f, -0.012207f, 0.308594f, -0.00732422f, 0.29541f,
+-0.00244141f, 0.279541f, 0.0012207f, 0.263672f, 0.00488281f, 0.246338f, 0.00732422f,
+0.229004f, 0.00976562f, 0.213867f, 0.00976562f, 0.344238f, -0.0400391f, 0.329102f,
+-0.0322266f, 0.311035f, -0.0229492f, 0.292969f, -0.0136719f, 0.272949f, -0.00585938f,
+0.25293f, 0.00195312f, 0.231445f, 0.00708008f, 0.209961f, 0.012207f, 0.187988f, 0.012207f,
+0.160156f, 0.012207f, 0.136719f, 0.00488281f, 0.113281f, -0.00244141f, 0.0964355f,
+-0.0185547f, 0.0795898f, -0.034668f, 0.0703125f, -0.0605469f, 0.0610352f, -0.0864258f,
+0.0610352f, -0.123047f, 0.0610352f, -0.415039f, 0.0151367f, -0.426758f, 0.0151367f,
+-0.458984f, 0.202148f, -0.458984f, 0.202148f, -0.14209f, 0.202148f, -0.101074f, 0.219482f,
+-0.078125f, 0.236816f, -0.0551758f, 0.269043f, -0.0551758f, 0.306152f, -0.0551758f,
+0.343262f, -0.0717773f, 0.343262f, -0.415039f, 0.30127f, -0.426758f, 0.30127f, -0.458984f,
+0.484375f, -0.458984f, 0.484375f, -0.0439453f, 0.529297f, -0.0322266f, 0.529297f,
+0, 0.351074f, 0, 0.466797f, -0.416992f, 0.283203f, 0.00976562f, 0.224121f, 0.00976562f,
+0.0322266f, -0.415039f, 0, -0.426758f, 0, -0.458984f, 0.234863f, -0.458984f, 0.234863f,
+-0.426758f, 0.180176f, -0.414062f, 0.297852f, -0.152344f, 0.403809f, -0.415039f,
+0.350098f, -0.426758f, 0.350098f, -0.458984f, 0.5f, -0.458984f, 0.5f, -0.426758f,
+0.426758f, -0.413086f, 0.532715f, -0.151855f, 0.621582f, -0.415039f, 0.567871f, -0.426758f,
+0.567871f, -0.458984f, 0.716797f, -0.458984f, 0.716797f, -0.426758f, 0.681641f, -0.416992f,
+0.527344f, 0.00976562f, 0.468262f, 0.00976562f, 0.363281f, -0.247559f, 0.258789f,
+0.00976562f, 0.199707f, 0.00976562f, 0.0371094f, -0.415039f, 0.00292969f, -0.426758f,
+0.00292969f, -0.458984f, 0.22998f, -0.458984f, 0.22998f, -0.426758f, 0.175293f, -0.414062f,
+0.273926f, -0.151855f, 0.380371f, -0.413086f, 0.0151367f, -0.427246f, 0.0151367f,
+-0.458984f, 0.260254f, -0.458984f, 0.260254f, -0.427246f, 0.208984f, -0.414062f,
+0.275879f, -0.311035f, 0.364258f, -0.415039f, 0.318359f, -0.427246f, 0.318359f, -0.458984f,
+0.474609f, -0.458984f, 0.474609f, -0.427246f, 0.434082f, -0.416992f, 0.305176f, -0.265625f,
+0.450684f, -0.0419922f, 0.494629f, -0.0317383f, 0.494629f, 0, 0.249512f, 0, 0.249512f,
+-0.0317383f, 0.300781f, -0.0429688f, 0.220703f, -0.166504f, 0.114258f, -0.0419922f,
+0.160156f, -0.0317383f, 0.160156f, 0, 0.00390625f, 0, 0.00390625f, -0.0317383f, 0.0449219f,
+-0.0395508f, 0.191406f, -0.211426f, 0.0595703f, -0.415039f, 0.225586f, 0.0141602f,
+0.0419922f, -0.415039f, 0.00976562f, -0.426758f, 0.00976562f, -0.458984f, 0.244629f,
+-0.458984f, 0.244629f, -0.426758f, 0.189941f, -0.414062f, 0.297852f, -0.160156f,
+0.394043f, -0.415039f, 0.340332f, -0.426758f, 0.340332f, -0.458984f, 0.490234f, -0.458984f,
+0.490234f, -0.426758f, 0.457031f, -0.416992f, 0.275879f, 0.0288086f, 0.260254f, 0.0688477f,
+0.244141f, 0.103027f, 0.228027f, 0.137207f, 0.208252f, 0.162354f, 0.188477f, 0.1875f,
+0.163086f, 0.20166f, 0.137695f, 0.21582f, 0.104004f, 0.21582f, 0.090332f, 0.21582f,
+0.0803223f, 0.215332f, 0.0703125f, 0.214844f, 0.0612793f, 0.213623f, 0.0522461f,
+0.212402f, 0.0432129f, 0.210693f, 0.0341797f, 0.208984f, 0.0234375f, 0.206543f, 0.0234375f,
+0.0883789f, 0.0527344f, 0.0883789f, 0.0737305f, 0.149902f, 0.0805664f, 0.155273f,
+0.0891113f, 0.158203f, 0.0976562f, 0.161133f, 0.109863f, 0.161133f, 0.129883f, 0.161133f,
+0.144775f, 0.150879f, 0.159668f, 0.140625f, 0.171875f, 0.123291f, 0.184082f, 0.105957f,
+0.19458f, 0.0827637f, 0.205078f, 0.0595703f, 0.216797f, 0.0336914f, 0.0195312f, 0,
+0.0195312f, -0.0219727f, 0.230469f, -0.415039f, 0.178223f, -0.415039f, 0.164551f,
+-0.415039f, 0.151123f, -0.413818f, 0.137695f, -0.412598f, 0.125732f, -0.4104f, 0.11377f,
+-0.408203f, 0.104492f, -0.405029f, 0.0952148f, -0.401855f, 0.090332f, -0.397949f,
+0.0751953f, -0.322266f, 0.0400391f, -0.322266f, 0.0400391f, -0.458984f, 0.396484f,
+-0.458984f, 0.396484f, -0.435059f, 0.185547f, -0.0439453f, 0.258789f, -0.0439453f,
+0.271973f, -0.0439453f, 0.286865f, -0.0456543f, 0.301758f, -0.0473633f, 0.315674f,
+-0.050293f, 0.32959f, -0.0532227f, 0.341553f, -0.057373f, 0.353516f, -0.0615234f,
+0.36084f, -0.0668945f, 0.386719f, -0.172852f, 0.421875f, -0.172852f, 0.408691f, 0,
+0.289062f, 0.133789f, 0.251465f, 0.133789f, 0.2229f, 0.123779f, 0.194336f, 0.11377f,
+0.175293f, 0.0949707f, 0.15625f, 0.0761719f, 0.146729f, 0.0498047f, 0.137207f, 0.0234375f,
+0.137207f, -0.00976562f, 0.137207f, -0.153809f, 0.137207f, -0.182129f, 0.130127f,
+-0.201904f, 0.123047f, -0.22168f, 0.109619f, -0.234375f, 0.0961914f, -0.24707f, 0.0766602f,
+-0.253174f, 0.0571289f, -0.259277f, 0.0322266f, -0.260254f, 0.0322266f, -0.301758f,
+0.0820312f, -0.303223f, 0.109619f, -0.327393f, 0.137207f, -0.351562f, 0.137207f,
+-0.407227f, 0.137207f, -0.550781f, 0.137207f, -0.619629f, 0.175293f, -0.656738f,
+0.213379f, -0.693848f, 0.289062f, -0.693848f, 0.35498f, -0.693848f, 0.35498f, -0.651367f,
+0.324707f, -0.651367f, 0.291016f, -0.651367f, 0.276611f, -0.629883f, 0.262207f, -0.608398f,
+0.262207f, -0.565918f, 0.262207f, -0.404785f, 0.262207f, -0.380371f, 0.254639f, -0.359863f,
+0.24707f, -0.339355f, 0.233887f, -0.323486f, 0.220703f, -0.307617f, 0.202637f, -0.297119f,
+0.18457f, -0.286621f, 0.163574f, -0.282227f, 0.163574f, -0.280762f, 0.185547f, -0.275879f,
+0.203613f, -0.265381f, 0.22168f, -0.254883f, 0.234863f, -0.239014f, 0.248047f, -0.223145f,
+0.255127f, -0.202637f, 0.262207f, -0.182129f, 0.262207f, -0.157227f, 0.262207f, 0.00585938f,
+0.262207f, 0.0478516f, 0.276611f, 0.0695801f, 0.291016f, 0.0913086f, 0.324707f, 0.0913086f,
+0.35498f, 0.0913086f, 0.35498f, 0.133789f, 0.0751953f, 0.21582f, 0.0751953f, -0.693848f,
+0.14502f, -0.693848f, 0.14502f, 0.21582f, 0.0390625f, 0.133789f, 0.0390625f, 0.0913086f,
+0.0693359f, 0.0913086f, 0.103027f, 0.0913086f, 0.117432f, 0.0695801f, 0.131836f,
+0.0478516f, 0.131836f, 0.00585938f, 0.131836f, -0.157227f, 0.131836f, -0.182129f,
+0.138916f, -0.202637f, 0.145996f, -0.223145f, 0.15918f, -0.239014f, 0.172363f, -0.254883f,
+0.19043f, -0.265381f, 0.208496f, -0.275879f, 0.230469f, -0.280762f, 0.230469f, -0.282227f,
+0.208984f, -0.286621f, 0.190918f, -0.297119f, 0.172852f, -0.307617f, 0.159668f, -0.323486f,
+0.146484f, -0.339355f, 0.13916f, -0.359863f, 0.131836f, -0.380371f, 0.131836f, -0.404785f,
+0.131836f, -0.565918f, 0.131836f, -0.608398f, 0.117432f, -0.629883f, 0.103027f, -0.651367f,
+0.0693359f, -0.651367f, 0.0390625f, -0.651367f, 0.0390625f, -0.693848f, 0.10498f,
+-0.693848f, 0.180664f, -0.693848f, 0.21875f, -0.656738f, 0.256836f, -0.619629f, 0.256836f,
+-0.550781f, 0.256836f, -0.407227f, 0.256836f, -0.351562f, 0.284424f, -0.327393f,
+0.312012f, -0.303223f, 0.361816f, -0.301758f, 0.361816f, -0.260254f, 0.336914f, -0.259277f,
+0.317383f, -0.253174f, 0.297852f, -0.24707f, 0.284424f, -0.234375f, 0.270996f, -0.22168f,
+0.263916f, -0.201904f, 0.256836f, -0.182129f, 0.256836f, -0.153809f, 0.256836f, -0.00976562f,
+0.256836f, 0.0234375f, 0.247314f, 0.0498047f, 0.237793f, 0.0761719f, 0.21875f, 0.0949707f,
+0.199707f, 0.11377f, 0.171143f, 0.123779f, 0.142578f, 0.133789f, 0.10498f, 0.133789f,
+0.371582f, -0.234863f, 0.348145f, -0.234863f, 0.32666f, -0.243652f, 0.305176f, -0.252441f,
+0.285645f, -0.265625f, 0.266113f, -0.278809f, 0.248047f, -0.293945f, 0.22998f, -0.309082f,
+0.213135f, -0.322266f, 0.196289f, -0.335449f, 0.18042f, -0.344238f, 0.164551f, -0.353027f,
+0.149414f, -0.353027f, 0.132812f, -0.353027f, 0.120605f, -0.347168f, 0.108398f, -0.341309f,
+0.0998535f, -0.327393f, 0.0913086f, -0.313477f, 0.0856934f, -0.290771f, 0.0800781f,
+-0.268066f, 0.0766602f, -0.234863f, 0.0078125f, -0.234863f, 0.0112305f, -0.268555f,
+0.0180664f, -0.302246f, 0.0249023f, -0.335938f, 0.0400391f, -0.362549f, 0.0551758f,
+-0.38916f, 0.0812988f, -0.406006f, 0.107422f, -0.422852f, 0.149414f, -0.422852f,
+0.168457f, -0.422852f, 0.185547f, -0.41748f, 0.202637f, -0.412109f, 0.218262f, -0.403564f,
+0.233887f, -0.39502f, 0.248535f, -0.384277f, 0.263184f, -0.373535f, 0.276367f, -0.362793f,
+0.284668f, -0.355469f, 0.296143f, -0.345703f, 0.307617f, -0.335938f, 0.320557f, -0.32666f,
+0.333496f, -0.317383f, 0.34668f, -0.311035f, 0.359863f, -0.304688f, 0.371582f, -0.304688f,
+0.387695f, -0.304688f, 0.399414f, -0.311279f, 0.411133f, -0.317871f, 0.419434f, -0.332031f,
+0.427734f, -0.346191f, 0.433594f, -0.368652f, 0.439453f, -0.391113f, 0.443359f, -0.422852f,
+0.513672f, -0.422852f, 0.509277f, -0.389648f, 0.501709f, -0.355957f, 0.494141f, -0.322266f,
+0.47876f, -0.29541f, 0.463379f, -0.268555f, 0.437744f, -0.251709f, 0.412109f, -0.234863f,
+0.371582f, -0.234863f
+};
+
+const unsigned char LiberationSerifBoldVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5,
+6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+0, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 0, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2,
+2, 2, 2, 2, 2, 1, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2,
+2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2,
+2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifBoldCharCodes[] = {
+0, 32, 33, 34, 35, 36,
+37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifBoldWidths[] = {
+0x0000c720, 0x00004000, 0x00005540, 0x00008e20, 0x00008000, 0x00008000, 0x00010000,
+0x0000d540, 0x00004720, 0x00005540, 0x00005540, 0x00008000, 0x000091e0, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x00005540, 0x000091e0, 0x000091e0, 0x000091e0, 0x00008000, 0x0000ee20, 0x0000b8e0,
+0x0000aac0, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00009c60, 0x0000c720, 0x0000c720,
+0x000063a0, 0x00008000, 0x0000c720, 0x0000aac0, 0x0000f1a0, 0x0000b8e0, 0x0000c720,
+0x00009c60, 0x0000c720, 0x0000b8e0, 0x00008e60, 0x0000aac0, 0x0000b8e0, 0x0000b8e0,
+0x00010000, 0x0000b8e0, 0x0000b8e0, 0x0000aac0, 0x00005540, 0x00004720, 0x00005540,
+0x000094c0, 0x00008000, 0x00005540, 0x00008000, 0x00008e60, 0x000071a0, 0x00008e60,
+0x000071a0, 0x00005540, 0x00008000, 0x00008e60, 0x00004720, 0x00005540, 0x00008e60,
+0x00004720, 0x0000d540, 0x00008e60, 0x00008000, 0x00008e60, 0x00008e60, 0x000071a0,
+0x000063a0, 0x00005540, 0x00008e60, 0x00008000, 0x0000b8e0, 0x00008000, 0x00008000,
+0x000071a0, 0x000064e0, 0x00003860, 0x000064e0, 0x00008520
+};
+
+const int LiberationSerifBoldCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifBoldCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifBoldMetrics = {
+0x30307833, -1.00781f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.26709f, 0.0197983f,
+-0.182129f, 1.08496f, 0.469727f, 0.0103607f, 0.0952148f, 0.108887f
+};
+
+const SkScalar LiberationSerifItalicPoints[] = {
+0.195312f, -0.0449219f, 0.195312f, -0.0327148f, 0.190674f, -0.0219727f, 0.186035f,
+-0.0112305f, 0.178223f, -0.00317383f, 0.17041f, 0.00488281f, 0.159424f, 0.00952148f,
+0.148438f, 0.0141602f, 0.13623f, 0.0141602f, 0.123535f, 0.0141602f, 0.112793f, 0.00952148f,
+0.102051f, 0.00488281f, 0.0942383f, -0.00317383f, 0.0864258f, -0.0112305f, 0.0817871f,
+-0.0219727f, 0.0771484f, -0.0327148f, 0.0771484f, -0.0449219f, 0.0771484f, -0.0571289f,
+0.0817871f, -0.0681152f, 0.0864258f, -0.0791016f, 0.0942383f, -0.0869141f, 0.102051f,
+-0.0947266f, 0.112793f, -0.0993652f, 0.123535f, -0.104004f, 0.13623f, -0.104004f,
+0.148438f, -0.104004f, 0.159424f, -0.0993652f, 0.17041f, -0.0947266f, 0.178223f,
+-0.0869141f, 0.186035f, -0.0791016f, 0.190674f, -0.0681152f, 0.195312f, -0.0571289f,
+0.195312f, -0.0449219f, 0.182617f, -0.654785f, 0.289062f, -0.654785f, 0.177246f,
+-0.189941f, 0.131348f, -0.189941f, 0.327148f, -0.654785f, 0.42334f, -0.654785f, 0.351562f,
+-0.419922f, 0.31543f, -0.419922f, 0.13916f, -0.654785f, 0.235352f, -0.654785f, 0.163574f,
+-0.419922f, 0.127441f, -0.419922f, 0.480469f, -0.255859f, 0.47168f, -0.205566f, 0.344727f,
+-0.205566f, 0.27002f, 0, 0.219238f, 0, 0.293945f, -0.205566f, 0.142578f, -0.205566f,
+0.0683594f, 0, 0.0170898f, 0, 0.0917969f, -0.205566f, 0.00830078f, -0.205566f, 0.0166016f,
+-0.255859f, 0.110352f, -0.255859f, 0.165039f, -0.405762f, 0.0429688f, -0.405762f,
+0.0517578f, -0.456055f, 0.182617f, -0.456055f, 0.254883f, -0.654785f, 0.305664f,
+-0.654785f, 0.233887f, -0.456055f, 0.384766f, -0.456055f, 0.457031f, -0.654785f,
+0.507812f, -0.654785f, 0.435547f, -0.456055f, 0.515625f, -0.456055f, 0.506836f, -0.405762f,
+0.417969f, -0.405762f, 0.36377f, -0.255859f, 0.161621f, -0.255859f, 0.3125f, -0.255859f,
+0.366699f, -0.405762f, 0.21582f, -0.405762f, 0.0371094f, -0.181152f, 0.0688477f,
+-0.181152f, 0.0693359f, -0.0878906f, 0.0771484f, -0.0766602f, 0.0898438f, -0.0661621f,
+0.102539f, -0.0556641f, 0.118896f, -0.0478516f, 0.135254f, -0.0400391f, 0.155273f,
+-0.0351562f, 0.175293f, -0.0302734f, 0.197266f, -0.0297852f, 0.24707f, -0.311523f,
+0.220703f, -0.324707f, 0.193848f, -0.339844f, 0.166992f, -0.35498f, 0.145752f, -0.374756f,
+0.124512f, -0.394531f, 0.111084f, -0.420898f, 0.0976562f, -0.447266f, 0.0976562f,
+-0.483398f, 0.0976562f, -0.527832f, 0.112305f, -0.560791f, 0.126953f, -0.59375f,
+0.154053f, -0.615479f, 0.181152f, -0.637207f, 0.220215f, -0.648682f, 0.259277f, -0.660156f,
+0.308594f, -0.661621f, 0.319824f, -0.724121f, 0.359863f, -0.724121f, 0.348633f, -0.661621f,
+0.388672f, -0.660645f, 0.421631f, -0.655762f, 0.45459f, -0.650879f, 0.483887f, -0.643555f,
+0.459961f, -0.507324f, 0.428223f, -0.507324f, 0.425781f, -0.59082f, 0.412598f, -0.601562f,
+0.390869f, -0.609619f, 0.369141f, -0.617676f, 0.341309f, -0.620117f, 0.299805f, -0.384277f,
+0.326172f, -0.370117f, 0.354492f, -0.353516f, 0.382812f, -0.336914f, 0.406006f, -0.315186f,
+0.429199f, -0.293457f, 0.444092f, -0.265869f, 0.458984f, -0.238281f, 0.458984f, -0.202148f,
+0.458984f, -0.106934f, 0.401611f, -0.0524902f, 0.344238f, 0.00195312f, 0.230469f,
+0.00878906f, 0.21875f, 0.0761719f, 0.178711f, 0.0761719f, 0.19043f, 0.00976562f,
+0.132324f, 0.00878906f, 0.0874023f, -0.00366211f, 0.0424805f, -0.0161133f, 0.0117188f,
+-0.0356445f, 0.37207f, -0.185059f, 0.37207f, -0.206543f, 0.365234f, -0.222656f, 0.358398f,
+-0.23877f, 0.346436f, -0.251465f, 0.334473f, -0.26416f, 0.318359f, -0.27417f, 0.302246f,
+-0.28418f, 0.28418f, -0.293457f, 0.237793f, -0.0322266f, 0.303711f, -0.0405273f,
+0.337891f, -0.079834f, 0.37207f, -0.119141f, 0.37207f, -0.185059f, 0.183105f, -0.500488f,
+0.183105f, -0.482422f, 0.189209f, -0.468018f, 0.195312f, -0.453613f, 0.206055f, -0.441895f,
+0.216797f, -0.430176f, 0.231201f, -0.42041f, 0.245605f, -0.410645f, 0.262695f, -0.401855f,
+0.30127f, -0.620117f, 0.27002f, -0.617676f, 0.247803f, -0.607666f, 0.225586f, -0.597656f,
+0.211182f, -0.581787f, 0.196777f, -0.565918f, 0.189941f, -0.545166f, 0.183105f, -0.524414f,
+0.183105f, -0.500488f, 0.155273f, 0.00976562f, 0.101562f, 0.00976562f, 0.683594f,
+-0.665039f, 0.737793f, -0.665039f, 0.379883f, -0.48584f, 0.364258f, -0.398438f, 0.316895f,
+-0.351318f, 0.269531f, -0.304199f, 0.187012f, -0.304199f, 0.121582f, -0.304199f,
+0.0893555f, -0.336914f, 0.0571289f, -0.369629f, 0.0571289f, -0.432129f, 0.0571289f,
+-0.444824f, 0.0583496f, -0.458008f, 0.0595703f, -0.471191f, 0.0620117f, -0.48584f,
+0.0776367f, -0.57373f, 0.124756f, -0.619385f, 0.171875f, -0.665039f, 0.253418f, -0.665039f,
+0.318848f, -0.665039f, 0.352051f, -0.633301f, 0.385254f, -0.601562f, 0.385254f, -0.538574f,
+0.385254f, -0.515625f, 0.379883f, -0.48584f, 0.303711f, -0.48584f, 0.310059f, -0.520508f,
+0.310059f, -0.548828f, 0.310059f, -0.587891f, 0.294922f, -0.608398f, 0.279785f, -0.628906f,
+0.244141f, -0.628906f, 0.220215f, -0.628906f, 0.202881f, -0.619385f, 0.185547f, -0.609863f,
+0.173096f, -0.591553f, 0.160645f, -0.573242f, 0.1521f, -0.546631f, 0.143555f, -0.52002f,
+0.137695f, -0.48584f, 0.134277f, -0.46582f, 0.132324f, -0.44873f, 0.130371f, -0.431641f,
+0.130371f, -0.416992f, 0.130371f, -0.379883f, 0.144531f, -0.359863f, 0.158691f, -0.339844f,
+0.192871f, -0.339844f, 0.216797f, -0.339844f, 0.234863f, -0.349854f, 0.25293f, -0.359863f,
+0.266113f, -0.378418f, 0.279297f, -0.396973f, 0.288574f, -0.424072f, 0.297852f, -0.451172f,
+0.303711f, -0.48584f, 0.770996f, -0.168945f, 0.755371f, -0.0810547f, 0.708008f, -0.0339355f,
+0.660645f, 0.0131836f, 0.578125f, 0.0131836f, 0.512695f, 0.0131836f, 0.480225f, -0.0192871f,
+0.447754f, -0.0517578f, 0.447754f, -0.114258f, 0.447754f, -0.126953f, 0.449219f,
+-0.140625f, 0.450684f, -0.154297f, 0.453125f, -0.168945f, 0.46875f, -0.256836f, 0.515869f,
+-0.30249f, 0.562988f, -0.348145f, 0.644531f, -0.348145f, 0.709961f, -0.348145f, 0.74292f,
+-0.316406f, 0.775879f, -0.284668f, 0.775879f, -0.221191f, 0.775879f, -0.209473f,
+0.774658f, -0.196289f, 0.773438f, -0.183105f, 0.770996f, -0.168945f, 0.695312f, -0.168945f,
+0.69873f, -0.186523f, 0.700195f, -0.201904f, 0.70166f, -0.217285f, 0.70166f, -0.230957f,
+0.70166f, -0.270508f, 0.686279f, -0.29126f, 0.670898f, -0.312012f, 0.635254f, -0.312012f,
+0.611328f, -0.312012f, 0.593994f, -0.30249f, 0.57666f, -0.292969f, 0.564209f, -0.274658f,
+0.551758f, -0.256348f, 0.543457f, -0.229736f, 0.535156f, -0.203125f, 0.529297f, -0.168945f,
+0.525879f, -0.148926f, 0.523926f, -0.131836f, 0.521973f, -0.114746f, 0.521973f, -0.100098f,
+0.521973f, -0.0629883f, 0.536133f, -0.0429688f, 0.550293f, -0.0229492f, 0.584473f,
+-0.0229492f, 0.608398f, -0.0229492f, 0.626465f, -0.032959f, 0.644531f, -0.0429688f,
+0.657715f, -0.0615234f, 0.670898f, -0.0800781f, 0.680176f, -0.107178f, 0.689453f,
+-0.134277f, 0.695312f, -0.168945f, 0.546875f, -0.538086f, 0.546875f, -0.5f, 0.529785f,
+-0.473633f, 0.512695f, -0.447266f, 0.485352f, -0.428467f, 0.458008f, -0.409668f,
+0.423584f, -0.395996f, 0.38916f, -0.382324f, 0.35498f, -0.370117f, 0.522949f, -0.173828f,
+0.558105f, -0.221191f, 0.580811f, -0.265869f, 0.603516f, -0.310547f, 0.613281f, -0.35498f,
+0.546387f, -0.368164f, 0.550781f, -0.394043f, 0.773926f, -0.394043f, 0.769531f, -0.368164f,
+0.699219f, -0.35498f, 0.689453f, -0.333008f, 0.675781f, -0.305664f, 0.662109f, -0.27832f,
+0.644043f, -0.248779f, 0.625977f, -0.219238f, 0.604248f, -0.189453f, 0.58252f, -0.159668f,
+0.557617f, -0.132812f, 0.639648f, -0.0380859f, 0.71875f, -0.0263672f, 0.713867f,
+0, 0.545898f, 0, 0.490723f, -0.0668945f, 0.469727f, -0.0512695f, 0.447266f, -0.0375977f,
+0.424805f, -0.0239258f, 0.398193f, -0.0131836f, 0.371582f, -0.00244141f, 0.3396f,
+0.00366211f, 0.307617f, 0.00976562f, 0.267578f, 0.00976562f, 0.208984f, 0.00976562f,
+0.166504f, -0.00317383f, 0.124023f, -0.0161133f, 0.0964355f, -0.0393066f, 0.0688477f,
+-0.0625f, 0.0556641f, -0.0947266f, 0.0424805f, -0.126953f, 0.0424805f, -0.166016f,
+0.0424805f, -0.197754f, 0.0512695f, -0.223145f, 0.0600586f, -0.248535f, 0.0751953f,
+-0.268799f, 0.090332f, -0.289062f, 0.110107f, -0.304443f, 0.129883f, -0.319824f,
+0.151611f, -0.331787f, 0.17334f, -0.34375f, 0.195801f, -0.352783f, 0.218262f, -0.361816f,
+0.23877f, -0.369141f, 0.229492f, -0.382324f, 0.219971f, -0.397217f, 0.210449f, -0.412109f,
+0.202881f, -0.429199f, 0.195312f, -0.446289f, 0.190674f, -0.465332f, 0.186035f, -0.484375f,
+0.186035f, -0.506348f, 0.186035f, -0.541992f, 0.198975f, -0.571289f, 0.211914f, -0.600586f,
+0.236084f, -0.621582f, 0.260254f, -0.642578f, 0.29541f, -0.653809f, 0.330566f, -0.665039f,
+0.375f, -0.665039f, 0.421387f, -0.665039f, 0.454102f, -0.654053f, 0.486816f, -0.643066f,
+0.507324f, -0.625f, 0.527832f, -0.606934f, 0.537354f, -0.584229f, 0.546875f, -0.561523f,
+0.546875f, -0.538086f, 0.262695f, -0.335449f, 0.240723f, -0.326172f, 0.21875f, -0.312988f,
+0.196777f, -0.299805f, 0.178955f, -0.280029f, 0.161133f, -0.260254f, 0.150146f, -0.232666f,
+0.13916f, -0.205078f, 0.13916f, -0.16748f, 0.13916f, -0.136719f, 0.148193f, -0.111816f,
+0.157227f, -0.0869141f, 0.174805f, -0.0690918f, 0.192383f, -0.0512695f, 0.218262f,
+-0.041748f, 0.244141f, -0.0322266f, 0.277344f, -0.0322266f, 0.303711f, -0.0322266f,
+0.328857f, -0.0378418f, 0.354004f, -0.043457f, 0.376709f, -0.0534668f, 0.399414f,
+-0.0634766f, 0.419678f, -0.0771484f, 0.439941f, -0.0908203f, 0.457031f, -0.106934f,
+0.273926f, -0.522949f, 0.273926f, -0.492188f, 0.288818f, -0.463135f, 0.303711f, -0.434082f,
+0.328613f, -0.401855f, 0.357422f, -0.412598f, 0.382568f, -0.423584f, 0.407715f, -0.43457f,
+0.426025f, -0.449219f, 0.444336f, -0.463867f, 0.454834f, -0.483887f, 0.465332f, -0.503906f,
+0.465332f, -0.532227f, 0.465332f, -0.577148f, 0.440918f, -0.601562f, 0.416504f, -0.625977f,
+0.375f, -0.625977f, 0.32373f, -0.625977f, 0.298828f, -0.598145f, 0.273926f, -0.570312f,
+0.273926f, -0.522949f, 0.131348f, -0.654785f, 0.227539f, -0.654785f, 0.155762f, -0.419922f,
+0.119629f, -0.419922f, 0.122559f, -0.0639648f, 0.122559f, -0.0273438f, 0.12793f,
+0.00634766f, 0.133301f, 0.0400391f, 0.145996f, 0.0700684f, 0.158691f, 0.100098f,
+0.179688f, 0.125977f, 0.200684f, 0.151855f, 0.231934f, 0.171875f, 0.224609f, 0.212891f,
+0.177734f, 0.185547f, 0.142334f, 0.154297f, 0.106934f, 0.123047f, 0.083252f, 0.0849609f,
+0.0595703f, 0.046875f, 0.0473633f, 0.000488281f, 0.0351562f, -0.0458984f, 0.0351562f,
+-0.104004f, 0.0351562f, -0.13623f, 0.0380859f, -0.169678f, 0.0410156f, -0.203125f,
+0.0478516f, -0.241211f, 0.0639648f, -0.333496f, 0.0917969f, -0.402588f, 0.119629f,
+-0.47168f, 0.160889f, -0.524902f, 0.202148f, -0.578125f, 0.257568f, -0.618652f, 0.312988f,
+-0.65918f, 0.384277f, -0.693848f, 0.376953f, -0.652832f, 0.316406f, -0.621094f, 0.276123f,
+-0.575928f, 0.23584f, -0.530762f, 0.209717f, -0.476807f, 0.183594f, -0.422852f, 0.168213f,
+-0.362793f, 0.152832f, -0.302734f, 0.14209f, -0.241211f, 0.133789f, -0.195312f, 0.128174f,
+-0.150879f, 0.122559f, -0.106445f, 0.122559f, -0.0639648f, -0.0473633f, 0.212891f,
+-0.0400391f, 0.171875f, 0.0205078f, 0.140137f, 0.0605469f, 0.0947266f, 0.100586f,
+0.0493164f, 0.126709f, -0.00463867f, 0.152832f, -0.0585938f, 0.168213f, -0.118896f,
+0.183594f, -0.179199f, 0.194824f, -0.241211f, 0.203125f, -0.286621f, 0.208496f, -0.330811f,
+0.213867f, -0.375f, 0.213867f, -0.416992f, 0.213867f, -0.453613f, 0.208496f, -0.487305f,
+0.203125f, -0.520996f, 0.190674f, -0.551025f, 0.178223f, -0.581055f, 0.156982f, -0.606934f,
+0.135742f, -0.632812f, 0.104492f, -0.652832f, 0.111816f, -0.693848f, 0.158691f, -0.666016f,
+0.194336f, -0.63501f, 0.22998f, -0.604004f, 0.253906f, -0.566162f, 0.277832f, -0.52832f,
+0.290039f, -0.481934f, 0.302246f, -0.435547f, 0.302246f, -0.376953f, 0.302246f, -0.317383f,
+0.289062f, -0.241211f, 0.272949f, -0.148926f, 0.244873f, -0.0795898f, 0.216797f,
+-0.0102539f, 0.175537f, 0.0432129f, 0.134277f, 0.0966797f, 0.0788574f, 0.137451f,
+0.0234375f, 0.178223f, -0.0473633f, 0.212891f, 0.0961914f, -0.52002f, 0.127441f,
+-0.589844f, 0.28125f, -0.495117f, 0.260254f, -0.654785f, 0.336426f, -0.654785f, 0.313477f,
+-0.495117f, 0.468262f, -0.587891f, 0.499512f, -0.519043f, 0.337402f, -0.471191f,
+0.499512f, -0.423828f, 0.468262f, -0.35498f, 0.313477f, -0.446777f, 0.336426f, -0.288086f,
+0.260254f, -0.288086f, 0.28125f, -0.448242f, 0.127441f, -0.353027f, 0.0961914f, -0.422852f,
+0.256348f, -0.471191f, 0.371094f, -0.307129f, 0.371094f, -0.0991211f, 0.320801f,
+-0.0991211f, 0.320801f, -0.307129f, 0.11377f, -0.307129f, 0.11377f, -0.356934f, 0.320801f,
+-0.356934f, 0.320801f, -0.564941f, 0.371094f, -0.564941f, 0.371094f, -0.356934f,
+0.579102f, -0.356934f, 0.579102f, -0.307129f, 0.187012f, -0.0205078f, 0.187012f,
+0.00830078f, 0.178223f, 0.034668f, 0.169434f, 0.0610352f, 0.150635f, 0.0834961f,
+0.131836f, 0.105957f, 0.102783f, 0.124023f, 0.0737305f, 0.14209f, 0.0332031f, 0.153809f,
+0.0332031f, 0.116211f, 0.0776367f, 0.102051f, 0.10083f, 0.081543f, 0.124023f, 0.0610352f,
+0.124023f, 0.0341797f, 0.124023f, 0.0205078f, 0.114502f, 0.0136719f, 0.10498f, 0.00683594f,
+0.0935059f, -0.000244141f, 0.0820312f, -0.00732422f, 0.0725098f, -0.0178223f, 0.0629883f,
+-0.0283203f, 0.0629883f, -0.0488281f, 0.0629883f, -0.0751953f, 0.0795898f, -0.0891113f,
+0.0961914f, -0.103027f, 0.12207f, -0.103027f, 0.135742f, -0.103027f, 0.147705f, -0.0979004f,
+0.159668f, -0.0927734f, 0.168457f, -0.0825195f, 0.177246f, -0.0722656f, 0.182129f,
+-0.0566406f, 0.187012f, -0.0410156f, 0.187012f, -0.0205078f, 0.0371094f, -0.198242f,
+0.0371094f, -0.272949f, 0.296875f, -0.272949f, 0.296875f, -0.198242f, 0.159668f,
+-0.0449219f, 0.159668f, -0.0327148f, 0.155029f, -0.0219727f, 0.150391f, -0.0112305f,
+0.142578f, -0.00317383f, 0.134766f, 0.00488281f, 0.123779f, 0.00952148f, 0.112793f,
+0.0141602f, 0.100586f, 0.0141602f, 0.0878906f, 0.0141602f, 0.0771484f, 0.00952148f,
+0.0664062f, 0.00488281f, 0.0585938f, -0.00317383f, 0.0507812f, -0.0112305f, 0.0461426f,
+-0.0219727f, 0.0415039f, -0.0327148f, 0.0415039f, -0.0449219f, 0.0415039f, -0.0571289f,
+0.0461426f, -0.0681152f, 0.0507812f, -0.0791016f, 0.0585938f, -0.0869141f, 0.0664062f,
+-0.0947266f, 0.0771484f, -0.0993652f, 0.0878906f, -0.104004f, 0.100586f, -0.104004f,
+0.112793f, -0.104004f, 0.123779f, -0.0993652f, 0.134766f, -0.0947266f, 0.142578f,
+-0.0869141f, 0.150391f, -0.0791016f, 0.155029f, -0.0681152f, 0.159668f, -0.0571289f,
+0.159668f, -0.0449219f, 0.0078125f, 0.00976562f, -0.0458984f, 0.00976562f, 0.30127f,
+-0.65918f, 0.354004f, -0.65918f, 0.474609f, -0.330078f, 0.459961f, -0.248047f, 0.436768f,
+-0.18457f, 0.413574f, -0.121094f, 0.380371f, -0.0778809f, 0.347168f, -0.034668f,
+0.303467f, -0.0124512f, 0.259766f, 0.00976562f, 0.20459f, 0.00976562f, 0.123535f,
+0.00976562f, 0.0810547f, -0.0407715f, 0.0385742f, -0.0913086f, 0.0385742f, -0.194824f,
+0.0385742f, -0.223633f, 0.0415039f, -0.258545f, 0.0444336f, -0.293457f, 0.0507812f,
+-0.330078f, 0.0654297f, -0.411133f, 0.0888672f, -0.473633f, 0.112305f, -0.536133f,
+0.145508f, -0.578613f, 0.178711f, -0.621094f, 0.22168f, -0.643066f, 0.264648f, -0.665039f,
+0.318359f, -0.665039f, 0.399414f, -0.665039f, 0.443359f, -0.616211f, 0.487305f, -0.567383f,
+0.487305f, -0.464355f, 0.487305f, -0.436035f, 0.484131f, -0.400635f, 0.480957f, -0.365234f,
+0.474609f, -0.330078f, 0.385742f, -0.319336f, 0.389648f, -0.342773f, 0.392822f, -0.365967f,
+0.395996f, -0.38916f, 0.397949f, -0.410645f, 0.399902f, -0.432129f, 0.400879f, -0.450928f,
+0.401855f, -0.469727f, 0.401855f, -0.484375f, 0.401855f, -0.517578f, 0.396484f, -0.543945f,
+0.391113f, -0.570312f, 0.379639f, -0.588623f, 0.368164f, -0.606934f, 0.35083f, -0.616455f,
+0.333496f, -0.625977f, 0.30957f, -0.625977f, 0.273438f, -0.625977f, 0.246582f, -0.606201f,
+0.219727f, -0.586426f, 0.199219f, -0.548828f, 0.178711f, -0.51123f, 0.16333f, -0.456055f,
+0.147949f, -0.400879f, 0.135742f, -0.330566f, 0.126953f, -0.280273f, 0.124268f, -0.241699f,
+0.121582f, -0.203125f, 0.121582f, -0.168457f, 0.121582f, -0.137207f, 0.126709f, -0.111328f,
+0.131836f, -0.0854492f, 0.142822f, -0.0671387f, 0.153809f, -0.0488281f, 0.17041f,
+-0.0388184f, 0.187012f, -0.0288086f, 0.210449f, -0.0288086f, 0.246094f, -0.0288086f,
+0.273438f, -0.0478516f, 0.300781f, -0.0668945f, 0.321533f, -0.10376f, 0.342285f,
+-0.140625f, 0.357666f, -0.194824f, 0.373047f, -0.249023f, 0.385742f, -0.319336f,
+0.260742f, -0.0390625f, 0.392578f, -0.0258789f, 0.387695f, 0, 0.0356445f, 0, 0.0405273f,
+-0.0258789f, 0.176758f, -0.0390625f, 0.270996f, -0.573242f, 0.130371f, -0.525879f,
+0.135254f, -0.551758f, 0.345215f, -0.660156f, 0.370605f, -0.660156f, 0.400879f, 0,
+0.000488281f, 0, 0.0131836f, -0.0717773f, 0.0673828f, -0.112305f, 0.116699f, -0.147217f,
+0.166016f, -0.182129f, 0.208252f, -0.215088f, 0.250488f, -0.248047f, 0.284668f, -0.281006f,
+0.318848f, -0.313965f, 0.343018f, -0.350586f, 0.367188f, -0.387207f, 0.380371f, -0.428711f,
+0.393555f, -0.470215f, 0.393555f, -0.520996f, 0.393555f, -0.573242f, 0.365234f, -0.597168f,
+0.336914f, -0.621094f, 0.282227f, -0.621094f, 0.267578f, -0.621094f, 0.252686f, -0.618896f,
+0.237793f, -0.616699f, 0.223877f, -0.613037f, 0.209961f, -0.609375f, 0.197754f, -0.604736f,
+0.185547f, -0.600098f, 0.17627f, -0.595215f, 0.14502f, -0.515137f, 0.112793f, -0.515137f,
+0.134766f, -0.641113f, 0.173828f, -0.649902f, 0.210693f, -0.656006f, 0.247559f, -0.662109f,
+0.289551f, -0.662109f, 0.336914f, -0.662109f, 0.372314f, -0.6521f, 0.407715f, -0.64209f,
+0.431152f, -0.623535f, 0.45459f, -0.60498f, 0.466309f, -0.579102f, 0.478027f, -0.553223f,
+0.478027f, -0.520996f, 0.478027f, -0.474121f, 0.463379f, -0.433838f, 0.44873f, -0.393555f,
+0.422607f, -0.356934f, 0.396484f, -0.320312f, 0.359863f, -0.286377f, 0.323242f, -0.252441f,
+0.279053f, -0.218506f, 0.234863f, -0.18457f, 0.18457f, -0.149414f, 0.134277f, -0.114258f,
+0.0810547f, -0.0751953f, 0.414062f, -0.0751953f, 0.174316f, 0.00976562f, 0.150391f,
+0.00976562f, 0.125732f, 0.00732422f, 0.101074f, 0.00488281f, 0.0778809f, 0.000732422f,
+0.0546875f, -0.00341797f, 0.0344238f, -0.00878906f, 0.0141602f, -0.0141602f, -0.00146484f,
+-0.0200195f, 0.0166016f, -0.157715f, 0.0488281f, -0.157715f, 0.0546875f, -0.065918f,
+0.0634766f, -0.059082f, 0.0776367f, -0.0529785f, 0.0917969f, -0.046875f, 0.108398f,
+-0.041748f, 0.125f, -0.0366211f, 0.142334f, -0.0336914f, 0.159668f, -0.0307617f,
+0.174316f, -0.0307617f, 0.22168f, -0.0307617f, 0.254883f, -0.0407715f, 0.288086f,
+-0.0507812f, 0.309082f, -0.0705566f, 0.330078f, -0.090332f, 0.339844f, -0.120117f,
+0.349609f, -0.149902f, 0.349609f, -0.189941f, 0.349609f, -0.250488f, 0.316162f, -0.281738f,
+0.282715f, -0.312988f, 0.218262f, -0.317871f, 0.162109f, -0.321777f, 0.168945f, -0.361816f,
+0.239746f, -0.366211f, 0.277344f, -0.368652f, 0.303223f, -0.379883f, 0.329102f, -0.391113f,
+0.344971f, -0.410156f, 0.36084f, -0.429199f, 0.367676f, -0.455322f, 0.374512f, -0.481445f,
+0.374512f, -0.513184f, 0.374512f, -0.566895f, 0.349121f, -0.593994f, 0.32373f, -0.621094f,
+0.269531f, -0.621094f, 0.254883f, -0.621094f, 0.240234f, -0.618896f, 0.225586f, -0.616699f,
+0.211914f, -0.613037f, 0.198242f, -0.609375f, 0.186035f, -0.604736f, 0.173828f, -0.600098f,
+0.164551f, -0.595215f, 0.133301f, -0.515137f, 0.101074f, -0.515137f, 0.123047f, -0.641113f,
+0.139648f, -0.645508f, 0.156006f, -0.649414f, 0.172363f, -0.65332f, 0.190186f, -0.65625f,
+0.208008f, -0.65918f, 0.228271f, -0.660645f, 0.248535f, -0.662109f, 0.272949f, -0.662109f,
+0.319336f, -0.662109f, 0.355225f, -0.6521f, 0.391113f, -0.64209f, 0.415527f, -0.623779f,
+0.439941f, -0.605469f, 0.452637f, -0.579102f, 0.465332f, -0.552734f, 0.465332f, -0.52002f,
+0.465332f, -0.447266f, 0.422607f, -0.401367f, 0.379883f, -0.355469f, 0.290527f, -0.342773f,
+0.324219f, -0.337891f, 0.351562f, -0.326172f, 0.378906f, -0.314453f, 0.398193f, -0.296143f,
+0.41748f, -0.277832f, 0.427734f, -0.253418f, 0.437988f, -0.229004f, 0.437988f, -0.199219f,
+0.437988f, -0.147461f, 0.417725f, -0.108398f, 0.397461f, -0.0693359f, 0.361816f,
+-0.0429688f, 0.326172f, -0.0166016f, 0.278076f, -0.00341797f, 0.22998f, 0.00976562f,
+0.174316f, 0.00976562f, 0.368164f, -0.150391f, 0.341309f, 0, 0.262207f, 0, 0.289062f,
+-0.150391f, 0.00244141f, -0.150391f, 0.012207f, -0.208984f, 0.378906f, -0.658203f,
+0.457031f, -0.658203f, 0.378906f, -0.213867f, 0.477539f, -0.213867f, 0.466797f, -0.150391f,
+0.346191f, -0.478027f, 0.348633f, -0.490723f, 0.352051f, -0.507324f, 0.355469f, -0.523926f,
+0.358887f, -0.539551f, 0.362793f, -0.557617f, 0.367188f, -0.576172f, 0.0727539f,
+-0.213867f, 0.299805f, -0.213867f, 0.239258f, -0.382812f, 0.291016f, -0.382812f,
+0.329102f, -0.371826f, 0.367188f, -0.36084f, 0.392334f, -0.339844f, 0.41748f, -0.318848f,
+0.429932f, -0.289062f, 0.442383f, -0.259277f, 0.442383f, -0.22168f, 0.442383f, -0.166504f,
+0.425049f, -0.123535f, 0.407715f, -0.0805664f, 0.373779f, -0.0507812f, 0.339844f,
+-0.0209961f, 0.289795f, -0.00561523f, 0.239746f, 0.00976562f, 0.173828f, 0.00976562f,
+0.125488f, 0.00976562f, 0.0859375f, 0.00366211f, 0.0463867f, -0.00244141f, 0.015625f,
+-0.0112305f, 0.0341797f, -0.148926f, 0.0664062f, -0.148926f, 0.0722656f, -0.0571289f,
+0.0800781f, -0.0522461f, 0.0925293f, -0.0473633f, 0.10498f, -0.0424805f, 0.119629f,
+-0.0388184f, 0.134277f, -0.0351562f, 0.150146f, -0.032959f, 0.166016f, -0.0307617f,
+0.180664f, -0.0307617f, 0.229004f, -0.0307617f, 0.261963f, -0.0444336f, 0.294922f,
+-0.0581055f, 0.315186f, -0.0825195f, 0.335449f, -0.106934f, 0.344238f, -0.141357f,
+0.353027f, -0.175781f, 0.353027f, -0.217285f, 0.353027f, -0.242676f, 0.347168f, -0.265381f,
+0.341309f, -0.288086f, 0.32666f, -0.305176f, 0.312012f, -0.322266f, 0.287598f, -0.332031f,
+0.263184f, -0.341797f, 0.226074f, -0.341797f, 0.197266f, -0.341797f, 0.170166f, -0.337891f,
+0.143066f, -0.333984f, 0.12793f, -0.330078f, 0.0810547f, -0.330078f, 0.138184f, -0.654785f,
+0.470215f, -0.654785f, 0.457031f, -0.580078f, 0.168945f, -0.580078f, 0.132324f, -0.371094f,
+0.141602f, -0.373047f, 0.151611f, -0.375f, 0.161621f, -0.376953f, 0.174072f, -0.378662f,
+0.186523f, -0.380371f, 0.202148f, -0.381592f, 0.217773f, -0.382812f, 0.239258f, -0.382812f,
+0.23291f, 0.00976562f, 0.187988f, 0.00976562f, 0.152344f, -0.00537109f, 0.116699f,
+-0.0205078f, 0.0917969f, -0.0498047f, 0.0668945f, -0.0791016f, 0.0537109f, -0.121338f,
+0.0405273f, -0.163574f, 0.0405273f, -0.217773f, 0.0405273f, -0.281738f, 0.0515137f,
+-0.3396f, 0.0625f, -0.397461f, 0.0822754f, -0.446777f, 0.102051f, -0.496094f, 0.130371f,
+-0.535889f, 0.158691f, -0.575684f, 0.193359f, -0.60376f, 0.228027f, -0.631836f, 0.268555f,
+-0.646973f, 0.309082f, -0.662109f, 0.353027f, -0.662109f, 0.392578f, -0.662109f,
+0.428955f, -0.654297f, 0.465332f, -0.646484f, 0.495117f, -0.63623f, 0.475098f, -0.523438f,
+0.442871f, -0.523438f, 0.4375f, -0.591797f, 0.417969f, -0.60498f, 0.395508f, -0.613037f,
+0.373047f, -0.621094f, 0.349609f, -0.621094f, 0.307617f, -0.621094f, 0.273193f, -0.599365f,
+0.23877f, -0.577637f, 0.212402f, -0.540039f, 0.186035f, -0.502441f, 0.167725f, -0.452148f,
+0.149414f, -0.401855f, 0.13916f, -0.344727f, 0.15332f, -0.353027f, 0.171143f, -0.361328f,
+0.188965f, -0.369629f, 0.209229f, -0.376465f, 0.229492f, -0.383301f, 0.251221f, -0.387695f,
+0.272949f, -0.39209f, 0.294922f, -0.39209f, 0.334961f, -0.39209f, 0.366211f, -0.381836f,
+0.397461f, -0.371582f, 0.418945f, -0.352295f, 0.44043f, -0.333008f, 0.45166f, -0.30542f,
+0.462891f, -0.277832f, 0.462891f, -0.243652f, 0.462891f, -0.192871f, 0.448975f, -0.146973f,
+0.435059f, -0.101074f, 0.406494f, -0.0664062f, 0.37793f, -0.0317383f, 0.334717f,
+-0.0109863f, 0.291504f, 0.00976562f, 0.23291f, 0.00976562f, 0.126953f, -0.200684f,
+0.126953f, -0.154297f, 0.135254f, -0.121582f, 0.143555f, -0.0888672f, 0.157715f,
+-0.0683594f, 0.171875f, -0.0478516f, 0.191406f, -0.0383301f, 0.210938f, -0.0288086f,
+0.233887f, -0.0288086f, 0.27002f, -0.0288086f, 0.296143f, -0.045166f, 0.322266f,
+-0.0615234f, 0.339111f, -0.0900879f, 0.355957f, -0.118652f, 0.364014f, -0.156738f,
+0.37207f, -0.194824f, 0.37207f, -0.23877f, 0.37207f, -0.291992f, 0.348389f, -0.318604f,
+0.324707f, -0.345215f, 0.274414f, -0.345215f, 0.258301f, -0.345215f, 0.240723f, -0.342773f,
+0.223145f, -0.340332f, 0.205078f, -0.336182f, 0.187012f, -0.332031f, 0.168945f, -0.326416f,
+0.150879f, -0.320801f, 0.134766f, -0.314941f, 0.130859f, -0.287109f, 0.128906f, -0.258545f,
+0.126953f, -0.22998f, 0.126953f, -0.200684f, 0.133789f, -0.5f, 0.101562f, -0.5f,
+0.128906f, -0.654785f, 0.53418f, -0.654785f, 0.527344f, -0.617188f, 0.126465f, 0,
+0.0585938f, 0, 0.447754f, -0.580078f, 0.165039f, -0.580078f, 0.48877f, -0.533203f,
+0.48877f, -0.494141f, 0.478516f, -0.463135f, 0.468262f, -0.432129f, 0.450928f, -0.408691f,
+0.433594f, -0.385254f, 0.410889f, -0.369873f, 0.388184f, -0.354492f, 0.362793f, -0.347168f,
+0.404785f, -0.33252f, 0.428711f, -0.298584f, 0.452637f, -0.264648f, 0.452637f, -0.214844f,
+0.452637f, -0.160645f, 0.437988f, -0.118652f, 0.42334f, -0.0766602f, 0.393311f, -0.0480957f,
+0.363281f, -0.0195312f, 0.317139f, -0.00488281f, 0.270996f, 0.00976562f, 0.208008f,
+0.00976562f, 0.112793f, 0.00976562f, 0.0668945f, -0.0300293f, 0.0209961f, -0.0698242f,
+0.0209961f, -0.143066f, 0.0209961f, -0.225586f, 0.0600586f, -0.275635f, 0.0991211f,
+-0.325684f, 0.171387f, -0.347168f, 0.140137f, -0.36084f, 0.119385f, -0.389893f, 0.0986328f,
+-0.418945f, 0.0986328f, -0.463379f, 0.0986328f, -0.510254f, 0.111816f, -0.547852f,
+0.125f, -0.585449f, 0.152344f, -0.611328f, 0.179688f, -0.637207f, 0.221436f, -0.651123f,
+0.263184f, -0.665039f, 0.319824f, -0.665039f, 0.40625f, -0.665039f, 0.44751f, -0.630859f,
+0.48877f, -0.59668f, 0.48877f, -0.533203f, 0.213867f, -0.0288086f, 0.259277f, -0.0288086f,
+0.288818f, -0.0427246f, 0.318359f, -0.0566406f, 0.335693f, -0.081543f, 0.353027f,
+-0.106445f, 0.359619f, -0.141357f, 0.366211f, -0.17627f, 0.366211f, -0.218262f, 0.366211f,
+-0.241699f, 0.360596f, -0.26123f, 0.35498f, -0.280762f, 0.342285f, -0.295166f, 0.32959f,
+-0.30957f, 0.30957f, -0.317383f, 0.289551f, -0.325195f, 0.260742f, -0.325195f, 0.218262f,
+-0.325195f, 0.188965f, -0.312012f, 0.159668f, -0.298828f, 0.141602f, -0.274658f,
+0.123535f, -0.250488f, 0.115479f, -0.216553f, 0.107422f, -0.182617f, 0.107422f, -0.141113f,
+0.107422f, -0.115234f, 0.113525f, -0.0944824f, 0.119629f, -0.0737305f, 0.132568f,
+-0.059082f, 0.145508f, -0.0444336f, 0.165771f, -0.0366211f, 0.186035f, -0.0288086f,
+0.213867f, -0.0288086f, 0.269043f, -0.368164f, 0.307617f, -0.368164f, 0.333008f,
+-0.38208f, 0.358398f, -0.395996f, 0.373779f, -0.418945f, 0.38916f, -0.441895f, 0.395508f,
+-0.47168f, 0.401855f, -0.501465f, 0.401855f, -0.533203f, 0.401855f, -0.554688f, 0.397217f,
+-0.572021f, 0.392578f, -0.589355f, 0.382324f, -0.601318f, 0.37207f, -0.613281f, 0.355225f,
+-0.619629f, 0.338379f, -0.625977f, 0.314453f, -0.625977f, 0.275879f, -0.625977f,
+0.250732f, -0.613037f, 0.225586f, -0.600098f, 0.210938f, -0.577881f, 0.196289f, -0.555664f,
+0.19043f, -0.525635f, 0.18457f, -0.495605f, 0.18457f, -0.461426f, 0.18457f, -0.441895f,
+0.188965f, -0.425049f, 0.193359f, -0.408203f, 0.203125f, -0.395508f, 0.212891f, -0.382812f,
+0.229248f, -0.375488f, 0.245605f, -0.368164f, 0.269043f, -0.368164f, 0.291504f, -0.662109f,
+0.336426f, -0.662109f, 0.37207f, -0.647705f, 0.407715f, -0.633301f, 0.432617f, -0.604736f,
+0.45752f, -0.576172f, 0.470703f, -0.533447f, 0.483887f, -0.490723f, 0.483887f, -0.43457f,
+0.483887f, -0.37207f, 0.473633f, -0.315186f, 0.463379f, -0.258301f, 0.444092f, -0.20874f,
+0.424805f, -0.15918f, 0.397949f, -0.118896f, 0.371094f, -0.0786133f, 0.337646f, -0.0500488f,
+0.304199f, -0.0214844f, 0.265381f, -0.00585938f, 0.226562f, 0.00976562f, 0.183594f,
+0.00976562f, 0.138184f, 0.00976562f, 0.0996094f, 0.00292969f, 0.0610352f, -0.00390625f,
+0.0292969f, -0.0166016f, 0.0483398f, -0.124512f, 0.0805664f, -0.124512f, 0.0859375f,
+-0.0561523f, 0.102539f, -0.0463867f, 0.128174f, -0.0388184f, 0.153809f, -0.03125f,
+0.181641f, -0.03125f, 0.224609f, -0.03125f, 0.258789f, -0.0529785f, 0.292969f, -0.074707f,
+0.318115f, -0.112549f, 0.343262f, -0.150391f, 0.360352f, -0.200684f, 0.377441f, -0.250977f,
+0.38623f, -0.308105f, 0.37207f, -0.299805f, 0.354248f, -0.29126f, 0.336426f, -0.282715f,
+0.315918f, -0.275879f, 0.29541f, -0.269043f, 0.273438f, -0.264648f, 0.251465f, -0.260254f,
+0.229492f, -0.260254f, 0.189453f, -0.260254f, 0.158203f, -0.271973f, 0.126953f, -0.283691f,
+0.105469f, -0.305176f, 0.0839844f, -0.32666f, 0.0727539f, -0.357178f, 0.0615234f,
+-0.387695f, 0.0615234f, -0.425293f, 0.0615234f, -0.475586f, 0.0761719f, -0.519043f,
+0.0908203f, -0.5625f, 0.119629f, -0.594238f, 0.148438f, -0.625977f, 0.19165f, -0.644043f,
+0.234863f, -0.662109f, 0.291504f, -0.662109f, 0.397461f, -0.45166f, 0.397461f, -0.498047f,
+0.38916f, -0.530762f, 0.380859f, -0.563477f, 0.366699f, -0.583984f, 0.352539f, -0.604492f,
+0.332764f, -0.614014f, 0.312988f, -0.623535f, 0.290527f, -0.623535f, 0.254395f, -0.623535f,
+0.228271f, -0.608643f, 0.202148f, -0.59375f, 0.185303f, -0.567383f, 0.168457f, -0.541016f,
+0.1604f, -0.505127f, 0.152344f, -0.469238f, 0.152344f, -0.427734f, 0.152344f, -0.366211f,
+0.179443f, -0.33667f, 0.206543f, -0.307129f, 0.254395f, -0.307129f, 0.29248f, -0.307129f,
+0.326172f, -0.31543f, 0.359863f, -0.32373f, 0.390625f, -0.336914f, 0.394043f, -0.364746f,
+0.395752f, -0.393555f, 0.397461f, -0.422363f, 0.397461f, -0.45166f, 0.185059f, -0.0449219f,
+0.185059f, -0.0327148f, 0.18042f, -0.0219727f, 0.175781f, -0.0112305f, 0.167969f,
+-0.00317383f, 0.160156f, 0.00488281f, 0.14917f, 0.00952148f, 0.138184f, 0.0141602f,
+0.125977f, 0.0141602f, 0.113281f, 0.0141602f, 0.102539f, 0.00952148f, 0.0917969f,
+0.00488281f, 0.0839844f, -0.00317383f, 0.0761719f, -0.0112305f, 0.0715332f, -0.0219727f,
+0.0668945f, -0.0327148f, 0.0668945f, -0.0449219f, 0.0668945f, -0.0571289f, 0.0715332f,
+-0.0681152f, 0.0761719f, -0.0791016f, 0.0839844f, -0.0869141f, 0.0917969f, -0.0947266f,
+0.102539f, -0.0993652f, 0.113281f, -0.104004f, 0.125977f, -0.104004f, 0.138184f,
+-0.104004f, 0.14917f, -0.0993652f, 0.160156f, -0.0947266f, 0.167969f, -0.0869141f,
+0.175781f, -0.0791016f, 0.18042f, -0.0681152f, 0.185059f, -0.0571289f, 0.185059f,
+-0.0449219f, 0.253906f, -0.409668f, 0.253906f, -0.397461f, 0.249268f, -0.386719f,
+0.244629f, -0.375977f, 0.236816f, -0.36792f, 0.229004f, -0.359863f, 0.218018f, -0.355225f,
+0.207031f, -0.350586f, 0.194824f, -0.350586f, 0.182129f, -0.350586f, 0.171387f, -0.355225f,
+0.160645f, -0.359863f, 0.152832f, -0.36792f, 0.14502f, -0.375977f, 0.140381f, -0.386719f,
+0.135742f, -0.397461f, 0.135742f, -0.409668f, 0.135742f, -0.421875f, 0.140381f, -0.432861f,
+0.14502f, -0.443848f, 0.152832f, -0.45166f, 0.160645f, -0.459473f, 0.171387f, -0.464111f,
+0.182129f, -0.46875f, 0.194824f, -0.46875f, 0.207031f, -0.46875f, 0.218018f, -0.464111f,
+0.229004f, -0.459473f, 0.236816f, -0.45166f, 0.244629f, -0.443848f, 0.249268f, -0.432861f,
+0.253906f, -0.421875f, 0.253906f, -0.409668f, 0.266602f, -0.409668f, 0.266602f, -0.397461f,
+0.261963f, -0.386719f, 0.257324f, -0.375977f, 0.249512f, -0.36792f, 0.241699f, -0.359863f,
+0.230713f, -0.355225f, 0.219727f, -0.350586f, 0.20752f, -0.350586f, 0.194824f, -0.350586f,
+0.184082f, -0.355225f, 0.17334f, -0.359863f, 0.165527f, -0.36792f, 0.157715f, -0.375977f,
+0.153076f, -0.386719f, 0.148438f, -0.397461f, 0.148438f, -0.409668f, 0.148438f, -0.421875f,
+0.153076f, -0.432861f, 0.157715f, -0.443848f, 0.165527f, -0.45166f, 0.17334f, -0.459473f,
+0.184082f, -0.464111f, 0.194824f, -0.46875f, 0.20752f, -0.46875f, 0.219727f, -0.46875f,
+0.230713f, -0.464111f, 0.241699f, -0.459473f, 0.249512f, -0.45166f, 0.257324f, -0.443848f,
+0.261963f, -0.432861f, 0.266602f, -0.421875f, 0.266602f, -0.409668f, 0.200195f, -0.0205078f,
+0.200195f, 0.00830078f, 0.191406f, 0.034668f, 0.182617f, 0.0610352f, 0.163818f, 0.0834961f,
+0.14502f, 0.105957f, 0.115967f, 0.124023f, 0.0869141f, 0.14209f, 0.0463867f, 0.153809f,
+0.0463867f, 0.116211f, 0.0908203f, 0.102051f, 0.114014f, 0.081543f, 0.137207f, 0.0610352f,
+0.137207f, 0.0341797f, 0.137207f, 0.0205078f, 0.127686f, 0.0136719f, 0.118164f, 0.00683594f,
+0.106689f, -0.000244141f, 0.0952148f, -0.00732422f, 0.0856934f, -0.0178223f, 0.0761719f,
+-0.0283203f, 0.0761719f, -0.0488281f, 0.0761719f, -0.0751953f, 0.0927734f, -0.0891113f,
+0.109375f, -0.103027f, 0.135254f, -0.103027f, 0.148926f, -0.103027f, 0.160889f, -0.0979004f,
+0.172852f, -0.0927734f, 0.181641f, -0.0825195f, 0.19043f, -0.0722656f, 0.195312f,
+-0.0566406f, 0.200195f, -0.0410156f, 0.200195f, -0.0205078f, 0.113281f, -0.319824f,
+0.113281f, -0.344238f, 0.578613f, -0.573242f, 0.578613f, -0.522949f, 0.183594f, -0.332031f,
+0.578613f, -0.141113f, 0.578613f, -0.0908203f, 0.579102f, -0.256836f, 0.579102f,
+-0.207031f, 0.11377f, -0.207031f, 0.11377f, -0.256836f, 0.579102f, -0.457031f, 0.579102f,
+-0.407227f, 0.11377f, -0.407227f, 0.11377f, -0.457031f, 0.113281f, -0.0908203f, 0.113281f,
+-0.141113f, 0.508301f, -0.332031f, 0.113281f, -0.522949f, 0.113281f, -0.573242f,
+0.578613f, -0.344238f, 0.578613f, -0.319824f, 0.245117f, -0.170898f, 0.206055f, -0.170898f,
+0.222168f, -0.333984f, 0.294434f, -0.348145f, 0.350586f, -0.358887f, 0.377686f, -0.398438f,
+0.404785f, -0.437988f, 0.404785f, -0.513184f, 0.404785f, -0.538574f, 0.399414f, -0.558594f,
+0.394043f, -0.578613f, 0.382324f, -0.592529f, 0.370605f, -0.606445f, 0.352295f, -0.61377f,
+0.333984f, -0.621094f, 0.307617f, -0.621094f, 0.293457f, -0.621094f, 0.27832f, -0.618408f,
+0.263184f, -0.615723f, 0.248779f, -0.61084f, 0.234375f, -0.605957f, 0.221191f, -0.599609f,
+0.208008f, -0.593262f, 0.19873f, -0.585938f, 0.174316f, -0.505859f, 0.14209f, -0.505859f,
+0.157227f, -0.629883f, 0.191406f, -0.644043f, 0.231445f, -0.653076f, 0.271484f, -0.662109f,
+0.312988f, -0.662109f, 0.403809f, -0.662109f, 0.447754f, -0.625977f, 0.491699f, -0.589844f,
+0.491699f, -0.519043f, 0.491699f, -0.478027f, 0.481201f, -0.443359f, 0.470703f, -0.408691f,
+0.447754f, -0.381348f, 0.424805f, -0.354004f, 0.388916f, -0.334473f, 0.353027f, -0.314941f,
+0.302734f, -0.304199f, 0.273926f, -0.297852f, 0.266113f, -0.0449219f, 0.266113f,
+-0.0327148f, 0.261475f, -0.0219727f, 0.256836f, -0.0112305f, 0.249023f, -0.00317383f,
+0.241211f, 0.00488281f, 0.230469f, 0.00952148f, 0.219727f, 0.0141602f, 0.20752f,
+0.0141602f, 0.194824f, 0.0141602f, 0.184082f, 0.00952148f, 0.17334f, 0.00488281f,
+0.165527f, -0.00317383f, 0.157715f, -0.0112305f, 0.153076f, -0.0219727f, 0.148438f,
+-0.0327148f, 0.148438f, -0.0449219f, 0.148438f, -0.0571289f, 0.153076f, -0.0681152f,
+0.157715f, -0.0791016f, 0.165527f, -0.0869141f, 0.17334f, -0.0947266f, 0.184082f,
+-0.0993652f, 0.194824f, -0.104004f, 0.20752f, -0.104004f, 0.219727f, -0.104004f,
+0.230469f, -0.0993652f, 0.241211f, -0.0947266f, 0.249023f, -0.0869141f, 0.256836f,
+-0.0791016f, 0.261475f, -0.0681152f, 0.266113f, -0.0571289f, 0.266113f, -0.0449219f,
+0.717285f, 0.0898438f, 0.690918f, 0.110352f, 0.661377f, 0.128418f, 0.631836f, 0.146484f,
+0.596436f, 0.160156f, 0.561035f, 0.173828f, 0.519287f, 0.181885f, 0.477539f, 0.189941f,
+0.427246f, 0.189941f, 0.338867f, 0.189941f, 0.270264f, 0.161377f, 0.20166f, 0.132812f,
+0.154541f, 0.0830078f, 0.107422f, 0.0332031f, 0.0830078f, -0.0336914f, 0.0585938f,
+-0.100586f, 0.0585938f, -0.176758f, 0.0585938f, -0.246582f, 0.0744629f, -0.310059f,
+0.090332f, -0.373535f, 0.119873f, -0.427734f, 0.149414f, -0.481934f, 0.19165f, -0.526123f,
+0.233887f, -0.570312f, 0.286133f, -0.601318f, 0.338379f, -0.632324f, 0.399658f, -0.64917f,
+0.460938f, -0.666016f, 0.529297f, -0.666016f, 0.614746f, -0.666016f, 0.679199f, -0.644775f,
+0.743652f, -0.623535f, 0.786865f, -0.584473f, 0.830078f, -0.54541f, 0.851807f, -0.490234f,
+0.873535f, -0.435059f, 0.873535f, -0.367188f, 0.873535f, -0.316895f, 0.859863f, -0.270996f,
+0.846191f, -0.225098f, 0.822266f, -0.185791f, 0.79834f, -0.146484f, 0.765625f, -0.114258f,
+0.73291f, -0.0820312f, 0.694824f, -0.0593262f, 0.656738f, -0.0366211f, 0.614746f,
+-0.0244141f, 0.572754f, -0.012207f, 0.530273f, -0.012207f, 0.524414f, -0.012207f,
+0.518799f, -0.0131836f, 0.513184f, -0.0141602f, 0.508789f, -0.0170898f, 0.504395f,
+-0.0200195f, 0.501465f, -0.0249023f, 0.498535f, -0.0297852f, 0.498535f, -0.0371094f,
+0.498535f, -0.0507812f, 0.499756f, -0.067627f, 0.500977f, -0.0844727f, 0.502441f,
+-0.0981445f, 0.489258f, -0.0849609f, 0.471436f, -0.0698242f, 0.453613f, -0.0546875f,
+0.433105f, -0.0419922f, 0.412598f, -0.0292969f, 0.390137f, -0.020752f, 0.367676f,
+-0.012207f, 0.345215f, -0.012207f, 0.310059f, -0.012207f, 0.290771f, -0.0388184f,
+0.271484f, -0.0654297f, 0.271484f, -0.109863f, 0.271484f, -0.150391f, 0.278809f,
+-0.190186f, 0.286133f, -0.22998f, 0.300293f, -0.266113f, 0.314453f, -0.302246f, 0.335938f,
+-0.333008f, 0.357422f, -0.36377f, 0.385254f, -0.38623f, 0.408691f, -0.404785f, 0.430176f,
+-0.416748f, 0.45166f, -0.428711f, 0.474365f, -0.435303f, 0.49707f, -0.441895f, 0.522461f,
+-0.444336f, 0.547852f, -0.446777f, 0.578613f, -0.446777f, 0.588379f, -0.446777f,
+0.595947f, -0.446777f, 0.603516f, -0.446777f, 0.610352f, -0.446533f, 0.617188f, -0.446289f,
+0.623779f, -0.445557f, 0.630371f, -0.444824f, 0.638184f, -0.443848f, 0.58252f, -0.185059f,
+0.580078f, -0.17334f, 0.577881f, -0.161133f, 0.575684f, -0.148926f, 0.574219f, -0.137695f,
+0.572754f, -0.126465f, 0.572021f, -0.116699f, 0.571289f, -0.106934f, 0.571289f, -0.100098f,
+0.571289f, -0.0942383f, 0.572266f, -0.088623f, 0.573242f, -0.0830078f, 0.576904f,
+-0.0788574f, 0.580566f, -0.074707f, 0.587646f, -0.0722656f, 0.594727f, -0.0698242f,
+0.607422f, -0.0698242f, 0.63916f, -0.0698242f, 0.666992f, -0.0820312f, 0.694824f,
+-0.0942383f, 0.717529f, -0.115479f, 0.740234f, -0.136719f, 0.758057f, -0.165527f,
+0.775879f, -0.194336f, 0.787842f, -0.227295f, 0.799805f, -0.260254f, 0.806152f, -0.295654f,
+0.8125f, -0.331055f, 0.8125f, -0.366211f, 0.8125f, -0.429199f, 0.79248f, -0.477539f,
+0.772461f, -0.525879f, 0.735107f, -0.558838f, 0.697754f, -0.591797f, 0.644775f, -0.608887f,
+0.591797f, -0.625977f, 0.526367f, -0.625977f, 0.463867f, -0.625977f, 0.409912f, -0.609619f,
+0.355957f, -0.593262f, 0.311279f, -0.563965f, 0.266602f, -0.534668f, 0.232178f, -0.493408f,
+0.197754f, -0.452148f, 0.174072f, -0.402588f, 0.150391f, -0.353027f, 0.137939f, -0.296143f,
+0.125488f, -0.239258f, 0.125488f, -0.178223f, 0.125488f, -0.11377f, 0.144531f, -0.0546875f,
+0.163574f, 0.00439453f, 0.202881f, 0.0495605f, 0.242188f, 0.0947266f, 0.301758f,
+0.121826f, 0.361328f, 0.148926f, 0.442383f, 0.148926f, 0.48877f, 0.148926f, 0.526123f,
+0.14209f, 0.563477f, 0.135254f, 0.594238f, 0.123779f, 0.625f, 0.112305f, 0.651123f,
+0.097168f, 0.677246f, 0.0820312f, 0.701172f, 0.0649414f, 0.561523f, -0.394043f, 0.556641f,
+-0.394531f, 0.552246f, -0.39502f, 0.54834f, -0.395508f, 0.544434f, -0.395752f, 0.540527f,
+-0.395996f, 0.537598f, -0.395996f, 0.523438f, -0.395996f, 0.506592f, -0.394531f,
+0.489746f, -0.393066f, 0.472412f, -0.388916f, 0.455078f, -0.384766f, 0.437988f, -0.377441f,
+0.420898f, -0.370117f, 0.407227f, -0.35791f, 0.393066f, -0.345215f, 0.380371f, -0.323975f,
+0.367676f, -0.302734f, 0.358154f, -0.275391f, 0.348633f, -0.248047f, 0.343018f, -0.216309f,
+0.337402f, -0.18457f, 0.337402f, -0.150879f, 0.337402f, -0.116211f, 0.347168f, -0.097168f,
+0.356934f, -0.078125f, 0.376465f, -0.078125f, 0.394043f, -0.078125f, 0.412354f, -0.0834961f,
+0.430664f, -0.0888672f, 0.447998f, -0.0969238f, 0.465332f, -0.10498f, 0.480225f,
+-0.11499f, 0.495117f, -0.125f, 0.505371f, -0.133789f, 0.128906f, -0.0258789f, 0.124023f,
+0, -0.0546875f, 0, -0.0498047f, -0.0258789f, 0.00488281f, -0.0390625f, 0.337891f,
+-0.660156f, 0.431152f, -0.660156f, 0.553223f, -0.0390625f, 0.614258f, -0.0258789f,
+0.608887f, 0, 0.376953f, 0, 0.382324f, -0.0258789f, 0.452148f, -0.0390625f, 0.420898f,
+-0.228027f, 0.163086f, -0.228027f, 0.0629883f, -0.0390625f, 0.353027f, -0.589844f,
+0.185059f, -0.271973f, 0.413086f, -0.271973f, 0.312012f, -0.368164f, 0.361816f, -0.368164f,
+0.395508f, -0.376465f, 0.429199f, -0.384766f, 0.449707f, -0.4021f, 0.470215f, -0.419434f,
+0.47876f, -0.446533f, 0.487305f, -0.473633f, 0.487305f, -0.51123f, 0.487305f, -0.562012f,
+0.455566f, -0.586426f, 0.423828f, -0.61084f, 0.351074f, -0.61084f, 0.273926f, -0.61084f,
+0.230957f, -0.368164f, 0.300293f, -0.0410156f, 0.353516f, -0.0410156f, 0.388672f,
+-0.052002f, 0.423828f, -0.0629883f, 0.44458f, -0.0834961f, 0.465332f, -0.104004f,
+0.473633f, -0.133057f, 0.481934f, -0.162109f, 0.481934f, -0.198242f, 0.481934f, -0.264648f,
+0.438721f, -0.294434f, 0.395508f, -0.324219f, 0.313965f, -0.324219f, 0.223145f, -0.324219f,
+0.174316f, -0.0439453f, 0.199219f, -0.0429688f, 0.222656f, -0.0424805f, 0.242676f,
+-0.0415039f, 0.26416f, -0.0412598f, 0.285645f, -0.0410156f, 0.300293f, -0.0410156f,
+0.00927734f, 0, 0.0141602f, -0.0258789f, 0.0791016f, -0.0390625f, 0.181152f, -0.616211f,
+0.0991211f, -0.628906f, 0.104004f, -0.654785f, 0.373047f, -0.654785f, 0.433105f,
+-0.654785f, 0.474365f, -0.644775f, 0.515625f, -0.634766f, 0.541016f, -0.616455f,
+0.566406f, -0.598145f, 0.577637f, -0.572754f, 0.588867f, -0.547363f, 0.588867f, -0.51709f,
+0.588867f, -0.47998f, 0.57666f, -0.450928f, 0.564453f, -0.421875f, 0.542969f, -0.400635f,
+0.521484f, -0.379395f, 0.491211f, -0.366211f, 0.460938f, -0.353027f, 0.425293f, -0.348145f,
+0.458984f, -0.345215f, 0.488037f, -0.334961f, 0.51709f, -0.324707f, 0.53833f, -0.306641f,
+0.55957f, -0.288574f, 0.571777f, -0.262207f, 0.583984f, -0.23584f, 0.583984f, -0.200195f,
+0.583984f, -0.0952148f, 0.512939f, -0.0461426f, 0.441895f, 0.00292969f, 0.300293f,
+0.00292969f, 0.272949f, 0.00292969f, 0.248779f, 0.00244141f, 0.224609f, 0.00195312f,
+0.202148f, 0.00146484f, 0.179688f, 0.000976562f, 0.157959f, 0.000488281f, 0.13623f,
+0, 0.113281f, 0, 0.341309f, 0.00927734f, 0.271484f, 0.00927734f, 0.218262f, -0.00976562f,
+0.165039f, -0.0288086f, 0.128906f, -0.0634766f, 0.0927734f, -0.0981445f, 0.0742188f,
+-0.146973f, 0.0556641f, -0.195801f, 0.0556641f, -0.255371f, 0.0556641f, -0.350586f,
+0.0859375f, -0.42627f, 0.116211f, -0.501953f, 0.170166f, -0.554199f, 0.224121f, -0.606445f,
+0.298828f, -0.634277f, 0.373535f, -0.662109f, 0.462402f, -0.662109f, 0.529297f, -0.662109f,
+0.581055f, -0.654541f, 0.632812f, -0.646973f, 0.67627f, -0.637207f, 0.654297f, -0.494141f,
+0.622559f, -0.494141f, 0.622559f, -0.579102f, 0.592285f, -0.600098f, 0.549316f, -0.611572f,
+0.506348f, -0.623047f, 0.459473f, -0.623047f, 0.393066f, -0.623047f, 0.336914f, -0.596436f,
+0.280762f, -0.569824f, 0.23999f, -0.520508f, 0.199219f, -0.471191f, 0.17627f, -0.401367f,
+0.15332f, -0.331543f, 0.15332f, -0.245605f, 0.15332f, -0.199219f, 0.164307f, -0.159668f,
+0.175293f, -0.120117f, 0.199219f, -0.0915527f, 0.223145f, -0.0629883f, 0.260254f,
+-0.046875f, 0.297363f, -0.0307617f, 0.349609f, -0.0307617f, 0.379883f, -0.0307617f,
+0.408691f, -0.0356445f, 0.4375f, -0.0405273f, 0.462646f, -0.0488281f, 0.487793f,
+-0.0571289f, 0.508789f, -0.067627f, 0.529785f, -0.078125f, 0.544922f, -0.0898438f,
+0.580078f, -0.187988f, 0.611816f, -0.187988f, 0.582031f, -0.0341797f, 0.559082f,
+-0.0258789f, 0.531006f, -0.0180664f, 0.50293f, -0.0102539f, 0.47168f, -0.00415039f,
+0.44043f, 0.00195312f, 0.407227f, 0.00561523f, 0.374023f, 0.00927734f, 0.341309f,
+0.00927734f, 0.604492f, -0.383301f, 0.604492f, -0.444336f, 0.586914f, -0.487549f,
+0.569336f, -0.530762f, 0.536621f, -0.558105f, 0.503906f, -0.585449f, 0.457275f, -0.598145f,
+0.410645f, -0.61084f, 0.353027f, -0.61084f, 0.273926f, -0.61084f, 0.174316f, -0.0458984f,
+0.203613f, -0.0444336f, 0.23584f, -0.0432129f, 0.268066f, -0.0419922f, 0.303223f,
+-0.0419922f, 0.37793f, -0.0419922f, 0.434326f, -0.065918f, 0.490723f, -0.0898438f,
+0.528564f, -0.134033f, 0.566406f, -0.178223f, 0.585449f, -0.241455f, 0.604492f, -0.304688f,
+0.604492f, -0.383301f, 0.382812f, -0.654785f, 0.461914f, -0.654785f, 0.522461f, -0.637207f,
+0.583008f, -0.619629f, 0.624023f, -0.585449f, 0.665039f, -0.55127f, 0.686035f, -0.501465f,
+0.707031f, -0.45166f, 0.707031f, -0.386719f, 0.707031f, -0.298828f, 0.679443f, -0.227295f,
+0.651855f, -0.155762f, 0.600342f, -0.104736f, 0.548828f, -0.0537109f, 0.474609f,
+-0.0258789f, 0.400391f, 0.00195312f, 0.307129f, 0.00195312f, 0.279297f, 0.00195312f,
+0.246094f, 0.00170898f, 0.212891f, 0.00146484f, 0.180664f, 0.000976562f, 0.148438f,
+0.000488281f, 0.119873f, 0.000244141f, 0.0913086f, 0, 0.0722656f, 0, -0.0112305f,
+0, -0.00683594f, -0.0258789f, 0.0791016f, -0.0390625f, 0.180664f, -0.616211f, 0.0991211f,
+-0.628906f, 0.103516f, -0.654785f, -0.00683594f, -0.0258789f, 0.0786133f, -0.0390625f,
+0.180664f, -0.616211f, 0.0986328f, -0.628906f, 0.103516f, -0.654785f, 0.594727f,
+-0.654785f, 0.566895f, -0.498047f, 0.534668f, -0.498047f, 0.537598f, -0.604004f,
+0.522461f, -0.605957f, 0.500488f, -0.607422f, 0.478516f, -0.608887f, 0.455566f, -0.609619f,
+0.432617f, -0.610352f, 0.412354f, -0.610596f, 0.39209f, -0.61084f, 0.380859f, -0.61084f,
+0.273926f, -0.61084f, 0.228516f, -0.35498f, 0.405273f, -0.35498f, 0.43457f, -0.433105f,
+0.46582f, -0.433105f, 0.430176f, -0.231934f, 0.398926f, -0.231934f, 0.397949f, -0.311035f,
+0.221191f, -0.311035f, 0.173828f, -0.0439453f, 0.302734f, -0.0439453f, 0.333008f,
+-0.0439453f, 0.359863f, -0.0446777f, 0.386719f, -0.0454102f, 0.408447f, -0.0463867f,
+0.430176f, -0.0473633f, 0.445801f, -0.0488281f, 0.461426f, -0.050293f, 0.469238f,
+-0.0517578f, 0.518555f, -0.172852f, 0.550781f, -0.172852f, 0.510742f, 0, -0.0117188f,
+0, 0.217773f, -0.293945f, 0.172852f, -0.0390625f, 0.279785f, -0.0258789f, 0.274902f,
+0, -0.00537109f, 0, -0.000488281f, -0.0258789f, 0.0786133f, -0.0390625f, 0.180664f,
+-0.616211f, 0.0986328f, -0.628906f, 0.103516f, -0.654785f, 0.619141f, -0.654785f,
+0.591309f, -0.498047f, 0.559082f, -0.498047f, 0.562012f, -0.604004f, 0.546875f, -0.605957f,
+0.524902f, -0.607422f, 0.50293f, -0.608887f, 0.47998f, -0.609619f, 0.457031f, -0.610352f,
+0.436768f, -0.610596f, 0.416504f, -0.61084f, 0.405273f, -0.61084f, 0.273926f, -0.61084f,
+0.225586f, -0.337891f, 0.442871f, -0.337891f, 0.47168f, -0.416016f, 0.501465f, -0.416016f,
+0.466309f, -0.214844f, 0.436523f, -0.214844f, 0.435059f, -0.293945f, 0.593262f, -0.0419922f,
+0.562988f, -0.0302734f, 0.533203f, -0.020752f, 0.503418f, -0.0112305f, 0.472168f,
+-0.00463867f, 0.440918f, 0.00195312f, 0.407471f, 0.00537109f, 0.374023f, 0.00878906f,
+0.336914f, 0.00878906f, 0.269531f, 0.00878906f, 0.217041f, -0.00952148f, 0.164551f,
+-0.027832f, 0.128662f, -0.0620117f, 0.0927734f, -0.0961914f, 0.0739746f, -0.14502f,
+0.0551758f, -0.193848f, 0.0551758f, -0.255371f, 0.0551758f, -0.353516f, 0.0864258f,
+-0.429199f, 0.117676f, -0.504883f, 0.172363f, -0.556641f, 0.227051f, -0.608398f,
+0.301514f, -0.635254f, 0.375977f, -0.662109f, 0.462402f, -0.662109f, 0.525391f, -0.662109f,
+0.578369f, -0.654297f, 0.631348f, -0.646484f, 0.680664f, -0.632812f, 0.655762f, -0.492188f,
+0.623047f, -0.492188f, 0.624512f, -0.573242f, 0.594727f, -0.597168f, 0.553223f, -0.610107f,
+0.511719f, -0.623047f, 0.459473f, -0.623047f, 0.398438f, -0.623047f, 0.342773f, -0.598389f,
+0.287109f, -0.57373f, 0.245117f, -0.525879f, 0.203125f, -0.478027f, 0.178223f, -0.407471f,
+0.15332f, -0.336914f, 0.15332f, -0.245605f, 0.15332f, -0.191895f, 0.167236f, -0.151367f,
+0.181152f, -0.11084f, 0.206055f, -0.0839844f, 0.230957f, -0.0571289f, 0.265869f,
+-0.0437012f, 0.300781f, -0.0302734f, 0.343262f, -0.0302734f, 0.369629f, -0.0302734f,
+0.393555f, -0.0344238f, 0.41748f, -0.0385742f, 0.438477f, -0.045166f, 0.459473f,
+-0.0517578f, 0.476562f, -0.0595703f, 0.493652f, -0.0673828f, 0.505371f, -0.074707f,
+0.536133f, -0.24707f, 0.45459f, -0.259766f, 0.458984f, -0.286133f, 0.700684f, -0.286133f,
+0.696289f, -0.259766f, 0.629883f, -0.24707f, -0.0107422f, 0, -0.00683594f, -0.0258789f,
+0.0791016f, -0.0390625f, 0.180176f, -0.616211f, 0.0991211f, -0.628906f, 0.103027f,
+-0.654785f, 0.365234f, -0.654785f, 0.361328f, -0.628906f, 0.273926f, -0.616211f,
+0.229004f, -0.358887f, 0.537109f, -0.358887f, 0.582031f, -0.616211f, 0.500977f, -0.628906f,
+0.504883f, -0.654785f, 0.76709f, -0.654785f, 0.763184f, -0.628906f, 0.67627f, -0.616211f,
+0.575195f, -0.0390625f, 0.65625f, -0.0258789f, 0.651855f, 0, 0.390137f, 0, 0.394043f,
+-0.0258789f, 0.480957f, -0.0390625f, 0.529297f, -0.314941f, 0.221191f, -0.314941f,
+0.172852f, -0.0390625f, 0.253906f, -0.0258789f, 0.25f, 0, 0.180176f, -0.0390625f,
+0.26123f, -0.0258789f, 0.257324f, 0, -0.00390625f, 0, 0, -0.0258789f, 0.0859375f,
+-0.0390625f, 0.187012f, -0.616211f, 0.105957f, -0.628906f, 0.109863f, -0.654785f,
+0.37207f, -0.654785f, 0.368164f, -0.628906f, 0.28125f, -0.616211f, 0.308105f, -0.616211f,
+0.226562f, -0.628906f, 0.230957f, -0.654785f, 0.48291f, -0.654785f, 0.478516f, -0.628906f,
+0.401855f, -0.616211f, 0.330566f, -0.210938f, 0.319824f, -0.149902f, 0.300537f, -0.10791f,
+0.28125f, -0.065918f, 0.255371f, -0.0397949f, 0.229492f, -0.0136719f, 0.197754f,
+-0.00195312f, 0.166016f, 0.00976562f, 0.130371f, 0.00976562f, 0.0966797f, 0.00976562f,
+0.065918f, 0.00317383f, 0.0351562f, -0.00341797f, 0.0151367f, -0.0126953f, 0.0356445f,
+-0.125977f, 0.0673828f, -0.125977f, 0.0698242f, -0.0581055f, 0.0732422f, -0.0522461f,
+0.0805664f, -0.0476074f, 0.0878906f, -0.0429688f, 0.097168f, -0.0395508f, 0.106445f,
+-0.0361328f, 0.116699f, -0.0341797f, 0.126953f, -0.0322266f, 0.137207f, -0.0322266f,
+0.205566f, -0.0322266f, 0.22168f, -0.125f, 0.709961f, -0.654785f, 0.705078f, -0.628906f,
+0.628906f, -0.616211f, 0.357422f, -0.394043f, 0.575684f, -0.0390625f, 0.641113f,
+-0.0258789f, 0.63623f, 0, 0.486328f, 0, 0.285645f, -0.334961f, 0.21582f, -0.277832f,
+0.172852f, -0.0390625f, 0.264648f, -0.0258789f, 0.259766f, 0, -0.0117188f, 0, -0.00683594f,
+-0.0258789f, 0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f, -0.628906f,
+0.103516f, -0.654785f, 0.365723f, -0.654785f, 0.36084f, -0.628906f, 0.274902f, -0.616211f,
+0.227051f, -0.34375f, 0.558105f, -0.616211f, 0.5f, -0.628906f, 0.504883f, -0.654785f,
+0.37793f, -0.628906f, 0.274902f, -0.616211f, 0.17334f, -0.0419922f, 0.277832f, -0.0419922f,
+0.338867f, -0.0419922f, 0.373047f, -0.0454102f, 0.407227f, -0.0488281f, 0.422852f,
+-0.0517578f, 0.477051f, -0.187988f, 0.508789f, -0.187988f, 0.466797f, 0, -0.0117188f,
+0, -0.00683594f, -0.0258789f, 0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f,
+-0.628906f, 0.103516f, -0.654785f, 0.382812f, -0.654785f, 0.352051f, 0, 0.334961f,
+0, 0.222168f, -0.562988f, 0.129883f, -0.0390625f, 0.21582f, -0.0258789f, 0.210938f,
+0, -0.0117188f, 0, -0.00683594f, -0.0258789f, 0.0786133f, -0.0390625f, 0.180664f,
+-0.616211f, 0.0986328f, -0.628906f, 0.103516f, -0.654785f, 0.290039f, -0.654785f,
+0.390625f, -0.155273f, 0.682617f, -0.654785f, 0.878906f, -0.654785f, 0.874023f, -0.628906f,
+0.788086f, -0.616211f, 0.686035f, -0.0390625f, 0.768066f, -0.0258789f, 0.763184f,
+0, 0.497559f, 0, 0.502441f, -0.0258789f, 0.592285f, -0.0390625f, 0.68457f, -0.562988f,
+0.571289f, -0.616211f, 0.485352f, -0.628906f, 0.490234f, -0.654785f, 0.713379f, -0.654785f,
+0.708496f, -0.628906f, 0.622559f, -0.616211f, 0.513672f, 0, 0.466309f, 0, 0.231445f,
+-0.588867f, 0.134277f, -0.0390625f, 0.220215f, -0.0258789f, 0.215332f, 0, -0.00732422f,
+0, -0.00244141f, -0.0258789f, 0.0830078f, -0.0390625f, 0.185059f, -0.616211f, 0.103027f,
+-0.628906f, 0.10791f, -0.654785f, 0.297363f, -0.654785f, 0.492188f, -0.164062f, 0.601074f,
+-0.40625f, 0.601074f, -0.455566f, 0.587891f, -0.495605f, 0.574707f, -0.535645f, 0.550781f,
+-0.563965f, 0.526855f, -0.592285f, 0.493408f, -0.607666f, 0.459961f, -0.623047f,
+0.418945f, -0.623047f, 0.374023f, -0.623047f, 0.336426f, -0.605469f, 0.298828f, -0.587891f,
+0.268799f, -0.558594f, 0.23877f, -0.529297f, 0.216064f, -0.490967f, 0.193359f, -0.452637f,
+0.178223f, -0.410645f, 0.163086f, -0.368652f, 0.155518f, -0.325928f, 0.147949f, -0.283203f,
+0.147949f, -0.245605f, 0.147949f, -0.196777f, 0.160889f, -0.157227f, 0.173828f, -0.117676f,
+0.197266f, -0.0898438f, 0.220703f, -0.0620117f, 0.253662f, -0.046875f, 0.286621f,
+-0.0317383f, 0.327148f, -0.0317383f, 0.37207f, -0.0317383f, 0.409912f, -0.0490723f,
+0.447754f, -0.0664062f, 0.478271f, -0.0952148f, 0.508789f, -0.124023f, 0.531738f,
+-0.162109f, 0.554688f, -0.200195f, 0.570068f, -0.241943f, 0.585449f, -0.283691f,
+0.593262f, -0.325928f, 0.601074f, -0.368164f, 0.601074f, -0.40625f, 0.32373f, 0.00976562f,
+0.263672f, 0.00976562f, 0.213379f, -0.00927734f, 0.163086f, -0.0283203f, 0.126953f,
+-0.0627441f, 0.0908203f, -0.097168f, 0.0705566f, -0.14502f, 0.050293f, -0.192871f,
+0.050293f, -0.250977f, 0.050293f, -0.306152f, 0.0615234f, -0.35791f, 0.0727539f,
+-0.409668f, 0.0947266f, -0.455322f, 0.116699f, -0.500977f, 0.148682f, -0.539062f,
+0.180664f, -0.577148f, 0.222412f, -0.604492f, 0.26416f, -0.631836f, 0.314941f, -0.646973f,
+0.365723f, -0.662109f, 0.425293f, -0.662109f, 0.485352f, -0.662109f, 0.535645f, -0.643066f,
+0.585938f, -0.624023f, 0.62207f, -0.5896f, 0.658203f, -0.555176f, 0.678467f, -0.50708f,
+0.69873f, -0.458984f, 0.69873f, -0.401367f, 0.69873f, -0.354004f, 0.689209f, -0.304932f,
+0.679688f, -0.255859f, 0.659912f, -0.210205f, 0.640137f, -0.164551f, 0.609863f, -0.124512f,
+0.57959f, -0.0844727f, 0.537842f, -0.0546875f, 0.496094f, -0.0249023f, 0.442871f,
+-0.00756836f, 0.389648f, 0.00976562f, 0.32373f, 0.00976562f, 0.298828f, -0.300781f,
+0.394043f, -0.300781f, 0.441162f, -0.344482f, 0.488281f, -0.388184f, 0.488281f, -0.475098f,
+0.488281f, -0.544922f, 0.452881f, -0.577881f, 0.41748f, -0.61084f, 0.346191f, -0.61084f,
+0.273926f, -0.61084f, 0.219238f, -0.300781f, 0.211426f, -0.256836f, 0.172852f, -0.0390625f,
+0.279785f, -0.0258789f, 0.274902f, 0, -0.00537109f, 0, -0.000488281f, -0.0258789f,
+0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f, -0.628906f, 0.103516f,
+-0.654785f, 0.365723f, -0.654785f, 0.423828f, -0.654785f, 0.465332f, -0.64209f, 0.506836f,
+-0.629395f, 0.533691f, -0.606689f, 0.560547f, -0.583984f, 0.572998f, -0.552002f,
+0.585449f, -0.52002f, 0.585449f, -0.481445f, 0.585449f, -0.432617f, 0.569824f, -0.391357f,
+0.554199f, -0.350098f, 0.520752f, -0.320312f, 0.487305f, -0.290527f, 0.435059f, -0.273682f,
+0.382812f, -0.256836f, 0.30957f, -0.256836f, 0.324707f, 0.00976562f, 0.265137f, 0.00927734f,
+0.21582f, -0.0100098f, 0.166504f, -0.0292969f, 0.130615f, -0.0637207f, 0.0947266f,
+-0.0981445f, 0.0749512f, -0.145752f, 0.0551758f, -0.193359f, 0.0551758f, -0.250977f,
+0.0551758f, -0.306152f, 0.0664062f, -0.35791f, 0.0776367f, -0.409668f, 0.0996094f,
+-0.455322f, 0.121582f, -0.500977f, 0.153564f, -0.539062f, 0.185547f, -0.577148f,
+0.227295f, -0.604492f, 0.269043f, -0.631836f, 0.319824f, -0.646973f, 0.370605f, -0.662109f,
+0.430176f, -0.662109f, 0.490234f, -0.662109f, 0.540527f, -0.643066f, 0.59082f, -0.624023f,
+0.626953f, -0.5896f, 0.663086f, -0.555176f, 0.68335f, -0.50708f, 0.703613f, -0.458984f,
+0.703613f, -0.401367f, 0.703613f, -0.360352f, 0.696533f, -0.317871f, 0.689453f, -0.275391f,
+0.674805f, -0.234863f, 0.660156f, -0.194336f, 0.637451f, -0.157227f, 0.614746f, -0.120117f,
+0.583984f, -0.0893555f, 0.553223f, -0.0585938f, 0.513672f, -0.0358887f, 0.474121f,
+-0.0131836f, 0.425781f, -0.00146484f, 0.436035f, 0.0136719f, 0.453613f, 0.0395508f,
+0.468506f, 0.0585938f, 0.483398f, 0.0776367f, 0.498779f, 0.0898438f, 0.51416f, 0.102051f,
+0.531006f, 0.10791f, 0.547852f, 0.11377f, 0.568359f, 0.11377f, 0.571777f, 0.11377f,
+0.577637f, 0.113525f, 0.583496f, 0.113281f, 0.5896f, 0.113037f, 0.595703f, 0.112793f,
+0.60083f, 0.112549f, 0.605957f, 0.112305f, 0.608887f, 0.111816f, 0.603027f, 0.144043f,
+0.597168f, 0.146484f, 0.585938f, 0.149414f, 0.574707f, 0.152344f, 0.560791f, 0.155273f,
+0.546875f, 0.158203f, 0.531982f, 0.160156f, 0.51709f, 0.162109f, 0.503906f, 0.162109f,
+0.476074f, 0.162109f, 0.455078f, 0.155029f, 0.434082f, 0.147949f, 0.415527f, 0.132568f,
+0.396973f, 0.117188f, 0.378906f, 0.0927734f, 0.36084f, 0.0683594f, 0.339355f, 0.0332031f,
+0.605957f, -0.40625f, 0.605957f, -0.455566f, 0.592773f, -0.495605f, 0.57959f, -0.535645f,
+0.555664f, -0.563965f, 0.531738f, -0.592285f, 0.498291f, -0.607666f, 0.464844f, -0.623047f,
+0.423828f, -0.623047f, 0.378906f, -0.623047f, 0.341309f, -0.605469f, 0.303711f, -0.587891f,
+0.273682f, -0.558594f, 0.243652f, -0.529297f, 0.220947f, -0.490967f, 0.198242f, -0.452637f,
+0.183105f, -0.410645f, 0.167969f, -0.368652f, 0.1604f, -0.325928f, 0.152832f, -0.283203f,
+0.152832f, -0.245605f, 0.152832f, -0.196777f, 0.165771f, -0.157227f, 0.178711f, -0.117676f,
+0.202148f, -0.0898438f, 0.225586f, -0.0620117f, 0.258545f, -0.046875f, 0.291504f,
+-0.0317383f, 0.332031f, -0.0317383f, 0.376953f, -0.0317383f, 0.414795f, -0.0490723f,
+0.452637f, -0.0664062f, 0.483154f, -0.0952148f, 0.513672f, -0.124023f, 0.536621f,
+-0.162109f, 0.55957f, -0.200195f, 0.574951f, -0.241943f, 0.590332f, -0.283691f, 0.598145f,
+-0.325928f, 0.605957f, -0.368164f, 0.605957f, -0.40625f, 0.216797f, -0.287109f, 0.172852f,
+-0.0390625f, 0.260254f, -0.0258789f, 0.255371f, 0, -0.00537109f, 0, -0.000488281f,
+-0.0258789f, 0.0786133f, -0.0390625f, 0.180664f, -0.616211f, 0.0986328f, -0.628906f,
+0.103516f, -0.654785f, 0.363281f, -0.654785f, 0.42041f, -0.654785f, 0.46167f, -0.643555f,
+0.50293f, -0.632324f, 0.529785f, -0.611572f, 0.556641f, -0.59082f, 0.56958f, -0.561523f,
+0.58252f, -0.532227f, 0.58252f, -0.496094f, 0.58252f, -0.455566f, 0.571045f, -0.423584f,
+0.55957f, -0.391602f, 0.537598f, -0.367676f, 0.515625f, -0.34375f, 0.483887f, -0.327148f,
+0.452148f, -0.310547f, 0.411621f, -0.300781f, 0.522461f, -0.0390625f, 0.594238f,
+-0.0258789f, 0.589355f, 0, 0.438965f, 0, 0.318848f, -0.287109f, 0.300781f, -0.331055f,
+0.344238f, -0.331055f, 0.378662f, -0.341553f, 0.413086f, -0.352051f, 0.436768f, -0.372559f,
+0.460449f, -0.393066f, 0.473145f, -0.42334f, 0.48584f, -0.453613f, 0.48584f, -0.493164f,
+0.48584f, -0.552246f, 0.450684f, -0.581543f, 0.415527f, -0.61084f, 0.346191f, -0.61084f,
+0.273926f, -0.61084f, 0.224609f, -0.331055f, 0.0371094f, -0.181152f, 0.0688477f,
+-0.181152f, 0.0693359f, -0.0878906f, 0.0771484f, -0.0761719f, 0.0910645f, -0.0656738f,
+0.10498f, -0.0551758f, 0.123047f, -0.0471191f, 0.141113f, -0.0390625f, 0.162354f,
+-0.0344238f, 0.183594f, -0.0297852f, 0.206543f, -0.0297852f, 0.248047f, -0.0297852f,
+0.279053f, -0.0397949f, 0.310059f, -0.0498047f, 0.331055f, -0.0686035f, 0.352051f,
+-0.0874023f, 0.362549f, -0.11377f, 0.373047f, -0.140137f, 0.373047f, -0.17334f, 0.373047f,
+-0.199707f, 0.361328f, -0.219238f, 0.349609f, -0.23877f, 0.330078f, -0.254395f, 0.310547f,
+-0.27002f, 0.285889f, -0.283203f, 0.26123f, -0.296387f, 0.235352f, -0.309814f, 0.209473f,
+-0.323242f, 0.184814f, -0.338623f, 0.160156f, -0.354004f, 0.140625f, -0.374268f,
+0.121094f, -0.394531f, 0.109375f, -0.420898f, 0.0976562f, -0.447266f, 0.0976562f,
+-0.48291f, 0.0976562f, -0.527832f, 0.113525f, -0.561523f, 0.129395f, -0.595215f,
+0.158936f, -0.617432f, 0.188477f, -0.639648f, 0.230713f, -0.650879f, 0.272949f, -0.662109f,
+0.325684f, -0.662109f, 0.374023f, -0.662109f, 0.412354f, -0.656982f, 0.450684f, -0.651855f,
+0.483887f, -0.643555f, 0.459961f, -0.507324f, 0.428223f, -0.507324f, 0.425781f, -0.59082f,
+0.410156f, -0.603516f, 0.382324f, -0.612305f, 0.354492f, -0.621094f, 0.318359f, -0.621094f,
+0.282715f, -0.621094f, 0.25708f, -0.611816f, 0.231445f, -0.602539f, 0.215088f, -0.586182f,
+0.19873f, -0.569824f, 0.190918f, -0.547852f, 0.183105f, -0.525879f, 0.183105f, -0.500488f,
+0.183105f, -0.476074f, 0.195068f, -0.457764f, 0.207031f, -0.439453f, 0.226318f, -0.424561f,
+0.245605f, -0.409668f, 0.270508f, -0.396729f, 0.29541f, -0.383789f, 0.321045f, -0.370117f,
+0.34668f, -0.356445f, 0.371582f, -0.34082f, 0.396484f, -0.325195f, 0.415771f, -0.305176f,
+0.435059f, -0.285156f, 0.447021f, -0.259033f, 0.458984f, -0.23291f, 0.458984f, -0.198242f,
+0.458984f, -0.149902f, 0.443115f, -0.111328f, 0.427246f, -0.0727539f, 0.395508f,
+-0.0458984f, 0.36377f, -0.019043f, 0.315918f, -0.00463867f, 0.268066f, 0.00976562f,
+0.203613f, 0.00976562f, 0.14209f, 0.00976562f, 0.0930176f, -0.00268555f, 0.0439453f,
+-0.0151367f, 0.0117188f, -0.0356445f, 0.0859375f, 0, 0.0908203f, -0.0258789f, 0.196777f,
+-0.0390625f, 0.297852f, -0.612793f, 0.272949f, -0.612793f, 0.241211f, -0.612793f,
+0.218262f, -0.612061f, 0.195312f, -0.611328f, 0.178711f, -0.609863f, 0.162109f, -0.608398f,
+0.150391f, -0.606689f, 0.138672f, -0.60498f, 0.129395f, -0.603027f, 0.0981445f, -0.500977f,
+0.0654297f, -0.500977f, 0.0927734f, -0.654785f, 0.615234f, -0.654785f, 0.587891f,
+-0.500977f, 0.554688f, -0.500977f, 0.55957f, -0.603027f, 0.54248f, -0.606445f, 0.507812f,
+-0.609131f, 0.473145f, -0.611816f, 0.416016f, -0.611816f, 0.39209f, -0.611816f, 0.291016f,
+-0.0390625f, 0.393066f, -0.0258789f, 0.388184f, 0, 0.634277f, -0.616211f, 0.548828f,
+-0.628906f, 0.553223f, -0.654785f, 0.776367f, -0.654785f, 0.771973f, -0.628906f,
+0.685547f, -0.616211f, 0.616699f, -0.225098f, 0.608887f, -0.180176f, 0.589111f, -0.137939f,
+0.569336f, -0.0957031f, 0.534912f, -0.0629883f, 0.500488f, -0.0302734f, 0.450439f,
+-0.0102539f, 0.400391f, 0.00976562f, 0.331543f, 0.00976562f, 0.217773f, 0.00976562f,
+0.158203f, -0.036377f, 0.0986328f, -0.0825195f, 0.0986328f, -0.169922f, 0.0986328f,
+-0.182617f, 0.100098f, -0.197021f, 0.101562f, -0.211426f, 0.103516f, -0.221191f,
+0.17334f, -0.616211f, 0.0917969f, -0.628906f, 0.0961914f, -0.654785f, 0.35791f, -0.654785f,
+0.353516f, -0.628906f, 0.26709f, -0.616211f, 0.198242f, -0.223145f, 0.195801f, -0.209961f,
+0.19458f, -0.19751f, 0.193359f, -0.185059f, 0.193359f, -0.17334f, 0.193359f, -0.144043f,
+0.20166f, -0.120117f, 0.209961f, -0.0961914f, 0.227539f, -0.0795898f, 0.245117f,
+-0.0629883f, 0.272949f, -0.0539551f, 0.300781f, -0.0449219f, 0.339844f, -0.0449219f,
+0.394531f, -0.0449219f, 0.434082f, -0.0595703f, 0.473633f, -0.0742188f, 0.500732f,
+-0.0986328f, 0.527832f, -0.123047f, 0.543457f, -0.154785f, 0.559082f, -0.186523f,
+0.564941f, -0.221191f, 0.707031f, -0.654785f, 0.702148f, -0.628906f, 0.638184f, -0.616211f,
+0.283203f, 0.0151367f, 0.258301f, 0.0151367f, 0.114258f, -0.616211f, 0.0522461f,
+-0.628906f, 0.0571289f, -0.654785f, 0.297852f, -0.654785f, 0.292969f, -0.628906f,
+0.210449f, -0.616211f, 0.316895f, -0.138184f, 0.579102f, -0.616211f, 0.504883f, -0.628906f,
+0.510254f, -0.654785f, 0.845215f, -0.616211f, 0.554199f, 0.0151367f, 0.523438f, 0.0151367f,
+0.452148f, -0.42334f, 0.248047f, 0.0151367f, 0.216309f, 0.0151367f, 0.121094f, -0.616211f,
+0.065918f, -0.628906f, 0.0703125f, -0.654785f, 0.29834f, -0.654785f, 0.293945f, -0.628906f,
+0.215332f, -0.616211f, 0.283691f, -0.15918f, 0.491699f, -0.608887f, 0.51416f, -0.608887f,
+0.587891f, -0.158203f, 0.79248f, -0.616211f, 0.711914f, -0.628906f, 0.716309f, -0.654785f,
+0.908691f, -0.654785f, 0.904297f, -0.628906f, 0.366699f, -0.367676f, 0.483398f, -0.0390625f,
+0.555664f, -0.0258789f, 0.550781f, 0, 0.300293f, 0, 0.305176f, -0.0258789f, 0.385254f,
+-0.0390625f, 0.299805f, -0.286621f, 0.105957f, -0.0390625f, 0.185059f, -0.0258789f,
+0.180176f, 0, -0.0332031f, 0, -0.0283203f, -0.0258789f, 0.0454102f, -0.0390625f,
+0.279785f, -0.334961f, 0.180176f, -0.616211f, 0.108398f, -0.628906f, 0.113281f, -0.654785f,
+0.354004f, -0.654785f, 0.349121f, -0.628906f, 0.278809f, -0.616211f, 0.347168f, -0.416504f,
+0.50293f, -0.616211f, 0.438477f, -0.628906f, 0.443359f, -0.654785f, 0.643066f, -0.654785f,
+0.638184f, -0.628906f, 0.563965f, -0.616211f, 0.335938f, -0.257812f, 0.297363f, -0.0390625f,
+0.399414f, -0.0258789f, 0.394531f, 0, 0.0922852f, 0, 0.097168f, -0.0258789f, 0.203125f,
+-0.0390625f, 0.241211f, -0.254883f, 0.128906f, -0.616211f, 0.0571289f, -0.628906f,
+0.0620117f, -0.654785f, 0.329102f, -0.654785f, 0.324219f, -0.628906f, 0.229492f,
+-0.616211f, 0.321289f, -0.310059f, 0.513184f, -0.616211f, 0.427246f, -0.628906f,
+0.432129f, -0.654785f, 0.64502f, -0.654785f, 0.640137f, -0.628906f, 0.566406f, -0.616211f,
+0.0205078f, -0.0458984f, 0.442871f, -0.612793f, 0.345215f, -0.612793f, 0.28125f,
+-0.612793f, 0.23877f, -0.609863f, 0.196289f, -0.606934f, 0.177734f, -0.603027f, 0.144531f,
+-0.5f, 0.11084f, -0.5f, 0.138184f, -0.654785f, 0.564453f, -0.654785f, 0.556641f,
+-0.612793f, 0.130371f, -0.0410156f, 0.247559f, -0.0410156f, 0.279297f, -0.0410156f,
+0.311035f, -0.0427246f, 0.342773f, -0.0444336f, 0.370117f, -0.0471191f, 0.397461f,
+-0.0498047f, 0.417969f, -0.0524902f, 0.438477f, -0.0551758f, 0.447754f, -0.0571289f,
+0.498535f, -0.182129f, 0.532715f, -0.182129f, 0.487305f, 0, 0.012207f, 0, 0.0576172f,
+0.133789f, 0.203613f, -0.693848f, 0.42627f, -0.693848f, 0.422363f, -0.670898f, 0.273438f,
+-0.650879f, 0.142578f, 0.0908203f, 0.28418f, 0.11084f, 0.280273f, 0.133789f, 0.0771484f,
+-0.65918f, 0.125f, -0.65918f, 0.229492f, 0.00976562f, 0.180176f, 0.00976562f, -0.0239258f,
+0.133789f, -0.0200195f, 0.11084f, 0.12793f, 0.0908203f, 0.258789f, -0.650879f, 0.117676f,
+-0.670898f, 0.121582f, -0.693848f, 0.344238f, -0.693848f, 0.198242f, 0.133789f, 0.244141f,
+-0.654785f, 0.268066f, -0.654785f, 0.477051f, -0.189941f, 0.426758f, -0.189941f,
+0.255859f, -0.584961f, 0.0849609f, -0.189941f, 0.0351562f, -0.189941f, -0.0078125f,
+0.128906f, -0.0078125f, 0.0791016f, 0.507812f, 0.0791016f, 0.507812f, 0.128906f,
+0.297852f, -0.545898f, 0.147949f, -0.676758f, 0.150879f, -0.694824f, 0.25f, -0.694824f,
+0.327148f, -0.562012f, 0.324707f, -0.545898f, 0.385254f, -0.0341797f, 0.44043f, -0.0219727f,
+0.436523f, 0, 0.297363f, 0, 0.311523f, -0.0761719f, 0.270508f, -0.0332031f, 0.23291f,
+-0.0114746f, 0.195312f, 0.0102539f, 0.160645f, 0.0102539f, 0.132812f, 0.0102539f,
+0.108887f, -0.000244141f, 0.0849609f, -0.0107422f, 0.0673828f, -0.03125f, 0.0498047f,
+-0.0517578f, 0.0397949f, -0.0822754f, 0.0297852f, -0.112793f, 0.0297852f, -0.152832f,
+0.0297852f, -0.194824f, 0.0390625f, -0.234619f, 0.0483398f, -0.274414f, 0.0656738f,
+-0.309814f, 0.0830078f, -0.345215f, 0.107422f, -0.374756f, 0.131836f, -0.404297f,
+0.162109f, -0.425537f, 0.192383f, -0.446777f, 0.228027f, -0.45874f, 0.263672f, -0.470703f,
+0.302734f, -0.470703f, 0.334961f, -0.470703f, 0.362061f, -0.465332f, 0.38916f, -0.459961f,
+0.414062f, -0.450195f, 0.415527f, -0.451172f, 0.41748f, -0.452637f, 0.418945f, -0.453613f,
+0.420898f, -0.455078f, 0.422852f, -0.456543f, 0.425293f, -0.458496f, 0.430176f, -0.461914f,
+0.436035f, -0.466797f, 0.462402f, -0.466797f, 0.371094f, -0.408691f, 0.361816f, -0.415039f,
+0.353516f, -0.419434f, 0.345215f, -0.423828f, 0.336182f, -0.426758f, 0.327148f, -0.429688f,
+0.317139f, -0.430908f, 0.307129f, -0.432129f, 0.294434f, -0.432129f, 0.253418f, -0.432129f,
+0.220459f, -0.407959f, 0.1875f, -0.383789f, 0.164551f, -0.345459f, 0.141602f, -0.307129f,
+0.129395f, -0.259766f, 0.117188f, -0.212402f, 0.117188f, -0.165527f, 0.117188f, -0.134766f,
+0.124023f, -0.113037f, 0.130859f, -0.0913086f, 0.141846f, -0.0773926f, 0.152832f,
+-0.0634766f, 0.167236f, -0.0571289f, 0.181641f, -0.0507812f, 0.197266f, -0.0507812f,
+0.213379f, -0.0507812f, 0.229492f, -0.0563965f, 0.245605f, -0.0620117f, 0.260986f,
+-0.0715332f, 0.276367f, -0.0810547f, 0.290771f, -0.0932617f, 0.305176f, -0.105469f,
+0.317871f, -0.118652f, 0.148926f, -0.660156f, 0.0839844f, -0.671875f, 0.0878906f,
+-0.693848f, 0.234375f, -0.693848f, 0.198242f, -0.478516f, 0.196777f, -0.46875f, 0.19458f,
+-0.456299f, 0.192383f, -0.443848f, 0.189697f, -0.430908f, 0.187012f, -0.417969f,
+0.184326f, -0.405518f, 0.181641f, -0.393066f, 0.179199f, -0.384277f, 0.197266f, -0.402832f,
+0.217041f, -0.418701f, 0.236816f, -0.43457f, 0.256836f, -0.446289f, 0.276855f, -0.458008f,
+0.296875f, -0.4646f, 0.316895f, -0.471191f, 0.335449f, -0.471191f, 0.36377f, -0.471191f,
+0.388428f, -0.460693f, 0.413086f, -0.450195f, 0.431152f, -0.429688f, 0.449219f, -0.40918f,
+0.459473f, -0.378662f, 0.469727f, -0.348145f, 0.469727f, -0.308105f, 0.469727f, -0.266113f,
+0.460449f, -0.226318f, 0.451172f, -0.186523f, 0.434082f, -0.151123f, 0.416992f, -0.115723f,
+0.392334f, -0.0861816f, 0.367676f, -0.0566406f, 0.336914f, -0.0354004f, 0.306152f,
+-0.0141602f, 0.27002f, -0.00219727f, 0.233887f, 0.00976562f, 0.193359f, 0.00976562f,
+0.175293f, 0.00976562f, 0.155518f, 0.00756836f, 0.135742f, 0.00537109f, 0.115479f,
+0.000488281f, 0.0952148f, -0.00439453f, 0.0751953f, -0.012207f, 0.0551758f, -0.0200195f,
+0.0371094f, -0.03125f, 0.121094f, -0.0522461f, 0.135254f, -0.0405273f, 0.155273f,
+-0.034668f, 0.175293f, -0.0288086f, 0.199707f, -0.0288086f, 0.240234f, -0.0288086f,
+0.273682f, -0.0517578f, 0.307129f, -0.074707f, 0.331299f, -0.112061f, 0.355469f,
+-0.149414f, 0.368896f, -0.19751f, 0.382324f, -0.245605f, 0.382324f, -0.29541f, 0.382324f,
+-0.350098f, 0.359619f, -0.380127f, 0.336914f, -0.410156f, 0.298828f, -0.410156f,
+0.283691f, -0.410156f, 0.267578f, -0.405029f, 0.251465f, -0.399902f, 0.235352f, -0.390625f,
+0.219238f, -0.381348f, 0.203369f, -0.369141f, 0.1875f, -0.356934f, 0.172852f, -0.342285f,
+0.37793f, -0.0693359f, 0.365723f, -0.0581055f, 0.346924f, -0.0444336f, 0.328125f,
+-0.0307617f, 0.304443f, -0.0187988f, 0.280762f, -0.00683594f, 0.25293f, 0.00146484f,
+0.225098f, 0.00976562f, 0.195312f, 0.00976562f, 0.154297f, 0.00976562f, 0.123291f,
+-0.00268555f, 0.0922852f, -0.0151367f, 0.0717773f, -0.0378418f, 0.0512695f, -0.0605469f,
+0.0410156f, -0.0917969f, 0.0307617f, -0.123047f, 0.0307617f, -0.161133f, 0.0307617f,
+-0.210449f, 0.041748f, -0.252686f, 0.0527344f, -0.294922f, 0.0717773f, -0.329346f,
+0.0908203f, -0.36377f, 0.116455f, -0.390137f, 0.14209f, -0.416504f, 0.171387f, -0.43457f,
+0.200684f, -0.452637f, 0.232178f, -0.461914f, 0.263672f, -0.471191f, 0.294922f, -0.471191f,
+0.313477f, -0.471191f, 0.333496f, -0.468994f, 0.353516f, -0.466797f, 0.37207f, -0.463135f,
+0.390625f, -0.459473f, 0.406494f, -0.454834f, 0.422363f, -0.450195f, 0.433105f, -0.445801f,
+0.411133f, -0.317871f, 0.384277f, -0.317871f, 0.376465f, -0.402832f, 0.362305f, -0.416992f,
+0.342285f, -0.425293f, 0.322266f, -0.433594f, 0.294434f, -0.433594f, 0.259766f, -0.433594f,
+0.227783f, -0.414062f, 0.195801f, -0.394531f, 0.171387f, -0.359131f, 0.146973f, -0.32373f,
+0.13208f, -0.274414f, 0.117188f, -0.225098f, 0.117188f, -0.166016f, 0.117188f, -0.132812f,
+0.124268f, -0.109131f, 0.131348f, -0.0854492f, 0.144531f, -0.0703125f, 0.157715f,
+-0.0551758f, 0.17627f, -0.0480957f, 0.194824f, -0.0410156f, 0.217773f, -0.0410156f,
+0.259277f, -0.0410156f, 0.29541f, -0.0551758f, 0.331543f, -0.0693359f, 0.363281f,
+-0.0898438f, 0.382324f, -0.459473f, 0.382812f, -0.465332f, 0.384277f, -0.476318f,
+0.385742f, -0.487305f, 0.387695f, -0.499268f, 0.389648f, -0.51123f, 0.391357f, -0.522461f,
+0.393066f, -0.533691f, 0.394531f, -0.541016f, 0.415527f, -0.660156f, 0.340332f, -0.671875f,
+0.344238f, -0.693848f, 0.502441f, -0.693848f, 0.385254f, -0.0341797f, 0.44043f, -0.0219727f,
+0.436523f, 0, 0.297363f, 0, 0.311523f, -0.0761719f, 0.270508f, -0.0332031f, 0.23291f,
+-0.0114746f, 0.195312f, 0.0102539f, 0.160645f, 0.0102539f, 0.131348f, 0.0102539f,
+0.107422f, -0.000976562f, 0.0834961f, -0.012207f, 0.0664062f, -0.0334473f, 0.0493164f,
+-0.0546875f, 0.0397949f, -0.0854492f, 0.0302734f, -0.116211f, 0.0302734f, -0.154785f,
+0.0302734f, -0.196777f, 0.0395508f, -0.236572f, 0.0488281f, -0.276367f, 0.065918f,
+-0.311523f, 0.0830078f, -0.34668f, 0.107178f, -0.375732f, 0.131348f, -0.404785f,
+0.161621f, -0.426025f, 0.191895f, -0.447266f, 0.227295f, -0.458984f, 0.262695f, -0.470703f,
+0.301758f, -0.470703f, 0.326172f, -0.470703f, 0.345947f, -0.467773f, 0.365723f, -0.464844f,
+0.382324f, -0.459473f, 0.371094f, -0.408691f, 0.354004f, -0.419922f, 0.335938f, -0.42627f,
+0.317871f, -0.432617f, 0.291992f, -0.432617f, 0.265625f, -0.432617f, 0.242676f, -0.421387f,
+0.219727f, -0.410156f, 0.200195f, -0.390869f, 0.180664f, -0.371582f, 0.165283f, -0.345703f,
+0.149902f, -0.319824f, 0.13916f, -0.290039f, 0.128418f, -0.260254f, 0.122803f, -0.228516f,
+0.117188f, -0.196777f, 0.117188f, -0.165527f, 0.117188f, -0.134766f, 0.124023f, -0.113037f,
+0.130859f, -0.0913086f, 0.141846f, -0.0773926f, 0.152832f, -0.0634766f, 0.167236f,
+-0.0571289f, 0.181641f, -0.0507812f, 0.196777f, -0.0507812f, 0.224121f, -0.0507812f,
+0.256104f, -0.0686035f, 0.288086f, -0.0864258f, 0.317871f, -0.118652f, 0.421387f,
+-0.371094f, 0.421387f, -0.339355f, 0.401367f, -0.311035f, 0.381348f, -0.282715f,
+0.343018f, -0.26001f, 0.304688f, -0.237305f, 0.248291f, -0.221924f, 0.191895f, -0.206543f,
+0.119141f, -0.20166f, 0.118652f, -0.197266f, 0.11792f, -0.187988f, 0.117188f, -0.178711f,
+0.117188f, -0.166016f, 0.117188f, -0.14209f, 0.121826f, -0.119629f, 0.126465f, -0.097168f,
+0.138184f, -0.0795898f, 0.149902f, -0.0620117f, 0.169922f, -0.0515137f, 0.189941f,
+-0.0410156f, 0.220703f, -0.0410156f, 0.264648f, -0.0410156f, 0.301758f, -0.0559082f,
+0.338867f, -0.0708008f, 0.371094f, -0.0898438f, 0.385254f, -0.0693359f, 0.369629f,
+-0.0561523f, 0.348633f, -0.0419922f, 0.327637f, -0.027832f, 0.302979f, -0.0163574f,
+0.27832f, -0.00488281f, 0.250977f, 0.00244141f, 0.223633f, 0.00976562f, 0.195312f,
+0.00976562f, 0.153809f, 0.00976562f, 0.123047f, -0.00219727f, 0.0922852f, -0.0141602f,
+0.0717773f, -0.0361328f, 0.0512695f, -0.0581055f, 0.0410156f, -0.0898438f, 0.0307617f,
+-0.121582f, 0.0307617f, -0.161133f, 0.0307617f, -0.20459f, 0.0405273f, -0.244385f,
+0.050293f, -0.28418f, 0.0678711f, -0.318604f, 0.0854492f, -0.353027f, 0.109863f,
+-0.381104f, 0.134277f, -0.40918f, 0.162842f, -0.429199f, 0.191406f, -0.449219f, 0.223389f,
+-0.460205f, 0.255371f, -0.471191f, 0.288574f, -0.471191f, 0.319824f, -0.471191f,
+0.344482f, -0.463623f, 0.369141f, -0.456055f, 0.38623f, -0.442627f, 0.40332f, -0.429199f,
+0.412354f, -0.410889f, 0.421387f, -0.392578f, 0.421387f, -0.371094f, 0.123047f, -0.232422f,
+0.17627f, -0.236328f, 0.216309f, -0.249268f, 0.256348f, -0.262207f, 0.282959f, -0.281006f,
+0.30957f, -0.299805f, 0.322754f, -0.322998f, 0.335938f, -0.346191f, 0.335938f, -0.371094f,
+0.335938f, -0.398438f, 0.321045f, -0.416016f, 0.306152f, -0.433594f, 0.277832f, -0.433594f,
+0.249023f, -0.433594f, 0.223633f, -0.415283f, 0.198242f, -0.396973f, 0.177979f, -0.368164f,
+0.157715f, -0.339355f, 0.143555f, -0.303467f, 0.129395f, -0.267578f, 0.123047f, -0.232422f,
+0.0922852f, 0.212891f, 0.0112305f, 0.212891f, 0.121094f, -0.417969f, 0.0419922f,
+-0.417969f, 0.0458984f, -0.441895f, 0.128906f, -0.460938f, 0.134766f, -0.493164f,
+0.154297f, -0.602051f, 0.200439f, -0.653076f, 0.246582f, -0.704102f, 0.325195f, -0.704102f,
+0.347168f, -0.704102f, 0.36377f, -0.701416f, 0.380371f, -0.69873f, 0.393066f, -0.694824f,
+0.375977f, -0.599121f, 0.352051f, -0.599121f, 0.342773f, -0.654785f, 0.328613f, -0.665039f,
+0.301758f, -0.665039f, 0.284668f, -0.665039f, 0.272705f, -0.657471f, 0.260742f, -0.649902f,
+0.251709f, -0.634033f, 0.242676f, -0.618164f, 0.236084f, -0.59375f, 0.229492f, -0.569336f,
+0.223145f, -0.535156f, 0.208984f, -0.458984f, 0.311035f, -0.458984f, 0.304199f, -0.417969f,
+0.202148f, -0.417969f, 0.204102f, -0.0507812f, 0.220703f, -0.0507812f, 0.238037f,
+-0.0568848f, 0.255371f, -0.0629883f, 0.271973f, -0.0727539f, 0.288574f, -0.0825195f,
+0.303467f, -0.0947266f, 0.318359f, -0.106934f, 0.330078f, -0.118652f, 0.383789f,
+-0.42041f, 0.37207f, -0.42334f, 0.362793f, -0.425781f, 0.353516f, -0.428223f, 0.344482f,
+-0.429688f, 0.335449f, -0.431152f, 0.325195f, -0.431885f, 0.314941f, -0.432617f,
+0.301758f, -0.432617f, 0.262695f, -0.432617f, 0.229492f, -0.410156f, 0.196289f, -0.387695f,
+0.172119f, -0.350586f, 0.147949f, -0.313477f, 0.134521f, -0.265137f, 0.121094f, -0.216797f,
+0.121094f, -0.165527f, 0.121094f, -0.141113f, 0.126221f, -0.120117f, 0.131348f, -0.0991211f,
+0.141602f, -0.0837402f, 0.151855f, -0.0683594f, 0.16748f, -0.0595703f, 0.183105f,
+-0.0507812f, 0.204102f, -0.0507812f, 0.323242f, -0.078125f, 0.313477f, -0.0673828f,
+0.296631f, -0.0522461f, 0.279785f, -0.0371094f, 0.258789f, -0.0231934f, 0.237793f,
+-0.00927734f, 0.214111f, 0.000488281f, 0.19043f, 0.0102539f, 0.166992f, 0.0102539f,
+0.134766f, 0.0102539f, 0.109863f, -0.00170898f, 0.0849609f, -0.0136719f, 0.0681152f,
+-0.0351562f, 0.0512695f, -0.0566406f, 0.0424805f, -0.0866699f, 0.0336914f, -0.116699f,
+0.0336914f, -0.152832f, 0.0336914f, -0.196289f, 0.043457f, -0.236572f, 0.0532227f,
+-0.276855f, 0.0712891f, -0.312256f, 0.0893555f, -0.347656f, 0.114502f, -0.376709f,
+0.139648f, -0.405762f, 0.17041f, -0.426758f, 0.201172f, -0.447754f, 0.236572f, -0.459229f,
+0.271973f, -0.470703f, 0.310547f, -0.470703f, 0.327148f, -0.470703f, 0.348145f, -0.468994f,
+0.369141f, -0.467285f, 0.391113f, -0.4646f, 0.413086f, -0.461914f, 0.433838f, -0.458252f,
+0.45459f, -0.45459f, 0.470703f, -0.450684f, 0.388672f, 0.0170898f, 0.379395f, 0.0698242f,
+0.361572f, 0.107178f, 0.34375f, 0.144531f, 0.316406f, 0.167969f, 0.289062f, 0.191406f,
+0.250977f, 0.202148f, 0.212891f, 0.212891f, 0.163086f, 0.212891f, 0.136719f, 0.212891f,
+0.111816f, 0.209473f, 0.0869141f, 0.206055f, 0.0656738f, 0.200928f, 0.0444336f, 0.195801f,
+0.0275879f, 0.189697f, 0.0107422f, 0.183594f, 0.000488281f, 0.178223f, 0.00927734f,
+0.0668945f, 0.03125f, 0.0668945f, 0.0488281f, 0.128418f, 0.0664062f, 0.145508f, 0.0944824f,
+0.15625f, 0.122559f, 0.166992f, 0.162598f, 0.166992f, 0.19873f, 0.166992f, 0.223877f,
+0.156494f, 0.249023f, 0.145996f, 0.265381f, 0.128174f, 0.281738f, 0.110352f, 0.290771f,
+0.0866699f, 0.299805f, 0.0629883f, 0.304199f, 0.0366211f, 0.151855f, -0.660156f,
+0.0942383f, -0.671875f, 0.0981445f, -0.693848f, 0.23877f, -0.693848f, 0.195801f,
+-0.453125f, 0.193848f, -0.442871f, 0.191406f, -0.429199f, 0.188965f, -0.415527f,
+0.186768f, -0.402832f, 0.18457f, -0.390137f, 0.182373f, -0.379639f, 0.180176f, -0.369141f,
+0.179199f, -0.365723f, 0.195801f, -0.387695f, 0.215332f, -0.406982f, 0.234863f, -0.42627f,
+0.256836f, -0.44043f, 0.278809f, -0.45459f, 0.302246f, -0.462891f, 0.325684f, -0.471191f,
+0.350586f, -0.471191f, 0.373047f, -0.471191f, 0.391357f, -0.465332f, 0.409668f, -0.459473f,
+0.422607f, -0.446777f, 0.435547f, -0.434082f, 0.442627f, -0.414551f, 0.449707f, -0.39502f,
+0.449707f, -0.368164f, 0.449707f, -0.362305f, 0.448486f, -0.352295f, 0.447266f, -0.342285f,
+0.445312f, -0.330566f, 0.443359f, -0.318848f, 0.441406f, -0.306396f, 0.439453f, -0.293945f,
+0.4375f, -0.283203f, 0.394531f, -0.0336914f, 0.458496f, -0.0219727f, 0.45459f, 0,
+0.307617f, 0, 0.357422f, -0.28418f, 0.359375f, -0.294922f, 0.361328f, -0.306641f,
+0.363281f, -0.318359f, 0.36499f, -0.32959f, 0.366699f, -0.34082f, 0.367676f, -0.350098f,
+0.368652f, -0.359375f, 0.368652f, -0.365234f, 0.368652f, -0.387207f, 0.356934f, -0.400879f,
+0.345215f, -0.414551f, 0.319824f, -0.414551f, 0.299316f, -0.414551f, 0.277832f, -0.405273f,
+0.256348f, -0.395996f, 0.236572f, -0.381104f, 0.216797f, -0.366211f, 0.199707f, -0.347168f,
+0.182617f, -0.328125f, 0.170898f, -0.309082f, 0.116699f, 0, 0.0361328f, 0, 0.142578f,
+-0.0341797f, 0.219238f, -0.0219727f, 0.215332f, 0, 0.0556641f, 0, 0.130371f, -0.424805f,
+0.0673828f, -0.437012f, 0.0712891f, -0.458984f, 0.217285f, -0.458984f, 0.247559f,
+-0.608887f, 0.247559f, -0.598145f, 0.243408f, -0.588623f, 0.239258f, -0.579102f,
+0.231934f, -0.571777f, 0.224609f, -0.564453f, 0.214844f, -0.560303f, 0.205078f, -0.556152f,
+0.194336f, -0.556152f, 0.183594f, -0.556152f, 0.174072f, -0.560303f, 0.164551f, -0.564453f,
+0.157227f, -0.571777f, 0.149902f, -0.579102f, 0.145752f, -0.588623f, 0.141602f, -0.598145f,
+0.141602f, -0.608887f, 0.141602f, -0.619629f, 0.145752f, -0.629395f, 0.149902f, -0.63916f,
+0.157227f, -0.646484f, 0.164551f, -0.653809f, 0.174072f, -0.657959f, 0.183594f, -0.662109f,
+0.194336f, -0.662109f, 0.205078f, -0.662109f, 0.214844f, -0.657959f, 0.224609f, -0.653809f,
+0.231934f, -0.646484f, 0.239258f, -0.63916f, 0.243408f, -0.629395f, 0.247559f, -0.619629f,
+0.247559f, -0.608887f, 0.13916f, 0.019043f, 0.129883f, 0.0708008f, 0.114502f, 0.107666f,
+0.0991211f, 0.144531f, 0.0778809f, 0.167969f, 0.0566406f, 0.191406f, 0.0297852f,
+0.202148f, 0.00292969f, 0.212891f, -0.0288086f, 0.212891f, -0.0507812f, 0.212891f,
+-0.0717773f, 0.208252f, -0.0927734f, 0.203613f, -0.106934f, 0.198242f, -0.0908203f,
+0.106934f, -0.0678711f, 0.106934f, -0.0605469f, 0.160645f, -0.0551758f, 0.166016f,
+-0.046875f, 0.169922f, -0.0385742f, 0.173828f, -0.0258789f, 0.173828f, -0.012207f,
+0.173828f, -0.000488281f, 0.167969f, 0.0112305f, 0.162109f, 0.0209961f, 0.147461f,
+0.0307617f, 0.132812f, 0.0390625f, 0.107666f, 0.0473633f, 0.0825195f, 0.0541992f,
+0.0439453f, 0.137207f, -0.424805f, 0.0703125f, -0.437012f, 0.0742188f, -0.458984f,
+0.224121f, -0.458984f, 0.253418f, -0.608887f, 0.253418f, -0.598145f, 0.249268f, -0.588623f,
+0.245117f, -0.579102f, 0.237793f, -0.571777f, 0.230469f, -0.564453f, 0.220703f, -0.560303f,
+0.210938f, -0.556152f, 0.200195f, -0.556152f, 0.189453f, -0.556152f, 0.179932f, -0.560303f,
+0.17041f, -0.564453f, 0.163086f, -0.571777f, 0.155762f, -0.579102f, 0.151611f, -0.588623f,
+0.147461f, -0.598145f, 0.147461f, -0.608887f, 0.147461f, -0.619629f, 0.151611f, -0.629395f,
+0.155762f, -0.63916f, 0.163086f, -0.646484f, 0.17041f, -0.653809f, 0.179932f, -0.657959f,
+0.189453f, -0.662109f, 0.200195f, -0.662109f, 0.210938f, -0.662109f, 0.220703f, -0.657959f,
+0.230469f, -0.653809f, 0.237793f, -0.646484f, 0.245117f, -0.63916f, 0.249268f, -0.629395f,
+0.253418f, -0.619629f, 0.253418f, -0.608887f, 0.145996f, -0.660156f, 0.0800781f,
+-0.671875f, 0.0839844f, -0.693848f, 0.23291f, -0.693848f, 0.148926f, -0.221191f,
+0.35791f, -0.423828f, 0.312012f, -0.437012f, 0.315918f, -0.458984f, 0.458496f, -0.458984f,
+0.45459f, -0.437012f, 0.415039f, -0.425781f, 0.271484f, -0.288574f, 0.390137f, -0.0332031f,
+0.437988f, -0.0219727f, 0.434082f, 0, 0.318848f, 0, 0.212402f, -0.233887f, 0.140137f,
+-0.166016f, 0.109863f, 0, 0.0288086f, 0, 0.140137f, -0.0341797f, 0.216797f, -0.0219727f,
+0.212891f, 0, 0.0532227f, 0, 0.168945f, -0.660156f, 0.105957f, -0.671875f, 0.109863f,
+-0.693848f, 0.255859f, -0.693848f, 0.42627f, -0.364258f, 0.442383f, -0.387207f, 0.461426f,
+-0.406738f, 0.480469f, -0.42627f, 0.500488f, -0.440674f, 0.520508f, -0.455078f, 0.54126f,
+-0.463135f, 0.562012f, -0.471191f, 0.582031f, -0.471191f, 0.623047f, -0.471191f,
+0.646729f, -0.445068f, 0.67041f, -0.418945f, 0.67041f, -0.369629f, 0.67041f, -0.362305f,
+0.669434f, -0.352051f, 0.668457f, -0.341797f, 0.666748f, -0.330078f, 0.665039f, -0.318359f,
+0.663086f, -0.306152f, 0.661133f, -0.293945f, 0.65918f, -0.283203f, 0.616211f, -0.0341797f,
+0.680176f, -0.0219727f, 0.675781f, 0, 0.528809f, 0, 0.579102f, -0.28418f, 0.581055f,
+-0.294434f, 0.583008f, -0.306396f, 0.584961f, -0.318359f, 0.58667f, -0.32959f, 0.588379f,
+-0.34082f, 0.589355f, -0.350098f, 0.590332f, -0.359375f, 0.590332f, -0.365234f, 0.590332f,
+-0.387207f, 0.580078f, -0.400635f, 0.569824f, -0.414062f, 0.547852f, -0.414062f,
+0.536621f, -0.414062f, 0.522949f, -0.408203f, 0.509277f, -0.402344f, 0.495117f, -0.392334f,
+0.480957f, -0.382324f, 0.467529f, -0.369141f, 0.454102f, -0.355957f, 0.442871f, -0.341309f,
+0.431641f, -0.32666f, 0.423828f, -0.311035f, 0.416016f, -0.29541f, 0.413574f, -0.28125f,
+0.365234f, 0, 0.28418f, 0, 0.333984f, -0.28418f, 0.335938f, -0.294434f, 0.337891f,
+-0.306396f, 0.339844f, -0.318359f, 0.341797f, -0.32959f, 0.34375f, -0.34082f, 0.344971f,
+-0.350098f, 0.346191f, -0.359375f, 0.346191f, -0.365234f, 0.346191f, -0.387207f,
+0.335449f, -0.400635f, 0.324707f, -0.414062f, 0.301758f, -0.414062f, 0.290527f, -0.414062f,
+0.276855f, -0.408203f, 0.263184f, -0.402344f, 0.248779f, -0.392334f, 0.234375f, -0.382324f,
+0.220459f, -0.369141f, 0.206543f, -0.355957f, 0.195068f, -0.341309f, 0.183594f, -0.32666f,
+0.175781f, -0.311035f, 0.167969f, -0.29541f, 0.165527f, -0.28125f, 0.117188f, 0,
+0.0361328f, 0, 0.11084f, -0.424805f, 0.0532227f, -0.437012f, 0.0571289f, -0.458984f,
+0.192871f, -0.458984f, 0.179199f, -0.364258f, 0.195312f, -0.387207f, 0.214355f, -0.406738f,
+0.233398f, -0.42627f, 0.253906f, -0.440674f, 0.274414f, -0.455078f, 0.295166f, -0.463135f,
+0.315918f, -0.471191f, 0.335938f, -0.471191f, 0.378906f, -0.471191f, 0.402588f, -0.444092f,
+0.42627f, -0.416992f, 0.42627f, -0.364258f, 0.368652f, -0.365234f, 0.368652f, -0.387207f,
+0.356934f, -0.400879f, 0.345215f, -0.414551f, 0.319824f, -0.414551f, 0.299316f, -0.414551f,
+0.277832f, -0.405029f, 0.256348f, -0.395508f, 0.236328f, -0.380371f, 0.216309f, -0.365234f,
+0.199219f, -0.345947f, 0.182129f, -0.32666f, 0.17041f, -0.307617f, 0.116699f, 0,
+0.0356445f, 0, 0.110352f, -0.425293f, 0.0527344f, -0.4375f, 0.0566406f, -0.459473f,
+0.192383f, -0.459473f, 0.179199f, -0.365723f, 0.197754f, -0.389648f, 0.218018f, -0.40918f,
+0.238281f, -0.428711f, 0.26001f, -0.442383f, 0.281738f, -0.456055f, 0.304443f, -0.463623f,
+0.327148f, -0.471191f, 0.350586f, -0.471191f, 0.373047f, -0.471191f, 0.391357f, -0.465332f,
+0.409668f, -0.459473f, 0.422607f, -0.446777f, 0.435547f, -0.434082f, 0.442627f, -0.414551f,
+0.449707f, -0.39502f, 0.449707f, -0.368164f, 0.449707f, -0.362305f, 0.448486f, -0.352295f,
+0.447266f, -0.342285f, 0.445312f, -0.330566f, 0.443359f, -0.318848f, 0.441406f, -0.306396f,
+0.439453f, -0.293945f, 0.4375f, -0.283203f, 0.394531f, -0.0336914f, 0.458496f, -0.0219727f,
+0.45459f, 0, 0.307617f, 0, 0.357422f, -0.28418f, 0.359375f, -0.294922f, 0.361328f,
+-0.306641f, 0.363281f, -0.318359f, 0.36499f, -0.32959f, 0.366699f, -0.34082f, 0.367676f,
+-0.350098f, 0.368652f, -0.359375f, 0.368652f, -0.365234f, 0.115723f, -0.166016f,
+0.115723f, -0.100098f, 0.141357f, -0.0651855f, 0.166992f, -0.0302734f, 0.212891f,
+-0.0302734f, 0.246582f, -0.0302734f, 0.277588f, -0.0505371f, 0.308594f, -0.0708008f,
+0.332275f, -0.106201f, 0.355957f, -0.141602f, 0.370361f, -0.190186f, 0.384766f, -0.23877f,
+0.384766f, -0.295898f, 0.384766f, -0.363281f, 0.359131f, -0.398193f, 0.333496f, -0.433105f,
+0.285645f, -0.433105f, 0.252441f, -0.433105f, 0.22168f, -0.413086f, 0.190918f, -0.393066f,
+0.16748f, -0.357666f, 0.144043f, -0.322266f, 0.129883f, -0.273193f, 0.115723f, -0.224121f,
+0.115723f, -0.166016f, 0.208496f, 0.00976562f, 0.168945f, 0.00976562f, 0.135986f,
+-0.00341797f, 0.103027f, -0.0166016f, 0.0793457f, -0.0415039f, 0.0556641f, -0.0664062f,
+0.0427246f, -0.102051f, 0.0297852f, -0.137695f, 0.0297852f, -0.182617f, 0.0297852f,
+-0.239746f, 0.0480957f, -0.291992f, 0.0664062f, -0.344238f, 0.100342f, -0.384033f,
+0.134277f, -0.423828f, 0.182617f, -0.44751f, 0.230957f, -0.471191f, 0.291504f, -0.471191f,
+0.331055f, -0.471191f, 0.364014f, -0.458008f, 0.396973f, -0.444824f, 0.420654f, -0.419922f,
+0.444336f, -0.39502f, 0.457275f, -0.359375f, 0.470215f, -0.32373f, 0.470215f, -0.278809f,
+0.470215f, -0.22168f, 0.451904f, -0.169434f, 0.433594f, -0.117188f, 0.399658f, -0.0773926f,
+0.365723f, -0.0375977f, 0.317383f, -0.013916f, 0.269043f, 0.00976562f, 0.208496f,
+0.00976562f, 0.11377f, -0.000976562f, 0.113281f, 0.00488281f, 0.112305f, 0.0124512f,
+0.111328f, 0.0200195f, 0.110352f, 0.0280762f, 0.109375f, 0.0361328f, 0.108154f, 0.0429688f,
+0.106934f, 0.0498047f, 0.106445f, 0.0541992f, 0.0849609f, 0.178223f, 0.163086f, 0.189941f,
+0.15918f, 0.212891f, -0.0585938f, 0.212891f, -0.0546875f, 0.189941f, 0.00439453f,
+0.178223f, 0.111328f, -0.424805f, 0.0610352f, -0.437012f, 0.0649414f, -0.458984f,
+0.194336f, -0.458984f, 0.185059f, -0.384766f, 0.226562f, -0.426758f, 0.265381f, -0.448975f,
+0.304199f, -0.471191f, 0.338867f, -0.471191f, 0.366699f, -0.471191f, 0.390625f, -0.460693f,
+0.414551f, -0.450195f, 0.432129f, -0.429688f, 0.449707f, -0.40918f, 0.459717f, -0.378662f,
+0.469727f, -0.348145f, 0.469727f, -0.308105f, 0.469727f, -0.266113f, 0.460693f, -0.226318f,
+0.45166f, -0.186523f, 0.43457f, -0.151123f, 0.41748f, -0.115723f, 0.393066f, -0.0861816f,
+0.368652f, -0.0566406f, 0.338379f, -0.0354004f, 0.308105f, -0.0141602f, 0.272461f,
+-0.00219727f, 0.236816f, 0.00976562f, 0.196777f, 0.00976562f, 0.187012f, 0.00976562f,
+0.175537f, 0.0090332f, 0.164062f, 0.00830078f, 0.152588f, 0.00683594f, 0.141113f,
+0.00537109f, 0.130859f, 0.00341797f, 0.120605f, 0.00146484f, 0.11377f, -0.000976562f,
+0.125488f, -0.0522461f, 0.134277f, -0.0454102f, 0.144775f, -0.0407715f, 0.155273f,
+-0.0361328f, 0.16626f, -0.0334473f, 0.177246f, -0.0307617f, 0.187988f, -0.0297852f,
+0.19873f, -0.0288086f, 0.20752f, -0.0288086f, 0.235352f, -0.0288086f, 0.259277f,
+-0.0402832f, 0.283203f, -0.0517578f, 0.302734f, -0.0717773f, 0.322266f, -0.0917969f,
+0.337158f, -0.118164f, 0.352051f, -0.144531f, 0.362061f, -0.174072f, 0.37207f, -0.203613f,
+0.377197f, -0.234863f, 0.382324f, -0.266113f, 0.382324f, -0.29541f, 0.382324f, -0.326172f,
+0.375732f, -0.3479f, 0.369141f, -0.369629f, 0.35791f, -0.383545f, 0.34668f, -0.397461f,
+0.332275f, -0.403809f, 0.317871f, -0.410156f, 0.302246f, -0.410156f, 0.289551f, -0.410156f,
+0.27417f, -0.405273f, 0.258789f, -0.400391f, 0.242432f, -0.391602f, 0.226074f, -0.382812f,
+0.209717f, -0.370361f, 0.193359f, -0.35791f, 0.178711f, -0.342285f, 0.20459f, -0.0522461f,
+0.22168f, -0.0522461f, 0.239258f, -0.0546875f, 0.256836f, -0.0571289f, 0.273193f,
+-0.0617676f, 0.289551f, -0.0664062f, 0.304199f, -0.0727539f, 0.318848f, -0.0791016f,
+0.330566f, -0.0869141f, 0.389648f, -0.42041f, 0.365723f, -0.426758f, 0.341553f, -0.430176f,
+0.317383f, -0.433594f, 0.290039f, -0.433594f, 0.250488f, -0.433594f, 0.21875f, -0.411377f,
+0.187012f, -0.38916f, 0.164795f, -0.352051f, 0.142578f, -0.314941f, 0.130615f, -0.266846f,
+0.118652f, -0.21875f, 0.118652f, -0.16748f, 0.118652f, -0.143066f, 0.123291f, -0.121826f,
+0.12793f, -0.100586f, 0.138184f, -0.0852051f, 0.148438f, -0.0698242f, 0.164795f,
+-0.0610352f, 0.181152f, -0.0522461f, 0.20459f, -0.0522461f, 0.327637f, -0.0522461f,
+0.317871f, -0.0449219f, 0.30127f, -0.0344238f, 0.284668f, -0.0239258f, 0.263672f,
+-0.013916f, 0.242676f, -0.00390625f, 0.218994f, 0.00292969f, 0.195312f, 0.00976562f,
+0.170898f, 0.00976562f, 0.104004f, 0.00976562f, 0.0686035f, -0.0317383f, 0.0332031f,
+-0.0732422f, 0.0332031f, -0.155273f, 0.0332031f, -0.220215f, 0.0522461f, -0.277832f,
+0.0712891f, -0.335449f, 0.107178f, -0.378418f, 0.143066f, -0.421387f, 0.194824f,
+-0.446289f, 0.246582f, -0.471191f, 0.311523f, -0.471191f, 0.328125f, -0.471191f,
+0.349854f, -0.469482f, 0.371582f, -0.467773f, 0.394287f, -0.464844f, 0.416992f, -0.461914f,
+0.438477f, -0.458252f, 0.459961f, -0.45459f, 0.476562f, -0.450684f, 0.362793f, 0.178223f,
+0.421875f, 0.189941f, 0.417969f, 0.212891f, 0.275879f, 0.212891f, 0.30957f, 0.0268555f,
+0.312988f, 0.00830078f, 0.317383f, -0.0114746f, 0.321777f, -0.03125f, 0.327637f,
+-0.0522461f, 0.353516f, -0.471191f, 0.363281f, -0.471191f, 0.375f, -0.469971f, 0.386719f,
+-0.46875f, 0.39209f, -0.467285f, 0.370605f, -0.347168f, 0.349609f, -0.347168f, 0.331055f,
+-0.40918f, 0.30957f, -0.40918f, 0.288086f, -0.400391f, 0.266602f, -0.391602f, 0.246582f,
+-0.376709f, 0.226562f, -0.361816f, 0.208008f, -0.342285f, 0.189453f, -0.322754f,
+0.173828f, -0.300781f, 0.121582f, 0, 0.0405273f, 0, 0.115234f, -0.424805f, 0.0576172f,
+-0.437012f, 0.0615234f, -0.458984f, 0.196777f, -0.458984f, 0.181641f, -0.355469f,
+0.201172f, -0.384766f, 0.2229f, -0.406738f, 0.244629f, -0.428711f, 0.266602f, -0.442871f,
+0.288574f, -0.457031f, 0.310791f, -0.464111f, 0.333008f, -0.471191f, 0.353516f, -0.471191f,
+0.337891f, -0.134766f, 0.337891f, -0.0610352f, 0.291016f, -0.0256348f, 0.244141f,
+0.00976562f, 0.148926f, 0.00976562f, 0.10498f, 0.00976562f, 0.0703125f, -0.000244141f,
+0.0356445f, -0.0102539f, 0.012207f, -0.0205078f, 0.0322266f, -0.130859f, 0.0541992f,
+-0.130859f, 0.0625f, -0.0639648f, 0.0751953f, -0.050293f, 0.0983887f, -0.0395508f,
+0.121582f, -0.0288086f, 0.150879f, -0.0288086f, 0.172852f, -0.0288086f, 0.192383f,
+-0.0332031f, 0.211914f, -0.0375977f, 0.226562f, -0.0476074f, 0.241211f, -0.0576172f,
+0.249512f, -0.0744629f, 0.257812f, -0.0913086f, 0.257812f, -0.116211f, 0.257812f,
+-0.141602f, 0.243408f, -0.158691f, 0.229004f, -0.175781f, 0.20752f, -0.189209f, 0.186035f,
+-0.202637f, 0.160889f, -0.214844f, 0.135742f, -0.227051f, 0.114258f, -0.24292f, 0.0927734f,
+-0.258789f, 0.0783691f, -0.280762f, 0.0639648f, -0.302734f, 0.0639648f, -0.335938f,
+0.0639648f, -0.372559f, 0.0773926f, -0.398438f, 0.0908203f, -0.424316f, 0.113525f,
+-0.44043f, 0.13623f, -0.456543f, 0.165771f, -0.463867f, 0.195312f, -0.471191f, 0.228027f,
+-0.471191f, 0.263184f, -0.471191f, 0.295898f, -0.466064f, 0.328613f, -0.460938f,
+0.358887f, -0.454102f, 0.34082f, -0.352051f, 0.317871f, -0.352051f, 0.311035f, -0.404785f,
+0.297363f, -0.416992f, 0.276123f, -0.424561f, 0.254883f, -0.432129f, 0.22998f, -0.432129f,
+0.189941f, -0.432129f, 0.166016f, -0.413818f, 0.14209f, -0.395508f, 0.14209f, -0.356934f,
+0.14209f, -0.333008f, 0.156494f, -0.316895f, 0.170898f, -0.300781f, 0.192871f, -0.287354f,
+0.214844f, -0.273926f, 0.23999f, -0.260986f, 0.265137f, -0.248047f, 0.287109f, -0.231445f,
+0.309082f, -0.214844f, 0.323486f, -0.19165f, 0.337891f, -0.168457f, 0.337891f, -0.134766f,
+0.128906f, -0.0849609f, 0.128906f, -0.0629883f, 0.139893f, -0.052002f, 0.150879f,
+-0.0410156f, 0.167969f, -0.0410156f, 0.188965f, -0.0410156f, 0.206543f, -0.0449219f,
+0.224121f, -0.0488281f, 0.242188f, -0.0556641f, 0.252441f, -0.0327148f, 0.227539f,
+-0.0151367f, 0.197998f, -0.00268555f, 0.168457f, 0.00976562f, 0.130859f, 0.00976562f,
+0.110352f, 0.00976562f, 0.0947266f, 0.00317383f, 0.0791016f, -0.00341797f, 0.0686035f,
+-0.0151367f, 0.0581055f, -0.0268555f, 0.0529785f, -0.0432129f, 0.0478516f, -0.0595703f,
+0.0478516f, -0.0791016f, 0.0478516f, -0.0932617f, 0.050293f, -0.111328f, 0.0527344f,
+-0.129395f, 0.0556641f, -0.145996f, 0.104004f, -0.417969f, 0.0439453f, -0.417969f,
+0.0478516f, -0.439941f, 0.112793f, -0.458984f, 0.179688f, -0.562988f, 0.210938f,
+-0.562988f, 0.192871f, -0.458984f, 0.297852f, -0.458984f, 0.290039f, -0.417969f,
+0.185059f, -0.417969f, 0.137695f, -0.149902f, 0.133789f, -0.129883f, 0.131348f, -0.112793f,
+0.128906f, -0.0957031f, 0.128906f, -0.0849609f, 0.130859f, -0.0942383f, 0.130859f,
+-0.0722656f, 0.142578f, -0.0585938f, 0.154297f, -0.0449219f, 0.179688f, -0.0449219f,
+0.200195f, -0.0449219f, 0.22168f, -0.0541992f, 0.243164f, -0.0634766f, 0.262939f,
+-0.0783691f, 0.282715f, -0.0932617f, 0.299805f, -0.112305f, 0.316895f, -0.131348f,
+0.328613f, -0.150391f, 0.382812f, -0.458984f, 0.463867f, -0.458984f, 0.38916f, -0.0341797f,
+0.446777f, -0.0219727f, 0.442871f, 0, 0.307129f, 0, 0.320312f, -0.0942383f, 0.301758f,
+-0.0703125f, 0.281494f, -0.0507812f, 0.26123f, -0.03125f, 0.239502f, -0.017334f,
+0.217773f, -0.00341797f, 0.195068f, 0.00415039f, 0.172363f, 0.0117188f, 0.148926f,
+0.0117188f, 0.126465f, 0.0117188f, 0.108154f, 0.00585938f, 0.0898438f, 0, 0.0769043f,
+-0.0126953f, 0.0639648f, -0.0253906f, 0.0568848f, -0.0446777f, 0.0498047f, -0.0639648f,
+0.0498047f, -0.0913086f, 0.0498047f, -0.097168f, 0.0510254f, -0.106934f, 0.0522461f,
+-0.116699f, 0.0539551f, -0.128418f, 0.0556641f, -0.140137f, 0.0578613f, -0.152588f,
+0.0600586f, -0.165039f, 0.0620117f, -0.17627f, 0.10498f, -0.425293f, 0.0507812f,
+-0.437012f, 0.0546875f, -0.458984f, 0.191895f, -0.458984f, 0.14209f, -0.175293f,
+0.140137f, -0.164551f, 0.138184f, -0.152832f, 0.13623f, -0.141113f, 0.134521f, -0.129883f,
+0.132812f, -0.118652f, 0.131836f, -0.109375f, 0.130859f, -0.100098f, 0.130859f, -0.0942383f,
+0.335449f, -0.299805f, 0.352539f, -0.327637f, 0.359619f, -0.351562f, 0.366699f, -0.375488f,
+0.366699f, -0.394043f, 0.366699f, -0.412109f, 0.356445f, -0.422852f, 0.346191f, -0.433594f,
+0.334473f, -0.437012f, 0.338379f, -0.458984f, 0.431152f, -0.458984f, 0.435547f, -0.455078f,
+0.439697f, -0.446777f, 0.443848f, -0.438477f, 0.443848f, -0.428223f, 0.443848f, -0.412598f,
+0.436035f, -0.386475f, 0.428223f, -0.360352f, 0.40332f, -0.320801f, 0.196777f, 0.00976562f,
+0.161133f, 0.00976562f, 0.0688477f, -0.424805f, 0.0136719f, -0.437012f, 0.0180664f,
+-0.458984f, 0.143066f, -0.458984f, 0.213867f, -0.101562f, 0.439453f, 0.00976562f,
+0.407227f, 0.00976562f, 0.34668f, -0.29248f, 0.191406f, 0.00976562f, 0.157227f, 0.00976562f,
+0.0737305f, -0.424805f, 0.0239258f, -0.437012f, 0.027832f, -0.458984f, 0.147461f,
+-0.458984f, 0.211426f, -0.11377f, 0.362305f, -0.407227f, 0.398926f, -0.407227f, 0.458496f,
+-0.111816f, 0.554688f, -0.301758f, 0.569336f, -0.331055f, 0.575928f, -0.353271f,
+0.58252f, -0.375488f, 0.58252f, -0.394043f, 0.58252f, -0.412109f, 0.572266f, -0.422852f,
+0.562012f, -0.433594f, 0.550293f, -0.437012f, 0.554199f, -0.458984f, 0.646973f, -0.458984f,
+0.651367f, -0.455078f, 0.655518f, -0.446777f, 0.659668f, -0.438477f, 0.659668f, -0.428223f,
+0.659668f, -0.412598f, 0.650635f, -0.387207f, 0.641602f, -0.361816f, 0.619141f, -0.320801f,
+0.121094f, -0.115234f, 0.105469f, -0.100098f, 0.095459f, -0.0888672f, 0.0854492f,
+-0.0776367f, 0.0795898f, -0.0690918f, 0.0737305f, -0.0605469f, 0.0715332f, -0.0537109f,
+0.0693359f, -0.046875f, 0.0693359f, -0.0410156f, 0.0693359f, -0.0332031f, 0.0749512f,
+-0.0288086f, 0.0805664f, -0.0244141f, 0.0898438f, -0.0219727f, 0.0859375f, 0, -0.00439453f,
+0, -0.00732422f, -0.00244141f, -0.00976562f, -0.00805664f, -0.012207f, -0.0136719f,
+-0.012207f, -0.0209961f, -0.012207f, -0.027832f, -0.00854492f, -0.0358887f, -0.00488281f,
+-0.0439453f, 0.00292969f, -0.0541992f, 0.0107422f, -0.0644531f, 0.0234375f, -0.0776367f,
+0.0361328f, -0.0908203f, 0.0546875f, -0.10791f, 0.187988f, -0.231934f, 0.104004f,
+-0.424805f, 0.0517578f, -0.437012f, 0.0556641f, -0.458984f, 0.176758f, -0.458984f,
+0.247559f, -0.28418f, 0.308105f, -0.341797f, 0.339355f, -0.371582f, 0.352051f, -0.388672f,
+0.364746f, -0.405762f, 0.364746f, -0.417969f, 0.364746f, -0.421875f, 0.362061f, -0.424805f,
+0.359375f, -0.427734f, 0.35498f, -0.429932f, 0.350586f, -0.432129f, 0.345459f, -0.433838f,
+0.340332f, -0.435547f, 0.335938f, -0.437012f, 0.339844f, -0.458984f, 0.42627f, -0.458984f,
+0.430664f, -0.455566f, 0.433594f, -0.450439f, 0.436523f, -0.445312f, 0.436523f, -0.437988f,
+0.436523f, -0.40918f, 0.369141f, -0.345215f, 0.264648f, -0.24707f, 0.358398f, -0.0322266f,
+0.415039f, -0.0219727f, 0.411133f, 0, 0.286133f, 0, 0.20459f, -0.195312f, 0.0253906f,
+-0.458984f, 0.150391f, -0.458984f, 0.221191f, -0.101562f, 0.335938f, -0.299805f,
+0.352051f, -0.328125f, 0.359619f, -0.351807f, 0.367188f, -0.375488f, 0.367188f, -0.394043f,
+0.367188f, -0.412109f, 0.356934f, -0.422852f, 0.34668f, -0.433594f, 0.334961f, -0.437012f,
+0.338867f, -0.458984f, 0.431641f, -0.458984f, 0.436035f, -0.455078f, 0.440186f, -0.446777f,
+0.444336f, -0.438477f, 0.444336f, -0.428223f, 0.444336f, -0.412598f, 0.436035f, -0.386963f,
+0.427734f, -0.361328f, 0.403809f, -0.320801f, 0.210449f, 0.00488281f, 0.181641f,
+0.0537109f, 0.156006f, 0.0927734f, 0.130371f, 0.131836f, 0.104736f, 0.15918f, 0.0791016f,
+0.186523f, 0.0510254f, 0.201172f, 0.0229492f, 0.21582f, -0.0107422f, 0.21582f, -0.0234375f,
+0.21582f, -0.032959f, 0.215332f, -0.0424805f, 0.214844f, -0.0505371f, 0.213623f,
+-0.0585938f, 0.212402f, -0.0664062f, 0.210938f, -0.0742188f, 0.209473f, -0.0834961f,
+0.207031f, -0.0654297f, 0.10791f, -0.043457f, 0.10791f, -0.0356445f, 0.154785f, -0.0234375f,
+0.166016f, 0.00439453f, 0.166016f, 0.0253906f, 0.166016f, 0.045166f, 0.153809f, 0.0649414f,
+0.141602f, 0.0827637f, 0.122314f, 0.100586f, 0.103027f, 0.115967f, 0.0795898f, 0.131348f,
+0.0561523f, 0.143555f, 0.0341797f, 0.165527f, -0.00585938f, 0.0761719f, -0.424805f,
+0.0214844f, -0.437012f, -0.0112305f, 0, -0.00683594f, -0.0219727f, 0.268555f, -0.419922f,
+0.195801f, -0.419922f, 0.182617f, -0.419922f, 0.168701f, -0.418701f, 0.154785f, -0.41748f,
+0.142578f, -0.415283f, 0.130371f, -0.413086f, 0.120605f, -0.409912f, 0.11084f, -0.406738f,
+0.10498f, -0.402832f, 0.078125f, -0.336914f, 0.0551758f, -0.336914f, 0.0771484f,
+-0.458984f, 0.375977f, -0.458984f, 0.37207f, -0.435059f, 0.0976562f, -0.0390625f,
+0.193848f, -0.0390625f, 0.221191f, -0.0390625f, 0.24707f, -0.045166f, 0.272949f,
+-0.0512695f, 0.290039f, -0.0620117f, 0.327148f, -0.133789f, 0.350098f, -0.133789f,
+0.314941f, 0, 0.179199f, 0.133789f, 0.125977f, 0.133789f, 0.0996094f, 0.106201f,
+0.0732422f, 0.0786133f, 0.0732422f, 0.0297852f, 0.0732422f, 0.0126953f, 0.0771484f,
+-0.00976562f, 0.102539f, -0.153809f, 0.104492f, -0.163574f, 0.105225f, -0.171875f,
+0.105957f, -0.180176f, 0.105957f, -0.188477f, 0.105957f, -0.209473f, 0.100098f, -0.224609f,
+0.0942383f, -0.239746f, 0.0830078f, -0.249512f, 0.0717773f, -0.259277f, 0.0554199f,
+-0.26416f, 0.0390625f, -0.269043f, 0.0180664f, -0.27002f, 0.0219727f, -0.291992f,
+0.046875f, -0.29248f, 0.067627f, -0.299316f, 0.0883789f, -0.306152f, 0.104248f, -0.320068f,
+0.120117f, -0.333984f, 0.130859f, -0.355469f, 0.141602f, -0.376953f, 0.146973f, -0.407227f,
+0.172363f, -0.550781f, 0.18457f, -0.619629f, 0.2229f, -0.656738f, 0.26123f, -0.693848f,
+0.325195f, -0.693848f, 0.391113f, -0.693848f, 0.387207f, -0.670898f, 0.356934f, -0.670898f,
+0.3125f, -0.670898f, 0.289062f, -0.644287f, 0.265625f, -0.617676f, 0.256348f, -0.565918f,
+0.227539f, -0.404785f, 0.223145f, -0.380371f, 0.212402f, -0.359863f, 0.20166f, -0.339355f,
+0.186523f, -0.323486f, 0.171387f, -0.307617f, 0.152344f, -0.297119f, 0.133301f, -0.286621f,
+0.112305f, -0.282227f, 0.112305f, -0.280762f, 0.146484f, -0.272461f, 0.166504f, -0.247559f,
+0.186523f, -0.222656f, 0.186523f, -0.18457f, 0.186523f, -0.177734f, 0.186035f, -0.171143f,
+0.185547f, -0.164551f, 0.184082f, -0.157227f, 0.155273f, 0.00585938f, 0.15332f, 0.0161133f,
+0.152344f, 0.0256348f, 0.151367f, 0.0351562f, 0.151367f, 0.043457f, 0.151367f, 0.0766602f,
+0.16748f, 0.09375f, 0.183594f, 0.11084f, 0.21875f, 0.11084f, 0.249023f, 0.11084f,
+0.245117f, 0.133789f, 0.130371f, 0.21582f, 0.130371f, -0.693848f, 0.180176f, -0.693848f,
+0.180176f, 0.21582f, 0.0175781f, 0.133789f, 0.0214844f, 0.11084f, 0.0517578f, 0.11084f,
+0.0961914f, 0.11084f, 0.119629f, 0.0842285f, 0.143066f, 0.0576172f, 0.152344f, 0.00585938f,
+0.181152f, -0.157227f, 0.185547f, -0.182129f, 0.196045f, -0.202637f, 0.206543f, -0.223145f,
+0.22168f, -0.239014f, 0.236816f, -0.254883f, 0.255859f, -0.265381f, 0.274902f, -0.275879f,
+0.296875f, -0.280762f, 0.296875f, -0.282227f, 0.263184f, -0.290039f, 0.24292f, -0.31543f,
+0.222656f, -0.34082f, 0.222656f, -0.379395f, 0.222656f, -0.385742f, 0.223145f, -0.391846f,
+0.223633f, -0.397949f, 0.224609f, -0.404785f, 0.253418f, -0.565918f, 0.255371f, -0.57666f,
+0.256348f, -0.585938f, 0.257324f, -0.595215f, 0.257324f, -0.603516f, 0.257324f, -0.637207f,
+0.241455f, -0.654053f, 0.225586f, -0.670898f, 0.189941f, -0.670898f, 0.159668f, -0.670898f,
+0.163574f, -0.693848f, 0.22998f, -0.693848f, 0.283203f, -0.693848f, 0.309326f, -0.667725f,
+0.335449f, -0.641602f, 0.335449f, -0.591797f, 0.335449f, -0.582031f, 0.334473f, -0.572021f,
+0.333496f, -0.562012f, 0.331543f, -0.550781f, 0.306152f, -0.407227f, 0.303223f, -0.388672f,
+0.303223f, -0.373535f, 0.303223f, -0.331055f, 0.326172f, -0.312256f, 0.349121f, -0.293457f,
+0.391113f, -0.291992f, 0.387207f, -0.27002f, 0.362305f, -0.269043f, 0.341553f, -0.262207f,
+0.320801f, -0.255371f, 0.304932f, -0.241455f, 0.289062f, -0.227539f, 0.278076f, -0.206055f,
+0.26709f, -0.18457f, 0.261719f, -0.153809f, 0.236328f, -0.00976562f, 0.230469f, 0.0234375f,
+0.217773f, 0.0498047f, 0.205078f, 0.0761719f, 0.185791f, 0.0949707f, 0.166504f, 0.11377f,
+0.140869f, 0.123779f, 0.115234f, 0.133789f, 0.0839844f, 0.133789f, 0.394043f, -0.245117f,
+0.371582f, -0.245117f, 0.351074f, -0.253906f, 0.330566f, -0.262695f, 0.311279f, -0.275635f,
+0.291992f, -0.288574f, 0.27417f, -0.303955f, 0.256348f, -0.319336f, 0.239258f, -0.332275f,
+0.222168f, -0.345215f, 0.205566f, -0.354004f, 0.188965f, -0.362793f, 0.172363f, -0.362793f,
+0.152344f, -0.362793f, 0.138184f, -0.355713f, 0.124023f, -0.348633f, 0.114258f, -0.333984f,
+0.104492f, -0.319336f, 0.098877f, -0.297119f, 0.0932617f, -0.274902f, 0.090332f,
+-0.245117f, 0.0410156f, -0.245117f, 0.0439453f, -0.274902f, 0.0505371f, -0.304932f,
+0.0571289f, -0.334961f, 0.0712891f, -0.359131f, 0.0854492f, -0.383301f, 0.109619f,
+-0.398193f, 0.133789f, -0.413086f, 0.172363f, -0.413086f, 0.195801f, -0.413086f,
+0.216797f, -0.404297f, 0.237793f, -0.395508f, 0.25708f, -0.382324f, 0.276367f, -0.369141f,
+0.294434f, -0.354004f, 0.3125f, -0.338867f, 0.329346f, -0.325684f, 0.346191f, -0.3125f,
+0.362305f, -0.303711f, 0.378418f, -0.294922f, 0.394043f, -0.294922f, 0.413574f, -0.294922f,
+0.427246f, -0.302734f, 0.440918f, -0.310547f, 0.450439f, -0.325684f, 0.459961f, -0.34082f,
+0.465576f, -0.362793f, 0.471191f, -0.384766f, 0.475098f, -0.413086f, 0.525391f, -0.413086f,
+0.521484f, -0.383301f, 0.514404f, -0.353516f, 0.507324f, -0.32373f, 0.49292f, -0.299561f,
+0.478516f, -0.275391f, 0.454834f, -0.260254f, 0.431152f, -0.245117f, 0.394043f, -0.245117f
+};
+
+const unsigned char LiberationSerifItalicVerbs[] = {
+6, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 0, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 0, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1,
+1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 5, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 5, 0,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5,
+0, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 5, 6, 0,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1,
+1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6,
+0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2,
+2, 2, 2, 2, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
+1, 1, 5, 6, 0, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0,
+1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1,
+2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36,
+37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifItalicWidths[] = {
+0x0000c720, 0x00004000, 0x00005540, 0x00006b80, 0x00008000, 0x00008000, 0x0000d540,
+0x0000c720, 0x000036c0, 0x00005540, 0x00005540, 0x00008000, 0x0000acc0, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x00005540, 0x0000acc0, 0x0000acc0, 0x0000acc0, 0x00008000, 0x0000eb80, 0x00009c60,
+0x00009c60, 0x0000aac0, 0x0000b8e0, 0x00009c60, 0x00009c60, 0x0000b8e0, 0x0000b8e0,
+0x00005540, 0x000071a0, 0x0000aac0, 0x00008e60, 0x0000d540, 0x0000aac0, 0x0000b8e0,
+0x00009c60, 0x0000b8e0, 0x00009c60, 0x00008000, 0x00008e60, 0x0000b8e0, 0x00009c60,
+0x0000d540, 0x00009c60, 0x00008e60, 0x00008e60, 0x000063a0, 0x00004720, 0x000063a0,
+0x00006c00, 0x00008000, 0x00005540, 0x00008000, 0x00008000, 0x000071a0, 0x00008000,
+0x000071a0, 0x00004720, 0x00008000, 0x00008000, 0x00004720, 0x00004720, 0x000071a0,
+0x00004720, 0x0000b8e0, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x000063a0,
+0x000063a0, 0x00004720, 0x00008000, 0x000071a0, 0x0000aac0, 0x000071a0, 0x000071a0,
+0x000063a0, 0x00006660, 0x00004660, 0x00006660, 0x00008a80
+};
+
+const int LiberationSerifItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifItalicMetrics = {
+0x30307833, -0.980957f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.26465f, 0.0197601f,
+-0.176758f, 1.08789f, 0.469727f, 0.0103607f, 0.0488281f, 0.108887f
+};
+
+const SkScalar LiberationSerifBoldItalicPoints[] = {
+0.202637f, -0.205078f, 0.15625f, -0.205078f, 0.185547f, -0.654785f, 0.331543f, -0.654785f,
+0.157227f, 0.0141602f, 0.140137f, 0.0141602f, 0.125488f, 0.0078125f, 0.11084f, 0.00146484f,
+0.0998535f, -0.00952148f, 0.0888672f, -0.0205078f, 0.0825195f, -0.0351562f, 0.0761719f,
+-0.0498047f, 0.0761719f, -0.0668945f, 0.0761719f, -0.0834961f, 0.0825195f, -0.0983887f,
+0.0888672f, -0.113281f, 0.0998535f, -0.124268f, 0.11084f, -0.135254f, 0.125488f,
+-0.141602f, 0.140137f, -0.147949f, 0.157227f, -0.147949f, 0.173828f, -0.147949f,
+0.188721f, -0.141602f, 0.203613f, -0.135254f, 0.2146f, -0.124268f, 0.225586f, -0.113281f,
+0.231934f, -0.0983887f, 0.238281f, -0.0834961f, 0.238281f, -0.0668945f, 0.238281f,
+-0.0498047f, 0.231934f, -0.0351562f, 0.225586f, -0.0205078f, 0.2146f, -0.00952148f,
+0.203613f, 0.00146484f, 0.188721f, 0.0078125f, 0.173828f, 0.0141602f, 0.157227f,
+0.0141602f, 0.372559f, -0.654785f, 0.48877f, -0.654785f, 0.40918f, -0.419922f, 0.368164f,
+-0.419922f, 0.184082f, -0.654785f, 0.300293f, -0.654785f, 0.220703f, -0.419922f,
+0.179688f, -0.419922f, 0.348145f, -0.200684f, 0.275879f, 0, 0.202148f, 0, 0.274414f,
+-0.200684f, 0.146484f, -0.200684f, 0.0751953f, 0, 0, 0, 0.0722656f, -0.200684f, -0.00244141f,
+-0.200684f, 0.00830078f, -0.260742f, 0.0952148f, -0.260742f, 0.145508f, -0.400879f,
+0.0327148f, -0.400879f, 0.043457f, -0.460938f, 0.16748f, -0.460938f, 0.237305f, -0.654785f,
+0.311523f, -0.654785f, 0.241211f, -0.460938f, 0.369141f, -0.460938f, 0.439453f, -0.654785f,
+0.513184f, -0.654785f, 0.442871f, -0.460938f, 0.51709f, -0.460938f, 0.506348f, -0.400879f,
+0.421387f, -0.400879f, 0.37207f, -0.260742f, 0.481934f, -0.260742f, 0.471191f, -0.200684f,
+0.219238f, -0.400879f, 0.168945f, -0.260742f, 0.296875f, -0.260742f, 0.347656f, -0.400879f,
+0.348145f, -0.661133f, 0.382812f, -0.65918f, 0.41626f, -0.654053f, 0.449707f, -0.648926f,
+0.479492f, -0.641113f, 0.452148f, -0.485352f, 0.408691f, -0.485352f, 0.405273f, -0.581055f,
+0.391602f, -0.591309f, 0.375244f, -0.598633f, 0.358887f, -0.605957f, 0.338379f, -0.608887f,
+0.29834f, -0.395508f, 0.325195f, -0.380371f, 0.353027f, -0.363281f, 0.380859f, -0.346191f,
+0.403076f, -0.324219f, 0.425293f, -0.302246f, 0.439453f, -0.273438f, 0.453613f, -0.244629f,
+0.453613f, -0.206543f, 0.453613f, -0.107422f, 0.394775f, -0.0539551f, 0.335938f,
+-0.000488281f, 0.222168f, 0.0078125f, 0.209473f, 0.0761719f, 0.159668f, 0.0761719f,
+0.171875f, 0.00976562f, 0.110352f, 0.00878906f, 0.0646973f, -0.00170898f, 0.019043f,
+-0.012207f, -0.0117188f, -0.0249023f, 0.0195312f, -0.200684f, 0.0625f, -0.200684f,
+0.0629883f, -0.0957031f, 0.0786133f, -0.0727539f, 0.107666f, -0.0563965f, 0.136719f,
+-0.0400391f, 0.181152f, -0.0395508f, 0.228516f, -0.291016f, 0.202148f, -0.304688f,
+0.175049f, -0.320557f, 0.147949f, -0.336426f, 0.126465f, -0.35791f, 0.10498f, -0.379395f,
+0.0913086f, -0.408447f, 0.0776367f, -0.4375f, 0.0776367f, -0.478027f, 0.0776367f,
+-0.567383f, 0.133057f, -0.612549f, 0.188477f, -0.657715f, 0.29834f, -0.661621f, 0.310059f,
+-0.724121f, 0.360352f, -0.724121f, 0.334473f, -0.168945f, 0.334473f, -0.187012f,
+0.330078f, -0.201904f, 0.325684f, -0.216797f, 0.317627f, -0.229004f, 0.30957f, -0.241211f,
+0.298584f, -0.251221f, 0.287598f, -0.26123f, 0.274902f, -0.27002f, 0.232422f, -0.0444336f,
+0.258789f, -0.050293f, 0.277832f, -0.0625f, 0.296875f, -0.074707f, 0.30957f, -0.0913086f,
+0.322266f, -0.10791f, 0.328369f, -0.127686f, 0.334473f, -0.147461f, 0.334473f, -0.168945f,
+0.194824f, -0.51123f, 0.194824f, -0.479492f, 0.210938f, -0.45752f, 0.227051f, -0.435547f,
+0.252441f, -0.417969f, 0.289062f, -0.610352f, 0.262695f, -0.60791f, 0.244873f, -0.598877f,
+0.227051f, -0.589844f, 0.21582f, -0.576172f, 0.20459f, -0.5625f, 0.199707f, -0.545654f,
+0.194824f, -0.528809f, 0.194824f, -0.51123f, 0.171875f, 0.00976562f, 0.0986328f,
+0.00976562f, 0.680664f, -0.665039f, 0.754395f, -0.665039f, 0.391113f, -0.539551f,
+0.391113f, -0.526855f, 0.389648f, -0.513672f, 0.388184f, -0.500488f, 0.385742f, -0.48584f,
+0.37793f, -0.441895f, 0.362793f, -0.408203f, 0.347656f, -0.374512f, 0.324219f, -0.351318f,
+0.300781f, -0.328125f, 0.268799f, -0.316162f, 0.236816f, -0.304199f, 0.195801f, -0.304199f,
+0.130371f, -0.304199f, 0.0974121f, -0.336182f, 0.0644531f, -0.368164f, 0.0644531f,
+-0.430664f, 0.0644531f, -0.480957f, 0.0769043f, -0.523682f, 0.0893555f, -0.566406f,
+0.11377f, -0.5979f, 0.138184f, -0.629395f, 0.174316f, -0.647217f, 0.210449f, -0.665039f,
+0.257812f, -0.665039f, 0.323242f, -0.665039f, 0.357178f, -0.633545f, 0.391113f, -0.602051f,
+0.391113f, -0.539551f, 0.157715f, -0.416504f, 0.157715f, -0.40332f, 0.159424f, -0.391113f,
+0.161133f, -0.378906f, 0.165771f, -0.369873f, 0.17041f, -0.36084f, 0.178223f, -0.355225f,
+0.186035f, -0.349609f, 0.197754f, -0.349609f, 0.229492f, -0.349609f, 0.25415f, -0.385498f,
+0.278809f, -0.421387f, 0.290039f, -0.48584f, 0.295898f, -0.518555f, 0.295898f, -0.544434f,
+0.295898f, -0.581055f, 0.286133f, -0.600098f, 0.276367f, -0.619141f, 0.25293f, -0.619141f,
+0.222168f, -0.619141f, 0.199219f, -0.584473f, 0.17627f, -0.549805f, 0.165039f, -0.48584f,
+0.162598f, -0.47168f, 0.160156f, -0.453369f, 0.157715f, -0.435059f, 0.157715f, -0.416504f,
+0.781738f, -0.222168f, 0.781738f, -0.209473f, 0.780273f, -0.196289f, 0.778809f, -0.183105f,
+0.776367f, -0.168457f, 0.768555f, -0.124512f, 0.753418f, -0.0908203f, 0.738281f,
+-0.0571289f, 0.714844f, -0.0339355f, 0.691406f, -0.0107422f, 0.659424f, 0.0012207f,
+0.627441f, 0.0131836f, 0.586426f, 0.0131836f, 0.520996f, 0.0131836f, 0.488037f, -0.0187988f,
+0.455078f, -0.0507812f, 0.455078f, -0.113281f, 0.455078f, -0.163574f, 0.467529f,
+-0.206299f, 0.47998f, -0.249023f, 0.504395f, -0.280518f, 0.528809f, -0.312012f, 0.564941f,
+-0.329834f, 0.601074f, -0.347656f, 0.648438f, -0.347656f, 0.713867f, -0.347656f,
+0.747803f, -0.316162f, 0.781738f, -0.284668f, 0.781738f, -0.222168f, 0.54834f, -0.0991211f,
+0.54834f, -0.0859375f, 0.550049f, -0.0737305f, 0.551758f, -0.0615234f, 0.556396f,
+-0.0524902f, 0.561035f, -0.043457f, 0.568848f, -0.0378418f, 0.57666f, -0.0322266f,
+0.588379f, -0.0322266f, 0.620117f, -0.0322266f, 0.644775f, -0.0681152f, 0.669434f,
+-0.104004f, 0.680664f, -0.168457f, 0.686523f, -0.201172f, 0.686523f, -0.227051f,
+0.686523f, -0.263672f, 0.676758f, -0.282715f, 0.666992f, -0.301758f, 0.643555f, -0.301758f,
+0.612793f, -0.301758f, 0.589844f, -0.26709f, 0.566895f, -0.232422f, 0.555664f, -0.168457f,
+0.553223f, -0.154297f, 0.550781f, -0.135986f, 0.54834f, -0.117676f, 0.54834f, -0.0991211f,
+0.536621f, -0.538086f, 0.536621f, -0.499512f, 0.52124f, -0.472656f, 0.505859f, -0.445801f,
+0.481201f, -0.426514f, 0.456543f, -0.407227f, 0.425537f, -0.393311f, 0.394531f, -0.379395f,
+0.36377f, -0.367188f, 0.516113f, -0.195801f, 0.54248f, -0.236328f, 0.55957f, -0.27417f,
+0.57666f, -0.312012f, 0.583984f, -0.350098f, 0.527344f, -0.362793f, 0.532715f, -0.394043f,
+0.765625f, -0.394043f, 0.760254f, -0.362793f, 0.699219f, -0.350098f, 0.69043f, -0.329102f,
+0.677246f, -0.302979f, 0.664062f, -0.276855f, 0.647461f, -0.248535f, 0.630859f, -0.220215f,
+0.610596f, -0.19165f, 0.590332f, -0.163086f, 0.566895f, -0.137695f, 0.651367f, -0.0429688f,
+0.710938f, -0.0307617f, 0.705566f, 0, 0.527832f, 0, 0.478516f, -0.0585938f, 0.458008f,
+-0.0449219f, 0.435303f, -0.0324707f, 0.412598f, -0.0200195f, 0.385498f, -0.0107422f,
+0.358398f, -0.00146484f, 0.325439f, 0.00415039f, 0.29248f, 0.00976562f, 0.251465f,
+0.00976562f, 0.191406f, 0.00976562f, 0.148438f, -0.00317383f, 0.105469f, -0.0161133f,
+0.0778809f, -0.0395508f, 0.050293f, -0.0629883f, 0.0373535f, -0.0959473f, 0.0244141f,
+-0.128906f, 0.0244141f, -0.169434f, 0.0244141f, -0.216309f, 0.043457f, -0.249268f,
+0.0625f, -0.282227f, 0.0913086f, -0.304932f, 0.120117f, -0.327637f, 0.154053f, -0.342285f,
+0.187988f, -0.356934f, 0.218262f, -0.367676f, 0.202148f, -0.393066f, 0.189209f, -0.42749f,
+0.17627f, -0.461914f, 0.17627f, -0.506348f, 0.17627f, -0.541992f, 0.189209f, -0.571289f,
+0.202148f, -0.600586f, 0.226318f, -0.621338f, 0.250488f, -0.64209f, 0.2854f, -0.65332f,
+0.320312f, -0.664551f, 0.364746f, -0.664551f, 0.411133f, -0.664551f, 0.443848f, -0.653564f,
+0.476562f, -0.642578f, 0.49707f, -0.624756f, 0.517578f, -0.606934f, 0.5271f, -0.584229f,
+0.536621f, -0.561523f, 0.536621f, -0.538086f, 0.252441f, -0.321289f, 0.235352f, -0.3125f,
+0.217773f, -0.301514f, 0.200195f, -0.290527f, 0.186035f, -0.273682f, 0.171875f, -0.256836f,
+0.163086f, -0.232666f, 0.154297f, -0.208496f, 0.154297f, -0.173828f, 0.154297f, -0.144531f,
+0.162842f, -0.121826f, 0.171387f, -0.0991211f, 0.186523f, -0.0837402f, 0.20166f,
+-0.0683594f, 0.222168f, -0.0605469f, 0.242676f, -0.0527344f, 0.26709f, -0.0527344f,
+0.317383f, -0.0527344f, 0.359131f, -0.0686035f, 0.400879f, -0.0844727f, 0.432617f,
+-0.111328f, 0.290527f, -0.522949f, 0.290527f, -0.494629f, 0.301025f, -0.466064f,
+0.311523f, -0.4375f, 0.32959f, -0.411621f, 0.350586f, -0.421387f, 0.368652f, -0.432129f,
+0.386719f, -0.442871f, 0.400146f, -0.456787f, 0.413574f, -0.470703f, 0.421387f, -0.48877f,
+0.429199f, -0.506836f, 0.429199f, -0.53125f, 0.429199f, -0.572266f, 0.410889f, -0.594727f,
+0.392578f, -0.617188f, 0.364746f, -0.617188f, 0.328613f, -0.617188f, 0.30957f, -0.591797f,
+0.290527f, -0.566406f, 0.290527f, -0.522949f, 0.14209f, -0.654785f, 0.258301f, -0.654785f,
+0.178711f, -0.419922f, 0.137695f, -0.419922f, 0.165527f, -0.0585938f, 0.165527f,
+0.00976562f, 0.183105f, 0.0666504f, 0.200684f, 0.123535f, 0.244141f, 0.162109f, 0.233398f,
+0.212891f, 0.187012f, 0.186035f, 0.152588f, 0.154297f, 0.118164f, 0.122559f, 0.0952148f,
+0.0839844f, 0.0722656f, 0.0454102f, 0.060791f, -0.00146484f, 0.0493164f, -0.0483398f,
+0.0493164f, -0.106445f, 0.0493164f, -0.138672f, 0.0529785f, -0.174805f, 0.0566406f,
+-0.210938f, 0.0634766f, -0.251465f, 0.0795898f, -0.343262f, 0.106445f, -0.410889f,
+0.133301f, -0.478516f, 0.173096f, -0.529785f, 0.212891f, -0.581055f, 0.267334f, -0.620117f,
+0.321777f, -0.65918f, 0.393066f, -0.693848f, 0.382324f, -0.633301f, 0.336426f, -0.602539f,
+0.303711f, -0.558105f, 0.270996f, -0.513672f, 0.247803f, -0.460938f, 0.224609f, -0.408203f,
+0.209229f, -0.349609f, 0.193848f, -0.291016f, 0.183594f, -0.231445f, 0.175293f, -0.186523f,
+0.17041f, -0.143066f, 0.165527f, -0.0996094f, 0.165527f, -0.0585938f, -0.074707f,
+0.212891f, -0.0644531f, 0.152344f, -0.019043f, 0.121582f, 0.013916f, 0.0771484f,
+0.046875f, 0.0327148f, 0.0703125f, -0.0202637f, 0.09375f, -0.0732422f, 0.109131f,
+-0.132324f, 0.124512f, -0.191406f, 0.135254f, -0.250977f, 0.143555f, -0.296387f,
+0.148438f, -0.339844f, 0.15332f, -0.383301f, 0.15332f, -0.424805f, 0.15332f, -0.458496f,
+0.14917f, -0.489746f, 0.14502f, -0.520996f, 0.135986f, -0.548584f, 0.126953f, -0.576172f,
+0.112061f, -0.600098f, 0.097168f, -0.624023f, 0.0756836f, -0.643066f, 0.0844727f,
+-0.693848f, 0.130859f, -0.666504f, 0.165527f, -0.63501f, 0.200195f, -0.603516f, 0.223145f,
+-0.565186f, 0.246094f, -0.526855f, 0.257568f, -0.47998f, 0.269043f, -0.433105f, 0.269043f,
+-0.375488f, 0.269043f, -0.312988f, 0.254883f, -0.231934f, 0.23877f, -0.139648f, 0.21167f,
+-0.0715332f, 0.18457f, -0.00341797f, 0.144775f, 0.0480957f, 0.10498f, 0.0996094f,
+0.0505371f, 0.138916f, -0.00390625f, 0.178223f, -0.074707f, 0.212891f, 0.308594f,
+-0.434082f, 0.319336f, -0.275879f, 0.207031f, -0.293945f, 0.265137f, -0.442871f,
+0.108887f, -0.351074f, 0.0795898f, -0.460938f, 0.234375f, -0.47998f, 0.0932617f,
+-0.546875f, 0.154785f, -0.64209f, 0.275391f, -0.507812f, 0.266113f, -0.666016f, 0.378418f,
+-0.648438f, 0.318848f, -0.500977f, 0.475098f, -0.588379f, 0.504883f, -0.480469f,
+0.347656f, -0.461914f, 0.491699f, -0.396484f, 0.429688f, -0.302246f, 0.328125f, -0.296875f,
+0.328125f, -0.0991211f, 0.258301f, -0.0991211f, 0.258301f, -0.296875f, 0.0610352f,
+-0.296875f, 0.0610352f, -0.366699f, 0.258301f, -0.366699f, 0.258301f, -0.564941f,
+0.328125f, -0.564941f, 0.328125f, -0.366699f, 0.525879f, -0.366699f, 0.525879f, -0.296875f,
+0.16748f, -0.0517578f, 0.16748f, -0.0170898f, 0.156982f, 0.0144043f, 0.146484f, 0.0458984f,
+0.123779f, 0.0727539f, 0.101074f, 0.0996094f, 0.0651855f, 0.120605f, 0.0292969f,
+0.141602f, -0.0214844f, 0.154785f, -0.0214844f, 0.109863f, 0.00341797f, 0.103027f,
+0.0205078f, 0.0913086f, 0.0375977f, 0.0795898f, 0.0480957f, 0.0664062f, 0.0585938f,
+0.0532227f, 0.0629883f, 0.0405273f, 0.0673828f, 0.027832f, 0.0673828f, 0.019043f,
+0.0673828f, 0.00927734f, 0.0622559f, 0.00268555f, 0.0571289f, -0.00390625f, 0.0495605f,
+-0.00927734f, 0.0419922f, -0.0146484f, 0.032959f, -0.0202637f, 0.0239258f, -0.0258789f,
+0.0163574f, -0.0336914f, 0.00878906f, -0.0415039f, 0.00366211f, -0.0529785f, -0.00146484f,
+-0.0644531f, -0.00146484f, -0.0820312f, -0.00146484f, -0.11377f, 0.0205078f, -0.130371f,
+0.0424805f, -0.146973f, 0.0761719f, -0.146973f, 0.0947266f, -0.146973f, 0.111328f,
+-0.140869f, 0.12793f, -0.134766f, 0.140381f, -0.122559f, 0.152832f, -0.110352f, 0.160156f,
+-0.0927734f, 0.16748f, -0.0751953f, 0.16748f, -0.0517578f, 0.0209961f, -0.192871f,
+0.0371094f, -0.277832f, 0.296875f, -0.277832f, 0.280762f, -0.192871f, 0.0883789f,
+0.0141602f, 0.0712891f, 0.0141602f, 0.0566406f, 0.0078125f, 0.0419922f, 0.00146484f,
+0.0310059f, -0.00952148f, 0.0200195f, -0.0205078f, 0.0136719f, -0.0351562f, 0.00732422f,
+-0.0498047f, 0.00732422f, -0.0668945f, 0.00732422f, -0.0834961f, 0.0136719f, -0.0983887f,
+0.0200195f, -0.113281f, 0.0310059f, -0.124268f, 0.0419922f, -0.135254f, 0.0566406f,
+-0.141602f, 0.0712891f, -0.147949f, 0.0883789f, -0.147949f, 0.10498f, -0.147949f,
+0.119873f, -0.141602f, 0.134766f, -0.135254f, 0.145752f, -0.124268f, 0.156738f, -0.113281f,
+0.163086f, -0.0983887f, 0.169434f, -0.0834961f, 0.169434f, -0.0668945f, 0.169434f,
+-0.0498047f, 0.163086f, -0.0351562f, 0.156738f, -0.0205078f, 0.145752f, -0.00952148f,
+0.134766f, 0.00146484f, 0.119873f, 0.0078125f, 0.10498f, 0.0141602f, 0.0883789f,
+0.0141602f, 0.0078125f, 0.00976562f, -0.0605469f, 0.00976562f, 0.286133f, -0.658691f,
+0.354492f, -0.658691f, 0.482422f, -0.464355f, 0.482422f, -0.436035f, 0.479248f, -0.400635f,
+0.476074f, -0.365234f, 0.469727f, -0.330078f, 0.455078f, -0.248047f, 0.431885f, -0.18457f,
+0.408691f, -0.121094f, 0.375488f, -0.0778809f, 0.342285f, -0.034668f, 0.298828f,
+-0.0124512f, 0.255371f, 0.00976562f, 0.200195f, 0.00976562f, 0.119629f, 0.00976562f,
+0.0771484f, -0.0407715f, 0.034668f, -0.0913086f, 0.034668f, -0.194824f, 0.034668f,
+-0.223633f, 0.0375977f, -0.258545f, 0.0405273f, -0.293457f, 0.046875f, -0.330078f,
+0.0615234f, -0.411133f, 0.0849609f, -0.473633f, 0.108398f, -0.536133f, 0.141357f,
+-0.578613f, 0.174316f, -0.621094f, 0.217285f, -0.643066f, 0.260254f, -0.665039f,
+0.313965f, -0.665039f, 0.39502f, -0.665039f, 0.438721f, -0.616211f, 0.482422f, -0.567383f,
+0.482422f, -0.464355f, 0.361816f, -0.473633f, 0.361816f, -0.541016f, 0.348389f, -0.575928f,
+0.334961f, -0.61084f, 0.30127f, -0.61084f, 0.276367f, -0.61084f, 0.256836f, -0.592529f,
+0.237305f, -0.574219f, 0.22168f, -0.539062f, 0.206055f, -0.503906f, 0.193359f, -0.452148f,
+0.180664f, -0.400391f, 0.169922f, -0.333496f, 0.162109f, -0.285645f, 0.158203f, -0.249268f,
+0.154297f, -0.212891f, 0.154297f, -0.179199f, 0.154297f, -0.149414f, 0.157227f, -0.124512f,
+0.160156f, -0.0996094f, 0.166992f, -0.0817871f, 0.173828f, -0.0639648f, 0.184814f,
+-0.0539551f, 0.195801f, -0.0439453f, 0.212402f, -0.0439453f, 0.237793f, -0.0439453f,
+0.257324f, -0.0615234f, 0.276855f, -0.0791016f, 0.292725f, -0.113525f, 0.308594f,
+-0.147949f, 0.321045f, -0.198975f, 0.333496f, -0.25f, 0.344727f, -0.316895f, 0.348145f,
+-0.338867f, 0.351074f, -0.36084f, 0.354004f, -0.382812f, 0.356201f, -0.40332f, 0.358398f,
+-0.423828f, 0.359863f, -0.44165f, 0.361328f, -0.459473f, 0.361816f, -0.473633f, 0.282227f,
+-0.0537109f, 0.398926f, -0.0419922f, 0.391602f, 0, 0.0234375f, 0, 0.0307617f, -0.0419922f,
+0.150879f, -0.0537109f, 0.237305f, -0.544922f, 0.11377f, -0.510254f, 0.121094f, -0.551758f,
+0.324707f, -0.660156f, 0.38916f, -0.660156f, 0.402832f, 0, -0.012207f, 0, 0.00390625f,
+-0.0922852f, 0.0766602f, -0.148438f, 0.138672f, -0.202148f, 0.200684f, -0.255859f,
+0.24585f, -0.307617f, 0.291016f, -0.359375f, 0.31665f, -0.410156f, 0.342285f, -0.460938f,
+0.342285f, -0.512207f, 0.342285f, -0.564941f, 0.317871f, -0.588623f, 0.293457f, -0.612305f,
+0.253906f, -0.612305f, 0.230469f, -0.612305f, 0.210938f, -0.605225f, 0.191406f, -0.598145f,
+0.17627f, -0.586914f, 0.138672f, -0.492188f, 0.0961914f, -0.492188f, 0.122559f, -0.641113f,
+0.163574f, -0.649902f, 0.201904f, -0.656006f, 0.240234f, -0.662109f, 0.28418f, -0.662109f,
+0.331543f, -0.662109f, 0.367432f, -0.6521f, 0.40332f, -0.64209f, 0.427734f, -0.623535f,
+0.452148f, -0.60498f, 0.4646f, -0.579102f, 0.477051f, -0.553223f, 0.477051f, -0.520996f,
+0.477051f, -0.478516f, 0.462891f, -0.440186f, 0.44873f, -0.401855f, 0.423584f, -0.366455f,
+0.398438f, -0.331055f, 0.363037f, -0.297607f, 0.327637f, -0.26416f, 0.284912f, -0.231689f,
+0.242188f, -0.199219f, 0.193848f, -0.166748f, 0.145508f, -0.134277f, 0.09375f, -0.100586f,
+0.421875f, -0.100586f, 0.169434f, 0.00976562f, 0.0566406f, 0.00976562f, -0.0078125f,
+-0.00976562f, 0.0141602f, -0.168457f, 0.059082f, -0.168457f, 0.065918f, -0.0634766f,
+0.0722656f, -0.0581055f, 0.0844727f, -0.0539551f, 0.0966797f, -0.0498047f, 0.11084f,
+-0.0463867f, 0.125f, -0.0429688f, 0.139404f, -0.0412598f, 0.153809f, -0.0395508f,
+0.164062f, -0.0395508f, 0.231445f, -0.0395508f, 0.269043f, -0.078125f, 0.306641f,
+-0.116699f, 0.306641f, -0.192383f, 0.306641f, -0.248535f, 0.282471f, -0.276123f,
+0.258301f, -0.303711f, 0.210938f, -0.309082f, 0.154785f, -0.3125f, 0.165527f, -0.371582f,
+0.220703f, -0.375488f, 0.251953f, -0.377441f, 0.27417f, -0.388184f, 0.296387f, -0.398926f,
+0.310547f, -0.416748f, 0.324707f, -0.43457f, 0.331055f, -0.458984f, 0.337402f, -0.483398f,
+0.337402f, -0.513184f, 0.337402f, -0.5625f, 0.313965f, -0.587402f, 0.290527f, -0.612305f,
+0.249023f, -0.612305f, 0.226562f, -0.612305f, 0.206787f, -0.605225f, 0.187012f, -0.598145f,
+0.172852f, -0.586914f, 0.135254f, -0.492188f, 0.0927734f, -0.492188f, 0.119141f,
+-0.641113f, 0.136719f, -0.645508f, 0.154541f, -0.649414f, 0.172363f, -0.65332f, 0.19165f,
+-0.65625f, 0.210938f, -0.65918f, 0.232666f, -0.660645f, 0.254395f, -0.662109f, 0.280273f,
+-0.662109f, 0.326172f, -0.662109f, 0.362305f, -0.6521f, 0.398438f, -0.64209f, 0.422852f,
+-0.623779f, 0.447266f, -0.605469f, 0.460205f, -0.579102f, 0.473145f, -0.552734f,
+0.473145f, -0.52002f, 0.473145f, -0.483887f, 0.463135f, -0.454102f, 0.453125f, -0.424316f,
+0.432617f, -0.401611f, 0.412109f, -0.378906f, 0.381104f, -0.364014f, 0.350098f, -0.349121f,
+0.308105f, -0.342773f, 0.338867f, -0.337891f, 0.36377f, -0.325439f, 0.388672f, -0.312988f,
+0.406006f, -0.293701f, 0.42334f, -0.274414f, 0.432861f, -0.249023f, 0.442383f, -0.223633f,
+0.442383f, -0.193848f, 0.442383f, -0.14209f, 0.421387f, -0.10376f, 0.400391f, -0.0654297f,
+0.363525f, -0.0402832f, 0.32666f, -0.0151367f, 0.276855f, -0.00268555f, 0.227051f,
+0.00976562f, 0.169434f, 0.00976562f, 0.376953f, -0.134277f, 0.354004f, 0, 0.232422f,
+0, 0.255371f, -0.134277f, -0.015625f, -0.134277f, -0.00195312f, -0.208984f, 0.370605f,
+-0.658203f, 0.469727f, -0.658203f, 0.393066f, -0.224609f, 0.469727f, -0.224609f,
+0.453613f, -0.134277f, 0.305176f, -0.413086f, 0.307617f, -0.42627f, 0.312256f, -0.445557f,
+0.316895f, -0.464844f, 0.321289f, -0.48291f, 0.32666f, -0.503906f, 0.33252f, -0.525879f,
+0.0834961f, -0.224609f, 0.271484f, -0.224609f, 0.251953f, -0.389648f, 0.30127f, -0.389648f,
+0.337891f, -0.377686f, 0.374512f, -0.365723f, 0.398438f, -0.343506f, 0.422363f, -0.321289f,
+0.434082f, -0.289795f, 0.445801f, -0.258301f, 0.445801f, -0.219727f, 0.445801f, -0.164551f,
+0.427002f, -0.121826f, 0.408203f, -0.0791016f, 0.372559f, -0.0498047f, 0.336914f,
+-0.0205078f, 0.284668f, -0.00537109f, 0.232422f, 0.00976562f, 0.166016f, 0.00976562f,
+0.13916f, 0.00976562f, 0.11792f, 0.00830078f, 0.0966797f, 0.00683594f, 0.0788574f,
+0.00415039f, 0.0610352f, 0.00146484f, 0.0446777f, -0.00219727f, 0.0283203f, -0.00585938f,
+0.0112305f, -0.00976562f, 0.0332031f, -0.168457f, 0.078125f, -0.168457f, 0.0849609f,
+-0.0634766f, 0.0986328f, -0.0522461f, 0.123047f, -0.0458984f, 0.147461f, -0.0395508f,
+0.172852f, -0.0395508f, 0.208496f, -0.0395508f, 0.234619f, -0.0524902f, 0.260742f,
+-0.0654297f, 0.278076f, -0.0888672f, 0.29541f, -0.112305f, 0.303711f, -0.14502f,
+0.312012f, -0.177734f, 0.312012f, -0.217285f, 0.312012f, -0.242188f, 0.307373f, -0.263672f,
+0.302734f, -0.285156f, 0.291504f, -0.30127f, 0.280273f, -0.317383f, 0.261719f, -0.326416f,
+0.243164f, -0.335449f, 0.21582f, -0.335449f, 0.202148f, -0.335449f, 0.188721f, -0.333496f,
+0.175293f, -0.331543f, 0.162842f, -0.328857f, 0.150391f, -0.326172f, 0.139893f, -0.322754f,
+0.129395f, -0.319336f, 0.12207f, -0.316406f, 0.0766602f, -0.316406f, 0.13623f, -0.654785f,
+0.474121f, -0.654785f, 0.456543f, -0.555664f, 0.180176f, -0.555664f, 0.149414f, -0.377441f,
+0.158203f, -0.379883f, 0.168213f, -0.38208f, 0.178223f, -0.384277f, 0.19043f, -0.385986f,
+0.202637f, -0.387695f, 0.217773f, -0.388672f, 0.23291f, -0.389648f, 0.251953f, -0.389648f,
+0.224121f, 0.00976562f, 0.178223f, 0.00976562f, 0.142822f, -0.00537109f, 0.107422f,
+-0.0205078f, 0.083252f, -0.0498047f, 0.059082f, -0.0791016f, 0.0466309f, -0.121338f,
+0.0341797f, -0.163574f, 0.0341797f, -0.217773f, 0.0341797f, -0.278809f, 0.0461426f,
+-0.335693f, 0.0581055f, -0.392578f, 0.0795898f, -0.441895f, 0.101074f, -0.491211f,
+0.131104f, -0.531738f, 0.161133f, -0.572266f, 0.19751f, -0.601318f, 0.233887f, -0.630371f,
+0.275635f, -0.64624f, 0.317383f, -0.662109f, 0.362305f, -0.662109f, 0.402344f, -0.662109f,
+0.437988f, -0.655762f, 0.473633f, -0.649414f, 0.5f, -0.641113f, 0.473633f, -0.492188f,
+0.431152f, -0.492188f, 0.426758f, -0.586914f, 0.411621f, -0.599121f, 0.394043f, -0.605713f,
+0.376465f, -0.612305f, 0.35791f, -0.612305f, 0.32373f, -0.612305f, 0.294922f, -0.592773f,
+0.266113f, -0.573242f, 0.243164f, -0.539551f, 0.220215f, -0.505859f, 0.203125f, -0.460205f,
+0.186035f, -0.414551f, 0.175781f, -0.362305f, 0.202637f, -0.376465f, 0.235352f, -0.387207f,
+0.268066f, -0.397949f, 0.304688f, -0.397949f, 0.344238f, -0.397949f, 0.373779f, -0.385986f,
+0.40332f, -0.374023f, 0.422607f, -0.352539f, 0.441895f, -0.331055f, 0.451416f, -0.30127f,
+0.460938f, -0.271484f, 0.460938f, -0.23584f, 0.460938f, -0.185059f, 0.445312f, -0.140381f,
+0.429688f, -0.0957031f, 0.399658f, -0.0625f, 0.369629f, -0.0292969f, 0.325439f, -0.00976562f,
+0.28125f, 0.00976562f, 0.224121f, 0.00976562f, 0.160645f, -0.202637f, 0.160645f,
+-0.155273f, 0.166748f, -0.123779f, 0.172852f, -0.0922852f, 0.18335f, -0.0737305f,
+0.193848f, -0.0551758f, 0.207275f, -0.0473633f, 0.220703f, -0.0395508f, 0.235352f,
+-0.0395508f, 0.256836f, -0.0395508f, 0.274414f, -0.0527344f, 0.291992f, -0.065918f,
+0.304443f, -0.0900879f, 0.316895f, -0.114258f, 0.32373f, -0.148438f, 0.330566f, -0.182617f,
+0.330566f, -0.224121f, 0.330566f, -0.282715f, 0.308105f, -0.309814f, 0.285645f, -0.336914f,
+0.250488f, -0.336914f, 0.230957f, -0.336914f, 0.209961f, -0.331299f, 0.188965f, -0.325684f,
+0.167969f, -0.316895f, 0.160645f, -0.26123f, 0.160645f, -0.202637f, 0.124023f, -0.467773f,
+0.081543f, -0.467773f, 0.114746f, -0.654785f, 0.533203f, -0.654785f, 0.526367f, -0.616211f,
+0.168457f, 0, 0.0419922f, 0, 0.419922f, -0.555664f, 0.161621f, -0.555664f, 0.484863f,
+-0.529785f, 0.484863f, -0.490723f, 0.474854f, -0.460205f, 0.464844f, -0.429688f,
+0.447998f, -0.406982f, 0.431152f, -0.384277f, 0.408936f, -0.369385f, 0.386719f, -0.354492f,
+0.361816f, -0.347168f, 0.402344f, -0.33252f, 0.425537f, -0.298584f, 0.44873f, -0.264648f,
+0.44873f, -0.214844f, 0.44873f, -0.160645f, 0.434082f, -0.118652f, 0.419434f, -0.0766602f,
+0.389404f, -0.0480957f, 0.359375f, -0.0195312f, 0.313477f, -0.00488281f, 0.267578f,
+0.00976562f, 0.20459f, 0.00976562f, 0.156738f, 0.00976562f, 0.121582f, -0.00244141f,
+0.0864258f, -0.0146484f, 0.0634766f, -0.0368652f, 0.0405273f, -0.059082f, 0.0292969f,
+-0.0895996f, 0.0180664f, -0.120117f, 0.0180664f, -0.156738f, 0.0180664f, -0.196777f,
+0.0288086f, -0.22876f, 0.0395508f, -0.260742f, 0.059082f, -0.284424f, 0.0786133f,
+-0.308105f, 0.105469f, -0.323975f, 0.132324f, -0.339844f, 0.164551f, -0.347168f,
+0.148926f, -0.355469f, 0.13623f, -0.368896f, 0.123535f, -0.382324f, 0.114502f, -0.39917f,
+0.105469f, -0.416016f, 0.100342f, -0.436279f, 0.0952148f, -0.456543f, 0.0952148f,
+-0.478516f, 0.0952148f, -0.521484f, 0.108398f, -0.556152f, 0.121582f, -0.59082f,
+0.148926f, -0.61499f, 0.17627f, -0.63916f, 0.218018f, -0.6521f, 0.259766f, -0.665039f,
+0.316895f, -0.665039f, 0.359863f, -0.665039f, 0.391357f, -0.655762f, 0.422852f, -0.646484f,
+0.443604f, -0.628906f, 0.464355f, -0.611328f, 0.474609f, -0.586182f, 0.484863f, -0.561035f,
+0.484863f, -0.529785f, 0.218262f, -0.446289f, 0.218262f, -0.413086f, 0.22998f, -0.393555f,
+0.241699f, -0.374023f, 0.27002f, -0.374023f, 0.293457f, -0.374023f, 0.310791f, -0.388184f,
+0.328125f, -0.402344f, 0.339355f, -0.425781f, 0.350586f, -0.449219f, 0.355957f, -0.479492f,
+0.361328f, -0.509766f, 0.361328f, -0.541504f, 0.361328f, -0.577148f, 0.348389f, -0.596436f,
+0.335449f, -0.615723f, 0.305176f, -0.615723f, 0.282227f, -0.615723f, 0.265625f, -0.602539f,
+0.249023f, -0.589355f, 0.238525f, -0.566406f, 0.228027f, -0.543457f, 0.223145f, -0.512451f,
+0.218262f, -0.481445f, 0.218262f, -0.446289f, 0.141113f, -0.132812f, 0.141113f, -0.0883789f,
+0.159424f, -0.0644531f, 0.177734f, -0.0405273f, 0.216309f, -0.0405273f, 0.245605f,
+-0.0405273f, 0.266357f, -0.0546875f, 0.287109f, -0.0688477f, 0.300049f, -0.0942383f,
+0.312988f, -0.119629f, 0.319092f, -0.154297f, 0.325195f, -0.188965f, 0.325195f, -0.22998f,
+0.325195f, -0.25f, 0.321045f, -0.266602f, 0.316895f, -0.283203f, 0.308105f, -0.294922f,
+0.299316f, -0.306641f, 0.285156f, -0.312988f, 0.270996f, -0.319336f, 0.250488f, -0.319336f,
+0.222656f, -0.319336f, 0.202148f, -0.305908f, 0.181641f, -0.29248f, 0.168213f, -0.267822f,
+0.154785f, -0.243164f, 0.147949f, -0.20874f, 0.141113f, -0.174316f, 0.141113f, -0.132812f,
+0.287109f, -0.661621f, 0.329102f, -0.661621f, 0.36499f, -0.64624f, 0.400879f, -0.630859f,
+0.427002f, -0.601318f, 0.453125f, -0.571777f, 0.467773f, -0.528564f, 0.482422f, -0.485352f,
+0.482422f, -0.429688f, 0.482422f, -0.367676f, 0.470947f, -0.310791f, 0.459473f, -0.253906f,
+0.438477f, -0.205078f, 0.41748f, -0.15625f, 0.387939f, -0.116699f, 0.358398f, -0.0771484f,
+0.32251f, -0.0490723f, 0.286621f, -0.0209961f, 0.245361f, -0.00561523f, 0.204102f,
+0.00976562f, 0.15918f, 0.00976562f, 0.116211f, 0.00976562f, 0.0808105f, 0.00415039f,
+0.0454102f, -0.00146484f, 0.0146484f, -0.0112305f, 0.0410156f, -0.160156f, 0.0834961f,
+-0.160156f, 0.0878906f, -0.0654297f, 0.10498f, -0.0517578f, 0.125977f, -0.0458984f,
+0.146973f, -0.0400391f, 0.165527f, -0.0400391f, 0.199707f, -0.0400391f, 0.228271f,
+-0.0593262f, 0.256836f, -0.0786133f, 0.279297f, -0.111816f, 0.301758f, -0.14502f,
+0.317627f, -0.189697f, 0.333496f, -0.234375f, 0.343262f, -0.285156f, 0.316895f, -0.272461f,
+0.285156f, -0.263428f, 0.253418f, -0.254395f, 0.216309f, -0.254395f, 0.174805f, -0.254395f,
+0.144531f, -0.267578f, 0.114258f, -0.280762f, 0.0944824f, -0.303955f, 0.074707f,
+-0.327148f, 0.0651855f, -0.358398f, 0.0556641f, -0.389648f, 0.0556641f, -0.425781f,
+0.0556641f, -0.474121f, 0.0715332f, -0.51709f, 0.0874023f, -0.560059f, 0.117188f,
+-0.592041f, 0.146973f, -0.624023f, 0.189941f, -0.642822f, 0.23291f, -0.661621f, 0.287109f,
+-0.661621f, 0.356445f, -0.431152f, 0.356445f, -0.48291f, 0.349609f, -0.517578f, 0.342773f,
+-0.552246f, 0.332031f, -0.573486f, 0.321289f, -0.594727f, 0.307861f, -0.60376f, 0.294434f,
+-0.612793f, 0.28125f, -0.612793f, 0.259766f, -0.612793f, 0.241943f, -0.599121f, 0.224121f,
+-0.585449f, 0.211426f, -0.560791f, 0.19873f, -0.536133f, 0.191895f, -0.501709f, 0.185059f,
+-0.467285f, 0.185059f, -0.425781f, 0.185059f, -0.370117f, 0.205078f, -0.342773f,
+0.225098f, -0.31543f, 0.26123f, -0.31543f, 0.28125f, -0.31543f, 0.304688f, -0.320801f,
+0.328125f, -0.326172f, 0.350586f, -0.334473f, 0.356445f, -0.381836f, 0.356445f, -0.431152f,
+0.182617f, -0.306641f, 0.165527f, -0.306641f, 0.150635f, -0.312988f, 0.135742f, -0.319336f,
+0.125f, -0.330322f, 0.114258f, -0.341309f, 0.108154f, -0.355957f, 0.102051f, -0.370605f,
+0.102051f, -0.387695f, 0.102051f, -0.404785f, 0.108154f, -0.419678f, 0.114258f, -0.43457f,
+0.125f, -0.445557f, 0.135742f, -0.456543f, 0.150635f, -0.462646f, 0.165527f, -0.46875f,
+0.182617f, -0.46875f, 0.199707f, -0.46875f, 0.214355f, -0.462646f, 0.229004f, -0.456543f,
+0.23999f, -0.445557f, 0.250977f, -0.43457f, 0.257324f, -0.419678f, 0.263672f, -0.404785f,
+0.263672f, -0.387695f, 0.263672f, -0.370605f, 0.257324f, -0.355957f, 0.250977f, -0.341309f,
+0.23999f, -0.330322f, 0.229004f, -0.319336f, 0.214355f, -0.312988f, 0.199707f, -0.306641f,
+0.182617f, -0.306641f, 0.114746f, 0.0141602f, 0.0976562f, 0.0141602f, 0.0830078f,
+0.0078125f, 0.0683594f, 0.00146484f, 0.057373f, -0.00952148f, 0.0463867f, -0.0205078f,
+0.0400391f, -0.0351562f, 0.0336914f, -0.0498047f, 0.0336914f, -0.0668945f, 0.0336914f,
+-0.0834961f, 0.0400391f, -0.0983887f, 0.0463867f, -0.113281f, 0.057373f, -0.124268f,
+0.0683594f, -0.135254f, 0.0830078f, -0.141602f, 0.0976562f, -0.147949f, 0.114746f,
+-0.147949f, 0.131348f, -0.147949f, 0.14624f, -0.141602f, 0.161133f, -0.135254f, 0.172119f,
+-0.124268f, 0.183105f, -0.113281f, 0.189453f, -0.0983887f, 0.195801f, -0.0834961f,
+0.195801f, -0.0668945f, 0.195801f, -0.0498047f, 0.189453f, -0.0351562f, 0.183105f,
+-0.0205078f, 0.172119f, -0.00952148f, 0.161133f, 0.00146484f, 0.14624f, 0.0078125f,
+0.131348f, 0.0141602f, 0.114746f, 0.0141602f, 0.20166f, -0.0517578f, 0.20166f, -0.0170898f,
+0.191162f, 0.0144043f, 0.180664f, 0.0458984f, 0.157959f, 0.0727539f, 0.135254f, 0.0996094f,
+0.0993652f, 0.120605f, 0.0634766f, 0.141602f, 0.0126953f, 0.154785f, 0.0126953f,
+0.109863f, 0.0375977f, 0.103027f, 0.0546875f, 0.0913086f, 0.0717773f, 0.0795898f,
+0.0822754f, 0.0664062f, 0.0927734f, 0.0532227f, 0.097168f, 0.0405273f, 0.101562f,
+0.027832f, 0.101562f, 0.019043f, 0.101562f, 0.00927734f, 0.0964355f, 0.00268555f,
+0.0913086f, -0.00390625f, 0.0837402f, -0.00927734f, 0.0761719f, -0.0146484f, 0.0671387f,
+-0.0202637f, 0.0581055f, -0.0258789f, 0.0505371f, -0.0336914f, 0.0429688f, -0.0415039f,
+0.0378418f, -0.0529785f, 0.0327148f, -0.0644531f, 0.0327148f, -0.0820312f, 0.0327148f,
+-0.11377f, 0.0546875f, -0.130371f, 0.0766602f, -0.146973f, 0.110352f, -0.146973f,
+0.128906f, -0.146973f, 0.145508f, -0.140869f, 0.162109f, -0.134766f, 0.174561f, -0.122559f,
+0.187012f, -0.110352f, 0.194336f, -0.0927734f, 0.20166f, -0.0751953f, 0.20166f, -0.0517578f,
+0.186523f, -0.306641f, 0.169434f, -0.306641f, 0.154541f, -0.312988f, 0.139648f, -0.319336f,
+0.128906f, -0.330322f, 0.118164f, -0.341309f, 0.112061f, -0.355957f, 0.105957f, -0.370605f,
+0.105957f, -0.387695f, 0.105957f, -0.404785f, 0.112061f, -0.419678f, 0.118164f, -0.43457f,
+0.128906f, -0.445557f, 0.139648f, -0.456543f, 0.154541f, -0.462646f, 0.169434f, -0.46875f,
+0.186523f, -0.46875f, 0.203613f, -0.46875f, 0.218262f, -0.462646f, 0.23291f, -0.456543f,
+0.243896f, -0.445557f, 0.254883f, -0.43457f, 0.26123f, -0.419678f, 0.267578f, -0.404785f,
+0.267578f, -0.387695f, 0.267578f, -0.370605f, 0.26123f, -0.355957f, 0.254883f, -0.341309f,
+0.243896f, -0.330322f, 0.23291f, -0.319336f, 0.218262f, -0.312988f, 0.203613f, -0.306641f,
+0.186523f, -0.306641f, 0.0493164f, -0.310059f, 0.0493164f, -0.354004f, 0.51416f,
+-0.58252f, 0.51416f, -0.512695f, 0.139648f, -0.332031f, 0.51416f, -0.150879f, 0.51416f,
+-0.0810547f, 0.522461f, -0.26709f, 0.522461f, -0.196777f, 0.0576172f, -0.196777f,
+0.0576172f, -0.26709f, 0.522461f, -0.466797f, 0.522461f, -0.396973f, 0.0576172f,
+-0.396973f, 0.0576172f, -0.466797f, 0.074707f, -0.0810547f, 0.074707f, -0.150879f,
+0.449707f, -0.332031f, 0.074707f, -0.512695f, 0.074707f, -0.58252f, 0.539551f, -0.354004f,
+0.539551f, -0.310059f, 0.463867f, -0.509277f, 0.463867f, -0.425781f, 0.419678f, -0.375488f,
+0.375488f, -0.325195f, 0.282227f, -0.299805f, 0.242676f, -0.289062f, 0.211914f, -0.19043f,
+0.161621f, -0.19043f, 0.160645f, -0.343262f, 0.212891f, -0.354492f, 0.240723f, -0.360352f,
+0.262695f, -0.372559f, 0.284668f, -0.384766f, 0.300049f, -0.404053f, 0.31543f, -0.42334f,
+0.32373f, -0.450195f, 0.332031f, -0.477051f, 0.332031f, -0.513184f, 0.332031f, -0.55957f,
+0.310791f, -0.585938f, 0.289551f, -0.612305f, 0.239746f, -0.612305f, 0.221191f, -0.612305f,
+0.200928f, -0.605713f, 0.180664f, -0.599121f, 0.167969f, -0.589355f, 0.13623f, -0.494629f,
+0.0927734f, -0.494629f, 0.112305f, -0.638672f, 0.145996f, -0.648926f, 0.185059f,
+-0.655518f, 0.224121f, -0.662109f, 0.264648f, -0.662109f, 0.314941f, -0.662109f,
+0.352295f, -0.651367f, 0.389648f, -0.640625f, 0.414551f, -0.62085f, 0.439453f, -0.601074f,
+0.45166f, -0.572754f, 0.463867f, -0.544434f, 0.463867f, -0.509277f, 0.170898f, 0.0141602f,
+0.153809f, 0.0141602f, 0.138916f, 0.0078125f, 0.124023f, 0.00146484f, 0.113281f,
+-0.00952148f, 0.102539f, -0.0205078f, 0.0964355f, -0.0351562f, 0.090332f, -0.0498047f,
+0.090332f, -0.0668945f, 0.090332f, -0.0834961f, 0.0964355f, -0.0983887f, 0.102539f,
+-0.113281f, 0.113281f, -0.124268f, 0.124023f, -0.135254f, 0.138916f, -0.141602f,
+0.153809f, -0.147949f, 0.170898f, -0.147949f, 0.187988f, -0.147949f, 0.202637f, -0.141602f,
+0.217285f, -0.135254f, 0.228271f, -0.124268f, 0.239258f, -0.113281f, 0.245605f, -0.0983887f,
+0.251953f, -0.0834961f, 0.251953f, -0.0668945f, 0.251953f, -0.0498047f, 0.245605f,
+-0.0351562f, 0.239258f, -0.0205078f, 0.228271f, -0.00952148f, 0.217285f, 0.00146484f,
+0.202637f, 0.0078125f, 0.187988f, 0.0141602f, 0.170898f, 0.0141602f, 0.474609f, -0.666016f,
+0.556641f, -0.666016f, 0.618652f, -0.644775f, 0.680664f, -0.623535f, 0.722168f, -0.584473f,
+0.763672f, -0.54541f, 0.784424f, -0.490234f, 0.805176f, -0.435059f, 0.805176f, -0.367188f,
+0.805176f, -0.316895f, 0.793701f, -0.270996f, 0.782227f, -0.225098f, 0.761475f, -0.185791f,
+0.740723f, -0.146484f, 0.712402f, -0.114258f, 0.684082f, -0.0820312f, 0.649902f,
+-0.0593262f, 0.615723f, -0.0366211f, 0.577148f, -0.0244141f, 0.538574f, -0.012207f,
+0.498047f, -0.012207f, 0.481934f, -0.012207f, 0.467773f, -0.0170898f, 0.453613f,
+-0.0219727f, 0.443115f, -0.0305176f, 0.432617f, -0.0390625f, 0.425537f, -0.0507812f,
+0.418457f, -0.0625f, 0.416504f, -0.0761719f, 0.405273f, -0.0668945f, 0.389404f, -0.0559082f,
+0.373535f, -0.0449219f, 0.355469f, -0.0351562f, 0.337402f, -0.0253906f, 0.318604f,
+-0.0187988f, 0.299805f, -0.012207f, 0.283203f, -0.012207f, 0.258789f, -0.012207f,
+0.241455f, -0.0224609f, 0.224121f, -0.0327148f, 0.213135f, -0.0493164f, 0.202148f,
+-0.065918f, 0.197266f, -0.0871582f, 0.192383f, -0.108398f, 0.192383f, -0.130371f,
+0.192383f, -0.213867f, 0.226074f, -0.280273f, 0.259766f, -0.34668f, 0.324707f, -0.393066f,
+0.349609f, -0.411133f, 0.372314f, -0.422363f, 0.39502f, -0.433594f, 0.419189f, -0.439941f,
+0.443359f, -0.446289f, 0.470215f, -0.44873f, 0.49707f, -0.451172f, 0.529785f, -0.451172f,
+0.553223f, -0.451172f, 0.577637f, -0.449463f, 0.602051f, -0.447754f, 0.619141f, -0.445801f,
+0.560059f, -0.185059f, 0.557617f, -0.174805f, 0.555176f, -0.16333f, 0.552734f, -0.151855f,
+0.550537f, -0.141357f, 0.54834f, -0.130859f, 0.546875f, -0.12207f, 0.54541f, -0.113281f,
+0.54541f, -0.108887f, 0.54541f, -0.0981445f, 0.551025f, -0.090332f, 0.556641f, -0.0825195f,
+0.570801f, -0.0825195f, 0.592285f, -0.0825195f, 0.611084f, -0.0942383f, 0.629883f,
+-0.105957f, 0.645508f, -0.126221f, 0.661133f, -0.146484f, 0.673096f, -0.174072f,
+0.685059f, -0.20166f, 0.693359f, -0.233154f, 0.70166f, -0.264648f, 0.706055f, -0.298584f,
+0.710449f, -0.33252f, 0.710449f, -0.366211f, 0.710449f, -0.425781f, 0.693604f, -0.47168f,
+0.676758f, -0.517578f, 0.645508f, -0.548584f, 0.614258f, -0.57959f, 0.569824f, -0.595703f,
+0.525391f, -0.611816f, 0.470703f, -0.611816f, 0.416016f, -0.611816f, 0.368408f, -0.596191f,
+0.320801f, -0.580566f, 0.281738f, -0.552002f, 0.242676f, -0.523438f, 0.212158f, -0.483643f,
+0.181641f, -0.443848f, 0.160645f, -0.395508f, 0.139648f, -0.347168f, 0.128906f, -0.292236f,
+0.118164f, -0.237305f, 0.118164f, -0.178223f, 0.118164f, -0.116699f, 0.135986f, -0.0600586f,
+0.153809f, -0.00341797f, 0.19043f, 0.0395508f, 0.227051f, 0.0825195f, 0.282471f,
+0.108154f, 0.337891f, 0.133789f, 0.413086f, 0.133789f, 0.459961f, 0.133789f, 0.497559f,
+0.126709f, 0.535156f, 0.119629f, 0.566162f, 0.10791f, 0.597168f, 0.0961914f, 0.623047f,
+0.0805664f, 0.648926f, 0.0649414f, 0.67334f, 0.0473633f, 0.69873f, 0.0844727f, 0.671387f,
+0.106445f, 0.640625f, 0.125488f, 0.609863f, 0.144531f, 0.573242f, 0.158936f, 0.536621f,
+0.17334f, 0.493164f, 0.181641f, 0.449707f, 0.189941f, 0.397949f, 0.189941f, 0.308105f,
+0.189941f, 0.238281f, 0.161377f, 0.168457f, 0.132812f, 0.12085f, 0.0830078f, 0.0732422f,
+0.0332031f, 0.0483398f, -0.0336914f, 0.0234375f, -0.100586f, 0.0234375f, -0.176758f,
+0.0234375f, -0.246582f, 0.0385742f, -0.310059f, 0.0537109f, -0.373535f, 0.0820312f,
+-0.427734f, 0.110352f, -0.481934f, 0.150879f, -0.526123f, 0.191406f, -0.570312f,
+0.241455f, -0.601318f, 0.291504f, -0.632324f, 0.350342f, -0.64917f, 0.40918f, -0.666016f,
+0.474609f, -0.666016f, 0.314453f, -0.15625f, 0.314453f, -0.124023f, 0.324219f, -0.108154f,
+0.333984f, -0.0922852f, 0.347656f, -0.0922852f, 0.357422f, -0.0922852f, 0.367432f,
+-0.0952148f, 0.377441f, -0.0981445f, 0.386719f, -0.102783f, 0.395996f, -0.107422f,
+0.404053f, -0.113037f, 0.412109f, -0.118652f, 0.417969f, -0.123535f, 0.47998f, -0.393066f,
+0.478027f, -0.393555f, 0.474121f, -0.393799f, 0.470215f, -0.394043f, 0.466309f, -0.394531f,
+0.462402f, -0.39502f, 0.45874f, -0.395264f, 0.455078f, -0.395508f, 0.453125f, -0.395508f,
+0.444824f, -0.395508f, 0.43457f, -0.394287f, 0.424316f, -0.393066f, 0.413574f, -0.389648f,
+0.402832f, -0.38623f, 0.391846f, -0.379883f, 0.380859f, -0.373535f, 0.371094f, -0.363281f,
+0.361816f, -0.351562f, 0.351807f, -0.329346f, 0.341797f, -0.307129f, 0.333496f, -0.279053f,
+0.325195f, -0.250977f, 0.319824f, -0.218994f, 0.314453f, -0.187012f, 0.314453f, -0.15625f,
+0.147461f, -0.0356445f, 0.140625f, 0, -0.0517578f, 0, -0.0449219f, -0.0356445f, 0.00537109f,
+-0.0488281f, 0.331543f, -0.660156f, 0.44873f, -0.660156f, 0.572754f, -0.0488281f,
+0.625977f, -0.0356445f, 0.619141f, 0, 0.351074f, 0, 0.35791f, -0.0356445f, 0.425293f,
+-0.0488281f, 0.395508f, -0.218262f, 0.165039f, -0.218262f, 0.0751953f, -0.0488281f,
+0.336426f, -0.545898f, 0.192383f, -0.271973f, 0.385742f, -0.271973f, 0.330566f, -0.373047f,
+0.40625f, -0.373047f, 0.445557f, -0.405273f, 0.484863f, -0.4375f, 0.484863f, -0.505371f,
+0.484863f, -0.551758f, 0.455322f, -0.576416f, 0.425781f, -0.601074f, 0.368652f, -0.601074f,
+0.325195f, -0.601074f, 0.284668f, -0.373047f, 0.319336f, -0.0507812f, 0.364746f,
+-0.0507812f, 0.395264f, -0.0610352f, 0.425781f, -0.0712891f, 0.444336f, -0.0905762f,
+0.462891f, -0.109863f, 0.470947f, -0.136963f, 0.479004f, -0.164062f, 0.479004f, -0.197754f,
+0.479004f, -0.22998f, 0.468506f, -0.25293f, 0.458008f, -0.275879f, 0.438721f, -0.290771f,
+0.419434f, -0.305664f, 0.39209f, -0.3125f, 0.364746f, -0.319336f, 0.331055f, -0.319336f,
+0.275391f, -0.319336f, 0.228516f, -0.0537109f, 0.245605f, -0.0527344f, 0.261719f,
+-0.0522461f, 0.275879f, -0.0512695f, 0.291504f, -0.0510254f, 0.307129f, -0.0507812f,
+0.319336f, -0.0507812f, 0.316406f, 0.00292969f, 0.289551f, 0.00292969f, 0.268311f,
+0.00244141f, 0.24707f, 0.00195312f, 0.227783f, 0.00146484f, 0.208496f, 0.000976562f,
+0.189453f, 0.000488281f, 0.17041f, 0, 0.147949f, 0, -0.00927734f, 0, -0.00341797f,
+-0.0356445f, 0.0834961f, -0.0488281f, 0.181641f, -0.606445f, 0.0996094f, -0.619141f,
+0.106445f, -0.654785f, 0.392578f, -0.654785f, 0.45752f, -0.654785f, 0.502686f, -0.644531f,
+0.547852f, -0.634277f, 0.576172f, -0.615723f, 0.604492f, -0.597168f, 0.617188f, -0.570801f,
+0.629883f, -0.544434f, 0.629883f, -0.511719f, 0.629883f, -0.474609f, 0.617676f, -0.446533f,
+0.605469f, -0.418457f, 0.583496f, -0.398682f, 0.561523f, -0.378906f, 0.53125f, -0.366699f,
+0.500977f, -0.354492f, 0.465332f, -0.349609f, 0.499023f, -0.34668f, 0.528076f, -0.335693f,
+0.557129f, -0.324707f, 0.578369f, -0.305664f, 0.599609f, -0.286621f, 0.611816f, -0.259521f,
+0.624023f, -0.232422f, 0.624023f, -0.197266f, 0.624023f, -0.0952148f, 0.547119f,
+-0.0461426f, 0.470215f, 0.00292969f, 0.316406f, 0.00292969f, 0.327148f, 0.00976562f,
+0.255371f, 0.00976562f, 0.200684f, -0.00952148f, 0.145996f, -0.0288086f, 0.109131f,
+-0.064209f, 0.0722656f, -0.0996094f, 0.0532227f, -0.14917f, 0.0341797f, -0.19873f,
+0.0341797f, -0.259277f, 0.0341797f, -0.353516f, 0.0646973f, -0.428467f, 0.0952148f,
+-0.503418f, 0.149902f, -0.555176f, 0.20459f, -0.606934f, 0.280029f, -0.634521f, 0.355469f,
+-0.662109f, 0.445312f, -0.662109f, 0.517578f, -0.662109f, 0.57373f, -0.654297f, 0.629883f,
+-0.646484f, 0.67627f, -0.636719f, 0.650391f, -0.472168f, 0.609375f, -0.472168f, 0.609375f,
+-0.566895f, 0.583008f, -0.587891f, 0.545654f, -0.599365f, 0.508301f, -0.61084f, 0.467285f,
+-0.61084f, 0.407227f, -0.61084f, 0.355957f, -0.585693f, 0.304688f, -0.560547f, 0.26709f,
+-0.513916f, 0.229492f, -0.467285f, 0.208252f, -0.401611f, 0.187012f, -0.335938f,
+0.187012f, -0.254883f, 0.187012f, -0.208496f, 0.197266f, -0.169189f, 0.20752f, -0.129883f,
+0.228516f, -0.101318f, 0.249512f, -0.0727539f, 0.281738f, -0.0566406f, 0.313965f,
+-0.0405273f, 0.358398f, -0.0405273f, 0.385254f, -0.0405273f, 0.410889f, -0.0446777f,
+0.436523f, -0.0488281f, 0.459229f, -0.0556641f, 0.481934f, -0.0625f, 0.500732f, -0.0712891f,
+0.519531f, -0.0800781f, 0.532715f, -0.0898438f, 0.570312f, -0.197266f, 0.611816f,
+-0.197266f, 0.57959f, -0.03125f, 0.555664f, -0.0234375f, 0.526123f, -0.0161133f,
+0.496582f, -0.00878906f, 0.463867f, -0.00292969f, 0.431152f, 0.00292969f, 0.396484f,
+0.00634766f, 0.361816f, 0.00976562f, 0.327148f, 0.00976562f, 0.546875f, -0.37793f,
+0.546875f, -0.438965f, 0.532227f, -0.481445f, 0.517578f, -0.523926f, 0.490967f, -0.550537f,
+0.464355f, -0.577148f, 0.427002f, -0.589111f, 0.389648f, -0.601074f, 0.344238f, -0.601074f,
+0.326172f, -0.601074f, 0.22998f, -0.0556641f, 0.245605f, -0.0541992f, 0.26001f, -0.0529785f,
+0.274414f, -0.0517578f, 0.290527f, -0.0517578f, 0.351562f, -0.0517578f, 0.39917f,
+-0.0749512f, 0.446777f, -0.0981445f, 0.479736f, -0.140869f, 0.512695f, -0.183594f,
+0.529785f, -0.243652f, 0.546875f, -0.303711f, 0.546875f, -0.37793f, 0.362305f, -0.654785f,
+0.444336f, -0.654785f, 0.50708f, -0.637207f, 0.569824f, -0.619629f, 0.612305f, -0.585205f,
+0.654785f, -0.550781f, 0.676758f, -0.500488f, 0.69873f, -0.450195f, 0.69873f, -0.384766f,
+0.69873f, -0.297363f, 0.670898f, -0.226074f, 0.643066f, -0.154785f, 0.590576f, -0.104004f,
+0.538086f, -0.0532227f, 0.462646f, -0.0256348f, 0.387207f, 0.00195312f, 0.29248f,
+0.00195312f, 0.234863f, 0.00195312f, 0.181152f, 0.000976562f, 0.127441f, 0, 0.0878906f,
+0, -0.00732422f, 0, -0.00146484f, -0.0356445f, 0.0849609f, -0.0488281f, 0.183105f,
+-0.606445f, 0.101562f, -0.619141f, 0.10791f, -0.654785f, -0.00146484f, -0.0356445f,
+0.0849609f, -0.0488281f, 0.183105f, -0.606445f, 0.101562f, -0.619141f, 0.10791f,
+-0.654785f, 0.621582f, -0.654785f, 0.592285f, -0.488281f, 0.547852f, -0.488281f,
+0.550781f, -0.594238f, 0.535645f, -0.596191f, 0.515381f, -0.597656f, 0.495117f, -0.599121f,
+0.473389f, -0.599854f, 0.45166f, -0.600586f, 0.430908f, -0.60083f, 0.410156f, -0.601074f,
+0.394043f, -0.601074f, 0.32666f, -0.601074f, 0.28418f, -0.36084f, 0.421387f, -0.36084f,
+0.449219f, -0.433105f, 0.492676f, -0.433105f, 0.457031f, -0.231934f, 0.413574f, -0.231934f,
+0.411621f, -0.306152f, 0.274414f, -0.306152f, 0.22998f, -0.0537109f, 0.319336f, -0.0537109f,
+0.349609f, -0.0537109f, 0.376221f, -0.0544434f, 0.402832f, -0.0551758f, 0.424316f,
+-0.0561523f, 0.445801f, -0.0571289f, 0.461182f, -0.0585938f, 0.476562f, -0.0600586f,
+0.484375f, -0.0615234f, 0.534668f, -0.182617f, 0.579102f, -0.182617f, 0.538086f,
+0, -0.00732422f, 0, 0.271484f, -0.289062f, 0.229004f, -0.0488281f, 0.335449f, -0.0356445f,
+0.32959f, 0, -0.000976562f, 0, 0.00488281f, -0.0356445f, 0.0849609f, -0.0488281f,
+0.183105f, -0.606445f, 0.101562f, -0.619141f, 0.10791f, -0.654785f, 0.650391f, -0.654785f,
+0.619141f, -0.478516f, 0.573242f, -0.478516f, 0.578125f, -0.594238f, 0.567871f, -0.595703f,
+0.550781f, -0.59668f, 0.533691f, -0.597656f, 0.513184f, -0.598633f, 0.492676f, -0.599609f,
+0.470947f, -0.599854f, 0.449219f, -0.600098f, 0.429443f, -0.600586f, 0.409668f, -0.601074f,
+0.394043f, -0.601074f, 0.378418f, -0.601074f, 0.371094f, -0.601074f, 0.32666f, -0.601074f,
+0.28125f, -0.342773f, 0.458496f, -0.342773f, 0.488281f, -0.425781f, 0.531738f, -0.425781f,
+0.492676f, -0.205078f, 0.449219f, -0.205078f, 0.44873f, -0.289062f, 0.0341797f, -0.255371f,
+0.0341797f, -0.353516f, 0.0661621f, -0.429199f, 0.0981445f, -0.504883f, 0.154297f,
+-0.556641f, 0.210449f, -0.608398f, 0.286621f, -0.635254f, 0.362793f, -0.662109f,
+0.451172f, -0.662109f, 0.518555f, -0.662109f, 0.574707f, -0.654053f, 0.630859f, -0.645996f,
+0.683105f, -0.631836f, 0.65625f, -0.481445f, 0.615234f, -0.481445f, 0.615723f, -0.566406f,
+0.587402f, -0.587891f, 0.548096f, -0.599365f, 0.508789f, -0.61084f, 0.459473f, -0.61084f,
+0.404785f, -0.61084f, 0.355225f, -0.586914f, 0.305664f, -0.562988f, 0.268066f, -0.516846f,
+0.230469f, -0.470703f, 0.208252f, -0.402344f, 0.186035f, -0.333984f, 0.186035f, -0.245605f,
+0.186035f, -0.194336f, 0.197754f, -0.155762f, 0.209473f, -0.117188f, 0.230469f, -0.0915527f,
+0.251465f, -0.065918f, 0.280762f, -0.0532227f, 0.310059f, -0.0405273f, 0.345703f,
+-0.0405273f, 0.383301f, -0.0405273f, 0.413818f, -0.0476074f, 0.444336f, -0.0546875f,
+0.461426f, -0.0615234f, 0.494629f, -0.24707f, 0.413086f, -0.262695f, 0.418945f, -0.295898f,
+0.710938f, -0.295898f, 0.705078f, -0.262695f, 0.638672f, -0.24707f, 0.601074f, -0.0341797f,
+0.568359f, -0.0239258f, 0.536133f, -0.0158691f, 0.503906f, -0.0078125f, 0.469971f,
+-0.00195312f, 0.436035f, 0.00390625f, 0.399658f, 0.00683594f, 0.363281f, 0.00976562f,
+0.323242f, 0.00976562f, 0.253906f, 0.00976562f, 0.199951f, -0.00854492f, 0.145996f,
+-0.0268555f, 0.109131f, -0.0612793f, 0.0722656f, -0.0957031f, 0.0532227f, -0.144775f,
+0.0341797f, -0.193848f, 0.0341797f, -0.255371f, -0.00732422f, 0, -0.000976562f, -0.0361328f,
+0.0849609f, -0.0488281f, 0.183105f, -0.605957f, 0.101562f, -0.619141f, 0.10791f,
+-0.654785f, 0.419922f, -0.654785f, 0.413574f, -0.619141f, 0.327148f, -0.605957f,
+0.284668f, -0.36377f, 0.522949f, -0.36377f, 0.56543f, -0.605957f, 0.483887f, -0.619141f,
+0.490234f, -0.654785f, 0.803223f, -0.654785f, 0.796875f, -0.619141f, 0.709961f, -0.605957f,
+0.611816f, -0.0488281f, 0.693848f, -0.0361328f, 0.6875f, 0, 0.374512f, 0, 0.380859f,
+-0.0361328f, 0.467285f, -0.0488281f, 0.513184f, -0.310059f, 0.274902f, -0.310059f,
+0.229004f, -0.0488281f, 0.310547f, -0.0361328f, 0.304199f, 0, 0.226562f, -0.0488281f,
+0.308105f, -0.0361328f, 0.301758f, 0, -0.00976562f, 0, -0.00341797f, -0.0361328f,
+0.0825195f, -0.0488281f, 0.180664f, -0.605957f, 0.0991211f, -0.619141f, 0.105469f,
+-0.654785f, 0.41748f, -0.654785f, 0.411133f, -0.619141f, 0.324707f, -0.605957f, 0.299316f,
+-0.606445f, 0.217773f, -0.619141f, 0.224121f, -0.654785f, 0.526367f, -0.654785f,
+0.52002f, -0.619141f, 0.443359f, -0.606445f, 0.374023f, -0.210938f, 0.362305f, -0.144043f,
+0.335205f, -0.101318f, 0.308105f, -0.0585938f, 0.272949f, -0.0339355f, 0.237793f,
+-0.00927734f, 0.19751f, 0.000244141f, 0.157227f, 0.00976562f, 0.119141f, 0.00976562f,
+0.0854492f, 0.00976562f, 0.0527344f, 0.00585938f, 0.0200195f, 0.00195312f, -0.00195312f,
+-0.00488281f, 0.0244141f, -0.15332f, 0.0649414f, -0.15332f, 0.0668945f, -0.065918f,
+0.0742188f, -0.0546875f, 0.0878906f, -0.0483398f, 0.101562f, -0.0419922f, 0.12207f,
+-0.0419922f, 0.138672f, -0.0419922f, 0.154053f, -0.0478516f, 0.169434f, -0.0537109f,
+0.181885f, -0.0654297f, 0.194336f, -0.0771484f, 0.203369f, -0.0944824f, 0.212402f,
+-0.111816f, 0.216309f, -0.134766f, 0.229004f, -0.0488281f, 0.315918f, -0.0356445f,
+0.310059f, 0, -0.00732422f, 0, -0.00146484f, -0.0356445f, 0.0849609f, -0.0488281f,
+0.183105f, -0.606445f, 0.101562f, -0.619141f, 0.10791f, -0.654785f, 0.415039f, -0.654785f,
+0.408691f, -0.619141f, 0.327148f, -0.606445f, 0.282715f, -0.350586f, 0.563965f, -0.606445f,
+0.508789f, -0.619141f, 0.515137f, -0.654785f, 0.722656f, -0.654785f, 0.716309f, -0.619141f,
+0.648438f, -0.606445f, 0.41748f, -0.396973f, 0.589844f, -0.0488281f, 0.655273f, -0.0356445f,
+0.649414f, 0, 0.460938f, 0, 0.316406f, -0.310547f, 0.270996f, -0.288574f, 0.425781f,
+-0.619141f, 0.327148f, -0.606445f, 0.229492f, -0.0517578f, 0.284668f, -0.0517578f,
+0.310059f, -0.0517578f, 0.339111f, -0.0527344f, 0.368164f, -0.0537109f, 0.394043f,
+-0.0551758f, 0.419922f, -0.0566406f, 0.439941f, -0.0583496f, 0.459961f, -0.0600586f,
+0.467773f, -0.0615234f, 0.524902f, -0.197754f, 0.565918f, -0.197754f, 0.522461f,
+0, -0.00732422f, 0, -0.00146484f, -0.0356445f, 0.0849609f, -0.0488281f, 0.183105f,
+-0.606445f, 0.102051f, -0.619141f, 0.108398f, -0.654785f, 0.432129f, -0.654785f,
+0.361328f, 0, 0.339355f, 0, 0.231445f, -0.56543f, 0.140137f, -0.0488281f, 0.225586f,
+-0.0356445f, 0.219727f, 0, -0.0131836f, 0, -0.00732422f, -0.0356445f, 0.0791016f,
+-0.0488281f, 0.177246f, -0.606445f, 0.0957031f, -0.619141f, 0.102051f, -0.654785f,
+0.342773f, -0.654785f, 0.42334f, -0.228027f, 0.655762f, -0.654785f, 0.916992f, -0.654785f,
+0.910645f, -0.619141f, 0.824219f, -0.606445f, 0.726074f, -0.0488281f, 0.807617f,
+-0.0356445f, 0.801758f, 0, 0.480957f, 0, 0.486816f, -0.0356445f, 0.582031f, -0.0488281f,
+0.67334f, -0.56543f, 0.598145f, -0.606445f, 0.512695f, -0.619141f, 0.519043f, -0.654785f,
+0.751953f, -0.654785f, 0.745605f, -0.619141f, 0.65918f, -0.606445f, 0.552734f, 0,
+0.496582f, 0, 0.232422f, -0.542969f, 0.144043f, -0.0488281f, 0.229492f, -0.0356445f,
+0.223633f, 0, -0.00927734f, 0, -0.00341797f, -0.0356445f, 0.0830078f, -0.0488281f,
+0.181152f, -0.606445f, 0.0996094f, -0.619141f, 0.105957f, -0.654785f, 0.317383f,
+-0.654785f, 0.529785f, -0.218262f, 0.546875f, -0.411621f, 0.546875f, -0.457031f,
+0.537598f, -0.493652f, 0.52832f, -0.530273f, 0.510498f, -0.556396f, 0.492676f, -0.58252f,
+0.466309f, -0.59668f, 0.439941f, -0.61084f, 0.40625f, -0.61084f, 0.368652f, -0.61084f,
+0.337402f, -0.593018f, 0.306152f, -0.575195f, 0.28125f, -0.545654f, 0.256348f, -0.516113f,
+0.238037f, -0.477783f, 0.219727f, -0.439453f, 0.20752f, -0.397949f, 0.195312f, -0.356445f,
+0.189209f, -0.314697f, 0.183105f, -0.272949f, 0.183105f, -0.236816f, 0.183105f, -0.191895f,
+0.192139f, -0.155762f, 0.201172f, -0.119629f, 0.218506f, -0.0939941f, 0.23584f, -0.0683594f,
+0.261475f, -0.0544434f, 0.287109f, -0.0405273f, 0.320801f, -0.0405273f, 0.358887f,
+-0.0405273f, 0.390381f, -0.0578613f, 0.421875f, -0.0751953f, 0.447021f, -0.104492f,
+0.472168f, -0.133789f, 0.490967f, -0.171875f, 0.509766f, -0.209961f, 0.522217f, -0.250977f,
+0.534668f, -0.291992f, 0.540771f, -0.33374f, 0.546875f, -0.375488f, 0.546875f, -0.411621f,
+0.312012f, 0.00976562f, 0.249023f, 0.00976562f, 0.198242f, -0.0100098f, 0.147461f,
+-0.0297852f, 0.111328f, -0.0651855f, 0.0751953f, -0.100586f, 0.0556641f, -0.14917f,
+0.0361328f, -0.197754f, 0.0361328f, -0.255859f, 0.0361328f, -0.311035f, 0.0471191f,
+-0.362549f, 0.0581055f, -0.414062f, 0.079834f, -0.459229f, 0.101562f, -0.504395f,
+0.134033f, -0.541748f, 0.166504f, -0.579102f, 0.20874f, -0.605713f, 0.250977f, -0.632324f,
+0.303467f, -0.647217f, 0.355957f, -0.662109f, 0.417969f, -0.662109f, 0.480957f, -0.662109f,
+0.531738f, -0.642334f, 0.58252f, -0.622559f, 0.618652f, -0.587158f, 0.654785f, -0.551758f,
+0.674316f, -0.50293f, 0.693848f, -0.454102f, 0.693848f, -0.396484f, 0.693848f, -0.349121f,
+0.68457f, -0.300537f, 0.675293f, -0.251953f, 0.655762f, -0.206787f, 0.63623f, -0.161621f,
+0.605957f, -0.12207f, 0.575684f, -0.0825195f, 0.533203f, -0.0532227f, 0.490723f,
+-0.0239258f, 0.435791f, -0.00708008f, 0.380859f, 0.00976562f, 0.312012f, 0.00976562f,
+0.313965f, -0.310547f, 0.351074f, -0.310547f, 0.380615f, -0.322021f, 0.410156f, -0.333496f,
+0.430908f, -0.355225f, 0.45166f, -0.376953f, 0.462891f, -0.407959f, 0.474121f, -0.438965f,
+0.474121f, -0.478516f, 0.474121f, -0.512207f, 0.465332f, -0.5354f, 0.456543f, -0.558594f,
+0.441406f, -0.573242f, 0.42627f, -0.587891f, 0.405273f, -0.594238f, 0.384277f, -0.600586f,
+0.360352f, -0.600586f, 0.32666f, -0.600586f, 0.275391f, -0.310547f, 0.265625f, -0.256836f,
+0.228516f, -0.0488281f, 0.335449f, -0.0356445f, 0.330078f, 0, -0.000488281f, 0, 0.00488281f,
+-0.0356445f, 0.0839844f, -0.0488281f, 0.182617f, -0.606445f, 0.100586f, -0.619141f,
+0.106445f, -0.654785f, 0.365723f, -0.654785f, 0.432129f, -0.654785f, 0.479736f, -0.642578f,
+0.527344f, -0.630371f, 0.557861f, -0.607666f, 0.588379f, -0.584961f, 0.602783f, -0.55249f,
+0.617188f, -0.52002f, 0.617188f, -0.47998f, 0.617188f, -0.430176f, 0.600098f, -0.38916f,
+0.583008f, -0.348145f, 0.548096f, -0.318604f, 0.513184f, -0.289062f, 0.460205f, -0.272949f,
+0.407227f, -0.256836f, 0.335449f, -0.256836f, 0.693848f, -0.396484f, 0.693848f, -0.337891f,
+0.679688f, -0.27832f, 0.665527f, -0.21875f, 0.635498f, -0.16626f, 0.605469f, -0.11377f,
+0.558105f, -0.0725098f, 0.510742f, -0.03125f, 0.444336f, -0.00976562f, 0.459961f,
+0.0141602f, 0.476562f, 0.0405273f, 0.491943f, 0.0578613f, 0.507324f, 0.0751953f,
+0.520996f, 0.0854492f, 0.534668f, 0.0957031f, 0.546631f, 0.0998535f, 0.558594f, 0.104004f,
+0.569336f, 0.104004f, 0.582031f, 0.104004f, 0.593262f, 0.102539f, 0.604492f, 0.101074f,
+0.612793f, 0.100098f, 0.619141f, 0.138184f, 0.609863f, 0.14209f, 0.594727f, 0.14624f,
+0.57959f, 0.150391f, 0.562012f, 0.153809f, 0.544434f, 0.157227f, 0.526123f, 0.159668f,
+0.507812f, 0.162109f, 0.491699f, 0.162109f, 0.455566f, 0.162109f, 0.429199f, 0.154053f,
+0.402832f, 0.145996f, 0.381592f, 0.129883f, 0.360352f, 0.11377f, 0.342041f, 0.0895996f,
+0.32373f, 0.0654297f, 0.304199f, 0.0332031f, 0.289551f, 0.00878906f, 0.231445f, 0.00537109f,
+0.18457f, -0.015625f, 0.137695f, -0.0366211f, 0.104736f, -0.0715332f, 0.0717773f,
+-0.106445f, 0.0539551f, -0.153564f, 0.0361328f, -0.200684f, 0.0361328f, -0.255859f,
+0.0361328f, -0.311035f, 0.0471191f, -0.362549f, 0.0581055f, -0.414062f, 0.079834f,
+-0.459229f, 0.101562f, -0.504395f, 0.134033f, -0.541748f, 0.166504f, -0.579102f,
+0.20874f, -0.605713f, 0.250977f, -0.632324f, 0.303467f, -0.647217f, 0.355957f, -0.662109f,
+0.417969f, -0.662109f, 0.480957f, -0.662109f, 0.531738f, -0.642334f, 0.58252f, -0.622559f,
+0.618652f, -0.587158f, 0.654785f, -0.551758f, 0.674316f, -0.50293f, 0.693848f, -0.454102f,
+0.693848f, -0.396484f, 0.546875f, -0.411621f, 0.546875f, -0.457031f, 0.537598f, -0.493652f,
+0.52832f, -0.530273f, 0.510498f, -0.556396f, 0.492676f, -0.58252f, 0.466309f, -0.59668f,
+0.439941f, -0.61084f, 0.40625f, -0.61084f, 0.368652f, -0.61084f, 0.337402f, -0.593018f,
+0.306152f, -0.575195f, 0.28125f, -0.545654f, 0.256348f, -0.516113f, 0.238037f, -0.477783f,
+0.219727f, -0.439453f, 0.20752f, -0.397949f, 0.195312f, -0.356445f, 0.189209f, -0.314697f,
+0.183105f, -0.272949f, 0.183105f, -0.236816f, 0.183105f, -0.191895f, 0.192139f, -0.155762f,
+0.201172f, -0.119629f, 0.218506f, -0.0939941f, 0.23584f, -0.0683594f, 0.261475f,
+-0.0544434f, 0.287109f, -0.0405273f, 0.320801f, -0.0405273f, 0.358887f, -0.0405273f,
+0.390381f, -0.0578613f, 0.421875f, -0.0751953f, 0.447021f, -0.104492f, 0.472168f,
+-0.133789f, 0.490967f, -0.171875f, 0.509766f, -0.209961f, 0.522217f, -0.250977f,
+0.534668f, -0.291992f, 0.540771f, -0.33374f, 0.546875f, -0.375488f, 0.546875f, -0.411621f,
+0.269531f, -0.277344f, 0.229004f, -0.0488281f, 0.310547f, -0.0356445f, 0.304688f,
+0, -0.00146484f, 0, 0.00439453f, -0.0356445f, 0.0844727f, -0.0488281f, 0.182617f,
+-0.606445f, 0.101074f, -0.619141f, 0.107422f, -0.654785f, 0.368652f, -0.654785f,
+0.43457f, -0.654785f, 0.481934f, -0.644287f, 0.529297f, -0.633789f, 0.559814f, -0.613037f,
+0.590332f, -0.592285f, 0.60498f, -0.561523f, 0.619629f, -0.530762f, 0.619629f, -0.489746f,
+0.619629f, -0.447266f, 0.607422f, -0.414307f, 0.595215f, -0.381348f, 0.57373f, -0.357178f,
+0.552246f, -0.333008f, 0.522705f, -0.31665f, 0.493164f, -0.300293f, 0.458984f, -0.291016f,
+0.557129f, -0.0488281f, 0.628906f, -0.0356445f, 0.623047f, 0, 0.427734f, 0, 0.326172f,
+-0.277344f, 0.305664f, -0.331055f, 0.345703f, -0.331055f, 0.377441f, -0.341309f,
+0.40918f, -0.351562f, 0.431152f, -0.37085f, 0.453125f, -0.390137f, 0.464844f, -0.418213f,
+0.476562f, -0.446289f, 0.476562f, -0.481934f, 0.476562f, -0.54541f, 0.447021f, -0.573242f,
+0.41748f, -0.601074f, 0.360352f, -0.601074f, 0.32666f, -0.601074f, 0.278809f, -0.331055f,
+0.210938f, 0.00976562f, 0.146973f, 0.00976562f, 0.0983887f, -0.0012207f, 0.0498047f,
+-0.012207f, 0.0180664f, -0.0249023f, 0.0493164f, -0.200684f, 0.0922852f, -0.200684f,
+0.0927734f, -0.0957031f, 0.101074f, -0.0834961f, 0.114502f, -0.0732422f, 0.12793f,
+-0.0629883f, 0.144531f, -0.0554199f, 0.161133f, -0.0478516f, 0.180176f, -0.0437012f,
+0.199219f, -0.0395508f, 0.219238f, -0.0395508f, 0.257812f, -0.0395508f, 0.285889f,
+-0.0480957f, 0.313965f, -0.0566406f, 0.332031f, -0.0717773f, 0.350098f, -0.0869141f,
+0.358887f, -0.107422f, 0.367676f, -0.12793f, 0.367676f, -0.151855f, 0.367676f, -0.178223f,
+0.355957f, -0.197754f, 0.344238f, -0.217285f, 0.324951f, -0.233154f, 0.305664f, -0.249023f,
+0.28125f, -0.262939f, 0.256836f, -0.276855f, 0.231201f, -0.29126f, 0.205566f, -0.305664f,
+0.181152f, -0.32251f, 0.156738f, -0.339355f, 0.137451f, -0.361328f, 0.118164f, -0.383301f,
+0.106445f, -0.411621f, 0.0947266f, -0.439941f, 0.0947266f, -0.478027f, 0.0947266f,
+-0.524902f, 0.112061f, -0.559326f, 0.129395f, -0.59375f, 0.162354f, -0.616699f, 0.195312f,
+-0.639648f, 0.242676f, -0.650879f, 0.290039f, -0.662109f, 0.350098f, -0.662109f,
+0.391602f, -0.662109f, 0.435059f, -0.65625f, 0.478516f, -0.650391f, 0.51416f, -0.641113f,
+0.486816f, -0.485352f, 0.443359f, -0.485352f, 0.439941f, -0.581055f, 0.421387f, -0.595215f,
+0.395264f, -0.603271f, 0.369141f, -0.611328f, 0.336914f, -0.611328f, 0.305664f, -0.611328f,
+0.283203f, -0.604004f, 0.260742f, -0.59668f, 0.246582f, -0.584473f, 0.232422f, -0.572266f,
+0.225586f, -0.555908f, 0.21875f, -0.539551f, 0.21875f, -0.521973f, 0.21875f, -0.498535f,
+0.230469f, -0.480469f, 0.242188f, -0.462402f, 0.261719f, -0.447266f, 0.28125f, -0.432129f,
+0.305908f, -0.418457f, 0.330566f, -0.404785f, 0.356201f, -0.390137f, 0.381836f, -0.375488f,
+0.406494f, -0.358643f, 0.431152f, -0.341797f, 0.450684f, -0.320068f, 0.470215f, -0.29834f,
+0.481934f, -0.270752f, 0.493652f, -0.243164f, 0.493652f, -0.206543f, 0.493652f, -0.152832f,
+0.474854f, -0.112305f, 0.456055f, -0.0717773f, 0.419922f, -0.0446777f, 0.383789f,
+-0.0175781f, 0.331299f, -0.00390625f, 0.278809f, 0.00976562f, 0.210938f, 0.00976562f,
+0.081543f, 0, 0.0874023f, -0.0356445f, 0.193848f, -0.0488281f, 0.291504f, -0.603027f,
+0.261719f, -0.603027f, 0.250488f, -0.603027f, 0.235352f, -0.602295f, 0.220215f, -0.601562f,
+0.204834f, -0.600098f, 0.189453f, -0.598633f, 0.175293f, -0.596924f, 0.161133f, -0.595215f,
+0.151855f, -0.593262f, 0.115234f, -0.47168f, 0.0727539f, -0.47168f, 0.10498f, -0.654785f,
+0.643555f, -0.654785f, 0.611328f, -0.47168f, 0.568359f, -0.47168f, 0.574707f, -0.593262f,
+0.565918f, -0.595215f, 0.552002f, -0.59668f, 0.538086f, -0.598145f, 0.522461f, -0.599365f,
+0.506836f, -0.600586f, 0.491455f, -0.601318f, 0.476074f, -0.602051f, 0.464844f, -0.602051f,
+0.436035f, -0.602051f, 0.338379f, -0.0488281f, 0.439941f, -0.0356445f, 0.434082f,
+0, 0.081543f, -0.619141f, 0.0878906f, -0.654785f, 0.390137f, -0.654785f, 0.383789f,
+-0.619141f, 0.297363f, -0.606445f, 0.242188f, -0.286133f, 0.236816f, -0.255859f,
+0.233887f, -0.229736f, 0.230957f, -0.203613f, 0.230957f, -0.189941f, 0.230957f, -0.122559f,
+0.264893f, -0.0910645f, 0.298828f, -0.0595703f, 0.361328f, -0.0595703f, 0.405273f,
+-0.0595703f, 0.438721f, -0.0722656f, 0.472168f, -0.0849609f, 0.49585f, -0.107178f,
+0.519531f, -0.129395f, 0.533936f, -0.159912f, 0.54834f, -0.19043f, 0.554688f, -0.226074f,
+0.621582f, -0.606445f, 0.536133f, -0.619141f, 0.54248f, -0.654785f, 0.765137f, -0.654785f,
+0.758789f, -0.619141f, 0.682129f, -0.606445f, 0.616211f, -0.22998f, 0.606934f, -0.177734f,
+0.587646f, -0.133789f, 0.568359f, -0.0898438f, 0.5354f, -0.0581055f, 0.502441f, -0.0263672f,
+0.453613f, -0.00854492f, 0.404785f, 0.00927734f, 0.336426f, 0.00927734f, 0.270996f,
+0.00927734f, 0.224121f, -0.00610352f, 0.177246f, -0.0214844f, 0.146973f, -0.048584f,
+0.116699f, -0.0756836f, 0.102295f, -0.113281f, 0.0878906f, -0.150879f, 0.0878906f,
+-0.194824f, 0.0878906f, -0.212891f, 0.0905762f, -0.235596f, 0.0932617f, -0.258301f,
+0.0976562f, -0.284668f, 0.15332f, -0.606445f, 0.734863f, -0.654785f, 0.729004f, -0.619141f,
+0.664551f, -0.605957f, 0.312012f, 0.0151367f, 0.256836f, 0.0151367f, 0.109863f, -0.605957f,
+0.0585938f, -0.619141f, 0.0644531f, -0.654785f, 0.331543f, -0.654785f, 0.325684f,
+-0.619141f, 0.255371f, -0.605957f, 0.354004f, -0.176758f, 0.591797f, -0.605957f,
+0.52832f, -0.619141f, 0.53418f, -0.654785f, 0.881836f, -0.606445f, 0.592773f, 0.0151367f,
+0.546875f, 0.0151367f, 0.469727f, -0.398926f, 0.273438f, 0.0151367f, 0.224121f, 0.0151367f,
+0.132324f, -0.606445f, 0.0688477f, -0.619141f, 0.0751953f, -0.654785f, 0.350586f,
+-0.654785f, 0.344238f, -0.619141f, 0.265137f, -0.606445f, 0.316895f, -0.208984f,
+0.510742f, -0.61377f, 0.55957f, -0.61377f, 0.633789f, -0.206543f, 0.810547f, -0.606445f,
+0.730469f, -0.619141f, 0.736816f, -0.654785f, 0.947754f, -0.654785f, 0.941406f, -0.619141f,
+0.125488f, -0.0488281f, 0.199219f, -0.0356445f, 0.193359f, 0, -0.0253906f, 0, -0.0195312f,
+-0.0356445f, 0.0551758f, -0.0488281f, 0.280273f, -0.310059f, 0.164062f, -0.606445f,
+0.0927734f, -0.619141f, 0.0991211f, -0.654785f, 0.398438f, -0.654785f, 0.39209f,
+-0.619141f, 0.311523f, -0.606445f, 0.381348f, -0.427246f, 0.535645f, -0.606445f,
+0.461914f, -0.619141f, 0.468262f, -0.654785f, 0.6875f, -0.654785f, 0.681152f, -0.619141f,
+0.606445f, -0.606445f, 0.40332f, -0.371094f, 0.529785f, -0.0488281f, 0.601562f, -0.0356445f,
+0.595703f, 0, 0.296387f, 0, 0.302246f, -0.0356445f, 0.382812f, -0.0488281f, 0.302246f,
+-0.253906f, 0.381836f, -0.267578f, 0.342773f, -0.0488281f, 0.444336f, -0.0356445f,
+0.438477f, 0, 0.0859375f, 0, 0.0917969f, -0.0356445f, 0.198242f, -0.0488281f, 0.236816f,
+-0.264648f, 0.122559f, -0.606445f, 0.0512695f, -0.619141f, 0.0576172f, -0.654785f,
+0.368164f, -0.654785f, 0.361816f, -0.619141f, 0.271484f, -0.606445f, 0.358398f, -0.334961f,
+0.536133f, -0.606445f, 0.458496f, -0.619141f, 0.464844f, -0.654785f, 0.6875f, -0.654785f,
+0.681152f, -0.619141f, 0.609375f, -0.606445f, 0.00732422f, -0.0556641f, 0.410645f,
+-0.603027f, 0.316895f, -0.603027f, 0.294434f, -0.603027f, 0.272705f, -0.602295f,
+0.250977f, -0.601562f, 0.232178f, -0.600098f, 0.213379f, -0.598633f, 0.198242f, -0.596924f,
+0.183105f, -0.595215f, 0.173828f, -0.593262f, 0.140625f, -0.490234f, 0.097168f, -0.490234f,
+0.125977f, -0.654785f, 0.585449f, -0.654785f, 0.576172f, -0.603027f, 0.174316f, -0.0507812f,
+0.265625f, -0.0507812f, 0.294434f, -0.0507812f, 0.324463f, -0.0524902f, 0.354492f,
+-0.0541992f, 0.380615f, -0.0568848f, 0.406738f, -0.0595703f, 0.426758f, -0.0622559f,
+0.446777f, -0.0649414f, 0.456055f, -0.0668945f, 0.506836f, -0.191895f, 0.550781f,
+-0.191895f, 0.503906f, 0, -0.00244141f, 0, 0.0249023f, 0.133789f, 0.170898f, -0.693848f,
+0.383789f, -0.693848f, 0.37793f, -0.661133f, 0.275391f, -0.641113f, 0.147949f, 0.0810547f,
+0.243652f, 0.101074f, 0.237793f, 0.133789f, 0.165527f, 0.00976562f, 0.0634766f, -0.658691f,
+0.125488f, -0.658691f, 0.229004f, 0.00976562f, -0.0517578f, 0.133789f, -0.0458984f,
+0.101074f, 0.0566406f, 0.0810547f, 0.184082f, -0.641113f, 0.0883789f, -0.661133f,
+0.0942383f, -0.693848f, 0.307129f, -0.693848f, 0.161133f, 0.133789f, 0.456055f, -0.189941f,
+0.294922f, -0.561523f, 0.133789f, -0.189941f, 0.0639648f, -0.189941f, 0.272949f,
+-0.654785f, 0.316895f, -0.654785f, 0.525879f, -0.189941f, -0.074707f, 0.13916f, -0.074707f,
+0.0688477f, 0.440918f, 0.0688477f, 0.440918f, 0.13916f, 0.26709f, -0.545898f, 0.112305f,
+-0.676758f, 0.115723f, -0.694824f, 0.245117f, -0.694824f, 0.312012f, -0.561523f,
+0.309082f, -0.545898f, 0.401855f, -0.0439453f, 0.455078f, -0.0283203f, 0.451172f,
+0, 0.281738f, 0, 0.279785f, -0.0673828f, 0.266602f, -0.0507812f, 0.250732f, -0.0366211f,
+0.234863f, -0.0224609f, 0.217041f, -0.0119629f, 0.199219f, -0.00146484f, 0.179932f,
+0.00439453f, 0.160645f, 0.0102539f, 0.140625f, 0.0102539f, 0.112305f, 0.0102539f,
+0.088623f, 0, 0.0649414f, -0.0102539f, 0.0478516f, -0.0310059f, 0.0307617f, -0.0517578f,
+0.0212402f, -0.0830078f, 0.0117188f, -0.114258f, 0.0117188f, -0.155762f, 0.0117188f,
+-0.21875f, 0.0314941f, -0.275879f, 0.0512695f, -0.333008f, 0.0874023f, -0.376221f,
+0.123535f, -0.419434f, 0.174316f, -0.445068f, 0.225098f, -0.470703f, 0.287109f, -0.470703f,
+0.322266f, -0.470703f, 0.35376f, -0.4646f, 0.385254f, -0.458496f, 0.409668f, -0.44873f,
+0.449707f, -0.466797f, 0.476074f, -0.466797f, 0.140137f, -0.171387f, 0.140137f, -0.143066f,
+0.145264f, -0.122314f, 0.150391f, -0.101562f, 0.158936f, -0.0881348f, 0.16748f, -0.074707f,
+0.177979f, -0.0683594f, 0.188477f, -0.0620117f, 0.199219f, -0.0620117f, 0.210449f,
+-0.0620117f, 0.222412f, -0.0681152f, 0.234375f, -0.0742188f, 0.24585f, -0.0842285f,
+0.257324f, -0.0942383f, 0.267578f, -0.106201f, 0.277832f, -0.118164f, 0.285645f,
+-0.129883f, 0.333984f, -0.404785f, 0.32373f, -0.412598f, 0.307129f, -0.416992f, 0.290527f,
+-0.421387f, 0.273438f, -0.421387f, 0.243652f, -0.421387f, 0.218994f, -0.399414f,
+0.194336f, -0.377441f, 0.176758f, -0.341797f, 0.15918f, -0.306152f, 0.149658f, -0.261475f,
+0.140137f, -0.216797f, 0.140137f, -0.171387f, 0.341797f, -0.286621f, 0.341797f, -0.315918f,
+0.33667f, -0.336914f, 0.331543f, -0.35791f, 0.323242f, -0.371094f, 0.314941f, -0.384277f,
+0.304199f, -0.390625f, 0.293457f, -0.396973f, 0.282715f, -0.396973f, 0.273438f, -0.396973f,
+0.262939f, -0.391846f, 0.252441f, -0.386719f, 0.241455f, -0.377686f, 0.230469f, -0.368652f,
+0.219238f, -0.356201f, 0.208008f, -0.34375f, 0.197754f, -0.329102f, 0.150391f, -0.0605469f,
+0.15625f, -0.0546875f, 0.164795f, -0.050293f, 0.17334f, -0.0458984f, 0.182129f, -0.0429688f,
+0.190918f, -0.0400391f, 0.199219f, -0.0385742f, 0.20752f, -0.0371094f, 0.213379f,
+-0.0371094f, 0.240723f, -0.0371094f, 0.26416f, -0.059082f, 0.287598f, -0.0810547f,
+0.304932f, -0.116699f, 0.322266f, -0.152344f, 0.332031f, -0.196777f, 0.341797f, -0.241211f,
+0.341797f, -0.286621f, 0.219238f, 0.0112305f, 0.195801f, 0.0112305f, 0.169678f, 0.00927734f,
+0.143555f, 0.00732422f, 0.116699f, 0.00341797f, 0.0898438f, -0.000488281f, 0.0634766f,
+-0.00708008f, 0.0371094f, -0.0136719f, 0.0131836f, -0.0234375f, 0.124023f, -0.650879f,
+0.0791016f, -0.662109f, 0.0844727f, -0.693848f, 0.262695f, -0.693848f, 0.225586f,
+-0.483887f, 0.224121f, -0.475098f, 0.221924f, -0.463379f, 0.219727f, -0.45166f, 0.217041f,
+-0.438965f, 0.214355f, -0.42627f, 0.211426f, -0.413574f, 0.208496f, -0.400879f, 0.205078f,
+-0.38916f, 0.218262f, -0.406738f, 0.233887f, -0.421875f, 0.249512f, -0.437012f, 0.26709f,
+-0.447998f, 0.284668f, -0.458984f, 0.303711f, -0.465088f, 0.322754f, -0.471191f,
+0.342285f, -0.471191f, 0.369629f, -0.471191f, 0.393066f, -0.460693f, 0.416504f, -0.450195f,
+0.433594f, -0.429688f, 0.450684f, -0.40918f, 0.460449f, -0.378662f, 0.470215f, -0.348145f,
+0.470215f, -0.308105f, 0.470215f, -0.266113f, 0.461914f, -0.226074f, 0.453613f, -0.186035f,
+0.438232f, -0.150635f, 0.422852f, -0.115234f, 0.400879f, -0.0854492f, 0.378906f,
+-0.0556641f, 0.351074f, -0.0341797f, 0.323242f, -0.0126953f, 0.290039f, -0.000732422f,
+0.256836f, 0.0112305f, 0.219238f, 0.0112305f, 0.190918f, 0.00976562f, 0.146973f,
+0.00976562f, 0.11377f, -0.00268555f, 0.0805664f, -0.0151367f, 0.0585938f, -0.0378418f,
+0.0366211f, -0.0605469f, 0.0256348f, -0.0917969f, 0.0146484f, -0.123047f, 0.0146484f,
+-0.161133f, 0.0146484f, -0.237305f, 0.0383301f, -0.29541f, 0.0620117f, -0.353516f,
+0.100342f, -0.392578f, 0.138672f, -0.431641f, 0.187256f, -0.451416f, 0.23584f, -0.471191f,
+0.285645f, -0.471191f, 0.305176f, -0.471191f, 0.325684f, -0.469238f, 0.346191f, -0.467285f,
+0.365479f, -0.464111f, 0.384766f, -0.460938f, 0.401367f, -0.457031f, 0.417969f, -0.453125f,
+0.429199f, -0.449219f, 0.405273f, -0.308594f, 0.370117f, -0.308594f, 0.363281f, -0.39209f,
+0.351074f, -0.405762f, 0.33374f, -0.413574f, 0.316406f, -0.421387f, 0.291992f, -0.421387f,
+0.263672f, -0.421387f, 0.237305f, -0.402588f, 0.210938f, -0.383789f, 0.19043f, -0.350098f,
+0.169922f, -0.316406f, 0.157715f, -0.269531f, 0.145508f, -0.222656f, 0.145508f, -0.166016f,
+0.145508f, -0.135254f, 0.1521f, -0.113281f, 0.158691f, -0.0913086f, 0.169922f, -0.0773926f,
+0.181152f, -0.0634766f, 0.196777f, -0.0571289f, 0.212402f, -0.0507812f, 0.22998f,
+-0.0507812f, 0.266602f, -0.0507812f, 0.296631f, -0.0639648f, 0.32666f, -0.0771484f,
+0.354492f, -0.0966797f, 0.375977f, -0.065918f, 0.362793f, -0.0541992f, 0.34375f,
+-0.0410156f, 0.324707f, -0.027832f, 0.301025f, -0.0166016f, 0.277344f, -0.00537109f,
+0.249512f, 0.00219727f, 0.22168f, 0.00976562f, 0.190918f, 0.00976562f, 0.134766f,
+0.00976562f, 0.108887f, 0.00976562f, 0.0864258f, -0.000488281f, 0.0639648f, -0.0107422f,
+0.0473633f, -0.0307617f, 0.0307617f, -0.0507812f, 0.0212402f, -0.0810547f, 0.0117188f,
+-0.111328f, 0.0117188f, -0.151367f, 0.0117188f, -0.214355f, 0.0290527f, -0.272217f,
+0.0463867f, -0.330078f, 0.0786133f, -0.374023f, 0.11084f, -0.417969f, 0.15625f, -0.444336f,
+0.20166f, -0.470703f, 0.257812f, -0.470703f, 0.268555f, -0.470703f, 0.280762f, -0.469727f,
+0.292969f, -0.46875f, 0.304443f, -0.467041f, 0.315918f, -0.465332f, 0.325928f, -0.462646f,
+0.335938f, -0.459961f, 0.342773f, -0.457031f, 0.343262f, -0.462891f, 0.343994f, -0.471436f,
+0.344727f, -0.47998f, 0.345703f, -0.48877f, 0.34668f, -0.497559f, 0.347656f, -0.505371f,
+0.348633f, -0.513184f, 0.349609f, -0.517578f, 0.37207f, -0.650391f, 0.293945f, -0.662109f,
+0.299805f, -0.693848f, 0.512207f, -0.693848f, 0.396484f, -0.0415039f, 0.444824f,
+-0.0292969f, 0.438965f, 0, 0.276855f, 0, 0.273438f, -0.0703125f, 0.260254f, -0.0527344f,
+0.244141f, -0.0378418f, 0.228027f, -0.0229492f, 0.209961f, -0.0124512f, 0.191895f,
+-0.00195312f, 0.172852f, 0.00390625f, 0.153809f, 0.00976562f, 0.134766f, 0.00976562f,
+0.140137f, -0.172852f, 0.140137f, -0.143555f, 0.144287f, -0.122559f, 0.148438f, -0.101562f,
+0.155518f, -0.0883789f, 0.162598f, -0.0751953f, 0.171631f, -0.0688477f, 0.180664f,
+-0.0625f, 0.19043f, -0.0625f, 0.199707f, -0.0625f, 0.211182f, -0.067627f, 0.222656f,
+-0.0727539f, 0.234863f, -0.0817871f, 0.24707f, -0.0908203f, 0.259277f, -0.103271f,
+0.271484f, -0.115723f, 0.281738f, -0.130371f, 0.329102f, -0.398926f, 0.323242f, -0.404785f,
+0.314453f, -0.40918f, 0.305664f, -0.413574f, 0.296143f, -0.416504f, 0.286621f, -0.419434f,
+0.278076f, -0.420898f, 0.269531f, -0.422363f, 0.263672f, -0.422363f, 0.236328f, -0.422363f,
+0.213623f, -0.400391f, 0.190918f, -0.378418f, 0.174561f, -0.342773f, 0.158203f, -0.307129f,
+0.14917f, -0.262695f, 0.140137f, -0.218262f, 0.140137f, -0.172852f, 0.421875f, -0.371094f,
+0.421875f, -0.339355f, 0.404297f, -0.310303f, 0.386719f, -0.28125f, 0.353027f, -0.258301f,
+0.319336f, -0.235352f, 0.270508f, -0.219727f, 0.22168f, -0.204102f, 0.158691f, -0.199219f,
+0.158203f, -0.197266f, 0.157715f, -0.193115f, 0.157227f, -0.188965f, 0.156982f, -0.184326f,
+0.156738f, -0.179688f, 0.156494f, -0.174561f, 0.15625f, -0.169434f, 0.15625f, -0.166016f,
+0.15625f, -0.144043f, 0.160156f, -0.123291f, 0.164062f, -0.102539f, 0.173828f, -0.0864258f,
+0.183594f, -0.0703125f, 0.200928f, -0.0605469f, 0.218262f, -0.0507812f, 0.244629f,
+-0.0507812f, 0.280762f, -0.0507812f, 0.311523f, -0.0646973f, 0.342285f, -0.0786133f,
+0.369141f, -0.0966797f, 0.390625f, -0.065918f, 0.375488f, -0.0532227f, 0.35498f,
+-0.0397949f, 0.334473f, -0.0263672f, 0.310059f, -0.0153809f, 0.285645f, -0.00439453f,
+0.257812f, 0.00268555f, 0.22998f, 0.00976562f, 0.200684f, 0.00976562f, 0.154785f,
+0.00976562f, 0.121338f, -0.00219727f, 0.0878906f, -0.0141602f, 0.0661621f, -0.0361328f,
+0.0444336f, -0.0581055f, 0.0339355f, -0.0898438f, 0.0234375f, -0.121582f, 0.0234375f,
+-0.161133f, 0.0234375f, -0.20459f, 0.032959f, -0.244385f, 0.0424805f, -0.28418f,
+0.0598145f, -0.318604f, 0.0771484f, -0.353027f, 0.100586f, -0.381104f, 0.124023f,
+-0.40918f, 0.1521f, -0.429199f, 0.180176f, -0.449219f, 0.211426f, -0.460205f, 0.242676f,
+-0.471191f, 0.274902f, -0.471191f, 0.310547f, -0.471191f, 0.337891f, -0.463623f,
+0.365234f, -0.456055f, 0.384033f, -0.442627f, 0.402832f, -0.429199f, 0.412354f, -0.410889f,
+0.421875f, -0.392578f, 0.421875f, -0.371094f, 0.166504f, -0.248047f, 0.199219f, -0.251465f,
+0.224609f, -0.263916f, 0.25f, -0.276367f, 0.267334f, -0.294189f, 0.284668f, -0.312012f,
+0.293701f, -0.33374f, 0.302734f, -0.355469f, 0.302734f, -0.377441f, 0.302734f, -0.397949f,
+0.292725f, -0.408203f, 0.282715f, -0.418457f, 0.269043f, -0.418457f, 0.250488f, -0.418457f,
+0.234131f, -0.403809f, 0.217773f, -0.38916f, 0.204346f, -0.365234f, 0.190918f, -0.341309f,
+0.181152f, -0.310791f, 0.171387f, -0.280273f, 0.166504f, -0.248047f, 0.108398f, -0.408203f,
+0.0292969f, -0.408203f, 0.0351562f, -0.441895f, 0.117676f, -0.460938f, 0.128906f,
+-0.520508f, 0.146973f, -0.617188f, 0.199219f, -0.660645f, 0.251465f, -0.704102f,
+0.338379f, -0.704102f, 0.359863f, -0.704102f, 0.381592f, -0.700928f, 0.40332f, -0.697754f,
+0.416016f, -0.693848f, 0.396973f, -0.585449f, 0.365723f, -0.585449f, 0.359863f, -0.640137f,
+0.355957f, -0.644043f, 0.349854f, -0.647217f, 0.34375f, -0.650391f, 0.33252f, -0.650391f,
+0.321289f, -0.650391f, 0.311279f, -0.645264f, 0.30127f, -0.640137f, 0.29248f, -0.627441f,
+0.283691f, -0.614746f, 0.276367f, -0.592529f, 0.269043f, -0.570312f, 0.262695f, -0.536133f,
+0.248535f, -0.458984f, 0.349121f, -0.458984f, 0.340332f, -0.408203f, 0.239746f, -0.408203f,
+0.131348f, 0.212891f, 0, 0.212891f, 0.142578f, -0.17334f, 0.142578f, -0.144043f,
+0.147461f, -0.123047f, 0.152344f, -0.102051f, 0.1604f, -0.0888672f, 0.168457f, -0.0756836f,
+0.178467f, -0.0693359f, 0.188477f, -0.0629883f, 0.19873f, -0.0629883f, 0.21582f,
+-0.0629883f, 0.239014f, -0.0800781f, 0.262207f, -0.097168f, 0.28418f, -0.126465f,
+0.336426f, -0.410645f, 0.32373f, -0.416016f, 0.308838f, -0.419434f, 0.293945f, -0.422852f,
+0.273438f, -0.422852f, 0.243164f, -0.422852f, 0.218994f, -0.400879f, 0.194824f, -0.378906f,
+0.177979f, -0.343262f, 0.161133f, -0.307617f, 0.151855f, -0.263184f, 0.142578f, -0.21875f,
+0.142578f, -0.17334f, 0.0141602f, -0.151855f, 0.0141602f, -0.193848f, 0.0222168f,
+-0.233887f, 0.0302734f, -0.273926f, 0.0454102f, -0.309326f, 0.0605469f, -0.344727f,
+0.0827637f, -0.374512f, 0.10498f, -0.404297f, 0.133545f, -0.425781f, 0.162109f, -0.447266f,
+0.196533f, -0.459229f, 0.230957f, -0.471191f, 0.270996f, -0.471191f, 0.294434f, -0.471191f,
+0.320312f, -0.469482f, 0.346191f, -0.467773f, 0.372314f, -0.464844f, 0.398438f, -0.461914f,
+0.424316f, -0.458252f, 0.450195f, -0.45459f, 0.473633f, -0.450684f, 0.389648f, 0.0170898f,
+0.379883f, 0.0698242f, 0.359375f, 0.107178f, 0.338867f, 0.144531f, 0.307861f, 0.167969f,
+0.276855f, 0.191406f, 0.235596f, 0.202148f, 0.194336f, 0.212891f, 0.143555f, 0.212891f,
+0.118652f, 0.212891f, 0.0942383f, 0.209961f, 0.0698242f, 0.207031f, 0.0483398f, 0.202148f,
+0.0268555f, 0.197266f, 0.00952148f, 0.190918f, -0.0078125f, 0.18457f, -0.0185547f,
+0.178223f, -0.0078125f, 0.0546875f, 0.0195312f, 0.0546875f, 0.0371094f, 0.118652f,
+0.0546875f, 0.136719f, 0.0825195f, 0.148193f, 0.110352f, 0.159668f, 0.144043f, 0.159668f,
+0.172363f, 0.159668f, 0.19165f, 0.150879f, 0.210938f, 0.14209f, 0.223877f, 0.125977f,
+0.236816f, 0.109863f, 0.244141f, 0.0871582f, 0.251465f, 0.0644531f, 0.256348f, 0.0366211f,
+0.257812f, 0.027832f, 0.260254f, 0.0146484f, 0.262695f, 0.00146484f, 0.265625f, -0.0131836f,
+0.268555f, -0.027832f, 0.271973f, -0.0429688f, 0.275391f, -0.0581055f, 0.279297f,
+-0.0708008f, 0.265625f, -0.0532227f, 0.249268f, -0.0380859f, 0.23291f, -0.0229492f,
+0.214844f, -0.0119629f, 0.196777f, -0.000976562f, 0.177979f, 0.00512695f, 0.15918f,
+0.0112305f, 0.140625f, 0.0112305f, 0.11377f, 0.0112305f, 0.0908203f, 0.000732422f,
+0.0678711f, -0.00976562f, 0.0507812f, -0.0302734f, 0.0336914f, -0.0507812f, 0.0239258f,
+-0.0812988f, 0.0141602f, -0.111816f, 0.0141602f, -0.151855f, 0.231934f, -0.467773f,
+0.22998f, -0.456055f, 0.227051f, -0.44165f, 0.224121f, -0.427246f, 0.221436f, -0.413818f,
+0.21875f, -0.400391f, 0.216309f, -0.389648f, 0.213867f, -0.378906f, 0.212891f, -0.375488f,
+0.25f, -0.422852f, 0.296143f, -0.447021f, 0.342285f, -0.471191f, 0.399414f, -0.471191f,
+0.421875f, -0.471191f, 0.441162f, -0.464844f, 0.460449f, -0.458496f, 0.474609f, -0.446045f,
+0.48877f, -0.433594f, 0.496582f, -0.415527f, 0.504395f, -0.397461f, 0.504395f, -0.374023f,
+0.504395f, -0.365234f, 0.50293f, -0.353027f, 0.501465f, -0.34082f, 0.499756f, -0.327881f,
+0.498047f, -0.314941f, 0.49585f, -0.303223f, 0.493652f, -0.291504f, 0.492188f, -0.283203f,
+0.449707f, -0.0439453f, 0.506348f, -0.0322266f, 0.5f, 0, 0.311523f, 0, 0.361328f,
+-0.277832f, 0.363281f, -0.288086f, 0.365234f, -0.299316f, 0.367188f, -0.310547f,
+0.368652f, -0.320801f, 0.370117f, -0.331055f, 0.371094f, -0.339844f, 0.37207f, -0.348633f,
+0.37207f, -0.354004f, 0.37207f, -0.401367f, 0.327637f, -0.401367f, 0.311035f, -0.401367f,
+0.29248f, -0.391357f, 0.273926f, -0.381348f, 0.256348f, -0.365479f, 0.23877f, -0.349609f,
+0.224121f, -0.32959f, 0.209473f, -0.30957f, 0.201172f, -0.290039f, 0.149414f, 0,
+0.0195312f, 0, 0.133789f, -0.649902f, 0.0893555f, -0.661621f, 0.0947266f, -0.693848f,
+0.272949f, -0.693848f, 0.164551f, -0.0439453f, 0.222656f, -0.0322266f, 0.217285f,
+0, 0.0253906f, 0, 0.0986328f, -0.415039f, 0.0541992f, -0.426758f, 0.0595703f, -0.458984f,
+0.237793f, -0.458984f, 0.123535f, -0.619141f, 0.123535f, -0.634766f, 0.129395f, -0.648438f,
+0.135254f, -0.662109f, 0.145508f, -0.672119f, 0.155762f, -0.682129f, 0.169434f, -0.687988f,
+0.183105f, -0.693848f, 0.19873f, -0.693848f, 0.214355f, -0.693848f, 0.228027f, -0.687988f,
+0.241699f, -0.682129f, 0.251709f, -0.672119f, 0.261719f, -0.662109f, 0.267578f, -0.648438f,
+0.273438f, -0.634766f, 0.273438f, -0.619141f, 0.273438f, -0.603516f, 0.267578f, -0.589844f,
+0.261719f, -0.576172f, 0.251709f, -0.565918f, 0.241699f, -0.555664f, 0.228027f, -0.549805f,
+0.214355f, -0.543945f, 0.19873f, -0.543945f, 0.183105f, -0.543945f, 0.169434f, -0.549805f,
+0.155762f, -0.555664f, 0.145508f, -0.565918f, 0.135254f, -0.576172f, 0.129395f, -0.589844f,
+0.123535f, -0.603516f, 0.123535f, -0.619141f, 0.160156f, 0.019043f, 0.150879f, 0.0708008f,
+0.131836f, 0.107666f, 0.112793f, 0.144531f, 0.0856934f, 0.167969f, 0.0585938f, 0.191406f,
+0.0244141f, 0.202148f, -0.00976562f, 0.212891f, -0.0488281f, 0.212891f, -0.0708008f,
+0.212891f, -0.0922852f, 0.210449f, -0.11377f, 0.208008f, -0.130859f, 0.204102f, -0.111816f,
+0.0942383f, -0.0810547f, 0.0942383f, -0.0693359f, 0.151855f, -0.0654297f, 0.154785f,
+-0.0600586f, 0.156982f, -0.0546875f, 0.15918f, -0.0473633f, 0.15918f, -0.0366211f,
+0.15918f, -0.026123f, 0.152588f, -0.015625f, 0.145996f, -0.00610352f, 0.131348f,
+0.00341797f, 0.116699f, 0.0117188f, 0.0930176f, 0.0200195f, 0.0693359f, 0.0258789f,
+0.034668f, 0.104492f, -0.410156f, 0.0263672f, -0.426758f, 0.0317383f, -0.458984f,
+0.244141f, -0.458984f, 0.130859f, -0.619141f, 0.130859f, -0.634766f, 0.136719f, -0.648438f,
+0.142578f, -0.662109f, 0.152832f, -0.672119f, 0.163086f, -0.682129f, 0.176758f, -0.687988f,
+0.19043f, -0.693848f, 0.206055f, -0.693848f, 0.22168f, -0.693848f, 0.235352f, -0.687988f,
+0.249023f, -0.682129f, 0.259033f, -0.672119f, 0.269043f, -0.662109f, 0.274902f, -0.648438f,
+0.280762f, -0.634766f, 0.280762f, -0.619141f, 0.280762f, -0.603516f, 0.274902f, -0.589844f,
+0.269043f, -0.576172f, 0.259033f, -0.565918f, 0.249023f, -0.555664f, 0.235352f, -0.549805f,
+0.22168f, -0.543945f, 0.206055f, -0.543945f, 0.19043f, -0.543945f, 0.176758f, -0.549805f,
+0.163086f, -0.555664f, 0.152832f, -0.565918f, 0.142578f, -0.576172f, 0.136719f, -0.589844f,
+0.130859f, -0.603516f, 0.130859f, -0.619141f, 0.189453f, -0.247559f, 0.36084f, -0.415527f,
+0.318848f, -0.426758f, 0.324219f, -0.458984f, 0.492188f, -0.458984f, 0.486816f, -0.426758f,
+0.441895f, -0.416016f, 0.323242f, -0.306641f, 0.431641f, -0.0439453f, 0.470703f,
+-0.0322266f, 0.465332f, 0, 0.312012f, 0, 0.230957f, -0.221191f, 0.178223f, -0.187012f,
+0.14502f, 0, 0.0136719f, 0, 0.128418f, -0.649902f, 0.0834961f, -0.661621f, 0.0893555f,
+-0.693848f, 0.267578f, -0.693848f, 0.161133f, -0.0439453f, 0.219238f, -0.0322266f,
+0.213867f, 0, 0.0219727f, 0, 0.137207f, -0.649902f, 0.0927734f, -0.661621f, 0.0981445f,
+-0.693848f, 0.276367f, -0.693848f, 0.595703f, -0.354004f, 0.595703f, -0.401367f,
+0.560547f, -0.401367f, 0.547363f, -0.401367f, 0.530762f, -0.389893f, 0.51416f, -0.378418f,
+0.498779f, -0.360107f, 0.483398f, -0.341797f, 0.471436f, -0.319336f, 0.459473f, -0.296875f,
+0.455566f, -0.274902f, 0.407227f, 0, 0.276855f, 0, 0.32666f, -0.277832f, 0.328613f,
+-0.288086f, 0.330566f, -0.299316f, 0.33252f, -0.310547f, 0.333984f, -0.320801f, 0.335449f,
+-0.331055f, 0.336426f, -0.339844f, 0.337402f, -0.348633f, 0.337402f, -0.354004f,
+0.337402f, -0.401367f, 0.30127f, -0.401367f, 0.288086f, -0.401367f, 0.273438f, -0.391357f,
+0.258789f, -0.381348f, 0.244873f, -0.365479f, 0.230957f, -0.349609f, 0.219482f, -0.32959f,
+0.208008f, -0.30957f, 0.200684f, -0.290039f, 0.148926f, 0, 0.019043f, 0, 0.0913086f,
+-0.414551f, 0.0478516f, -0.426758f, 0.0541992f, -0.458984f, 0.214355f, -0.458984f,
+0.212891f, -0.376953f, 0.248047f, -0.424805f, 0.287598f, -0.447998f, 0.327148f, -0.471191f,
+0.375977f, -0.471191f, 0.39502f, -0.471191f, 0.411621f, -0.46582f, 0.428223f, -0.460449f,
+0.440918f, -0.44873f, 0.453613f, -0.437012f, 0.461182f, -0.418701f, 0.46875f, -0.400391f,
+0.469238f, -0.374512f, 0.504395f, -0.423828f, 0.545166f, -0.44751f, 0.585938f, -0.471191f,
+0.634277f, -0.471191f, 0.65332f, -0.471191f, 0.67041f, -0.465088f, 0.6875f, -0.458984f,
+0.700439f, -0.446289f, 0.713379f, -0.433594f, 0.720703f, -0.414062f, 0.728027f, -0.394531f,
+0.728027f, -0.368164f, 0.728027f, -0.362305f, 0.726562f, -0.351318f, 0.725098f, -0.340332f,
+0.723389f, -0.327881f, 0.72168f, -0.31543f, 0.719482f, -0.303467f, 0.717285f, -0.291504f,
+0.71582f, -0.283203f, 0.67334f, -0.0439453f, 0.72998f, -0.0322266f, 0.723633f, 0,
+0.535156f, 0, 0.584961f, -0.277832f, 0.586914f, -0.288086f, 0.588867f, -0.299316f,
+0.59082f, -0.310547f, 0.592285f, -0.320801f, 0.59375f, -0.331055f, 0.594727f, -0.339844f,
+0.595703f, -0.348633f, 0.595703f, -0.354004f, 0.373047f, -0.354004f, 0.373047f, -0.401367f,
+0.328613f, -0.401367f, 0.312012f, -0.401367f, 0.293457f, -0.391357f, 0.274902f, -0.381348f,
+0.257324f, -0.365479f, 0.239746f, -0.349609f, 0.225098f, -0.32959f, 0.210449f, -0.30957f,
+0.202148f, -0.290039f, 0.150391f, 0, 0.0205078f, 0, 0.0927734f, -0.414551f, 0.0493164f,
+-0.426758f, 0.0556641f, -0.458984f, 0.21875f, -0.458984f, 0.214844f, -0.373535f,
+0.251953f, -0.421387f, 0.297607f, -0.446289f, 0.343262f, -0.471191f, 0.400391f, -0.471191f,
+0.422852f, -0.471191f, 0.442139f, -0.465088f, 0.461426f, -0.458984f, 0.475586f, -0.446777f,
+0.489746f, -0.43457f, 0.497559f, -0.416016f, 0.505371f, -0.397461f, 0.505371f, -0.372559f,
+0.505371f, -0.36377f, 0.50415f, -0.352539f, 0.50293f, -0.341309f, 0.500977f, -0.329346f,
+0.499023f, -0.317383f, 0.49707f, -0.30542f, 0.495117f, -0.293457f, 0.493164f, -0.283203f,
+0.450684f, -0.0439453f, 0.507324f, -0.0322266f, 0.500977f, 0, 0.3125f, 0, 0.362305f,
+-0.277832f, 0.364258f, -0.288086f, 0.366211f, -0.299316f, 0.368164f, -0.310547f,
+0.369629f, -0.320801f, 0.371094f, -0.331055f, 0.37207f, -0.339844f, 0.373047f, -0.348633f,
+0.373047f, -0.354004f, 0.333496f, -0.305176f, 0.333496f, -0.362305f, 0.318359f, -0.392578f,
+0.303223f, -0.422852f, 0.272461f, -0.422852f, 0.249512f, -0.422852f, 0.226562f, -0.401611f,
+0.203613f, -0.380371f, 0.185547f, -0.34375f, 0.16748f, -0.307129f, 0.15625f, -0.258545f,
+0.14502f, -0.209961f, 0.14502f, -0.155762f, 0.14502f, -0.0996094f, 0.163086f, -0.0690918f,
+0.181152f, -0.0385742f, 0.209473f, -0.0385742f, 0.232422f, -0.0385742f, 0.254639f,
+-0.0583496f, 0.276855f, -0.078125f, 0.294434f, -0.113525f, 0.312012f, -0.148926f,
+0.322754f, -0.197754f, 0.333496f, -0.246582f, 0.333496f, -0.305176f, 0.198242f, 0.00976562f,
+0.157715f, 0.00976562f, 0.124023f, -0.00341797f, 0.090332f, -0.0166016f, 0.0661621f,
+-0.0415039f, 0.0419922f, -0.0664062f, 0.0288086f, -0.102051f, 0.015625f, -0.137695f,
+0.015625f, -0.182617f, 0.015625f, -0.239746f, 0.0341797f, -0.291992f, 0.0527344f,
+-0.344238f, 0.0876465f, -0.384033f, 0.122559f, -0.423828f, 0.172119f, -0.44751f,
+0.22168f, -0.471191f, 0.283203f, -0.471191f, 0.32373f, -0.471191f, 0.357422f, -0.458008f,
+0.391113f, -0.444824f, 0.415283f, -0.419922f, 0.439453f, -0.39502f, 0.452637f, -0.359375f,
+0.46582f, -0.32373f, 0.46582f, -0.278809f, 0.46582f, -0.22168f, 0.447266f, -0.169434f,
+0.428711f, -0.117188f, 0.393799f, -0.0773926f, 0.358887f, -0.0375977f, 0.309326f,
+-0.013916f, 0.259766f, 0.00976562f, 0.198242f, 0.00976562f, 0.469727f, -0.308105f,
+0.469727f, -0.245117f, 0.452393f, -0.1875f, 0.435059f, -0.129883f, 0.402344f, -0.0861816f,
+0.369629f, -0.0424805f, 0.323242f, -0.0163574f, 0.276855f, 0.00976562f, 0.219238f,
+0.00976562f, 0.197266f, 0.00976562f, 0.177002f, 0.00488281f, 0.156738f, 0, 0.143555f,
+-0.00634766f, 0.143066f, -0.000488281f, 0.142334f, 0.00805664f, 0.141602f, 0.0166016f,
+0.140625f, 0.0253906f, 0.139648f, 0.0341797f, 0.138428f, 0.0419922f, 0.137207f, 0.0498047f,
+0.136719f, 0.0541992f, 0.118164f, 0.169434f, 0.196289f, 0.181152f, 0.19043f, 0.212891f,
+-0.0712891f, 0.212891f, -0.0654297f, 0.181152f, -0.0146484f, 0.169434f, 0.0898438f,
+-0.41748f, 0.0415039f, -0.429688f, 0.0473633f, -0.458984f, 0.21582f, -0.458984f,
+0.212891f, -0.391602f, 0.240234f, -0.427246f, 0.273193f, -0.449219f, 0.306152f, -0.471191f,
+0.343262f, -0.471191f, 0.370117f, -0.471191f, 0.393066f, -0.460693f, 0.416016f, -0.450195f,
+0.433105f, -0.429688f, 0.450195f, -0.40918f, 0.459961f, -0.378662f, 0.469727f, -0.348145f,
+0.469727f, -0.308105f, 0.341309f, -0.286621f, 0.341309f, -0.315918f, 0.33667f, -0.336914f,
+0.332031f, -0.35791f, 0.324463f, -0.371094f, 0.316895f, -0.384277f, 0.307129f, -0.390625f,
+0.297363f, -0.396973f, 0.287109f, -0.396973f, 0.27002f, -0.396973f, 0.248535f, -0.37915f,
+0.227051f, -0.361328f, 0.205078f, -0.332031f, 0.157227f, -0.0620117f, 0.168945f,
+-0.050293f, 0.185303f, -0.0444336f, 0.20166f, -0.0385742f, 0.213867f, -0.0385742f,
+0.23291f, -0.0385742f, 0.25f, -0.048584f, 0.26709f, -0.0585938f, 0.28125f, -0.0761719f,
+0.29541f, -0.09375f, 0.306641f, -0.117432f, 0.317871f, -0.141113f, 0.325439f, -0.168701f,
+0.333008f, -0.196289f, 0.337158f, -0.226318f, 0.341309f, -0.256348f, 0.341309f, -0.286621f,
+0.141113f, -0.17334f, 0.141113f, -0.144043f, 0.145996f, -0.123047f, 0.150879f, -0.102051f,
+0.158936f, -0.0888672f, 0.166992f, -0.0756836f, 0.177002f, -0.0693359f, 0.187012f,
+-0.0629883f, 0.196777f, -0.0629883f, 0.205078f, -0.0629883f, 0.216064f, -0.0681152f,
+0.227051f, -0.0732422f, 0.239014f, -0.0822754f, 0.250977f, -0.0913086f, 0.263184f,
+-0.10376f, 0.275391f, -0.116211f, 0.286133f, -0.130859f, 0.337402f, -0.410645f, 0.324707f,
+-0.416016f, 0.307617f, -0.419434f, 0.290527f, -0.422852f, 0.270508f, -0.422852f,
+0.240723f, -0.422852f, 0.216797f, -0.400879f, 0.192871f, -0.378906f, 0.176025f, -0.343262f,
+0.15918f, -0.307617f, 0.150146f, -0.263184f, 0.141113f, -0.21875f, 0.141113f, -0.17334f,
+0.263672f, -0.471191f, 0.31543f, -0.471191f, 0.37085f, -0.465576f, 0.42627f, -0.459961f,
+0.474609f, -0.450684f, 0.362793f, 0.169922f, 0.407715f, 0.181152f, 0.402344f, 0.212891f,
+0.224121f, 0.212891f, 0.259766f, 0.0239258f, 0.26123f, 0.0151367f, 0.263428f, 0.00341797f,
+0.265625f, -0.00830078f, 0.268311f, -0.0209961f, 0.270996f, -0.0336914f, 0.273926f,
+-0.0463867f, 0.276855f, -0.059082f, 0.280273f, -0.0708008f, 0.26709f, -0.0532227f,
+0.250244f, -0.0380859f, 0.233398f, -0.0229492f, 0.2146f, -0.0119629f, 0.195801f,
+-0.000976562f, 0.17627f, 0.00512695f, 0.156738f, 0.0112305f, 0.138672f, 0.0112305f,
+0.112305f, 0.0112305f, 0.0891113f, 0.000732422f, 0.065918f, -0.00976562f, 0.0490723f,
+-0.0302734f, 0.0322266f, -0.0507812f, 0.0224609f, -0.0812988f, 0.0126953f, -0.111816f,
+0.0126953f, -0.151855f, 0.0126953f, -0.214844f, 0.029541f, -0.272705f, 0.0463867f,
+-0.330566f, 0.0786133f, -0.374512f, 0.11084f, -0.418457f, 0.157471f, -0.444824f,
+0.204102f, -0.471191f, 0.263672f, -0.471191f, 0.213867f, -0.360352f, 0.228516f, -0.38916f,
+0.246094f, -0.410156f, 0.263672f, -0.431152f, 0.282227f, -0.44458f, 0.300781f, -0.458008f,
+0.319824f, -0.4646f, 0.338867f, -0.471191f, 0.355957f, -0.471191f, 0.365723f, -0.471191f,
+0.377686f, -0.469727f, 0.389648f, -0.468262f, 0.396484f, -0.466309f, 0.368164f, -0.301758f,
+0.341309f, -0.301758f, 0.319824f, -0.368652f, 0.302246f, -0.368652f, 0.286865f, -0.364502f,
+0.271484f, -0.360352f, 0.257324f, -0.351074f, 0.243164f, -0.341797f, 0.229736f, -0.326904f,
+0.216309f, -0.312012f, 0.203125f, -0.291016f, 0.151855f, 0, 0.0205078f, 0, 0.09375f,
+-0.415039f, 0.0366211f, -0.426758f, 0.0419922f, -0.458984f, 0.225098f, -0.458984f,
+0.338379f, -0.14502f, 0.338379f, -0.0708008f, 0.288574f, -0.0305176f, 0.23877f, 0.00976562f,
+0.139648f, 0.00976562f, 0.118652f, 0.00976562f, 0.0964355f, 0.00708008f, 0.0742188f,
+0.00439453f, 0.0544434f, 0.000244141f, 0.034668f, -0.00390625f, 0.019043f, -0.00830078f,
+0.00341797f, -0.0126953f, -0.00537109f, -0.0166016f, 0.0170898f, -0.144043f, 0.0493164f,
+-0.144043f, 0.0566406f, -0.0795898f, 0.0625f, -0.0712891f, 0.0708008f, -0.0634766f,
+0.0791016f, -0.0556641f, 0.0895996f, -0.0493164f, 0.100098f, -0.0429688f, 0.113525f,
+-0.0393066f, 0.126953f, -0.0356445f, 0.143066f, -0.0356445f, 0.164062f, -0.0356445f,
+0.180664f, -0.041748f, 0.197266f, -0.0478516f, 0.208252f, -0.0581055f, 0.219238f,
+-0.0683594f, 0.225098f, -0.0817871f, 0.230957f, -0.0952148f, 0.230957f, -0.109863f,
+0.230957f, -0.125f, 0.223877f, -0.136475f, 0.216797f, -0.147949f, 0.204834f, -0.157715f,
+0.192871f, -0.16748f, 0.17749f, -0.17627f, 0.162109f, -0.185059f, 0.145508f, -0.194824f,
+0.125488f, -0.206055f, 0.107666f, -0.218994f, 0.0898438f, -0.231934f, 0.0761719f,
+-0.248291f, 0.0625f, -0.264648f, 0.0544434f, -0.285156f, 0.0463867f, -0.305664f,
+0.0463867f, -0.332031f, 0.0463867f, -0.373047f, 0.0612793f, -0.400146f, 0.0761719f,
+-0.427246f, 0.101318f, -0.442871f, 0.126465f, -0.458496f, 0.159912f, -0.464844f,
+0.193359f, -0.471191f, 0.230469f, -0.471191f, 0.261719f, -0.471191f, 0.294678f, -0.466797f,
+0.327637f, -0.462402f, 0.358398f, -0.455566f, 0.337402f, -0.337891f, 0.305176f, -0.337891f,
+0.298828f, -0.391602f, 0.288574f, -0.404297f, 0.268555f, -0.414795f, 0.248535f, -0.425293f,
+0.223633f, -0.425293f, 0.186523f, -0.425293f, 0.169189f, -0.408691f, 0.151855f, -0.39209f,
+0.151855f, -0.365234f, 0.151855f, -0.351562f, 0.158203f, -0.34082f, 0.164551f, -0.330078f,
+0.175293f, -0.320801f, 0.186035f, -0.311523f, 0.199951f, -0.302979f, 0.213867f, -0.294434f,
+0.229492f, -0.285645f, 0.250488f, -0.273926f, 0.27002f, -0.26123f, 0.289551f, -0.248535f,
+0.304688f, -0.232422f, 0.319824f, -0.216309f, 0.329102f, -0.195068f, 0.338379f, -0.173828f,
+0.338379f, -0.14502f, 0.208984f, -0.0517578f, 0.220703f, -0.0517578f, 0.233887f,
+-0.0554199f, 0.24707f, -0.059082f, 0.262695f, -0.0644531f, 0.275391f, -0.0302734f,
+0.265625f, -0.0234375f, 0.251221f, -0.0163574f, 0.236816f, -0.00927734f, 0.219482f,
+-0.00341797f, 0.202148f, 0.00244141f, 0.182861f, 0.00610352f, 0.163574f, 0.00976562f,
+0.144531f, 0.00976562f, 0.113281f, 0.00976562f, 0.092041f, 0.00170898f, 0.0708008f,
+-0.00634766f, 0.0576172f, -0.0200195f, 0.0444336f, -0.0336914f, 0.0385742f, -0.0517578f,
+0.0327148f, -0.0698242f, 0.0327148f, -0.090332f, 0.0327148f, -0.104492f, 0.0354004f,
+-0.123291f, 0.0380859f, -0.14209f, 0.0415039f, -0.160645f, 0.0864258f, -0.408203f,
+0.0302734f, -0.408203f, 0.0356445f, -0.439941f, 0.10498f, -0.458984f, 0.172852f,
+-0.562988f, 0.244141f, -0.562988f, 0.225586f, -0.458984f, 0.302734f, -0.458984f,
+0.293945f, -0.408203f, 0.216797f, -0.408203f, 0.172363f, -0.159668f, 0.168945f, -0.14209f,
+0.166748f, -0.125977f, 0.164551f, -0.109863f, 0.164551f, -0.101074f, 0.164551f, -0.0751953f,
+0.17749f, -0.0634766f, 0.19043f, -0.0517578f, 0.208984f, -0.0517578f, 0.170898f,
+-0.105469f, 0.170898f, -0.0581055f, 0.215332f, -0.0581055f, 0.231934f, -0.0581055f,
+0.250488f, -0.0681152f, 0.269043f, -0.078125f, 0.286621f, -0.0939941f, 0.304199f,
+-0.109863f, 0.318848f, -0.129639f, 0.333496f, -0.149414f, 0.341797f, -0.169434f,
+0.393555f, -0.458984f, 0.523438f, -0.458984f, 0.451172f, -0.0444336f, 0.504395f,
+-0.0322266f, 0.498047f, 0, 0.325195f, 0, 0.329102f, -0.0859375f, 0.291992f, -0.0380859f,
+0.246338f, -0.0131836f, 0.200684f, 0.0117188f, 0.143555f, 0.0117188f, 0.120605f,
+0.0117188f, 0.101562f, 0.00561523f, 0.0825195f, -0.000488281f, 0.0683594f, -0.0131836f,
+0.0541992f, -0.0258789f, 0.0463867f, -0.0454102f, 0.0385742f, -0.0649414f, 0.0385742f,
+-0.0913086f, 0.0385742f, -0.097168f, 0.0397949f, -0.108154f, 0.0410156f, -0.119141f,
+0.0429688f, -0.13208f, 0.0449219f, -0.14502f, 0.0473633f, -0.158691f, 0.0498047f,
+-0.172363f, 0.0517578f, -0.183594f, 0.0932617f, -0.415039f, 0.0366211f, -0.426758f,
+0.0429688f, -0.458984f, 0.231445f, -0.458984f, 0.181641f, -0.181641f, 0.179688f,
+-0.171387f, 0.177734f, -0.160156f, 0.175781f, -0.148926f, 0.174316f, -0.138672f,
+0.172852f, -0.128418f, 0.171875f, -0.119629f, 0.170898f, -0.11084f, 0.170898f, -0.105469f,
+0.161133f, -0.459473f, 0.233887f, -0.140137f, 0.333008f, -0.293457f, 0.348633f, -0.317871f,
+0.356934f, -0.341797f, 0.365234f, -0.365723f, 0.365234f, -0.381348f, 0.365234f, -0.393555f,
+0.361572f, -0.401367f, 0.35791f, -0.40918f, 0.351807f, -0.414307f, 0.345703f, -0.419434f,
+0.337646f, -0.422119f, 0.32959f, -0.424805f, 0.321289f, -0.427246f, 0.327148f, -0.458984f,
+0.439941f, -0.458984f, 0.444336f, -0.455078f, 0.448486f, -0.446777f, 0.452637f, -0.438477f,
+0.452637f, -0.428223f, 0.452637f, -0.42041f, 0.450928f, -0.410156f, 0.449219f, -0.399902f,
+0.444824f, -0.386475f, 0.44043f, -0.373047f, 0.432617f, -0.356689f, 0.424805f, -0.340332f,
+0.412109f, -0.320801f, 0.19873f, 0.00976562f, 0.138672f, 0.00976562f, 0.0390625f,
+-0.415527f, 0.00927734f, -0.427246f, 0.0146484f, -0.459473f, 0.55127f, -0.283203f,
+0.556641f, -0.292969f, 0.561523f, -0.305908f, 0.566406f, -0.318848f, 0.570312f, -0.332275f,
+0.574219f, -0.345703f, 0.576416f, -0.35791f, 0.578613f, -0.370117f, 0.578613f, -0.378418f,
+0.578613f, -0.39209f, 0.574463f, -0.400635f, 0.570312f, -0.40918f, 0.563232f, -0.414307f,
+0.556152f, -0.419434f, 0.547363f, -0.422119f, 0.538574f, -0.424805f, 0.529785f, -0.427246f,
+0.535645f, -0.458984f, 0.655273f, -0.458984f, 0.662109f, -0.453613f, 0.66626f, -0.443848f,
+0.67041f, -0.434082f, 0.67041f, -0.419434f, 0.67041f, -0.40332f, 0.664062f, -0.378906f,
+0.657715f, -0.354492f, 0.637695f, -0.320801f, 0.441406f, 0.00976562f, 0.383301f,
+0.00976562f, 0.333008f, -0.25293f, 0.188477f, 0.00976562f, 0.123535f, 0.00976562f,
+0.0400391f, -0.415039f, 0.000976562f, -0.426758f, 0.00634766f, -0.458984f, 0.154785f,
+-0.458984f, 0.216309f, -0.137695f, 0.367188f, -0.413086f, 0.416016f, -0.413086f,
+0.470703f, -0.137695f, 0.214355f, -0.182617f, 0.133789f, -0.115234f, 0.117188f, -0.101074f,
+0.108154f, -0.0913086f, 0.0991211f, -0.081543f, 0.0947266f, -0.0742188f, 0.090332f,
+-0.0668945f, 0.0895996f, -0.0612793f, 0.0888672f, -0.0556641f, 0.0888672f, -0.0507812f,
+0.0888672f, -0.0454102f, 0.0935059f, -0.0397949f, 0.0981445f, -0.0341797f, 0.109375f,
+-0.0317383f, 0.103516f, 0, -0.00439453f, 0, -0.00732422f, -0.00244141f, -0.00976562f,
+-0.00805664f, -0.012207f, -0.0136719f, -0.012207f, -0.0209961f, -0.012207f, -0.0380859f,
+0.00366211f, -0.0583496f, 0.0195312f, -0.0786133f, 0.0546875f, -0.10791f, 0.193359f,
+-0.224609f, 0.0947266f, -0.415039f, 0.0527344f, -0.427246f, 0.0581055f, -0.458984f,
+0.204102f, -0.458984f, 0.284668f, -0.300293f, 0.334473f, -0.341797f, 0.351074f, -0.355469f,
+0.360596f, -0.365723f, 0.370117f, -0.375977f, 0.375f, -0.383789f, 0.379883f, -0.391602f,
+0.381104f, -0.397461f, 0.382324f, -0.40332f, 0.382324f, -0.408203f, 0.382324f, -0.414551f,
+0.375732f, -0.419678f, 0.369141f, -0.424805f, 0.355469f, -0.427246f, 0.361328f, -0.458984f,
+0.465332f, -0.458984f, 0.469727f, -0.455566f, 0.472656f, -0.450439f, 0.475586f, -0.445312f,
+0.475586f, -0.437988f, 0.475586f, -0.419434f, 0.459473f, -0.396973f, 0.443359f, -0.374512f,
+0.408203f, -0.345215f, 0.306641f, -0.260254f, 0.417969f, -0.0419922f, 0.459961f,
+-0.0317383f, 0.45459f, 0, 0.307129f, 0, 0.446777f, -0.428223f, 0.446777f, -0.42041f,
+0.445312f, -0.410156f, 0.443848f, -0.399902f, 0.439453f, -0.386719f, 0.435059f, -0.373535f,
+0.427246f, -0.356934f, 0.419434f, -0.340332f, 0.407227f, -0.320801f, 0.192871f, 0.0288086f,
+0.168945f, 0.0678711f, 0.14502f, 0.102051f, 0.121094f, 0.13623f, 0.095459f, 0.161377f,
+0.0698242f, 0.186523f, 0.0410156f, 0.201172f, 0.012207f, 0.21582f, -0.0214844f, 0.21582f,
+-0.0351562f, 0.21582f, -0.045166f, 0.215332f, -0.0551758f, 0.214844f, -0.0639648f,
+0.213623f, -0.0727539f, 0.212402f, -0.0812988f, 0.210693f, -0.0898438f, 0.208984f,
+-0.100098f, 0.206543f, -0.0795898f, 0.0883789f, -0.050293f, 0.0883789f, -0.0405273f,
+0.149902f, -0.034668f, 0.155273f, -0.0266113f, 0.158203f, -0.0185547f, 0.161133f,
+-0.00634766f, 0.161133f, 0.0117188f, 0.161133f, 0.0297852f, 0.149658f, 0.0478516f,
+0.138184f, 0.0654297f, 0.119385f, 0.0830078f, 0.100586f, 0.0998535f, 0.0761719f,
+0.116699f, 0.0517578f, 0.132812f, 0.0253906f, 0.146484f, 0.00244141f, 0.0419922f,
+-0.415039f, 0.012207f, -0.426758f, 0.0175781f, -0.458984f, 0.165527f, -0.458984f,
+0.239746f, -0.146973f, 0.328125f, -0.293457f, 0.334961f, -0.304688f, 0.340576f, -0.316895f,
+0.346191f, -0.329102f, 0.350342f, -0.34082f, 0.354492f, -0.352539f, 0.356934f, -0.363037f,
+0.359375f, -0.373535f, 0.359375f, -0.381348f, 0.359375f, -0.393555f, 0.355713f, -0.401367f,
+0.352051f, -0.40918f, 0.345947f, -0.414307f, 0.339844f, -0.419434f, 0.331787f, -0.422119f,
+0.32373f, -0.424805f, 0.31543f, -0.427246f, 0.321289f, -0.458984f, 0.434082f, -0.458984f,
+0.438477f, -0.455078f, 0.442627f, -0.446777f, 0.446777f, -0.438477f, 0.446777f, -0.428223f,
+-0.0283203f, 0, -0.0244141f, -0.0244141f, 0.227539f, -0.415039f, 0.193359f, -0.415039f,
+0.179688f, -0.415039f, 0.16626f, -0.413818f, 0.152832f, -0.412598f, 0.140625f, -0.4104f,
+0.128418f, -0.408203f, 0.118896f, -0.405029f, 0.109375f, -0.401855f, 0.103516f, -0.397949f,
+0.0742188f, -0.322266f, 0.0390625f, -0.322266f, 0.0629883f, -0.458984f, 0.385254f,
+-0.458984f, 0.380859f, -0.432617f, 0.128906f, -0.0439453f, 0.169434f, -0.0439453f,
+0.182617f, -0.0439453f, 0.19751f, -0.0456543f, 0.212402f, -0.0473633f, 0.226318f,
+-0.050293f, 0.240234f, -0.0532227f, 0.252441f, -0.057373f, 0.264648f, -0.0615234f,
+0.272949f, -0.0668945f, 0.312988f, -0.153809f, 0.348145f, -0.153809f, 0.312012f,
+0, 0.196289f, 0.133789f, 0.164062f, 0.133789f, 0.140869f, 0.125244f, 0.117676f, 0.116699f,
+0.102783f, 0.101562f, 0.0878906f, 0.0864258f, 0.0805664f, 0.0651855f, 0.0732422f,
+0.0439453f, 0.0732422f, 0.0185547f, 0.0732422f, -0.000976562f, 0.0766602f, -0.0195312f,
+0.100098f, -0.153809f, 0.103027f, -0.169922f, 0.103027f, -0.183594f, 0.103027f, -0.223633f,
+0.079834f, -0.241211f, 0.0566406f, -0.258789f, 0.0136719f, -0.260254f, 0.0209961f,
+-0.301758f, 0.0712891f, -0.303223f, 0.103271f, -0.327393f, 0.135254f, -0.351562f,
+0.14502f, -0.407227f, 0.171875f, -0.560547f, 0.184082f, -0.629395f, 0.225342f, -0.661621f,
+0.266602f, -0.693848f, 0.342285f, -0.693848f, 0.408203f, -0.693848f, 0.400879f, -0.651367f,
+0.370605f, -0.651367f, 0.336914f, -0.651367f, 0.317139f, -0.634521f, 0.297363f, -0.617676f,
+0.290039f, -0.575684f, 0.258789f, -0.399902f, 0.254395f, -0.375488f, 0.243408f, -0.35498f,
+0.232422f, -0.334473f, 0.216309f, -0.318604f, 0.200195f, -0.302734f, 0.180176f, -0.292236f,
+0.160156f, -0.281738f, 0.138184f, -0.277344f, 0.138184f, -0.275879f, 0.174805f, -0.267578f,
+0.196045f, -0.242432f, 0.217285f, -0.217285f, 0.217285f, -0.178223f, 0.217285f, -0.171875f,
+0.216553f, -0.165527f, 0.21582f, -0.15918f, 0.214844f, -0.152344f, 0.188965f, -0.00390625f,
+0.186035f, 0.012207f, 0.186035f, 0.0258789f, 0.186035f, 0.0556641f, 0.198975f, 0.0734863f,
+0.211914f, 0.0913086f, 0.239746f, 0.0913086f, 0.27002f, 0.0913086f, 0.262207f, 0.133789f,
+0.0678711f, 0.21582f, 0.0678711f, -0.693848f, 0.137695f, -0.693848f, 0.137695f, 0.21582f,
+-0.0585938f, 0.133789f, -0.0507812f, 0.0913086f, -0.0205078f, 0.0913086f, 0.0131836f,
+0.0913086f, 0.0327148f, 0.0744629f, 0.0522461f, 0.0576172f, 0.0595703f, 0.015625f,
+0.0913086f, -0.162109f, 0.0957031f, -0.187012f, 0.106445f, -0.20752f, 0.117188f,
+-0.228027f, 0.133057f, -0.243896f, 0.148926f, -0.259766f, 0.168945f, -0.270264f,
+0.188965f, -0.280762f, 0.211914f, -0.285645f, 0.211914f, -0.287109f, 0.176758f, -0.294922f,
+0.154785f, -0.320312f, 0.132812f, -0.345703f, 0.132812f, -0.384766f, 0.132812f, -0.390625f,
+0.133545f, -0.396729f, 0.134277f, -0.402832f, 0.135254f, -0.409668f, 0.160645f, -0.556152f,
+0.163574f, -0.572266f, 0.163574f, -0.586426f, 0.163574f, -0.616211f, 0.150635f, -0.633789f,
+0.137695f, -0.651367f, 0.110352f, -0.651367f, 0.0800781f, -0.651367f, 0.0874023f,
+-0.693848f, 0.15332f, -0.693848f, 0.216797f, -0.693848f, 0.246826f, -0.66333f, 0.276855f,
+-0.632812f, 0.276855f, -0.581055f, 0.276855f, -0.571289f, 0.275879f, -0.561523f,
+0.274902f, -0.551758f, 0.272949f, -0.541016f, 0.25f, -0.407227f, 0.24707f, -0.391113f,
+0.24707f, -0.377441f, 0.24707f, -0.337891f, 0.270264f, -0.320312f, 0.293457f, -0.302734f,
+0.335938f, -0.301758f, 0.328613f, -0.260254f, 0.303711f, -0.259277f, 0.283203f, -0.253174f,
+0.262695f, -0.24707f, 0.246826f, -0.234375f, 0.230957f, -0.22168f, 0.220459f, -0.201904f,
+0.209961f, -0.182129f, 0.205078f, -0.153809f, 0.177734f, 0, 0.166016f, 0.0664062f,
+0.124512f, 0.100098f, 0.0830078f, 0.133789f, 0.00732422f, 0.133789f, 0.405762f, -0.234863f,
+0.382324f, -0.234863f, 0.36084f, -0.243652f, 0.339355f, -0.252441f, 0.319824f, -0.265625f,
+0.300293f, -0.278809f, 0.282227f, -0.293945f, 0.26416f, -0.309082f, 0.247314f, -0.322266f,
+0.230469f, -0.335449f, 0.2146f, -0.344238f, 0.19873f, -0.353027f, 0.183594f, -0.353027f,
+0.166992f, -0.353027f, 0.154785f, -0.347168f, 0.142578f, -0.341309f, 0.134033f, -0.327393f,
+0.125488f, -0.313477f, 0.119873f, -0.290771f, 0.114258f, -0.268066f, 0.11084f, -0.234863f,
+0.0419922f, -0.234863f, 0.0454102f, -0.268555f, 0.0522461f, -0.302246f, 0.059082f,
+-0.335938f, 0.0742188f, -0.362549f, 0.0893555f, -0.38916f, 0.115479f, -0.406006f,
+0.141602f, -0.422852f, 0.183594f, -0.422852f, 0.202637f, -0.422852f, 0.219727f, -0.41748f,
+0.236816f, -0.412109f, 0.252686f, -0.403809f, 0.268555f, -0.395508f, 0.282959f, -0.384521f,
+0.297363f, -0.373535f, 0.310547f, -0.362793f, 0.318848f, -0.355957f, 0.330322f, -0.345947f,
+0.341797f, -0.335938f, 0.354736f, -0.32666f, 0.367676f, -0.317383f, 0.380859f, -0.311035f,
+0.394043f, -0.304688f, 0.405762f, -0.304688f, 0.421875f, -0.304688f, 0.433594f, -0.311279f,
+0.445312f, -0.317871f, 0.453613f, -0.332031f, 0.461914f, -0.346191f, 0.467773f, -0.368652f,
+0.473633f, -0.391113f, 0.477539f, -0.422852f, 0.547852f, -0.422852f, 0.543457f, -0.389648f,
+0.535889f, -0.355957f, 0.52832f, -0.322266f, 0.512939f, -0.29541f, 0.497559f, -0.268555f,
+0.471924f, -0.251709f, 0.446289f, -0.234863f, 0.405762f, -0.234863f
+};
+
+const unsigned char LiberationSerifBoldItalicVerbs[] = {
+6, 6, 0, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 0, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1,
+5, 6, 0, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1,
+1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 5, 6, 0, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6,
+0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1,
+1, 1, 5, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 0, 1, 1, 5, 6, 0, 2, 2, 2,
+2, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2,
+2, 5, 6, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1,
+1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 1, 1, 5, 6, 0, 2, 2, 1, 1, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 6, 0, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
+1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1,
+1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 5, 6, 0,
+1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 5, 0, 2, 2, 2, 2, 2,
+2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 5, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2,
+2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1,
+5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2,
+1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 5, 6, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
+6, 0, 1, 1, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 5, 0, 2, 2,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 5, 0, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 5, 6, 0,
+2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 6, 0, 2, 2, 1, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 5, 6, 0, 2,
+2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 5, 6, 0, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 5, 6, 0, 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2,
+2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 1, 2, 2, 2,
+2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 1, 1, 2, 2, 5, 6, 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+1, 1, 1, 5, 6, 0, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 5, 6, 0, 1, 1, 1, 5, 6, 0, 1, 1, 2,
+2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1,
+2, 2, 2, 2, 1, 2, 2, 5, 6, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 5, 6
+};
+
+const unsigned LiberationSerifBoldItalicCharCodes[] = {
+0, 32, 33, 34, 35, 36, 37, 38, 39,
+40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126
+};
+
+const SkFixed LiberationSerifBoldItalicWidths[] = {
+0x0000c720, 0x00004000, 0x000063a0, 0x00008e20, 0x00008000, 0x00008000, 0x0000d540,
+0x0000c720, 0x00004720, 0x00005540, 0x00005540, 0x00008000, 0x000091e0, 0x00004000,
+0x00005540, 0x00004000, 0x00004720, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00005540,
+0x00005540, 0x000091e0, 0x000091e0, 0x000091e0, 0x00008000, 0x0000d500, 0x0000aac0,
+0x0000aac0, 0x0000aac0, 0x0000b8e0, 0x0000aac0, 0x0000aac0, 0x0000b8e0, 0x0000c720,
+0x000063a0, 0x00008000, 0x0000aac0, 0x00009c60, 0x0000e3a0, 0x0000b8e0, 0x0000b8e0,
+0x00009c60, 0x0000b8e0, 0x0000aac0, 0x00008e60, 0x00009c60, 0x0000b8e0, 0x0000aac0,
+0x0000e3a0, 0x0000aac0, 0x00009c60, 0x00009c60, 0x00005540, 0x00004720, 0x00005540,
+0x000091e0, 0x00008000, 0x00005540, 0x00008000, 0x00008000, 0x000071a0, 0x00008000,
+0x000071a0, 0x00005540, 0x00008000, 0x00008e60, 0x00004720, 0x00004720, 0x00008000,
+0x00004720, 0x0000c720, 0x00008e60, 0x00008000, 0x00008000, 0x00008000, 0x000063a0,
+0x000063a0, 0x00004720, 0x00008e60, 0x000071a0, 0x0000aac0, 0x00008000, 0x000071a0,
+0x000063a0, 0x00005920, 0x00003860, 0x00005920, 0x000091e0
+};
+
+const int LiberationSerifBoldItalicCharCodesCount = (int) SK_ARRAY_COUNT(LiberationSerifBoldItalicCharCodes);
+
+const SkPaint::FontMetrics LiberationSerifBoldItalicMetrics = {
+0x30307833, -0.980957f, -0.891113f, 0.216309f, 0.303223f, 0.0424805f, 1.32861f, 0.0207596f,
+-0.178223f, 1.15039f, 0.469727f, 0.0103607f, 0.0952148f, 0.108887f
+};
index 3916af4..ee8e691 100644 (file)
 #define TRACE_VALUE_TYPE_STRING       (static_cast<unsigned char>(6))
 #define TRACE_VALUE_TYPE_COPY_STRING  (static_cast<unsigned char>(7))
 
+#if !defined(ENABLE_TRACE_EVENT)
+// Remove the macro function to add a trace event.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#endif
+
 namespace webrtc {
 namespace trace_event_internal {
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/Makefile.inc
new file mode 100644 (file)
index 0000000..295639e
--- /dev/null
@@ -0,0 +1,7 @@
+EXTRA_DIST += frontends/yasm/Makefile.inc
+EXTRA_DIST += frontends/tasm/Makefile.inc
+EXTRA_DIST += frontends/vsyasm/Makefile.inc
+
+include frontends/yasm/Makefile.inc
+include frontends/tasm/Makefile.inc
+include frontends/vsyasm/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/tasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/tasm/Makefile.inc
new file mode 100644 (file)
index 0000000..9826e1b
--- /dev/null
@@ -0,0 +1,7 @@
+bin_PROGRAMS += ytasm
+
+ytasm_SOURCES  = frontends/tasm/tasm.c
+ytasm_SOURCES += frontends/tasm/tasm-options.c
+ytasm_SOURCES += frontends/tasm/tasm-options.h
+
+ytasm_LDADD = libyasm.a $(INTLLIBS)
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/yasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/frontends/yasm/Makefile.inc
new file mode 100644 (file)
index 0000000..ff73f95
--- /dev/null
@@ -0,0 +1,23 @@
+bin_PROGRAMS += yasm
+dist_man_MANS += yasm.1
+
+if BUILD_MAN
+yasm.1: frontends/yasm/yasm.xml
+       $(XMLTO) -o $(top_builddir) man $(srcdir)/frontends/yasm/yasm.xml
+endif
+
+yasm_SOURCES  = frontends/yasm/yasm.c
+yasm_SOURCES += frontends/yasm/yasm-options.c
+yasm_SOURCES += frontends/yasm/yasm-options.h
+
+$(srcdir)/frontends/yasm/yasm.c: license.c
+
+license.c: $(srcdir)/COPYING genstring$(EXEEXT)
+       $(top_builddir)/genstring$(EXEEXT) license_msg $@ $(srcdir)/COPYING
+
+BUILT_SOURCES += license.c
+CLEANFILES += license.c
+
+yasm_LDADD = libyasm.a $(INTLLIBS)
+
+EXTRA_DIST += frontends/yasm/yasm.xml
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/libyasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/libyasm/Makefile.inc
new file mode 100644 (file)
index 0000000..042dd39
--- /dev/null
@@ -0,0 +1,80 @@
+libyasm_a_SOURCES += libyasm/assocdat.c
+libyasm_a_SOURCES += libyasm/bitvect.c
+libyasm_a_SOURCES += libyasm/bc-align.c
+libyasm_a_SOURCES += libyasm/bc-data.c
+libyasm_a_SOURCES += libyasm/bc-incbin.c
+libyasm_a_SOURCES += libyasm/bc-org.c
+libyasm_a_SOURCES += libyasm/bc-reserve.c
+libyasm_a_SOURCES += libyasm/bytecode.c
+libyasm_a_SOURCES += libyasm/errwarn.c
+libyasm_a_SOURCES += libyasm/expr.c
+libyasm_a_SOURCES += libyasm/file.c
+libyasm_a_SOURCES += libyasm/floatnum.c
+libyasm_a_SOURCES += libyasm/hamt.c
+libyasm_a_SOURCES += libyasm/insn.c
+libyasm_a_SOURCES += libyasm/intnum.c
+libyasm_a_SOURCES += libyasm/inttree.c
+libyasm_a_SOURCES += libyasm/linemap.c
+libyasm_a_SOURCES += libyasm/md5.c
+libyasm_a_SOURCES += libyasm/mergesort.c
+libyasm_a_SOURCES += libyasm/phash.c
+libyasm_a_SOURCES += libyasm/section.c
+libyasm_a_SOURCES += libyasm/strcasecmp.c
+libyasm_a_SOURCES += libyasm/strsep.c
+libyasm_a_SOURCES += libyasm/symrec.c
+libyasm_a_SOURCES += libyasm/valparam.c
+libyasm_a_SOURCES += libyasm/value.c
+libyasm_a_SOURCES += libyasm/xmalloc.c
+libyasm_a_SOURCES += libyasm/xstrdup.c
+nodist_libyasm_a_SOURCES += module.c
+
+module.c: $(top_srcdir)/libyasm/module.in genmodule$(EXEEXT) Makefile
+       $(top_builddir)/genmodule$(EXEEXT) $(top_srcdir)/libyasm/module.in Makefile
+
+CLEANFILES += module.c
+
+noinst_PROGRAMS += genmodule
+
+genmodule_SOURCES =
+EXTRA_DIST += libyasm/genmodule.c
+genmodule_LDADD = genmodule.$(OBJEXT)
+genmodule_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genmodule.$(OBJEXT): libyasm/genmodule.c
+       $(CC_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) -c -o $@ `test -f libyasm/genmodule.c || echo '$(srcdir)/'`libyasm/genmodule.c
+
+EXTRA_DIST += libyasm/module.in
+
+modincludedir = $(includedir)/libyasm
+
+modinclude_HEADERS  = libyasm/arch.h
+modinclude_HEADERS += libyasm/assocdat.h
+modinclude_HEADERS += libyasm/bitvect.h
+modinclude_HEADERS += libyasm/bytecode.h
+modinclude_HEADERS += libyasm/compat-queue.h
+modinclude_HEADERS += libyasm/coretype.h
+modinclude_HEADERS += libyasm/dbgfmt.h
+modinclude_HEADERS += libyasm/errwarn.h
+modinclude_HEADERS += libyasm/expr.h
+modinclude_HEADERS += libyasm/file.h
+modinclude_HEADERS += libyasm/floatnum.h
+modinclude_HEADERS += libyasm/hamt.h
+modinclude_HEADERS += libyasm/insn.h
+modinclude_HEADERS += libyasm/intnum.h
+modinclude_HEADERS += libyasm/inttree.h
+modinclude_HEADERS += libyasm/linemap.h
+modinclude_HEADERS += libyasm/listfmt.h
+modinclude_HEADERS += libyasm/md5.h
+modinclude_HEADERS += libyasm/module.h
+modinclude_HEADERS += libyasm/objfmt.h
+modinclude_HEADERS += libyasm/parser.h
+modinclude_HEADERS += libyasm/phash.h
+modinclude_HEADERS += libyasm/preproc.h
+modinclude_HEADERS += libyasm/section.h
+modinclude_HEADERS += libyasm/symrec.h
+modinclude_HEADERS += libyasm/valparam.h
+modinclude_HEADERS += libyasm/value.h
+
+EXTRA_DIST += libyasm/tests/Makefile.inc
+
+include libyasm/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/libyasm/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/libyasm/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..9c038a1
--- /dev/null
@@ -0,0 +1,114 @@
+TESTS += bitvect_test
+TESTS += floatnum_test
+TESTS += leb128_test
+TESTS += splitpath_test
+TESTS += combpath_test
+TESTS += uncstring_test
+TESTS += libyasm/tests/libyasm_test.sh
+
+EXTRA_DIST += libyasm/tests/libyasm_test.sh
+EXTRA_DIST += libyasm/tests/1shl0.asm
+EXTRA_DIST += libyasm/tests/1shl0.hex
+EXTRA_DIST += libyasm/tests/absloop-err.asm
+EXTRA_DIST += libyasm/tests/absloop-err.errwarn
+EXTRA_DIST += libyasm/tests/charconst64.asm
+EXTRA_DIST += libyasm/tests/charconst64.hex
+EXTRA_DIST += libyasm/tests/data-rawvalue.asm
+EXTRA_DIST += libyasm/tests/data-rawvalue.hex
+EXTRA_DIST += libyasm/tests/duplabel-err.asm
+EXTRA_DIST += libyasm/tests/duplabel-err.errwarn
+EXTRA_DIST += libyasm/tests/emptydata.asm
+EXTRA_DIST += libyasm/tests/emptydata.hex
+EXTRA_DIST += libyasm/tests/equ-expand.asm
+EXTRA_DIST += libyasm/tests/equ-expand.hex
+EXTRA_DIST += libyasm/tests/expr-fold-level.asm
+EXTRA_DIST += libyasm/tests/expr-fold-level.hex
+EXTRA_DIST += libyasm/tests/expr-simplify-identity.asm
+EXTRA_DIST += libyasm/tests/expr-simplify-identity.hex
+EXTRA_DIST += libyasm/tests/expr-wide-ident.asm
+EXTRA_DIST += libyasm/tests/expr-wide-ident.hex
+EXTRA_DIST += libyasm/tests/externdef.asm
+EXTRA_DIST += libyasm/tests/externdef.errwarn
+EXTRA_DIST += libyasm/tests/externdef.hex
+EXTRA_DIST += libyasm/tests/incbin.asm
+EXTRA_DIST += libyasm/tests/incbin.hex
+EXTRA_DIST += libyasm/tests/jmpsize1.asm
+EXTRA_DIST += libyasm/tests/jmpsize1.hex
+EXTRA_DIST += libyasm/tests/jmpsize1-err.asm
+EXTRA_DIST += libyasm/tests/jmpsize1-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-align1.asm
+EXTRA_DIST += libyasm/tests/opt-align1.hex
+EXTRA_DIST += libyasm/tests/opt-align2.asm
+EXTRA_DIST += libyasm/tests/opt-align2.hex
+EXTRA_DIST += libyasm/tests/opt-align3.asm
+EXTRA_DIST += libyasm/tests/opt-align3.hex
+EXTRA_DIST += libyasm/tests/opt-circular1-err.asm
+EXTRA_DIST += libyasm/tests/opt-circular1-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-circular2-err.asm
+EXTRA_DIST += libyasm/tests/opt-circular2-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-circular3-err.asm
+EXTRA_DIST += libyasm/tests/opt-circular3-err.errwarn
+EXTRA_DIST += libyasm/tests/opt-gvmat64.asm
+EXTRA_DIST += libyasm/tests/opt-gvmat64.hex
+EXTRA_DIST += libyasm/tests/opt-immexpand.asm
+EXTRA_DIST += libyasm/tests/opt-immexpand.hex
+EXTRA_DIST += libyasm/tests/opt-immnoexpand.asm
+EXTRA_DIST += libyasm/tests/opt-immnoexpand.hex
+EXTRA_DIST += libyasm/tests/opt-oldalign.asm
+EXTRA_DIST += libyasm/tests/opt-oldalign.hex
+EXTRA_DIST += libyasm/tests/opt-struc.asm
+EXTRA_DIST += libyasm/tests/opt-struc.hex
+EXTRA_DIST += libyasm/tests/reserve-err1.asm
+EXTRA_DIST += libyasm/tests/reserve-err1.errwarn
+EXTRA_DIST += libyasm/tests/reserve-err2.asm
+EXTRA_DIST += libyasm/tests/reserve-err2.errwarn
+EXTRA_DIST += libyasm/tests/strucsize.asm
+EXTRA_DIST += libyasm/tests/strucsize.hex
+EXTRA_DIST += libyasm/tests/times0.asm
+EXTRA_DIST += libyasm/tests/times0.hex
+EXTRA_DIST += libyasm/tests/timesfwd.asm
+EXTRA_DIST += libyasm/tests/timesfwd.hex
+EXTRA_DIST += libyasm/tests/timesover-err.asm
+EXTRA_DIST += libyasm/tests/timesover-err.errwarn
+EXTRA_DIST += libyasm/tests/timesunder.asm
+EXTRA_DIST += libyasm/tests/timesunder.hex
+EXTRA_DIST += libyasm/tests/times-res.asm
+EXTRA_DIST += libyasm/tests/times-res.errwarn
+EXTRA_DIST += libyasm/tests/times-res.hex
+EXTRA_DIST += libyasm/tests/unary.asm
+EXTRA_DIST += libyasm/tests/unary.hex
+EXTRA_DIST += libyasm/tests/value-err.asm
+EXTRA_DIST += libyasm/tests/value-err.errwarn
+EXTRA_DIST += libyasm/tests/value-samesym.asm
+EXTRA_DIST += libyasm/tests/value-samesym.errwarn
+EXTRA_DIST += libyasm/tests/value-samesym.hex
+EXTRA_DIST += libyasm/tests/value-mask.asm
+EXTRA_DIST += libyasm/tests/value-mask.errwarn
+EXTRA_DIST += libyasm/tests/value-mask.hex
+EXTRA_DIST += libyasm/tests/value-shr-symexpr.asm
+EXTRA_DIST += libyasm/tests/value-shr-symexpr.hex
+
+check_PROGRAMS += bitvect_test
+check_PROGRAMS += floatnum_test
+check_PROGRAMS += leb128_test
+check_PROGRAMS += splitpath_test
+check_PROGRAMS += combpath_test
+check_PROGRAMS += uncstring_test
+
+bitvect_test_SOURCES  = libyasm/tests/bitvect_test.c
+bitvect_test_LDADD = libyasm.a $(INTLLIBS)
+
+floatnum_test_SOURCES  = libyasm/tests/floatnum_test.c
+floatnum_test_LDADD = libyasm.a $(INTLLIBS)
+
+leb128_test_SOURCES  = libyasm/tests/leb128_test.c
+leb128_test_LDADD = libyasm.a $(INTLLIBS)
+
+splitpath_test_SOURCES  = libyasm/tests/splitpath_test.c
+splitpath_test_LDADD = libyasm.a $(INTLLIBS)
+
+combpath_test_SOURCES  = libyasm/tests/combpath_test.c
+combpath_test_LDADD = libyasm.a $(INTLLIBS)
+
+uncstring_test_SOURCES  = libyasm/tests/uncstring_test.c
+uncstring_test_LDADD = libyasm.a $(INTLLIBS)
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/m4/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/m4/Makefile.inc
new file mode 100644 (file)
index 0000000..1afffbb
--- /dev/null
@@ -0,0 +1,30 @@
+EXTRA_DIST += m4/intmax.m4
+EXTRA_DIST += m4/longdouble.m4
+EXTRA_DIST += m4/nls.m4
+EXTRA_DIST += m4/po.m4
+EXTRA_DIST += m4/printf-posix.m4
+EXTRA_DIST += m4/signed.m4
+EXTRA_DIST += m4/size_max.m4
+EXTRA_DIST += m4/ulonglong.m4
+EXTRA_DIST += m4/wchar_t.m4
+EXTRA_DIST += m4/wint_t.m4
+EXTRA_DIST += m4/xsize.m4
+EXTRA_DIST += m4/codeset.m4
+EXTRA_DIST += m4/gettext.m4
+EXTRA_DIST += m4/glibc21.m4
+EXTRA_DIST += m4/iconv.m4
+EXTRA_DIST += m4/intdiv0.m4
+EXTRA_DIST += m4/inttypes.m4
+EXTRA_DIST += m4/inttypes_h.m4
+EXTRA_DIST += m4/inttypes-pri.m4
+EXTRA_DIST += m4/isc-posix.m4
+EXTRA_DIST += m4/lcmessage.m4
+EXTRA_DIST += m4/lib-ld.m4
+EXTRA_DIST += m4/lib-link.m4
+EXTRA_DIST += m4/lib-prefix.m4
+EXTRA_DIST += m4/longlong.m4
+EXTRA_DIST += m4/progtest.m4
+EXTRA_DIST += m4/stdint_h.m4
+EXTRA_DIST += m4/uintmax_t.m4
+EXTRA_DIST += m4/pythonhead.m4
+EXTRA_DIST += m4/cython.m4
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/Makefile.inc
new file mode 100644 (file)
index 0000000..c220a84
--- /dev/null
@@ -0,0 +1,12 @@
+EXTRA_DIST += modules/arch/Makefile.inc
+EXTRA_DIST += modules/listfmts/Makefile.inc
+EXTRA_DIST += modules/parsers/Makefile.inc
+EXTRA_DIST += modules/preprocs/Makefile.inc
+EXTRA_DIST += modules/objfmts/Makefile.inc
+
+include modules/arch/Makefile.inc
+include modules/listfmts/Makefile.inc
+include modules/parsers/Makefile.inc
+include modules/preprocs/Makefile.inc
+include modules/dbgfmts/Makefile.inc
+include modules/objfmts/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/Makefile.inc
new file mode 100644 (file)
index 0000000..5c5d9d1
--- /dev/null
@@ -0,0 +1,14 @@
+EXTRA_DIST += modules/arch/x86/Makefile.inc
+EXTRA_DIST += modules/arch/lc3b/Makefile.inc
+
+include modules/arch/x86/Makefile.inc
+include modules/arch/lc3b/Makefile.inc
+
+notrans_dist_man_MANS += yasm_arch.7
+
+if BUILD_MAN
+yasm_arch.7: modules/arch/yasm_arch.xml
+       $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/arch/yasm_arch.xml
+endif
+
+EXTRA_DIST += modules/arch/yasm_arch.xml
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/lc3b/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/lc3b/Makefile.inc
new file mode 100644 (file)
index 0000000..fc30583
--- /dev/null
@@ -0,0 +1,16 @@
+libyasm_a_SOURCES += modules/arch/lc3b/lc3barch.c
+libyasm_a_SOURCES += modules/arch/lc3b/lc3barch.h
+libyasm_a_SOURCES += modules/arch/lc3b/lc3bbc.c
+nodist_libyasm_a_SOURCES += lc3bid.c
+
+YASM_MODULES += arch_lc3b
+
+lc3bid.c: $(srcdir)/modules/arch/lc3b/lc3bid.re re2c$(EXEEXT)
+       $(top_builddir)/re2c$(EXEEXT) -s -o $@ $(srcdir)/modules/arch/lc3b/lc3bid.re
+
+CLEANFILES += lc3bid.c
+
+EXTRA_DIST += modules/arch/lc3b/tests/Makefile.inc
+EXTRA_DIST += modules/arch/lc3b/lc3bid.re
+
+include modules/arch/lc3b/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/lc3b/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/lc3b/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..1ca39a3
--- /dev/null
@@ -0,0 +1,12 @@
+TESTS += modules/arch/lc3b/tests/lc3b_test.sh
+
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b_test.sh
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-basic.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-basic.errwarn
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-basic.hex
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-br.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-br.hex
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-ea-err.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-ea-err.errwarn
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-mp22NC.asm
+EXTRA_DIST += modules/arch/lc3b/tests/lc3b-mp22NC.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/Makefile.inc
new file mode 100644 (file)
index 0000000..e7b162e
--- /dev/null
@@ -0,0 +1,57 @@
+libyasm_a_SOURCES += modules/arch/x86/x86arch.c
+libyasm_a_SOURCES += modules/arch/x86/x86arch.h
+libyasm_a_SOURCES += modules/arch/x86/x86bc.c
+libyasm_a_SOURCES += modules/arch/x86/x86expr.c
+libyasm_a_SOURCES += modules/arch/x86/x86id.c
+nodist_libyasm_a_SOURCES += x86cpu.c
+nodist_libyasm_a_SOURCES += x86regtmod.c
+
+YASM_MODULES += arch_x86
+
+modules/arch/x86/x86id.c: x86insn_nasm.c x86insn_gas.c x86insns.c
+
+EXTRA_DIST += modules/arch/x86/gen_x86_insn.py
+
+if HAVE_PYTHON
+x86insn_nasm.gperf x86insn_gas.gperf x86insns.c: $(srcdir)/modules/arch/x86/gen_x86_insn.py
+       $(PYTHON) $(srcdir)/modules/arch/x86/gen_x86_insn.py
+else
+x86insn_nasm.gperf: $(srcdir)/x86insn_nasm.gperf
+       @echo Python must be installed to regenerate x86 instructions files
+       cp $(srcdir)/x86insn_nasm.gperf $@
+x86insn_gas.gperf: $(srcdir)/x86insn_gas.gperf
+       @echo Python must be installed to regenerate x86 instructions files
+       cp $(srcdir)/x86insn_gas.gperf $@
+endif
+
+BUILT_SOURCES += x86insns.c
+BUILT_SOURCES += x86insn_nasm.gperf
+BUILT_SOURCES += x86insn_gas.gperf
+EXTRA_DIST += x86insns.c
+EXTRA_DIST += x86insn_nasm.gperf
+EXTRA_DIST += x86insn_gas.gperf
+MAINTAINERCLEANFILES += x86insns.c
+MAINTAINERCLEANFILES += x86insn_nasm.gperf
+MAINTAINERCLEANFILES += x86insn_gas.gperf
+
+EXTRA_DIST += modules/arch/x86/x86cpu.gperf
+EXTRA_DIST += modules/arch/x86/x86regtmod.gperf
+
+# Use suffix rules for gperf files
+x86insn_nasm.c: x86insn_nasm.gperf genperf$(EXEEXT)
+x86insn_gas.c: x86insn_gas.gperf genperf$(EXEEXT)
+x86cpu.c: $(srcdir)/modules/arch/x86/x86cpu.gperf genperf$(EXEEXT)
+       $(top_builddir)/genperf$(EXEEXT) $(srcdir)/modules/arch/x86/x86cpu.gperf $@
+x86regtmod.c: $(srcdir)/modules/arch/x86/x86regtmod.gperf genperf$(EXEEXT)
+       $(top_builddir)/genperf$(EXEEXT) $(srcdir)/modules/arch/x86/x86regtmod.gperf $@
+
+BUILT_SOURCES += x86insn_nasm.c
+BUILT_SOURCES += x86insn_gas.c
+CLEANFILES += x86insn_nasm.c
+CLEANFILES += x86insn_gas.c
+CLEANFILES += x86cpu.c
+CLEANFILES += x86regtmod.c
+
+EXTRA_DIST += modules/arch/x86/tests/Makefile.inc
+
+include modules/arch/x86/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..c633e6c
--- /dev/null
@@ -0,0 +1,263 @@
+TESTS += modules/arch/x86/tests/x86_test.sh
+
+EXTRA_DIST += modules/arch/x86/tests/x86_test.sh
+EXTRA_DIST += modules/arch/x86/tests/gen-fma-test.py
+EXTRA_DIST += modules/arch/x86/tests/addbyte.asm
+EXTRA_DIST += modules/arch/x86/tests/addbyte.errwarn
+EXTRA_DIST += modules/arch/x86/tests/addbyte.hex
+EXTRA_DIST += modules/arch/x86/tests/addrop.asm
+EXTRA_DIST += modules/arch/x86/tests/addrop.errwarn
+EXTRA_DIST += modules/arch/x86/tests/addrop.hex
+EXTRA_DIST += modules/arch/x86/tests/addrop-err.asm
+EXTRA_DIST += modules/arch/x86/tests/addrop-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/aes.asm
+EXTRA_DIST += modules/arch/x86/tests/aes.hex
+EXTRA_DIST += modules/arch/x86/tests/amd200707.asm
+EXTRA_DIST += modules/arch/x86/tests/amd200707.hex
+EXTRA_DIST += modules/arch/x86/tests/amd-fma4.asm
+EXTRA_DIST += modules/arch/x86/tests/amd-fma4.hex
+EXTRA_DIST += modules/arch/x86/tests/arithsmall.asm
+EXTRA_DIST += modules/arch/x86/tests/arithsmall.errwarn
+EXTRA_DIST += modules/arch/x86/tests/arithsmall.hex
+EXTRA_DIST += modules/arch/x86/tests/avx.asm
+EXTRA_DIST += modules/arch/x86/tests/avx.hex
+EXTRA_DIST += modules/arch/x86/tests/avx16.asm
+EXTRA_DIST += modules/arch/x86/tests/avx16.hex
+EXTRA_DIST += modules/arch/x86/tests/avx2.asm
+EXTRA_DIST += modules/arch/x86/tests/avx2.hex
+EXTRA_DIST += modules/arch/x86/tests/avxcc.asm
+EXTRA_DIST += modules/arch/x86/tests/avxcc.hex
+EXTRA_DIST += modules/arch/x86/tests/bittest.asm
+EXTRA_DIST += modules/arch/x86/tests/bittest.hex
+EXTRA_DIST += modules/arch/x86/tests/bmi1.asm
+EXTRA_DIST += modules/arch/x86/tests/bmi1.hex
+EXTRA_DIST += modules/arch/x86/tests/bmi2.asm
+EXTRA_DIST += modules/arch/x86/tests/bmi2.hex
+EXTRA_DIST += modules/arch/x86/tests/bswap64.asm
+EXTRA_DIST += modules/arch/x86/tests/bswap64.hex
+EXTRA_DIST += modules/arch/x86/tests/clmul.asm
+EXTRA_DIST += modules/arch/x86/tests/clmul.hex
+EXTRA_DIST += modules/arch/x86/tests/cmpxchg.asm
+EXTRA_DIST += modules/arch/x86/tests/cmpxchg.hex
+EXTRA_DIST += modules/arch/x86/tests/cpubasic-err.asm
+EXTRA_DIST += modules/arch/x86/tests/cpubasic-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/cyrix.asm
+EXTRA_DIST += modules/arch/x86/tests/cyrix.hex
+EXTRA_DIST += modules/arch/x86/tests/div-err.asm
+EXTRA_DIST += modules/arch/x86/tests/div-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ea-nonzero.asm
+EXTRA_DIST += modules/arch/x86/tests/ea-nonzero.hex
+EXTRA_DIST += modules/arch/x86/tests/ea-over.asm
+EXTRA_DIST += modules/arch/x86/tests/ea-over.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ea-over.hex
+EXTRA_DIST += modules/arch/x86/tests/ea-warn.asm
+EXTRA_DIST += modules/arch/x86/tests/ea-warn.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ea-warn.hex
+EXTRA_DIST += modules/arch/x86/tests/ebpindex.asm
+EXTRA_DIST += modules/arch/x86/tests/ebpindex.hex
+EXTRA_DIST += modules/arch/x86/tests/effaddr.asm
+EXTRA_DIST += modules/arch/x86/tests/effaddr.hex
+EXTRA_DIST += modules/arch/x86/tests/enter.asm
+EXTRA_DIST += modules/arch/x86/tests/enter.errwarn
+EXTRA_DIST += modules/arch/x86/tests/enter.hex
+EXTRA_DIST += modules/arch/x86/tests/eptvpid.asm
+EXTRA_DIST += modules/arch/x86/tests/eptvpid.hex
+EXTRA_DIST += modules/arch/x86/tests/f16c.asm
+EXTRA_DIST += modules/arch/x86/tests/f16c.hex
+EXTRA_DIST += modules/arch/x86/tests/far64.asm
+EXTRA_DIST += modules/arch/x86/tests/far64.hex
+EXTRA_DIST += modules/arch/x86/tests/farbasic.asm
+EXTRA_DIST += modules/arch/x86/tests/farbasic.hex
+EXTRA_DIST += modules/arch/x86/tests/farithr.asm
+EXTRA_DIST += modules/arch/x86/tests/farithr.hex
+EXTRA_DIST += modules/arch/x86/tests/fcmov.asm
+EXTRA_DIST += modules/arch/x86/tests/fcmov.hex
+EXTRA_DIST += modules/arch/x86/tests/fma.asm
+EXTRA_DIST += modules/arch/x86/tests/fma.hex
+EXTRA_DIST += modules/arch/x86/tests/fsgsbase.asm
+EXTRA_DIST += modules/arch/x86/tests/fsgsbase.hex
+EXTRA_DIST += modules/arch/x86/tests/fwdequ64.asm
+EXTRA_DIST += modules/arch/x86/tests/fwdequ64.hex
+EXTRA_DIST += modules/arch/x86/tests/genopcode.asm
+EXTRA_DIST += modules/arch/x86/tests/genopcode.hex
+EXTRA_DIST += modules/arch/x86/tests/imm64.asm
+EXTRA_DIST += modules/arch/x86/tests/imm64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/imm64.hex
+EXTRA_DIST += modules/arch/x86/tests/invpcid.asm
+EXTRA_DIST += modules/arch/x86/tests/invpcid.hex
+EXTRA_DIST += modules/arch/x86/tests/iret.asm
+EXTRA_DIST += modules/arch/x86/tests/iret.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-1.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-1.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-2.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-2.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-3.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-3.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-4.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-4.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-5.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-5.hex
+EXTRA_DIST += modules/arch/x86/tests/jmp64-6.asm
+EXTRA_DIST += modules/arch/x86/tests/jmp64-6.hex
+EXTRA_DIST += modules/arch/x86/tests/jmpfar.asm
+EXTRA_DIST += modules/arch/x86/tests/jmpfar.hex
+EXTRA_DIST += modules/arch/x86/tests/larlsl.asm
+EXTRA_DIST += modules/arch/x86/tests/larlsl.hex
+EXTRA_DIST += modules/arch/x86/tests/lds.asm
+EXTRA_DIST += modules/arch/x86/tests/lds.hex
+EXTRA_DIST += modules/arch/x86/tests/lfs64.asm
+EXTRA_DIST += modules/arch/x86/tests/lfs64.hex
+EXTRA_DIST += modules/arch/x86/tests/loopadsz.asm
+EXTRA_DIST += modules/arch/x86/tests/loopadsz.hex
+EXTRA_DIST += modules/arch/x86/tests/lsahf.asm
+EXTRA_DIST += modules/arch/x86/tests/lsahf.hex
+EXTRA_DIST += modules/arch/x86/tests/lzcnt.asm
+EXTRA_DIST += modules/arch/x86/tests/lzcnt.hex
+EXTRA_DIST += modules/arch/x86/tests/mem64-err.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/mem64.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/mem64.hex
+EXTRA_DIST += modules/arch/x86/tests/mem64hi32.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64hi32.hex
+EXTRA_DIST += modules/arch/x86/tests/mem64rip.asm
+EXTRA_DIST += modules/arch/x86/tests/mem64rip.hex
+EXTRA_DIST += modules/arch/x86/tests/mixcase.asm
+EXTRA_DIST += modules/arch/x86/tests/mixcase.hex
+EXTRA_DIST += modules/arch/x86/tests/movbe.asm
+EXTRA_DIST += modules/arch/x86/tests/movbe.hex
+EXTRA_DIST += modules/arch/x86/tests/movdq32.asm
+EXTRA_DIST += modules/arch/x86/tests/movdq32.hex
+EXTRA_DIST += modules/arch/x86/tests/movdq64.asm
+EXTRA_DIST += modules/arch/x86/tests/movdq64.hex
+EXTRA_DIST += modules/arch/x86/tests/negequ.asm
+EXTRA_DIST += modules/arch/x86/tests/negequ.hex
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err.asm
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err2.asm
+EXTRA_DIST += modules/arch/x86/tests/nomem64-err2.errwarn
+EXTRA_DIST += modules/arch/x86/tests/nomem64.asm
+EXTRA_DIST += modules/arch/x86/tests/nomem64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/nomem64.hex
+EXTRA_DIST += modules/arch/x86/tests/o64.asm
+EXTRA_DIST += modules/arch/x86/tests/o64.hex
+EXTRA_DIST += modules/arch/x86/tests/o64loop.asm
+EXTRA_DIST += modules/arch/x86/tests/o64loop.errwarn
+EXTRA_DIST += modules/arch/x86/tests/o64loop.hex
+EXTRA_DIST += modules/arch/x86/tests/opersize.asm
+EXTRA_DIST += modules/arch/x86/tests/opersize.hex
+EXTRA_DIST += modules/arch/x86/tests/opsize-err.asm
+EXTRA_DIST += modules/arch/x86/tests/opsize-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/overflow.asm
+EXTRA_DIST += modules/arch/x86/tests/overflow.errwarn
+EXTRA_DIST += modules/arch/x86/tests/overflow.hex
+EXTRA_DIST += modules/arch/x86/tests/padlock.asm
+EXTRA_DIST += modules/arch/x86/tests/padlock.hex
+EXTRA_DIST += modules/arch/x86/tests/pinsrb.asm
+EXTRA_DIST += modules/arch/x86/tests/pinsrb.hex
+EXTRA_DIST += modules/arch/x86/tests/pshift.asm
+EXTRA_DIST += modules/arch/x86/tests/pshift.hex
+EXTRA_DIST += modules/arch/x86/tests/push64.asm
+EXTRA_DIST += modules/arch/x86/tests/push64.errwarn
+EXTRA_DIST += modules/arch/x86/tests/push64.hex
+EXTRA_DIST += modules/arch/x86/tests/pushf.asm
+EXTRA_DIST += modules/arch/x86/tests/pushf.hex
+EXTRA_DIST += modules/arch/x86/tests/pushf-err.asm
+EXTRA_DIST += modules/arch/x86/tests/pushf-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/pushnosize.asm
+EXTRA_DIST += modules/arch/x86/tests/pushnosize.errwarn
+EXTRA_DIST += modules/arch/x86/tests/pushnosize.hex
+EXTRA_DIST += modules/arch/x86/tests/rdrnd.asm
+EXTRA_DIST += modules/arch/x86/tests/rdrnd.hex
+EXTRA_DIST += modules/arch/x86/tests/rep.asm
+EXTRA_DIST += modules/arch/x86/tests/rep.hex
+EXTRA_DIST += modules/arch/x86/tests/ret.asm
+EXTRA_DIST += modules/arch/x86/tests/ret.hex
+EXTRA_DIST += modules/arch/x86/tests/riprel1.asm
+EXTRA_DIST += modules/arch/x86/tests/riprel1.hex
+EXTRA_DIST += modules/arch/x86/tests/riprel2.asm
+EXTRA_DIST += modules/arch/x86/tests/riprel2.errwarn
+EXTRA_DIST += modules/arch/x86/tests/riprel2.hex
+EXTRA_DIST += modules/arch/x86/tests/ripseg.asm
+EXTRA_DIST += modules/arch/x86/tests/ripseg.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ripseg.hex
+EXTRA_DIST += modules/arch/x86/tests/segmov.asm
+EXTRA_DIST += modules/arch/x86/tests/segmov.hex
+EXTRA_DIST += modules/arch/x86/tests/segoff.asm
+EXTRA_DIST += modules/arch/x86/tests/segoff.hex
+EXTRA_DIST += modules/arch/x86/tests/segoff-err.asm
+EXTRA_DIST += modules/arch/x86/tests/segoff-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/shift.asm
+EXTRA_DIST += modules/arch/x86/tests/shift.hex
+EXTRA_DIST += modules/arch/x86/tests/shift64.asm
+EXTRA_DIST += modules/arch/x86/tests/shift64.hex
+EXTRA_DIST += modules/arch/x86/tests/simd-1.asm
+EXTRA_DIST += modules/arch/x86/tests/simd-1.hex
+EXTRA_DIST += modules/arch/x86/tests/simd-2.asm
+EXTRA_DIST += modules/arch/x86/tests/simd-2.hex
+EXTRA_DIST += modules/arch/x86/tests/simd64-1.asm
+EXTRA_DIST += modules/arch/x86/tests/simd64-1.hex
+EXTRA_DIST += modules/arch/x86/tests/simd64-2.asm
+EXTRA_DIST += modules/arch/x86/tests/simd64-2.hex
+EXTRA_DIST += modules/arch/x86/tests/smx.asm
+EXTRA_DIST += modules/arch/x86/tests/smx.hex
+EXTRA_DIST += modules/arch/x86/tests/sse-prefix.asm
+EXTRA_DIST += modules/arch/x86/tests/sse-prefix.hex
+EXTRA_DIST += modules/arch/x86/tests/sse3.asm
+EXTRA_DIST += modules/arch/x86/tests/sse3.hex
+EXTRA_DIST += modules/arch/x86/tests/sse4.asm
+EXTRA_DIST += modules/arch/x86/tests/sse4.hex
+EXTRA_DIST += modules/arch/x86/tests/sse4-err.asm
+EXTRA_DIST += modules/arch/x86/tests/sse4-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/ssewidth.asm
+EXTRA_DIST += modules/arch/x86/tests/ssewidth.hex
+EXTRA_DIST += modules/arch/x86/tests/ssse3.asm
+EXTRA_DIST += modules/arch/x86/tests/ssse3.c
+EXTRA_DIST += modules/arch/x86/tests/ssse3.hex
+EXTRA_DIST += modules/arch/x86/tests/stos.asm
+EXTRA_DIST += modules/arch/x86/tests/stos.hex
+EXTRA_DIST += modules/arch/x86/tests/str.asm
+EXTRA_DIST += modules/arch/x86/tests/str.hex
+EXTRA_DIST += modules/arch/x86/tests/strict.asm
+EXTRA_DIST += modules/arch/x86/tests/strict.errwarn
+EXTRA_DIST += modules/arch/x86/tests/strict.hex
+EXTRA_DIST += modules/arch/x86/tests/strict-err.asm
+EXTRA_DIST += modules/arch/x86/tests/strict-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/stringseg.asm
+EXTRA_DIST += modules/arch/x86/tests/stringseg.errwarn
+EXTRA_DIST += modules/arch/x86/tests/stringseg.hex
+EXTRA_DIST += modules/arch/x86/tests/svm.asm
+EXTRA_DIST += modules/arch/x86/tests/svm.hex
+EXTRA_DIST += modules/arch/x86/tests/twobytemem.asm
+EXTRA_DIST += modules/arch/x86/tests/twobytemem.errwarn
+EXTRA_DIST += modules/arch/x86/tests/twobytemem.hex
+EXTRA_DIST += modules/arch/x86/tests/vmx.asm
+EXTRA_DIST += modules/arch/x86/tests/vmx.hex
+EXTRA_DIST += modules/arch/x86/tests/vmx-err.asm
+EXTRA_DIST += modules/arch/x86/tests/vmx-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/vsib.asm
+EXTRA_DIST += modules/arch/x86/tests/vsib.hex
+EXTRA_DIST += modules/arch/x86/tests/vsib-err.asm
+EXTRA_DIST += modules/arch/x86/tests/vsib-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/vsib2-err.asm
+EXTRA_DIST += modules/arch/x86/tests/vsib2-err.errwarn
+EXTRA_DIST += modules/arch/x86/tests/x86label.asm
+EXTRA_DIST += modules/arch/x86/tests/x86label.hex
+EXTRA_DIST += modules/arch/x86/tests/xchg64.asm
+EXTRA_DIST += modules/arch/x86/tests/xchg64.hex
+EXTRA_DIST += modules/arch/x86/tests/xmm64.asm
+EXTRA_DIST += modules/arch/x86/tests/xmm64.hex
+EXTRA_DIST += modules/arch/x86/tests/xop-all.asm
+EXTRA_DIST += modules/arch/x86/tests/xop-all.hex
+EXTRA_DIST += modules/arch/x86/tests/xop-basic.asm
+EXTRA_DIST += modules/arch/x86/tests/xop-basic.hex
+EXTRA_DIST += modules/arch/x86/tests/xop-cc.asm
+EXTRA_DIST += modules/arch/x86/tests/xop-cc.hex
+EXTRA_DIST += modules/arch/x86/tests/xsave.asm
+EXTRA_DIST += modules/arch/x86/tests/xsave.hex
+
+EXTRA_DIST += modules/arch/x86/tests/gas32/Makefile.inc
+EXTRA_DIST += modules/arch/x86/tests/gas64/Makefile.inc
+
+include modules/arch/x86/tests/gas32/Makefile.inc
+include modules/arch/x86/tests/gas64/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/gas32/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/gas32/Makefile.inc
new file mode 100644 (file)
index 0000000..2f58c66
--- /dev/null
@@ -0,0 +1,24 @@
+TESTS += modules/arch/x86/tests/gas32/x86_gas32_test.sh
+
+EXTRA_DIST += modules/arch/x86/tests/gas32/x86_gas32_test.sh
+EXTRA_DIST += modules/arch/x86/tests/gas32/align32.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/align32.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farithr.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farithr.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farjump.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-farjump.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-fpmem.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-fpmem.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-invlpg.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-invlpg.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-loop32.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-loop32.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movdq32.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movdq32.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movsd.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-movsd.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-pop.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas-pop.hex
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas32-jmpcall.asm
+EXTRA_DIST += modules/arch/x86/tests/gas32/gas32-jmpcall.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/gas64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/arch/x86/tests/gas64/Makefile.inc
new file mode 100644 (file)
index 0000000..00baf62
--- /dev/null
@@ -0,0 +1,35 @@
+TESTS += modules/arch/x86/tests/gas64/x86_gas64_test.sh
+
+EXTRA_DIST += modules/arch/x86/tests/gas64/x86_gas64_test.sh
+EXTRA_DIST += modules/arch/x86/tests/gas64/align64.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/align64.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-cbw.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-cbw.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-fp.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-fp.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-inout.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-inout.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-loop64.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-loop64.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-moreinsn.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-moreinsn.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movabs.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movabs.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movdq64.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movdq64.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movsxs.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-movsxs.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-muldiv.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-muldiv.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-prefix.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-prefix.errwarn
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-prefix.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-retenter.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-retenter.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-shift.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas-shift.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas64-jmpcall.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/gas64-jmpcall.hex
+EXTRA_DIST += modules/arch/x86/tests/gas64/riprel.asm
+EXTRA_DIST += modules/arch/x86/tests/gas64/riprel.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/Makefile.inc
new file mode 100644 (file)
index 0000000..8da6210
--- /dev/null
@@ -0,0 +1,18 @@
+EXTRA_DIST += modules/dbgfmts/codeview/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/null/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/stabs/Makefile.inc
+
+include modules/dbgfmts/codeview/Makefile.inc
+include modules/dbgfmts/dwarf2/Makefile.inc
+include modules/dbgfmts/null/Makefile.inc
+include modules/dbgfmts/stabs/Makefile.inc
+
+notrans_dist_man_MANS += yasm_dbgfmts.7
+
+if BUILD_MAN
+yasm_dbgfmts.7: modules/dbgfmts/yasm_dbgfmts.xml
+       $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/dbgfmts/yasm_dbgfmts.xml
+endif
+
+EXTRA_DIST += modules/dbgfmts/yasm_dbgfmts.xml
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/codeview/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/codeview/Makefile.inc
new file mode 100644 (file)
index 0000000..19f2db6
--- /dev/null
@@ -0,0 +1,11 @@
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-dbgfmt.h
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-dbgfmt.c
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-symline.c
+libyasm_a_SOURCES += modules/dbgfmts/codeview/cv-type.c
+
+YASM_MODULES += dbgfmt_cv8
+
+EXTRA_DIST += modules/dbgfmts/codeview/cv8.txt
+
+#EXTRA_DIST += modules/dbgfmts/codeview/tests/Makefile.inc
+#include modules/dbgfmts/codeview/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/Makefile.inc
new file mode 100644 (file)
index 0000000..606b699
--- /dev/null
@@ -0,0 +1,10 @@
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-dbgfmt.h
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-dbgfmt.c
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-line.c
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-aranges.c
+libyasm_a_SOURCES += modules/dbgfmts/dwarf2/dwarf2-info.c
+
+YASM_MODULES += dbgfmt_dwarf2
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..e1dc1d4
--- /dev/null
@@ -0,0 +1,9 @@
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/gen64/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/Makefile.inc
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/gen64/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/pass32/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/pass64/Makefile.inc
+include modules/dbgfmts/dwarf2/tests/passwin64/Makefile.inc
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/pass32/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/pass32/Makefile.inc
new file mode 100644 (file)
index 0000000..be69cbf
--- /dev/null
@@ -0,0 +1,8 @@
+TESTS += modules/dbgfmts/dwarf2/tests/pass32/dwarf2_pass32_test.sh
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf2_pass32_test.sh
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32-err.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32-err.errwarn
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32_testhd.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass32/dwarf32_testhd.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/pass64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/pass64/Makefile.inc
new file mode 100644 (file)
index 0000000..e976014
--- /dev/null
@@ -0,0 +1,8 @@
+TESTS += modules/dbgfmts/dwarf2/tests/pass64/dwarf2_pass64_test.sh
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf2_pass64_test.sh
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_2loc.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_2loc.hex
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_leb128.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/pass64/dwarf64_leb128.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/passwin64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/tests/passwin64/Makefile.inc
new file mode 100644 (file)
index 0000000..e1d9c4d
--- /dev/null
@@ -0,0 +1,7 @@
+TESTS += modules/dbgfmts/dwarf2/tests/passwin64/dwarf2_passwin64_test.sh
+
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarf2_passwin64_test.sh
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarfwin64_testhd.asm
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarfwin64_testhd.errwarn
+EXTRA_DIST += modules/dbgfmts/dwarf2/tests/passwin64/dwarfwin64_testhd.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/null/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/null/Makefile.inc
new file mode 100644 (file)
index 0000000..94f7cdb
--- /dev/null
@@ -0,0 +1,3 @@
+libyasm_a_SOURCES += modules/dbgfmts/null/null-dbgfmt.c
+
+YASM_MODULES += dbgfmt_null
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/stabs/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/stabs/Makefile.inc
new file mode 100644 (file)
index 0000000..745c0de
--- /dev/null
@@ -0,0 +1,6 @@
+libyasm_a_SOURCES += modules/dbgfmts/stabs/stabs-dbgfmt.c
+
+YASM_MODULES += dbgfmt_stabs
+
+EXTRA_DIST += modules/dbgfmts/stabs/tests/Makefile.inc
+include modules/dbgfmts/stabs/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/stabs/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/dbgfmts/stabs/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..6f789eb
--- /dev/null
@@ -0,0 +1,5 @@
+EXTRA_DIST += modules/dbgfmts/stabs/tests/stabs_test.sh
+TESTS += modules/dbgfmts/stabs/tests/stabs_test.sh
+
+EXTRA_DIST += modules/dbgfmts/stabs/tests/stabs-elf.asm
+EXTRA_DIST += modules/dbgfmts/stabs/tests/stabs-elf.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/listfmts/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/listfmts/Makefile.inc
new file mode 100644 (file)
index 0000000..77fb2ec
--- /dev/null
@@ -0,0 +1,3 @@
+EXTRA_DIST += modules/listfmts/nasm/Makefile.inc
+
+include modules/listfmts/nasm/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/listfmts/nasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/listfmts/nasm/Makefile.inc
new file mode 100644 (file)
index 0000000..6f00499
--- /dev/null
@@ -0,0 +1,7 @@
+libyasm_a_SOURCES += modules/listfmts/nasm/nasm-listfmt.c
+
+YASM_MODULES += listfmt_nasm
+
+#EXTRA_DIST += modules/listfmts/nasm/tests/Makefile.inc
+
+#include modules/listfmts/nasm/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/Makefile.inc
new file mode 100644 (file)
index 0000000..a76359a
--- /dev/null
@@ -0,0 +1,30 @@
+EXTRA_DIST += modules/objfmts/dbg/Makefile.inc
+EXTRA_DIST += modules/objfmts/bin/Makefile.inc
+EXTRA_DIST += modules/objfmts/elf/Makefile.inc
+#!EXTRA_DIST += modules/objfmts/omf/Makefile.inc
+EXTRA_DIST += modules/objfmts/coff/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/Makefile.inc
+EXTRA_DIST += modules/objfmts/rdf/Makefile.inc
+EXTRA_DIST += modules/objfmts/win32/Makefile.inc
+EXTRA_DIST += modules/objfmts/win64/Makefile.inc
+EXTRA_DIST += modules/objfmts/xdf/Makefile.inc
+
+include modules/objfmts/dbg/Makefile.inc
+include modules/objfmts/bin/Makefile.inc
+include modules/objfmts/elf/Makefile.inc
+#!include modules/objfmts/omf/Makefile.inc
+include modules/objfmts/coff/Makefile.inc
+include modules/objfmts/macho/Makefile.inc
+include modules/objfmts/rdf/Makefile.inc
+include modules/objfmts/win32/Makefile.inc
+include modules/objfmts/win64/Makefile.inc
+include modules/objfmts/xdf/Makefile.inc
+
+notrans_dist_man_MANS += yasm_objfmts.7
+
+if BUILD_MAN
+yasm_objfmts.7: modules/objfmts/yasm_objfmts.xml
+       $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/objfmts/yasm_objfmts.xml
+endif
+
+EXTRA_DIST += modules/objfmts/yasm_objfmts.xml
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/Makefile.inc
new file mode 100644 (file)
index 0000000..ae23cfe
--- /dev/null
@@ -0,0 +1,7 @@
+libyasm_a_SOURCES += modules/objfmts/bin/bin-objfmt.c
+
+YASM_MODULES += objfmt_bin objfmt_dosexe
+
+EXTRA_DIST += modules/objfmts/bin/tests/Makefile.inc
+
+include modules/objfmts/bin/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..e29ed72
--- /dev/null
@@ -0,0 +1,34 @@
+TESTS += modules/objfmts/bin/tests/bin_test.sh
+
+EXTRA_DIST += modules/objfmts/bin/tests/bin_test.sh
+EXTRA_DIST += modules/objfmts/bin/tests/abs.asm
+EXTRA_DIST += modules/objfmts/bin/tests/abs.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bigorg.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bigorg.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bigorg.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/bin-farabs.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bin-farabs.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bin-rip.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bin-rip.hex
+EXTRA_DIST += modules/objfmts/bin/tests/bintest.asm
+EXTRA_DIST += modules/objfmts/bin/tests/bintest.hex
+EXTRA_DIST += modules/objfmts/bin/tests/float-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/float-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/float.asm
+EXTRA_DIST += modules/objfmts/bin/tests/float.hex
+EXTRA_DIST += modules/objfmts/bin/tests/integer-warn.asm
+EXTRA_DIST += modules/objfmts/bin/tests/integer-warn.hex
+EXTRA_DIST += modules/objfmts/bin/tests/integer-warn.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/integer.asm
+EXTRA_DIST += modules/objfmts/bin/tests/integer.hex
+EXTRA_DIST += modules/objfmts/bin/tests/levelop.asm
+EXTRA_DIST += modules/objfmts/bin/tests/levelop.hex
+EXTRA_DIST += modules/objfmts/bin/tests/reserve.asm
+EXTRA_DIST += modules/objfmts/bin/tests/reserve.hex
+EXTRA_DIST += modules/objfmts/bin/tests/reserve.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/shr.asm
+EXTRA_DIST += modules/objfmts/bin/tests/shr.hex
+
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/Makefile.inc
+
+include modules/objfmts/bin/tests/multisect/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/tests/multisect/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/bin/tests/multisect/Makefile.inc
new file mode 100644 (file)
index 0000000..dcb7d62
--- /dev/null
@@ -0,0 +1,51 @@
+TESTS += modules/objfmts/bin/tests/multisect/bin_multi_test.sh
+
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin_multi_test.sh
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-align.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-ssym.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-ssym.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/bin-ssym.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop1-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop1-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop2-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-loop2-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-notfound-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/follows-notfound-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/initbss.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/ldlinux-sects.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/ldlinux-sects.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/ldlinux-sects.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect1.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect1.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect1.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect2.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect2.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect2.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect3.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect3.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect3.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect4.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect4.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect4.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect5.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect5.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/multisect5.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect1.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect1.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect1.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect2.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect2.hex
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/nomultisect2.map
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop1-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop1-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop2-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-loop2-err.errwarn
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-notfound-err.asm
+EXTRA_DIST += modules/objfmts/bin/tests/multisect/vfollows-notfound-err.errwarn
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/coff/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/coff/Makefile.inc
new file mode 100644 (file)
index 0000000..9564fed
--- /dev/null
@@ -0,0 +1,25 @@
+libyasm_a_SOURCES += modules/objfmts/coff/coff-objfmt.c
+libyasm_a_SOURCES += modules/objfmts/coff/coff-objfmt.h
+libyasm_a_SOURCES += modules/objfmts/coff/win64-except.c
+
+YASM_MODULES += objfmt_coff
+
+$(top_srcdir)/modules/objfmts/coff/coff-objfmt.c: win64-nasm.c win64-gas.c
+
+win64-nasm.c: $(srcdir)/modules/objfmts/coff/win64-nasm.mac genmacro$(EXEEXT)
+       $(top_builddir)/genmacro$(EXEEXT) $@ win64_nasm_stdmac $(srcdir)/modules/objfmts/coff/win64-nasm.mac
+
+BUILT_SOURCES += win64-nasm.c
+CLEANFILES += win64-nasm.c
+EXTRA_DIST += modules/objfmts/coff/win64-nasm.mac
+
+win64-gas.c: $(srcdir)/modules/objfmts/coff/win64-gas.mac genmacro$(EXEEXT)
+       $(top_builddir)/genmacro$(EXEEXT) $@ win64_gas_stdmac $(srcdir)/modules/objfmts/coff/win64-gas.mac
+
+BUILT_SOURCES += win64-gas.c
+CLEANFILES += win64-gas.c
+EXTRA_DIST += modules/objfmts/coff/win64-gas.mac
+
+EXTRA_DIST += modules/objfmts/coff/tests/Makefile.inc
+
+include modules/objfmts/coff/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/coff/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/coff/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..aafdfbf
--- /dev/null
@@ -0,0 +1,11 @@
+TESTS += modules/objfmts/coff/tests/coff_test.sh
+
+EXTRA_DIST += modules/objfmts/coff/tests/coff_test.sh
+EXTRA_DIST += modules/objfmts/coff/tests/cofftest.c
+EXTRA_DIST += modules/objfmts/coff/tests/cofftest.asm
+EXTRA_DIST += modules/objfmts/coff/tests/cofftest.hex
+EXTRA_DIST += modules/objfmts/coff/tests/cofftimes.asm
+EXTRA_DIST += modules/objfmts/coff/tests/cofftimes.hex
+EXTRA_DIST += modules/objfmts/coff/tests/x86id.asm
+EXTRA_DIST += modules/objfmts/coff/tests/x86id.hex
+EXTRA_DIST += modules/objfmts/coff/tests/x86id.errwarn
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/dbg/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/dbg/Makefile.inc
new file mode 100644 (file)
index 0000000..cfc9b75
--- /dev/null
@@ -0,0 +1,3 @@
+libyasm_a_SOURCES += modules/objfmts/dbg/dbg-objfmt.c
+
+YASM_MODULES += objfmt_dbg
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/Makefile.inc
new file mode 100644 (file)
index 0000000..659f867
--- /dev/null
@@ -0,0 +1,12 @@
+libyasm_a_SOURCES += modules/objfmts/elf/elf.c
+libyasm_a_SOURCES += modules/objfmts/elf/elf.h
+libyasm_a_SOURCES += modules/objfmts/elf/elf-objfmt.c
+libyasm_a_SOURCES += modules/objfmts/elf/elf-machine.h
+libyasm_a_SOURCES += modules/objfmts/elf/elf-x86-x86.c
+libyasm_a_SOURCES += modules/objfmts/elf/elf-x86-amd64.c
+
+YASM_MODULES += objfmt_elf objfmt_elf32 objfmt_elf64
+
+EXTRA_DIST += modules/objfmts/elf/tests/Makefile.inc
+
+include modules/objfmts/elf/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..e6d421c
--- /dev/null
@@ -0,0 +1,55 @@
+TESTS += modules/objfmts/elf/tests/elf_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/elf_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/curpos.asm
+EXTRA_DIST += modules/objfmts/elf/tests/curpos.hex
+EXTRA_DIST += modules/objfmts/elf/tests/curpos-err.asm
+EXTRA_DIST += modules/objfmts/elf/tests/curpos-err.errwarn
+EXTRA_DIST += modules/objfmts/elf/tests/elf-overdef.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elf-overdef.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elf-x86id.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elf-x86id.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfabssect.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfabssect.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfcond.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfcond.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfequabs.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfequabs.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobal.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobal.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext2.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfglobext2.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfmanysym.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfmanysym.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc-ext.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfreloc-ext.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfsectalign.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfsectalign.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfso.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfso.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elftest.c
+EXTRA_DIST += modules/objfmts/elf/tests/elftest.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elftest.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elftimes.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elftimes.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elftypesize.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elftypesize.hex
+EXTRA_DIST += modules/objfmts/elf/tests/elfvisibility.asm
+EXTRA_DIST += modules/objfmts/elf/tests/elfvisibility.errwarn
+EXTRA_DIST += modules/objfmts/elf/tests/elfvisibility.hex
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-sectname.asm
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-sectname.hex
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-forceident.asm
+EXTRA_DIST += modules/objfmts/elf/tests/nasm-forceident.hex
+
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/Makefile.inc
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/Makefile.inc
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/Makefile.inc
+
+include modules/objfmts/elf/tests/amd64/Makefile.inc
+include modules/objfmts/elf/tests/gas32/Makefile.inc
+include modules/objfmts/elf/tests/gas64/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/amd64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/amd64/Makefile.inc
new file mode 100644 (file)
index 0000000..deb54bc
--- /dev/null
@@ -0,0 +1,11 @@
+TESTS += modules/objfmts/elf/tests/amd64/elf_amd64_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elf_amd64_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elf-rip.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elf-rip.hex
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elfso64.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/elfso64.hex
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/gotpcrel.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/gotpcrel.hex
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/multiplefixup.asm
+EXTRA_DIST += modules/objfmts/elf/tests/amd64/multiplefixup.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/gas32/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/gas32/Makefile.inc
new file mode 100644 (file)
index 0000000..883c214
--- /dev/null
@@ -0,0 +1,7 @@
+TESTS += modules/objfmts/elf/tests/gas32/elf_gas32_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_ssym.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_ssym.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_got.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas32/elf_gas32_got.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/gas64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/elf/tests/gas64/Makefile.inc
new file mode 100644 (file)
index 0000000..382744d
--- /dev/null
@@ -0,0 +1,11 @@
+TESTS += modules/objfmts/elf/tests/gas64/elf_gas64_test.sh
+
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_test.sh
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/crosssect.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/crosssect.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_curpos.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_curpos.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_reloc.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_reloc.hex
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_ssym.asm
+EXTRA_DIST += modules/objfmts/elf/tests/gas64/elf_gas64_ssym.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/Makefile.inc
new file mode 100644 (file)
index 0000000..39eff29
--- /dev/null
@@ -0,0 +1,7 @@
+libyasm_a_SOURCES += modules/objfmts/macho/macho-objfmt.c
+
+YASM_MODULES += objfmt_macho objfmt_macho32 objfmt_macho64
+
+EXTRA_DIST += modules/objfmts/macho/tests/Makefile.inc
+
+include modules/objfmts/macho/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..e8b4dc1
--- /dev/null
@@ -0,0 +1,9 @@
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/Makefile.inc
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/Makefile.inc
+
+include modules/objfmts/macho/tests/gas32/Makefile.inc
+include modules/objfmts/macho/tests/gas64/Makefile.inc
+include modules/objfmts/macho/tests/nasm32/Makefile.inc
+include modules/objfmts/macho/tests/nasm64/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/gas32/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/gas32/Makefile.inc
new file mode 100644 (file)
index 0000000..a02b3b3
--- /dev/null
@@ -0,0 +1,5 @@
+TESTS += modules/objfmts/macho/tests/gas32/gas_macho32_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/gas_macho32_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/gas-macho32.asm
+EXTRA_DIST += modules/objfmts/macho/tests/gas32/gas-macho32.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/gas64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/gas64/Makefile.inc
new file mode 100644 (file)
index 0000000..ec99a21
--- /dev/null
@@ -0,0 +1,7 @@
+TESTS += modules/objfmts/macho/tests/gas64/gas_macho64_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas_macho64_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64.asm
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64.hex
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64-pic.asm
+EXTRA_DIST += modules/objfmts/macho/tests/gas64/gas-macho64-pic.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/nasm32/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/nasm32/Makefile.inc
new file mode 100644 (file)
index 0000000..2bba5de
--- /dev/null
@@ -0,0 +1,17 @@
+TESTS += modules/objfmts/macho/tests/nasm32/macho32_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/machotest.c
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/machotest.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/machotest.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho-reloc.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho-reloc.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pext.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pext.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pic.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-pic.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-sect.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-sect.errwarn
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-sect.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-size.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm32/macho32-size.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/nasm64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/macho/tests/nasm64/Makefile.inc
new file mode 100644 (file)
index 0000000..93ec45e
--- /dev/null
@@ -0,0 +1,10 @@
+TESTS += modules/objfmts/macho/tests/nasm64/macho64_test.sh
+
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/nasm-macho64-pic.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/nasm-macho64-pic.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/macho64_test.sh
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/machotest64.c
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/machotest64.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/machotest64.hex
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/macho-reloc64-err.asm
+EXTRA_DIST += modules/objfmts/macho/tests/nasm64/macho-reloc64-err.errwarn
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/rdf/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/rdf/Makefile.inc
new file mode 100644 (file)
index 0000000..f5e01e1
--- /dev/null
@@ -0,0 +1,7 @@
+libyasm_a_SOURCES += modules/objfmts/rdf/rdf-objfmt.c
+
+YASM_MODULES += objfmt_rdf
+
+EXTRA_DIST += modules/objfmts/rdf/tests/Makefile.inc
+
+include modules/objfmts/rdf/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/rdf/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/rdf/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..c547e8f
--- /dev/null
@@ -0,0 +1,23 @@
+TESTS += modules/objfmts/rdf/tests/rdf_test.sh
+
+EXTRA_DIST += modules/objfmts/rdf/tests/rdf_test.sh
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfabs.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfabs.errwarn
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfabs.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfext.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfext.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg2.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdfseg2.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest1.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest1.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest2.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdftest2.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtlib.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtlib.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtmain.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/rdtmain.hex
+EXTRA_DIST += modules/objfmts/rdf/tests/testlib.asm
+EXTRA_DIST += modules/objfmts/rdf/tests/testlib.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/Makefile.inc
new file mode 100644 (file)
index 0000000..5b3b162
--- /dev/null
@@ -0,0 +1,7 @@
+# Assume objfmt_coff is included
+
+YASM_MODULES += objfmt_win32
+
+EXTRA_DIST += modules/objfmts/win32/tests/Makefile.inc
+
+include modules/objfmts/win32/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..3f2ab94
--- /dev/null
@@ -0,0 +1,21 @@
+TESTS += modules/objfmts/win32/tests/win32_test.sh
+
+EXTRA_DIST += modules/objfmts/win32/tests/export.asm
+EXTRA_DIST += modules/objfmts/win32/tests/export.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32_test.sh
+EXTRA_DIST += modules/objfmts/win32/tests/win32-curpos.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-curpos.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32-overdef.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-overdef.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32-safeseh.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-safeseh.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32-safeseh.masm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-segof.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32-segof.hex
+EXTRA_DIST += modules/objfmts/win32/tests/win32test.c
+EXTRA_DIST += modules/objfmts/win32/tests/win32test.asm
+EXTRA_DIST += modules/objfmts/win32/tests/win32test.hex
+
+EXTRA_DIST += modules/objfmts/win32/tests/gas/Makefile.inc
+
+include modules/objfmts/win32/tests/gas/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/tests/gas/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win32/tests/gas/Makefile.inc
new file mode 100644 (file)
index 0000000..f492cba
--- /dev/null
@@ -0,0 +1,9 @@
+TESTS += modules/objfmts/win32/tests/gas/win32_gas_test.sh
+
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32_gas_test.sh
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32at.asm
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32at.hex
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32def.asm
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32def.hex
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32secrel32.asm
+EXTRA_DIST += modules/objfmts/win32/tests/gas/win32secrel32.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/Makefile.inc
new file mode 100644 (file)
index 0000000..545c847
--- /dev/null
@@ -0,0 +1,7 @@
+# Assume objfmt_coff is included
+
+YASM_MODULES += objfmt_win64 objfmt_x64
+
+EXTRA_DIST += modules/objfmts/win64/tests/Makefile.inc
+
+include modules/objfmts/win64/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..2458426
--- /dev/null
@@ -0,0 +1,35 @@
+TESTS += modules/objfmts/win64/tests/win64_test.sh
+
+EXTRA_DIST += modules/objfmts/win64/tests/win64_test.sh
+EXTRA_DIST += modules/objfmts/win64/tests/sce1.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce1.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce1-err.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce1-err.errwarn
+EXTRA_DIST += modules/objfmts/win64/tests/sce2.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce2.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce2-err.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce2-err.errwarn
+EXTRA_DIST += modules/objfmts/win64/tests/sce3.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce3.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce3.masm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4.hex
+EXTRA_DIST += modules/objfmts/win64/tests/sce4.masm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4-err.asm
+EXTRA_DIST += modules/objfmts/win64/tests/sce4-err.errwarn
+EXTRA_DIST += modules/objfmts/win64/tests/win64-abs.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-abs.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-curpos.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-curpos.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref.masm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref2.asm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref2.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-dataref2.masm
+EXTRA_DIST += modules/objfmts/win64/tests/win64-imagebase.hex
+EXTRA_DIST += modules/objfmts/win64/tests/win64-imagebase.asm
+
+EXTRA_DIST += modules/objfmts/win64/tests/gas/Makefile.inc
+
+include modules/objfmts/win64/tests/gas/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/tests/gas/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/win64/tests/gas/Makefile.inc
new file mode 100644 (file)
index 0000000..0faeec7
--- /dev/null
@@ -0,0 +1,5 @@
+TESTS += modules/objfmts/win64/tests/gas/win64_gas_test.sh
+
+EXTRA_DIST += modules/objfmts/win64/tests/gas/win64_gas_test.sh
+EXTRA_DIST += modules/objfmts/win64/tests/gas/win64-gas-sce.asm
+EXTRA_DIST += modules/objfmts/win64/tests/gas/win64-gas-sce.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/xdf/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/xdf/Makefile.inc
new file mode 100644 (file)
index 0000000..ffdc68b
--- /dev/null
@@ -0,0 +1,7 @@
+libyasm_a_SOURCES += modules/objfmts/xdf/xdf-objfmt.c
+
+YASM_MODULES += objfmt_xdf
+
+EXTRA_DIST += modules/objfmts/xdf/tests/Makefile.inc
+
+include modules/objfmts/xdf/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/xdf/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/objfmts/xdf/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..c39ba30
--- /dev/null
@@ -0,0 +1,18 @@
+TESTS += modules/objfmts/xdf/tests/xdf_test.sh
+
+EXTRA_DIST += modules/objfmts/xdf/tests/xdf_test.sh
+EXTRA_DIST += modules/objfmts/xdf/tests/xdf-overdef.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdf-overdef.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdflong.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdflong.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdflong.errwarn
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfother.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfother.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfprotect.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfprotect.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect.hex
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect-err.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfsect-err.errwarn
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfvirtual.asm
+EXTRA_DIST += modules/objfmts/xdf/tests/xdfvirtual.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/Makefile.inc
new file mode 100644 (file)
index 0000000..b432fa9
--- /dev/null
@@ -0,0 +1,15 @@
+EXTRA_DIST += modules/parsers/gas/Makefile.inc
+EXTRA_DIST += modules/parsers/nasm/Makefile.inc
+
+include modules/parsers/gas/Makefile.inc
+include modules/parsers/nasm/Makefile.inc
+include modules/parsers/tasm/Makefile.inc
+
+notrans_dist_man_MANS += yasm_parsers.7
+
+if BUILD_MAN
+yasm_parsers.7: modules/parsers/yasm_parsers.xml
+       $(XMLTO) -o $(top_builddir) man $(srcdir)/modules/parsers/yasm_parsers.xml
+endif
+
+EXTRA_DIST += modules/parsers/yasm_parsers.xml
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/Makefile.inc
new file mode 100644 (file)
index 0000000..a0264cc
--- /dev/null
@@ -0,0 +1,19 @@
+libyasm_a_SOURCES += modules/parsers/gas/gas-parser.c
+libyasm_a_SOURCES += modules/parsers/gas/gas-parser.h
+libyasm_a_SOURCES += modules/parsers/gas/gas-parse.c
+libyasm_a_SOURCES += modules/parsers/gas/gas-parse-intel.c
+nodist_libyasm_a_SOURCES += gas-token.c
+
+YASM_MODULES += parser_gas parser_gnu
+
+gas-token.c: $(srcdir)/modules/parsers/gas/gas-token.re re2c$(EXEEXT)
+       $(top_builddir)/re2c$(EXEEXT) -b -o $@ $(srcdir)/modules/parsers/gas/gas-token.re
+
+BUILT_SOURCES += gas-token.c
+
+CLEANFILES += gas-token.c
+
+EXTRA_DIST += modules/parsers/gas/tests/Makefile.inc
+EXTRA_DIST += modules/parsers/gas/gas-token.re
+
+include modules/parsers/gas/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..c288adc
--- /dev/null
@@ -0,0 +1,48 @@
+TESTS += modules/parsers/gas/tests/gas_test.sh
+
+EXTRA_DIST += modules/parsers/gas/tests/gas_test.sh
+EXTRA_DIST += modules/parsers/gas/tests/dataref-imm.asm
+EXTRA_DIST += modules/parsers/gas/tests/dataref-imm.hex
+EXTRA_DIST += modules/parsers/gas/tests/datavis.asm
+EXTRA_DIST += modules/parsers/gas/tests/datavis.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/datavis.hex
+EXTRA_DIST += modules/parsers/gas/tests/datavis2.asm
+EXTRA_DIST += modules/parsers/gas/tests/datavis2.hex
+EXTRA_DIST += modules/parsers/gas/tests/execsect.asm
+EXTRA_DIST += modules/parsers/gas/tests/execsect.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-fill.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-fill.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-float.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-float.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-instlabel.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-instlabel.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-line-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-line-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/gas-line2-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-line2-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/gas-push.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-push.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-segprefix.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-segprefix.hex
+EXTRA_DIST += modules/parsers/gas/tests/gas-semi.asm
+EXTRA_DIST += modules/parsers/gas/tests/gas-semi.hex
+EXTRA_DIST += modules/parsers/gas/tests/gassectalign.asm
+EXTRA_DIST += modules/parsers/gas/tests/gassectalign.hex
+EXTRA_DIST += modules/parsers/gas/tests/jmpcall.asm
+EXTRA_DIST += modules/parsers/gas/tests/jmpcall.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/jmpcall.hex
+EXTRA_DIST += modules/parsers/gas/tests/leb128.asm
+EXTRA_DIST += modules/parsers/gas/tests/leb128.hex
+EXTRA_DIST += modules/parsers/gas/tests/localcomm.asm
+EXTRA_DIST += modules/parsers/gas/tests/localcomm.hex
+EXTRA_DIST += modules/parsers/gas/tests/reggroup-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/reggroup-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/reggroup.asm
+EXTRA_DIST += modules/parsers/gas/tests/reggroup.hex
+EXTRA_DIST += modules/parsers/gas/tests/strzero.asm
+EXTRA_DIST += modules/parsers/gas/tests/strzero.hex
+EXTRA_DIST += modules/parsers/gas/tests/varinsn.asm
+EXTRA_DIST += modules/parsers/gas/tests/varinsn.hex
+
+EXTRA_DIST += modules/parsers/gas/tests/bin/Makefile.inc
+include modules/parsers/gas/tests/bin/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/tests/bin/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/gas/tests/bin/Makefile.inc
new file mode 100644 (file)
index 0000000..5428d14
--- /dev/null
@@ -0,0 +1,32 @@
+TESTS += modules/parsers/gas/tests/bin/gas_bin_test.sh
+
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas_bin_test.sh
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-comment.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-comment.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-comment.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-intel_syntax-noprefix.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-intel_syntax-noprefix.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-llabel.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-llabel.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-macro.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-macro.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-set.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-set.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-str.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/gas-str.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/rept-err.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/rept-err.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptempty.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptempty.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptlong.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptlong.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptnested.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptnested.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptsimple.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptsimple.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptwarn.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptwarn.errwarn
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptwarn.hex
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptzero.asm
+EXTRA_DIST += modules/parsers/gas/tests/bin/reptzero.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/Makefile.inc
new file mode 100644 (file)
index 0000000..ed58bb6
--- /dev/null
@@ -0,0 +1,29 @@
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parser.c
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parser.h
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parser-struct.h
+libyasm_a_SOURCES += modules/parsers/nasm/nasm-parse.c
+nodist_libyasm_a_SOURCES += nasm-token.c
+
+YASM_MODULES += parser_nasm parser_tasm
+
+nasm-token.c: $(srcdir)/modules/parsers/nasm/nasm-token.re re2c$(EXEEXT)
+       $(top_builddir)/re2c$(EXEEXT) -b -o $@ $(srcdir)/modules/parsers/nasm/nasm-token.re
+
+BUILT_SOURCES += nasm-token.c
+
+CLEANFILES += nasm-token.c
+
+EXTRA_DIST += modules/parsers/nasm/nasm-token.re
+
+$(top_srcdir)/modules/parsers/nasm/nasm-parser.c: nasm-macros.c
+
+nasm-macros.c: $(srcdir)/modules/parsers/nasm/nasm-std.mac genmacro$(EXEEXT)
+       $(top_builddir)/genmacro$(EXEEXT) $@ nasm_standard_mac $(srcdir)/modules/parsers/nasm/nasm-std.mac
+
+BUILT_SOURCES += nasm-macros.c
+CLEANFILES += nasm-macros.c
+EXTRA_DIST += modules/parsers/nasm/nasm-std.mac
+
+EXTRA_DIST += modules/parsers/nasm/tests/Makefile.inc
+
+include modules/parsers/nasm/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..56d0b92
--- /dev/null
@@ -0,0 +1,51 @@
+TESTS += modules/parsers/nasm/tests/nasm_test.sh
+
+EXTRA_DIST += modules/parsers/nasm/tests/nasm_test.sh
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop16.asm
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop16.hex
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop32.asm
+EXTRA_DIST += modules/parsers/nasm/tests/alignnop32.hex
+EXTRA_DIST += modules/parsers/nasm/tests/charconstmath.asm
+EXTRA_DIST += modules/parsers/nasm/tests/charconstmath.hex
+EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.asm
+EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.hex
+EXTRA_DIST += modules/parsers/nasm/tests/dy.asm
+EXTRA_DIST += modules/parsers/nasm/tests/dy.hex
+EXTRA_DIST += modules/parsers/nasm/tests/endcomma.asm
+EXTRA_DIST += modules/parsers/nasm/tests/endcomma.hex
+EXTRA_DIST += modules/parsers/nasm/tests/equcolon.asm
+EXTRA_DIST += modules/parsers/nasm/tests/equcolon.hex
+EXTRA_DIST += modules/parsers/nasm/tests/equlocal.asm
+EXTRA_DIST += modules/parsers/nasm/tests/equlocal.hex
+EXTRA_DIST += modules/parsers/nasm/tests/hexconst.asm
+EXTRA_DIST += modules/parsers/nasm/tests/hexconst.hex
+EXTRA_DIST += modules/parsers/nasm/tests/long.asm
+EXTRA_DIST += modules/parsers/nasm/tests/long.hex
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel.asm
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel.hex
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel2.asm
+EXTRA_DIST += modules/parsers/nasm/tests/locallabel2.hex
+EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.asm
+EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.hex
+EXTRA_DIST += modules/parsers/nasm/tests/newsect.asm
+EXTRA_DIST += modules/parsers/nasm/tests/newsect.hex
+EXTRA_DIST += modules/parsers/nasm/tests/orphannowarn.asm
+EXTRA_DIST += modules/parsers/nasm/tests/orphannowarn.hex
+EXTRA_DIST += modules/parsers/nasm/tests/prevlocalwarn.asm
+EXTRA_DIST += modules/parsers/nasm/tests/prevlocalwarn.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/prevlocalwarn.hex
+EXTRA_DIST += modules/parsers/nasm/tests/strucalign.asm
+EXTRA_DIST += modules/parsers/nasm/tests/strucalign.hex
+EXTRA_DIST += modules/parsers/nasm/tests/struczero.asm
+EXTRA_DIST += modules/parsers/nasm/tests/struczero.hex
+EXTRA_DIST += modules/parsers/nasm/tests/strucbase.asm
+EXTRA_DIST += modules/parsers/nasm/tests/strucbase.hex
+EXTRA_DIST += modules/parsers/nasm/tests/syntax-err.asm
+EXTRA_DIST += modules/parsers/nasm/tests/syntax-err.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/uscore.asm
+EXTRA_DIST += modules/parsers/nasm/tests/uscore.hex
+
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/Makefile.inc
+
+include modules/parsers/nasm/tests/worphan/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/tests/worphan/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/nasm/tests/worphan/Makefile.inc
new file mode 100644 (file)
index 0000000..f55b93d
--- /dev/null
@@ -0,0 +1,6 @@
+TESTS += modules/parsers/nasm/tests/worphan/nasm_worphan_test.sh
+
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/nasm_worphan_test.sh
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/orphanwarn.asm
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/orphanwarn.errwarn
+EXTRA_DIST += modules/parsers/nasm/tests/worphan/orphanwarn.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/Makefile.inc
new file mode 100644 (file)
index 0000000..bf49f71
--- /dev/null
@@ -0,0 +1,3 @@
+EXTRA_DIST += modules/parsers/tasm/tests/Makefile.inc
+
+include modules/parsers/tasm/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..d37e1e6
--- /dev/null
@@ -0,0 +1,43 @@
+TESTS += modules/parsers/tasm/tests/tasm_test.sh
+
+EXTRA_DIST += modules/parsers/tasm/tests/tasm_test.sh
+EXTRA_DIST += modules/parsers/tasm/tests/array.asm
+EXTRA_DIST += modules/parsers/tasm/tests/array.hex
+EXTRA_DIST += modules/parsers/tasm/tests/case.asm
+EXTRA_DIST += modules/parsers/tasm/tests/case.hex
+EXTRA_DIST += modules/parsers/tasm/tests/charstr.asm
+EXTRA_DIST += modules/parsers/tasm/tests/charstr.hex
+EXTRA_DIST += modules/parsers/tasm/tests/dup.asm
+EXTRA_DIST += modules/parsers/tasm/tests/dup.hex
+EXTRA_DIST += modules/parsers/tasm/tests/equal.asm
+EXTRA_DIST += modules/parsers/tasm/tests/equal.hex
+EXTRA_DIST += modules/parsers/tasm/tests/expr.asm
+EXTRA_DIST += modules/parsers/tasm/tests/expr.hex
+EXTRA_DIST += modules/parsers/tasm/tests/irp.asm
+EXTRA_DIST += modules/parsers/tasm/tests/irp.hex
+EXTRA_DIST += modules/parsers/tasm/tests/label.asm
+EXTRA_DIST += modules/parsers/tasm/tests/label.hex
+EXTRA_DIST += modules/parsers/tasm/tests/les.asm
+EXTRA_DIST += modules/parsers/tasm/tests/les.hex
+EXTRA_DIST += modules/parsers/tasm/tests/lidt.asm
+EXTRA_DIST += modules/parsers/tasm/tests/lidt.hex
+EXTRA_DIST += modules/parsers/tasm/tests/macro.asm
+EXTRA_DIST += modules/parsers/tasm/tests/macro.hex
+EXTRA_DIST += modules/parsers/tasm/tests/offset.asm
+EXTRA_DIST += modules/parsers/tasm/tests/offset.hex
+EXTRA_DIST += modules/parsers/tasm/tests/quote.asm
+EXTRA_DIST += modules/parsers/tasm/tests/quote.hex
+EXTRA_DIST += modules/parsers/tasm/tests/res.asm
+EXTRA_DIST += modules/parsers/tasm/tests/res.errwarn
+EXTRA_DIST += modules/parsers/tasm/tests/res.hex
+EXTRA_DIST += modules/parsers/tasm/tests/segment.asm
+EXTRA_DIST += modules/parsers/tasm/tests/segment.hex
+EXTRA_DIST += modules/parsers/tasm/tests/size.asm
+EXTRA_DIST += modules/parsers/tasm/tests/size.hex
+EXTRA_DIST += modules/parsers/tasm/tests/struc.asm
+EXTRA_DIST += modules/parsers/tasm/tests/struc.errwarn
+EXTRA_DIST += modules/parsers/tasm/tests/struc.hex
+
+EXTRA_DIST += modules/parsers/tasm/tests/exe/Makefile.inc
+
+include modules/parsers/tasm/tests/exe/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/tests/exe/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/parsers/tasm/tests/exe/Makefile.inc
new file mode 100644 (file)
index 0000000..117012c
--- /dev/null
@@ -0,0 +1,6 @@
+TESTS += modules/parsers/tasm/tests/exe/tasm_exe_test.sh
+
+EXTRA_DIST += modules/parsers/tasm/tests/exe/tasm_exe_test.sh
+EXTRA_DIST += modules/parsers/tasm/tests/exe/exe.asm
+EXTRA_DIST += modules/parsers/tasm/tests/exe/exe.hex
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/Makefile.inc
new file mode 100644 (file)
index 0000000..acf0683
--- /dev/null
@@ -0,0 +1,11 @@
+EXTRA_DIST += modules/preprocs/tasm/Makefile.inc
+EXTRA_DIST += modules/preprocs/nasm/Makefile.inc
+EXTRA_DIST += modules/preprocs/raw/Makefile.inc
+EXTRA_DIST += modules/preprocs/cpp/Makefile.inc
+EXTRA_DIST += modules/preprocs/gas/Makefile.inc
+
+include modules/preprocs/tasm/Makefile.inc
+include modules/preprocs/nasm/Makefile.inc
+include modules/preprocs/raw/Makefile.inc
+include modules/preprocs/cpp/Makefile.inc
+include modules/preprocs/gas/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/cpp/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/cpp/Makefile.inc
new file mode 100644 (file)
index 0000000..30bd24b
--- /dev/null
@@ -0,0 +1,6 @@
+# Makefile for cpp module.
+# Copied from raw preprocessor module.
+
+libyasm_a_SOURCES += modules/preprocs/cpp/cpp-preproc.c
+
+YASM_MODULES += preproc_cpp
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/nasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/nasm/Makefile.inc
new file mode 100644 (file)
index 0000000..ef29d47
--- /dev/null
@@ -0,0 +1,38 @@
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-preproc.c
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-pp.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-pp.c
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasmlib.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasmlib.c
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-eval.h
+libyasm_a_SOURCES += modules/preprocs/nasm/nasm-eval.c
+
+YASM_MODULES += preproc_nasm preproc_tasm
+
+$(top_srcdir)/modules/preprocs/nasm/nasm-preproc.c: nasm-version.c
+
+nasm-version.c: version.mac genmacro$(EXEEXT)
+       $(top_builddir)/genmacro$(EXEEXT) $@ nasm_version_mac version.mac
+
+BUILT_SOURCES += nasm-version.c
+CLEANFILES += nasm-version.c
+
+version.mac: genversion$(EXEEXT)
+       $(top_builddir)/genversion$(EXEEXT) $@
+
+BUILT_SOURCES += version.mac
+CLEANFILES += version.mac
+
+noinst_PROGRAMS += genversion
+
+genversion_SOURCES =
+EXTRA_DIST += modules/preprocs/nasm/genversion.c
+genversion_LDADD = genversion.$(OBJEXT)
+genversion_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genversion.$(OBJEXT): modules/preprocs/nasm/genversion.c
+       $(CC_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) -c -o $@ `test -f modules/preprocs/nasm/genversion.c || echo '$(srcdir)/'`modules/preprocs/nasm/genversion.c
+
+EXTRA_DIST += modules/preprocs/nasm/tests/Makefile.inc
+
+include modules/preprocs/nasm/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/nasm/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/nasm/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..2d624eb
--- /dev/null
@@ -0,0 +1,24 @@
+TESTS += modules/preprocs/nasm/tests/nasmpp_test.sh
+
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp_test.sh
+EXTRA_DIST += modules/preprocs/nasm/tests/16args.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/16args.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/ifcritical-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/ifcritical-err.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/longline.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/longline.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/macroeof-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/macroeof-err.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/noinclude-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/noinclude-err.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-bigint.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-bigint.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-decimal.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-decimal.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-nested.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-nested.errwarn
+EXTRA_DIST += modules/preprocs/nasm/tests/nasmpp-nested.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/orgsect.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/orgsect.hex
+EXTRA_DIST += modules/preprocs/nasm/tests/scope-err.asm
+EXTRA_DIST += modules/preprocs/nasm/tests/scope-err.errwarn
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/raw/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/raw/Makefile.inc
new file mode 100644 (file)
index 0000000..5756ca9
--- /dev/null
@@ -0,0 +1,7 @@
+libyasm_a_SOURCES += modules/preprocs/raw/raw-preproc.c
+
+YASM_MODULES += preproc_raw
+
+EXTRA_DIST += modules/preprocs/raw/tests/Makefile.inc
+
+include modules/preprocs/raw/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/raw/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/modules/preprocs/raw/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..82923d5
--- /dev/null
@@ -0,0 +1,5 @@
+TESTS += modules/preprocs/raw/tests/rawpp_test.sh
+
+EXTRA_DIST += modules/preprocs/raw/tests/rawpp_test.sh
+EXTRA_DIST += modules/preprocs/raw/tests/longline.asm
+EXTRA_DIST += modules/preprocs/raw/tests/longline.hex
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/Makefile.inc
new file mode 100644 (file)
index 0000000..dbc67fc
--- /dev/null
@@ -0,0 +1,9 @@
+EXTRA_DIST += tools/re2c/Makefile.inc
+EXTRA_DIST += tools/genmacro/Makefile.inc
+EXTRA_DIST += tools/genperf/Makefile.inc
+EXTRA_DIST += tools/python-yasm/Makefile.inc
+
+include tools/re2c/Makefile.inc
+include tools/genmacro/Makefile.inc
+include tools/genperf/Makefile.inc
+include tools/python-yasm/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/genmacro/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/genmacro/Makefile.inc
new file mode 100644 (file)
index 0000000..722f95d
--- /dev/null
@@ -0,0 +1,14 @@
+# These utility programs have to be built for BUILD host in cross-build.
+# This makes things rather non-standard automake
+
+noinst_PROGRAMS += genmacro
+
+genmacro_SOURCES =
+EXTRA_DIST += tools/genmacro/genmacro.c
+genmacro_LDADD = genmacro.$(OBJEXT)
+genmacro_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genmacro.$(OBJEXT): tools/genmacro/genmacro.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/genmacro/genmacro.c || echo '$(srcdir)/'`tools/genmacro/genmacro.c
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/genperf/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/genperf/Makefile.inc
new file mode 100644 (file)
index 0000000..135da6b
--- /dev/null
@@ -0,0 +1,42 @@
+# These utility programs have to be built for BUILD host in cross-build.
+# This makes things rather non-standard automake
+
+noinst_PROGRAMS += genperf
+
+# Suffix rule for genperf
+SUFFIXES += .gperf
+.gperf.c: genperf$(EXEEXT)
+       $(top_builddir)/genperf$(EXEEXT) $< $@
+
+genperf_SOURCES =
+EXTRA_DIST += tools/genperf/genperf.c
+EXTRA_DIST += tools/genperf/perfect.c
+EXTRA_DIST += tools/genperf/perfect.h
+EXTRA_DIST += tools/genperf/standard.h
+genperf_LDADD  = genperf.$(OBJEXT)
+genperf_LDADD += gp-perfect.$(OBJEXT)
+genperf_LDADD += gp-phash.$(OBJEXT)
+genperf_LDADD += gp-xmalloc.$(OBJEXT)
+genperf_LDADD += gp-xstrdup.$(OBJEXT)
+genperf_LINK = $(CCLD_FOR_BUILD) -o $@
+
+genperf.$(OBJEXT): tools/genperf/genperf.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/genperf/genperf.c || echo '$(srcdir)/'`tools/genperf/genperf.c
+
+gp-perfect.$(OBJEXT): tools/genperf/perfect.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/genperf/perfect.c || echo '$(srcdir)/'`tools/genperf/perfect.c
+
+gp-phash.$(OBJEXT): libyasm/phash.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f libyasm/phash.c || echo '$(srcdir)/'`libyasm/phash.c
+
+gp-xmalloc.$(OBJEXT): libyasm/xmalloc.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f libyasm/xmalloc.c || echo '$(srcdir)/'`libyasm/xmalloc.c
+
+gp-xstrdup.$(OBJEXT): libyasm/xstrdup.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f libyasm/xstrdup.c || echo '$(srcdir)/'`libyasm/xstrdup.c
+
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/python-yasm/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/python-yasm/Makefile.inc
new file mode 100644 (file)
index 0000000..fce135b
--- /dev/null
@@ -0,0 +1,79 @@
+PYBINDING_DEPS  = tools/python-yasm/bytecode.pxi
+PYBINDING_DEPS += tools/python-yasm/errwarn.pxi
+PYBINDING_DEPS += tools/python-yasm/expr.pxi
+PYBINDING_DEPS += tools/python-yasm/floatnum.pxi
+PYBINDING_DEPS += tools/python-yasm/intnum.pxi
+PYBINDING_DEPS += tools/python-yasm/symrec.pxi
+PYBINDING_DEPS += tools/python-yasm/value.pxi
+
+EXTRA_DIST += tools/python-yasm/pyxelator/cparse.py
+EXTRA_DIST += tools/python-yasm/pyxelator/genpyx.py
+EXTRA_DIST += tools/python-yasm/pyxelator/ir.py
+EXTRA_DIST += tools/python-yasm/pyxelator/lexer.py
+EXTRA_DIST += tools/python-yasm/pyxelator/node.py
+EXTRA_DIST += tools/python-yasm/pyxelator/parse_core.py
+EXTRA_DIST += tools/python-yasm/pyxelator/work_unit.py
+EXTRA_DIST += tools/python-yasm/pyxelator/wrap_yasm.py
+EXTRA_DIST += tools/python-yasm/setup.py
+EXTRA_DIST += tools/python-yasm/yasm.pyx
+EXTRA_DIST += $(PYBINDING_DEPS)
+
+if HAVE_PYTHON_BINDINGS
+
+# Use Pyxelator to generate Pyrex function headers.
+_yasm.pxi: ${HEADERS}
+       @rm -rf .tmp
+       @mkdir .tmp
+       $(PYTHON) $(srcdir)/tools/python-yasm/pyxelator/wrap_yasm.py \
+               "YASM_DIR=${srcdir}" "CPP=${CPP}" "CPPFLAGS=${CPPFLAGS}"
+       @rm -rf .tmp
+
+CLEANFILES += _yasm.pxi
+
+# Need to build a local copy of the main Pyrex input file to include _yasm.pxi
+# from the build directory.  Also need to fixup the other .pxi include paths.
+yasm.pyx: $(srcdir)/tools/python-yasm/yasm.pyx
+       sed -e 's,^include "\([^_]\),include "${srcdir}/tools/python-yasm/\1,' \
+               $(srcdir)/tools/python-yasm/yasm.pyx > $@
+
+CLEANFILES += yasm.pyx
+
+# Actually run Cython
+yasm_python.c: yasm.pyx _yasm.pxi $(PYBINDING_DEPS)
+       $(PYTHON) -c "from Cython.Compiler.Main import main; main(command_line=1)" \
+               -o $@ yasm.pyx
+
+CLEANFILES += yasm_python.c
+
+# Now the Python build magic...
+python-setup.txt: Makefile
+       echo "includes=${DEFS} ${DEFAULT_INCLUDES} ${INCLUDES} ${AM_CPPFLAGS} ${CPPFLAGS}" > python-setup.txt
+       echo "sources=${libyasm_a_SOURCES} ${nodist_libyasm_a_SOURCES}" >> python-setup.txt
+       echo "srcdir=${srcdir}" >> python-setup.txt
+       echo "gcc=${GCC}" >> python-setup.txt
+
+CLEANFILES += python-setup.txt
+
+.python-build: python-setup.txt yasm_python.c ${libyasm_a_SOURCES} ${nodist_libyasm_a_SOURCES}
+       $(PYTHON) `test -f tools/python-yasm/setup.py || echo '$(srcdir)/'`tools/python-yasm/setup.py build
+       touch .python-build
+python-build: .python-build
+
+CLEANFILES += .python-build
+
+python-install: .python-build
+       $(PYTHON) `test -f tools/python-yasm/setup.py || echo '$(srcdir)/'`tools/python-yasm/setup.py install "--install-lib=$(DESTDIR)$(pythondir)"
+
+python-uninstall:
+       rm -f `$(PYTHON) -c "import sys;sys.path.insert(0, '${DESTDIR}${pythondir}'); import yasm; print yasm.__file__"`
+
+else
+
+python-build:
+python-install:
+python-uninstall:
+
+endif
+
+EXTRA_DIST += tools/python-yasm/tests/Makefile.inc
+include tools/python-yasm/tests/Makefile.inc
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/python-yasm/tests/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/python-yasm/tests/Makefile.inc
new file mode 100644 (file)
index 0000000..c6df22c
--- /dev/null
@@ -0,0 +1,13 @@
+EXTRA_DIST += tools/python-yasm/tests/python_test.sh
+EXTRA_DIST += tools/python-yasm/tests/__init__.py
+EXTRA_DIST += tools/python-yasm/tests/test_bytecode.py
+EXTRA_DIST += tools/python-yasm/tests/test_expr.py
+EXTRA_DIST += tools/python-yasm/tests/test_intnum.py
+EXTRA_DIST += tools/python-yasm/tests/test_symrec.py
+
+if HAVE_PYTHON_BINDINGS
+
+TESTS_ENVIRONMENT += PYTHON=${PYTHON}
+TESTS += tools/python-yasm/tests/python_test.sh
+
+endif
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/re2c/Makefile.inc b/vendor/brightray/vendor/libchromiumcontent/src/third_party/yasm/source/patched-yasm/tools/re2c/Makefile.inc
new file mode 100644 (file)
index 0000000..edb89a5
--- /dev/null
@@ -0,0 +1,93 @@
+# These utility programs have to be built for BUILD host in cross-build.
+# This makes things rather non-standard automake
+
+noinst_PROGRAMS += re2c
+
+re2c_SOURCES =
+EXTRA_DIST += tools/re2c/main.c
+EXTRA_DIST += tools/re2c/basics.h
+EXTRA_DIST += tools/re2c/globals.h
+EXTRA_DIST += tools/re2c/ins.h
+EXTRA_DIST += tools/re2c/re.h
+EXTRA_DIST += tools/re2c/token.h
+EXTRA_DIST += tools/re2c/code.c
+EXTRA_DIST += tools/re2c/dfa.h
+EXTRA_DIST += tools/re2c/dfa.c
+EXTRA_DIST += tools/re2c/parse.h
+EXTRA_DIST += tools/re2c/parser.h
+EXTRA_DIST += tools/re2c/parser.c
+EXTRA_DIST += tools/re2c/actions.c
+EXTRA_DIST += tools/re2c/scanner.h
+EXTRA_DIST += tools/re2c/scanner.c
+EXTRA_DIST += tools/re2c/mbo_getopt.h
+EXTRA_DIST += tools/re2c/mbo_getopt.c
+EXTRA_DIST += tools/re2c/substr.h
+EXTRA_DIST += tools/re2c/substr.c
+EXTRA_DIST += tools/re2c/translate.c
+re2c_LDADD  = re2c-main.$(OBJEXT)
+re2c_LDADD += re2c-code.$(OBJEXT)
+re2c_LDADD += re2c-dfa.$(OBJEXT)
+re2c_LDADD += re2c-parser.$(OBJEXT)
+re2c_LDADD += re2c-actions.$(OBJEXT)
+re2c_LDADD += re2c-scanner.$(OBJEXT)
+re2c_LDADD += re2c-mbo_getopt.$(OBJEXT)
+re2c_LDADD += re2c-substr.$(OBJEXT)
+re2c_LDADD += re2c-translate.$(OBJEXT)
+re2c_LINK = $(CCLD_FOR_BUILD) -o $@
+
+re2c-main.$(OBJEXT): tools/re2c/main.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/main.c || echo '$(srcdir)/'`tools/re2c/main.c
+
+re2c-code.$(OBJEXT): tools/re2c/code.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/code.c || echo '$(srcdir)/'`tools/re2c/code.c
+
+re2c-dfa.$(OBJEXT): tools/re2c/dfa.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/dfa.c || echo '$(srcdir)/'`tools/re2c/dfa.c
+
+re2c-parser.$(OBJEXT): tools/re2c/parser.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/parser.c || echo '$(srcdir)/'`tools/re2c/parser.c
+
+re2c-actions.$(OBJEXT): tools/re2c/actions.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/actions.c || echo '$(srcdir)/'`tools/re2c/actions.c
+
+re2c-scanner.$(OBJEXT): tools/re2c/scanner.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/scanner.c || echo '$(srcdir)/'`tools/re2c/scanner.c
+
+re2c-mbo_getopt.$(OBJEXT): tools/re2c/mbo_getopt.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/mbo_getopt.c || echo '$(srcdir)/'`tools/re2c/mbo_getopt.c
+
+re2c-substr.$(OBJEXT): tools/re2c/substr.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/substr.c || echo '$(srcdir)/'`tools/re2c/substr.c
+
+re2c-translate.$(OBJEXT): tools/re2c/translate.c
+       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFAULT_INCLUDES) $(INCLUDES) \
+         -c -o $@ `test -f tools/re2c/translate.c || echo '$(srcdir)/'`tools/re2c/translate.c
+
+EXTRA_DIST += tools/re2c/CHANGELOG
+EXTRA_DIST += tools/re2c/NO_WARRANTY
+EXTRA_DIST += tools/re2c/README
+EXTRA_DIST += tools/re2c/scanner.re
+EXTRA_DIST += tools/re2c/re2c.1
+EXTRA_DIST += tools/re2c/bootstrap/scanner.c
+EXTRA_DIST += tools/re2c/doc/loplas.ps.gz
+EXTRA_DIST += tools/re2c/doc/sample.bib
+EXTRA_DIST += tools/re2c/examples/basemmap.c
+EXTRA_DIST += tools/re2c/examples/c.re
+EXTRA_DIST += tools/re2c/examples/cmmap.re
+EXTRA_DIST += tools/re2c/examples/cnokw.re
+EXTRA_DIST += tools/re2c/examples/cunroll.re
+EXTRA_DIST += tools/re2c/examples/modula.re
+EXTRA_DIST += tools/re2c/examples/repeater.re
+EXTRA_DIST += tools/re2c/examples/sample.re
+EXTRA_DIST += tools/re2c/examples/simple.re
+EXTRA_DIST += tools/re2c/examples/rexx/README
+EXTRA_DIST += tools/re2c/examples/rexx/rexx.l
+EXTRA_DIST += tools/re2c/examples/rexx/scanio.c
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/Ecore_Wl2.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/Ecore_Wl2.h
new file mode 100644 (file)
index 0000000..0546c45
--- /dev/null
@@ -0,0 +1,2359 @@
+#ifndef _ECORE_WL2_H_
+# define _ECORE_WL2_H_
+
+# include <Eina.h>
+# include <Ecore.h>
+# include <wayland-client.h>
+# include <wayland-cursor.h>
+# include <xkbcommon/xkbcommon.h>
+
+# define WL_HIDE_DEPRECATED
+# include <wayland-server.h>
+
+# ifdef EAPI
+#  undef EAPI
+# endif
+
+# ifdef __GNUC__
+#  if __GNUC__ >= 4
+#   define EAPI __attribute__ ((visibility("default")))
+#  else
+#   define EAPI
+#  endif
+# else
+#  define EAPI
+# endif
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# ifdef EFL_BETA_API_SUPPORT
+
+typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface;
+
+#  ifndef _ECORE_WL2_WINDOW_PREDEF
+typedef struct _Ecore_Wl2_Window Ecore_Wl2_Window;
+#  endif
+
+typedef struct _Ecore_Wl2_Display Ecore_Wl2_Display;
+typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output;
+typedef struct _Ecore_Wl2_Input Ecore_Wl2_Input;
+typedef struct _Ecore_Wl2_Seat Ecore_Wl2_Seat;
+typedef struct _Ecore_Wl2_Pointer Ecore_Wl2_Pointer;
+typedef struct _Ecore_Wl2_Keyboard Ecore_Wl2_Keyboard;
+typedef struct _Ecore_Wl2_Touch Ecore_Wl2_Touch;
+typedef struct _Ecore_Wl2_Offer Ecore_Wl2_Offer;
+typedef struct _Ecore_Wl2_Surface Ecore_Wl2_Surface;
+// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+typedef struct _Ecore_Wl2_Tizen_Input_Eo_Device Ecore_Wl2_Tizen_Input_Eo_Device;
+typedef struct _Ecore_Wl2_Tizen_Input_Device Ecore_Wl2_Tizen_Input_Device;
+
+//
+
+/* matches protocol values */
+typedef enum
+{
+   ECORE_WL2_DRAG_ACTION_NONE = 0,
+   ECORE_WL2_DRAG_ACTION_COPY = 1,
+   ECORE_WL2_DRAG_ACTION_MOVE = 2,
+   ECORE_WL2_DRAG_ACTION_ASK = 4,
+   ECORE_WL2_DRAG_ACTION_LAST = 5,
+} Ecore_Wl2_Drag_Action;
+
+typedef enum
+{
+  ECORE_WL2_SEAT_CAPABILITIES_NONE = 0,
+  ECORE_WL2_SEAT_CAPABILITIES_POINTER = 1,
+  ECORE_WL2_SEAT_CAPABILITIES_KEYBOARD = 2,
+  ECORE_WL2_SEAT_CAPABILITIES_TOUCH = 4
+} Ecore_Wl2_Seat_Capabilities;
+
+struct _Ecore_Wl2_Event_Connection
+{
+   Ecore_Wl2_Display *display;
+};
+
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Connect;
+typedef struct _Ecore_Wl2_Event_Connection Ecore_Wl2_Event_Disconnect;
+
+typedef struct _Ecore_Wl2_Global
+{
+   Eina_Stringshare *interface;
+   unsigned int id, version;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Global;
+
+typedef struct _Ecore_Wl2_Event_Global
+{
+   Ecore_Wl2_Display *display;
+   Eina_Stringshare *interface;
+   unsigned int id, version;
+} Ecore_Wl2_Event_Global;
+
+typedef struct _Ecore_Wl2_Event_Focus_In
+{
+   unsigned int window;
+   unsigned int timestamp;
+   Eo *dev; //The seat device
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Focus_In;
+
+typedef struct _Ecore_Wl2_Event_Focus_Out
+{
+   unsigned int window;
+   unsigned int timestamp;
+   Eo *dev; //The seat device
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Focus_Out;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Enter
+{
+   unsigned int win, source;
+   Ecore_Wl2_Offer *offer;
+   int x, y;
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Enter;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Leave
+{
+   unsigned int win, source;
+   Ecore_Wl2_Offer *offer;
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Leave;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Motion
+{
+   unsigned int win, source;
+   Ecore_Wl2_Offer *offer;
+   int x, y;
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Motion;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Drop
+{
+   unsigned int win, source;
+   int x, y;
+   Ecore_Wl2_Offer *offer;
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_Drop;
+
+typedef struct _Ecore_Wl2_Event_Dnd_End
+{
+   unsigned int win, source;
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Dnd_End;
+
+struct _Ecore_Wl2_Event_Data_Source_Event
+{
+   unsigned int win, source;
+   Ecore_Wl2_Drag_Action action;
+   unsigned int seat;
+   uint32_t serial;
+   Ecore_Wl2_Display *display;
+};
+
+typedef struct Ecore_Wl2_Event_Data_Source_End
+{
+   unsigned int win, source;
+   Ecore_Wl2_Drag_Action action;
+   unsigned int seat;
+   uint32_t serial;
+   Ecore_Wl2_Display *display;
+   Eina_Bool cancelled;
+} Ecore_Wl2_Event_Data_Source_End;
+typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Drop;
+typedef struct _Ecore_Wl2_Event_Data_Source_Event Ecore_Wl2_Event_Data_Source_Action;
+
+typedef struct _Ecore_Wl2_Event_Data_Source_Target
+{
+   char *type;
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Data_Source_Target;
+
+typedef struct _Ecore_Wl2_Event_Data_Source_Send
+{
+   char *type;
+   int fd;
+   unsigned int seat;
+   uint32_t serial;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Data_Source_Send;
+
+typedef struct Ecore_Wl2_Event_Seat_Selection
+{
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Selection;
+
+typedef struct _Ecore_Wl2_Event_Seat_Name
+{
+   Eina_Stringshare *name;
+   unsigned int id;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Name;
+
+typedef struct _Ecore_Wl2_Event_Seat_Capabilities
+{
+   unsigned int id;
+   Eina_Bool pointer_enabled : 1;
+   Eina_Bool keyboard_enabled : 1;
+   Eina_Bool touch_enabled : 1;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Capabilities;
+
+typedef enum
+{
+   ECORE_WL2_DEVICE_TYPE_SEAT,
+   ECORE_WL2_DEVICE_TYPE_POINTER,
+   ECORE_WL2_DEVICE_TYPE_KEYBOARD,
+   ECORE_WL2_DEVICE_TYPE_TOUCH
+} Ecore_Wl2_Device_Type;
+
+typedef struct _Ecore_Wl2_Event_Device
+{
+   Eo *dev;
+   int window_id;
+   unsigned int seat_id;
+   Ecore_Wl2_Device_Type type;
+} Ecore_Wl2_Event_Device;
+
+typedef enum
+{
+   ECORE_WL2_SELECTION_CNP,
+   ECORE_WL2_SELECTION_DND
+} Ecore_Wl2_Selection_Type;
+
+typedef enum
+{
+   ECORE_WL2_WINDOW_STATE_NONE = 0,
+   ECORE_WL2_WINDOW_STATE_FULLSCREEN = (1 << 0),
+   ECORE_WL2_WINDOW_STATE_MAXIMIZED = (1 << 1),
+} Ecore_Wl2_Window_States;
+
+typedef struct _Ecore_Wl2_Event_Window_Configure
+{
+   unsigned int win, event_win, edges;
+// TIZEN_ONLY
+   int x, y;
+//
+   unsigned int w, h;
+   unsigned int states;
+} Ecore_Wl2_Event_Window_Configure;
+
+typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
+{
+   unsigned int win;
+} Ecore_Wl2_Event_Window_Configure_Complete;
+
+typedef struct _Ecore_Wl2_Event_Input_Keymap_Changed
+{
+   unsigned int id;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Keymap_Changed;
+
+typedef struct Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed
+{
+   unsigned int id;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Seat_Keyboard_Repeat_Changed;
+
+typedef struct _Ecore_Wl2_Event_Sync_Done
+{
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Sync_Done;
+
+typedef struct _Ecore_Wl2_Event_Offer_Data_Ready
+{
+   Ecore_Wl2_Offer *offer;
+   char *data;
+   int len;
+   const char *mimetype;
+   unsigned int seat;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Offer_Data_Ready;
+
+typedef struct _Ecore_Wl2_Event_Output_Transform
+{
+   Ecore_Wl2_Output *output;
+   int transform, old_transform;
+} Ecore_Wl2_Event_Output_Transform;
+
+typedef struct _Ecore_Wl2_Event_Window_Rotation
+{
+   unsigned int win;
+   int rotation, w, h, angle;
+   Eina_Bool resize : 1;
+} Ecore_Wl2_Event_Window_Rotation;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Request;
+typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_Change_Done;
+
+typedef struct _Ecore_Wl2_Event_Window_Show
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+   // TIZEN_ONLY
+   unsigned int data[4];
+   //
+} Ecore_Wl2_Event_Window_Show;
+
+typedef struct _Ecore_Wl2_Event_Window_Hide
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+} Ecore_Wl2_Event_Window_Hide;
+
+typedef struct _Ecore_Wl2_Event_Window_Activate
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+} Ecore_Wl2_Event_Window_Activate;
+
+typedef struct _Ecore_Wl2_Event_Window_Deactivate
+{
+   unsigned int win;
+   unsigned int parent_win;
+   unsigned int event_win;
+} Ecore_Wl2_Event_Window_Deactivate;
+
+typedef struct _Ecore_Wl2_Event_Window_Iconify_State_Change
+{
+   unsigned int win;
+   unsigned int iconified;
+   unsigned int force;
+} Ecore_Wl2_Event_Window_Iconify_State_Change;
+
+typedef enum _Ecore_Wl2_Window_Type
+{
+   ECORE_WL2_WINDOW_TYPE_NONE,
+   ECORE_WL2_WINDOW_TYPE_TOPLEVEL,
+   ECORE_WL2_WINDOW_TYPE_MENU,
+   ECORE_WL2_WINDOW_TYPE_DND,
+   ECORE_WL2_WINDOW_TYPE_CUSTOM,
+   ECORE_WL2_WINDOW_TYPE_NOTIFICATION, /** @since 1.20 */
+   ECORE_WL2_WINDOW_TYPE_UTILITY, /** @since 1.20 */
+   ECORE_WL2_WINDOW_TYPE_DIALOG, /** @since 1.20 */
+   ECORE_WL2_WINDOW_TYPE_DOCK, /** @since 1.20 */
+   ECORE_WL2_WINDOW_TYPE_SPLASH, /** @since 1.20 */
+   ECORE_WL2_WINDOW_TYPE_LAST
+} Ecore_Wl2_Window_Type;
+
+// TIZEN_ONLY(20171107): added wl enumerations from ecore_wayland to ecore_wl2
+typedef enum _Ecore_Wl2_Window_Visibility_Type
+{
+   ECORE_WL2_WINDOW_VISIBILITY_TYPE_UNKNOWN = 0,
+   ECORE_WL2_WINDOW_VISIBILITY_TYPE_UNOBSCURED = 1,
+   ECORE_WL2_WINDOW_VISIBILITY_TYPE_PARTIALLY_OBSCURED = 2,
+   ECORE_WL2_WINDOW_VISIBILITY_TYPE_FULLY_OBSCURED = 3,
+   ECORE_WL2_WINDOW_VISIBILITY_TYPE_PRE_UNOBSCURED = 4,
+} Ecore_Wl2_Window_Visibility_Type;
+
+typedef enum _Ecore_Wl2_Window_Stack_Mode
+{
+   ECORE_WL2_WINDOW_STACK_NONE  = 0,
+   ECORE_WL2_WINDOW_STACK_ABOVE = 1,
+   ECORE_WL2_WINDOW_STACK_BELOW = 2,
+} Ecore_Wl2_Window_Stack_Mode;
+
+typedef enum _Ecore_Wl2_Conformant_Part_Type
+{
+   ECORE_WL2_INDICATOR_PART = 0,
+   ECORE_WL2_KEYBOARD_PART = 1,
+   ECORE_WL2_CLIPBOARD_PART = 2
+} Ecore_Wl2_Conformant_Part_Type;
+
+typedef enum _Ecore_Wl2_Virtual_Keyboard_State
+{
+   ECORE_WL2_VIRTUAL_KEYBOARD_STATE_UNKNOWN = 0,
+   ECORE_WL2_VIRTUAL_KEYBOARD_STATE_OFF,
+   ECORE_WL2_VIRTUAL_KEYBOARD_STATE_ON,
+} Ecore_Wl2_Virtual_Keyboard_State;
+
+typedef enum _Ecore_Wl2_Indicator_State
+{
+   ECORE_WL2_INDICATOR_STATE_UNKNOWN = 0,
+   ECORE_WL2_INDICATOR_STATE_OFF,
+   ECORE_WL2_INDICATOR_STATE_ON
+} Ecore_Wl2_Indicator_State;
+
+typedef enum _Ecore_Wl2_Indicator_Opacity_Mode
+{
+   ECORE_WL2_INDICATOR_OPACITY_UNKNOWN = 0,
+   ECORE_WL2_INDICATOR_OPAQUE,
+   ECORE_WL2_INDICATOR_TRANSLUCENT,
+   ECORE_WL2_INDICATOR_TRANSPARENT,
+   ECORE_WL2_INDICATOR_BG_TRANSPARENT,
+} Ecore_Wl2_Indicator_Opacity_Mode;
+
+typedef enum _Ecore_Wl2_Indicator_Visible_Type
+{
+   ECORE_WL2_INDICATOR_VISIBLE_TYPE_HIDDEN = 0,
+   ECORE_WL2_INDICATOR_VISIBLE_TYPE_SHOWN,
+} Ecore_Wl2_Indicator_Visible_Type;
+
+typedef enum _Ecore_Wl2_Clipboard_State
+{
+   ECORE_WL2_CLIPBOARD_STATE_UNKNOWN = 0,
+   ECORE_WL2_CLIPBOARD_STATE_OFF,
+   ECORE_WL2_CLIPBOARD_STATE_ON
+} Ecore_Wl2_Clipboard_State;
+//
+
+typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
+{
+   unsigned int win;
+   int id;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Aux_Hint_Allowed;
+
+typedef struct _Ecore_Wl2_Event_Aux_Hint_Supported
+{
+   unsigned int win;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Aux_Hint_Supported;
+
+typedef struct Ecore_Wl2_Event_Aux_Message
+{
+   unsigned int win;
+   Eina_Stringshare *key;
+   Eina_Stringshare *val;
+   Eina_List *options;
+   Ecore_Wl2_Display *display;
+} Ecore_Wl2_Event_Aux_Message;
+
+typedef struct _Ecore_Wl2_Buffer Ecore_Wl2_Buffer;
+
+typedef enum _Ecore_Wl2_Buffer_Type
+{
+   ECORE_WL2_BUFFER_NONE = 0,
+   ECORE_WL2_BUFFER_SHM = 1,
+   ECORE_WL2_BUFFER_DMABUF = 2
+} Ecore_Wl2_Buffer_Type;
+
+// TIZEN_ONLY(20171107): added wl evet structures from ecore_wayland to ecore_wl2
+typedef struct _Ecore_Wl2_Event_Window_Visibility_Change
+{
+   unsigned int win;
+   int          fully_obscured;
+} Ecore_Wl2_Event_Window_Visibility_Change;
+
+typedef struct _Ecore_Wl2_Event_Window_Pre_Visibility_Change
+{
+   unsigned int win;
+   Ecore_Wl2_Window_Visibility_Type type;
+   unsigned int option;
+} Ecore_Wl2_Event_Window_Pre_Visibility_Change;
+
+typedef struct _Ecore_Wl2_Event_Window_Lower
+{
+   unsigned int win;
+   unsigned int timestamp;
+} Ecore_Wl2_Event_Window_Lower;
+
+typedef struct _Ecore_Wl2_Event_Dnd_Position
+{
+   unsigned int win, source;
+   struct
+     {
+        int x, y;
+     } position;
+} Ecore_Wl2_Event_Dnd_Position;
+
+typedef struct _Ecore_Wl2_Event_Data_Source_Cancelled
+{
+   unsigned int win, source;
+} Ecore_Wl2_Event_Data_Source_Cancelled;
+
+typedef struct _Ecore_Wl2_Event_Selection_Data_Ready
+{
+   char *data;
+   int len;
+   Eina_Bool done;
+   char **types;
+   int num_types;
+   Ecore_Wl2_Selection_Type sel_type;
+} Ecore_Wl2_Event_Selection_Data_Ready;
+
+typedef struct _Ecore_Wl2_Event_Conformant_Change
+{
+   unsigned int win;
+   Ecore_Wl2_Conformant_Part_Type part_type;
+   Eina_Bool state;
+} Ecore_Wl2_Event_Conformant_Change;
+
+typedef struct _Ecore_Wl2_Event_Effect
+{
+   int win;
+   unsigned int type;
+} Ecore_Wl2_Event_Effect;
+typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_Start;
+typedef struct _Ecore_Wl2_Event_Effect Ecore_Wl2_Event_Effect_End;
+
+typedef struct _Ecore_Wl2_Event_Ignore_Output_Transform
+{
+   Ecore_Wl2_Window *win;
+   Eina_Bool ignore;
+} Ecore_Wl2_Event_Ignore_Output_Transform;
+
+typedef struct _Ecore_Wl2_Event_Indicator_Flick
+{
+   unsigned int win;
+   int type;
+} Ecore_Wl2_Event_Indicator_Flick;
+
+typedef struct _Ecore_Wl2_Event_Clipboard_Data_Selected
+{
+   unsigned int win;
+} Ecore_Wl2_Event_Clipboard_Data_Selected;
+//
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+//this enum for keyrouter and client window side
+//keycode (8~255)
+typedef enum _Ecore_Wl2_Window_Keygrab_Mode
+{
+   ECORE_WL2_WINDOW_KEYGRAB_UNKNOWN = 0, /**< Unknown keygrab mode */
+   ECORE_WL2_WINDOW_KEYGRAB_SHARED = 1, /**< Getting the grabbed-key together with the other client windows */
+   ECORE_WL2_WINDOW_KEYGRAB_TOPMOST = 2, /**< Getting the grabbed-key only when window is top of the stack */
+   ECORE_WL2_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE = 3, /**< Getting the grabbed-key exclusively regardless of window's position. Being overrided the grab by the other client window  */
+   ECORE_WL2_WINDOW_KEYGRAB_EXCLUSIVE = 4 /**< Getting the grabbed-key exclusively regardless of window's position */
+} Ecore_Wl2_Window_Keygrab_Mode;
+
+typedef struct _Ecore_Wl2_Keygrab_Info
+{
+   int key;
+   int mode;
+   int err;
+} Ecore_Wl2_Keygrab_Info;
+
+typedef struct _Ecore_Wl2_Keyungrab_Info
+{
+   int key;
+   int err;
+} Ecore_Wl2_Keyungrab_Info;
+
+typedef struct _Ecore_Wl2_Window_Keygrab_Info
+{
+   char *key;
+   Ecore_Wl2_Window_Keygrab_Mode mode;
+} Ecore_Wl2_Window_Keygrab_Info;
+//
+
+// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+typedef struct _Ecore_Wl2_Event_Tizen_Device_Info
+{
+   Ecore_Wl2_Display *display;
+   const char *name;
+   const char *identifier;
+   const char *seatname;
+   Efl_Input_Device_Type clas;
+   Efl_Input_Device_Subtype subclas;
+} Ecore_Wl2_Event_Tizen_Device_Info;
+
+typedef struct _Ecore_Wl2_Event_Tizen_Input_Device_Info
+{
+   Eo *dev;
+   const char *name;
+   const char *identifier;
+   int window_id;
+} Ecore_Wl2_Event_Tizen_Input_Device_Info;
+//
+
+typedef void (*Ecore_Wl2_Bind_Cb)(struct wl_client *client, void *data, uint32_t version, uint32_t id);
+typedef void (*Ecore_Wl2_Unbind_Cb)(struct wl_resource *resource);
+typedef void (*Ecore_Wl2_Frame_Cb)(Ecore_Wl2_Window *win, uint32_t timestamp, void *data);
+typedef struct _Ecore_Wl2_Frame_Cb_Handle Ecore_Wl2_Frame_Cb_Handle;
+
+EAPI extern int ECORE_WL2_EVENT_DISCONNECT; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_CONNECT; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_GLOBAL_ADDED; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_GLOBAL_REMOVED; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_FOCUS_IN; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_FOCUS_OUT; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_ENTER; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_LEAVE; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_MOTION; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_DROP; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DND_END; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_END; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_DROP; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_ACTION; /** @since 1.18 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_TARGET; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_SEND; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_CONFIGURE; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_SYNC_DONE; /** @since 1.17 */
+EAPI extern int ECORE_WL2_EVENT_OFFER_DATA_READY; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_NAME_CHANGED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_CAPABILITIES_CHANGED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_DEVICE_ADDED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_DEVICE_REMOVED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_KEYMAP_CHANGED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_KEYBOARD_REPEAT_CHANGED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_SEAT_SELECTION; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_OUTPUT_TRANSFORM; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_PREPARE_DONE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_REQUEST; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ROTATION_CHANGE_DONE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_AUX_HINT_ALLOWED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_AUX_HINT_SUPPORTED; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_AUX_MESSAGE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_SHOW; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_HIDE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ACTIVATE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_DEACTIVATE; /** @since 1.20 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_ICONIFY_STATE_CHANGE; /** @since 1.21 */
+// TIZEN_ONLY(20171107): added wl events from ecore_wayland to ecore_wl2
+EAPI extern int ECORE_WL2_EVENT_WINDOW_VISIBILITY_CHANGE;
+EAPI extern int ECORE_WL2_EVENT_WINDOW_PRE_VISIBILITY_CHANGE;
+EAPI extern int ECORE_WL2_EVENT_WINDOW_LOWER;
+EAPI extern int ECORE_WL2_EVENT_DND_POSITION;
+EAPI extern int ECORE_WL2_EVENT_DND_OFFER; /* @since 1.8, but NOT exist currenly */
+EAPI extern int ECORE_WL2_EVENT_DATA_SOURCE_CANCELLED; /* @since 1.7, but NOT exist currenly */
+EAPI extern int ECORE_WL2_EVENT_SELECTION_DATA_READY; /* @since 1.7, but NOT exist currenly */
+EAPI extern int ECORE_WL2_EVENT_CONFORMANT_CHANGE;
+EAPI extern int ECORE_WL2_EVENT_EFFECT_START;
+EAPI extern int ECORE_WL2_EVENT_EFFECT_END;
+EAPI extern int ECORE_WL2_EVENT_IGNORE_OUTPUT_TRANSFORM;
+EAPI extern int ECORE_WL2_EVENT_INDICATOR_FLICK;
+EAPI extern int ECORE_WL2_EVENT_CLIPBOARD_DATA_SELECTED;
+//
+// TIZEN_ONLY(20171109): support a tizen_input_device_manager interface
+EAPI extern int ECORE_WL2_EVENT_TIZEN_DEVICE_ADD;
+EAPI extern int ECORE_WL2_EVENT_TIZEN_DEVICE_DEL;
+EAPI extern int ECORE_WL2_EVENT_TIZEN_INPUT_DEVICE_ADDED;
+EAPI extern int ECORE_WL2_EVENT_TIZEN_INPUT_DEVICE_REMOVED;
+//
+
+/**
+ * @file
+ * @brief Ecore functions for dealing with the Wayland display protocol
+ *
+ * @defgroup Ecore_Wl2_Group Ecore_Wl2 - Wayland integration
+ * @ingroup Ecore
+ *
+ * Ecore_Wl2 provides a wrapper and convenience functions for using the
+ * Wayland protocol in implementing a window system. Function groups for
+ * this part of the library include the following:
+ *
+ * @li @ref Ecore_Wl2_Init_Group
+ * @li @ref Ecore_Wl2_Display_Group
+ * @li @ref Ecore_Wl2_Window_Group
+ * @li @ref Ecore_Wl2_Output_Group
+ * @li @ref Ecore_Wl2_Dnd_Group
+ * @li @ref Ecore_Wl2_Input_Group
+ * @li @ref Ecore_Wl2_Subsurface_Group
+ */
+
+/**
+ * @defgroup Ecore_Wl2_Init_Group Wayland Library Init and Shutdown Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that start and shutdown the Ecore Wl2 Library.
+ */
+
+/**
+ * Initialize the Ecore_Wl2 library
+ *
+ * @return  The number of times the library has been initialized without being
+ *          shutdown. 0 is returned if an error occurs.
+ *
+ * @ingroup Ecore_Wl2_Init_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_init(void);
+
+/**
+ * Shutdown the Ecore_Wl2 Library
+ *
+ * @return  The number of times the library has been initialized without
+ *          being shutdown.
+ *
+ * @ingroup Ecore_Wl2_Init_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_shutdown(void);
+
+/**
+ * @defgroup Ecore_Wl2_Display_Group Wayland Library Display Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, connecting, or interacting with
+ * Wayland displays
+ */
+
+/**
+ * Create a new Wayland display
+ *
+ * @brief This function is typically used to create a new display for
+ * use with compositors, or to create a new display for use in nested
+ * compositors.
+ *
+ * @param name The display target name to create. If @c NULL, a default
+ *             display name will be assigned.
+ * @return The newly created Ecore_Wl2_Display
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_display_create(const char *name);
+
+/**
+ * Destroy an existing Wayland display
+ *
+ * @brief This function is typically used by servers to terminate an
+ * existing Wayland display.
+ *
+ * @param display The display to terminate
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_destroy(Ecore_Wl2_Display *display);
+
+/**
+ * Connect to an existing Wayland display
+ *
+ * @brief This function is typically used by clients to connect to an
+ * existing Wayland display.
+ *
+ * @param name The display target name to connect to. If @c NULL, the default
+ *             display is assumed.
+ *
+ * @return The Ecore_Wl2_Display which was connected to
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_display_connect(const char *name);
+
+/**
+ * Disconnect an existing Wayland display
+ *
+ * @brief This function is typically used by clients to disconnect from an
+ * existing Wayland display.
+ *
+ * @param display The display to disconnect from
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_disconnect(Ecore_Wl2_Display *display);
+
+/**
+ * Terminate a Wayland display's main loop
+ *
+ * @brief This function is typically used by servers to terminate the
+ * Wayland display main loop. This is usually only called when a server
+ * encounters an error.
+ *
+ * @param display The Ecore_Wl2_Display to terminate
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_terminate(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieve the existing Wayland display
+ *
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ *                Wayland display from
+ *
+ * @return The wl_display which this Ecore_Wl2_Display is using
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI struct wl_display *ecore_wl2_display_get(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieve the wl_shm from a given Ecore_Wl2_Display
+ *
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ *                Wayland shm interface from
+ *
+ * @return The wl_shm which this Ecore_Wl2_Display is using
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI struct wl_shm *ecore_wl2_display_shm_get(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieve the wl_dmabuf from a given Ecore_Wl2_Display
+ *
+ *
+ * @param display The Ecore_Wl2_Display for which to retrieve the existing
+ *                Wayland dmabuf interface from
+ *
+ *
+ * @return The wl_dmabuf which this Ecore_Wl2_Display is using
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ *
+ * @note This is intended for client use only and should be used only
+ *       after ecore_wl2_display_connect().  Also, the return type is
+ *       void * instead of zpw_linux_dmabuf_v1 * since we don't want
+ *       to change our public API every time the version changes in
+ *       wayland-protocols.
+ *
+ * @since 1.18
+ */
+EAPI void *ecore_wl2_display_dmabuf_get(Ecore_Wl2_Display *display);
+
+/**
+ * Return an Eina_Iterator that can be used to iterate through globals
+ *
+ * @param display The Ecore_Wl2_Display for which to return a global iterator
+ *
+ * @note The caller of this function should free the returned Eina_Iterator
+ * when finished with it.
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Eina_Iterator *ecore_wl2_display_globals_get(Ecore_Wl2_Display *display);
+
+/**
+ * Retrieves the size of the current screen.
+ *
+ * @param display The display to get the screen size of
+ * @param w where to return the width. May be NULL. Returns 0 on error.
+ * @param h where to return the height. May be NULL. Returns 0 on error.
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h);
+
+/**
+ * Get all the Ecore_Wl2_Input from the display.
+ * @param display The display
+ * @return A Eina_Iterator of Ecore_Wl2_Input or @c NULL on error
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.19
+ */
+EAPI Eina_Iterator *ecore_wl2_display_inputs_get(Ecore_Wl2_Display *display);
+
+/**
+ * Find a seat for a given display object using the seat id
+ * @param display The display
+ * @param id The seat id
+ * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find(const Ecore_Wl2_Display *display, unsigned int id);
+
+/**
+ * Find a seat for a given display object using the seat id
+ * @param display The display
+ * @param name The seat name
+ * @return The corresponding Ecore_Wl2_Input object or @c NULL if no match is found
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Display *display, const char *name);
+
+/**
+ * Find an Ecore_Wl2_Window based on id
+ *
+ * @param display The display to search for the window
+ * @param id The id of the window to find
+ *
+ * @return The Ecore_Wl2_Window if found, or NULL if no such window exists
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
+
+// TIZEN_ONLY(20171110)
+EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find_by_surface(Ecore_Wl2_Display *display, struct wl_surface *surface);
+//
+
+/**
+ * Retrieves the Wayland Registry used for the current Wayland display.
+ *
+ * @param display The display to get the registry of
+ *
+ * @return The current wayland registry, or NULL on error
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI struct wl_registry *ecore_wl2_display_registry_get(Ecore_Wl2_Display *display);
+
+/**
+ * Check if the display has performed a sync
+ *
+ * @param display The display
+ *
+ * @return True if the display sync has occurred
+ * @see ECORE_WL2_EVENT_SYNC_DONE
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_display_sync_is_done(const Ecore_Wl2_Display *display);
+
+/**
+ * Get the name of the display object
+ *
+ * @param display The display
+ *
+ * @return The name of the display object
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.20
+ */
+EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display);
+
+/**
+ * @defgroup Ecore_Wl2_Window_Group Wayland Library Window Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland windows
+ */
+
+/**
+ * Create a new Ecore_Wl2_Window
+ *
+ * @param display The Ecore_Wl2_Display on which to create this new window
+ * @param parent The Ecore_Wl2_Window which is the parent of this window
+ * @param x Initial x position of window
+ * @param y Initial y position of window
+ * @param w Initial width of window
+ * @param h Initial height of window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Window *ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h);
+
+/**
+ * Get the window id associated with an Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window of which to retrieve the window id
+ *
+ * @return The id associated with this window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_window_id_get(Ecore_Wl2_Window *window);
+
+/**
+ * Get the wl_surface which belongs to this window
+ *
+ * @param window The Ecore_Wl2_Window to get the surface of
+ *
+ * @return The wl_surface associated with this window.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI struct wl_surface *ecore_wl2_window_surface_get(Ecore_Wl2_Window *window);
+
+/**
+ * Get the id of a given Ecore_Wl2_Window
+ *
+ * @param window The window to return the id of
+ *
+ * @return The id of the given window, or -1 on failure
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_window_surface_id_get(Ecore_Wl2_Window *window);
+
+/**
+ * @see evas_object_size_hint_aspect_set
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_aspect_set(Ecore_Wl2_Window *window, int w, int h, unsigned int aspect);
+
+/**
+ * Show a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window to show
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_show(Ecore_Wl2_Window *window);
+
+/**
+ * Hide a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window to hide
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_hide(Ecore_Wl2_Window *window);
+
+/**
+ * Free a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window to free
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_free(Ecore_Wl2_Window *window);
+
+/**
+ * @brief Begin moving a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window which to move
+ * @param input The seat on which the move is active on
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_move(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
+
+/**
+ * @brief Begin resizing a given window
+ *
+ * @param window The Ecore_Wl2_Window which to resize
+ * @param input The seat on which the resize is active
+ * @param location The edge of the window from which the resize should start
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_resize(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input, int location);
+
+/**
+ * Raise a given Ecore_Wl2_Window
+ *
+ * @param window The Ecore_Wl2_Window which to raise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_raise(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171108): tizen window function
+EAPI Ecore_Wl2_Window *ecore_wl2_window_surface_find(struct wl_surface *surface);
+EAPI void ecore_wl2_window_lower(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_activate(Ecore_Wl2_Window *window);
+EAPI void ecore_wl2_window_parent_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window *parent);
+EAPI void ecore_wl2_window_stack_mode_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Stack_Mode mode);
+EAPI void ecore_wl2_window_position_set(Ecore_Wl2_Window *window, int x, int y);
+EAPI int ecore_wl2_window_active_angle_get(Ecore_Wl2_Window *window);
+//
+
+//TIZEN_ONLY(20171216): add ecore_wl2_window_find
+EAPI Ecore_Wl2_Window *ecore_wl2_window_find(unsigned int id);
+//
+
+/**
+ * Get if a given window is alpha
+ *
+ * @param window The window to get if is alpha
+ *
+ * @return EINA_TRUE if window is alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_alpha_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set a given window's alpha property
+ *
+ * @param window The window on which to set the alpha property
+ * @param alpha EINA_TRUE to set window as alpha, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_alpha_set(Ecore_Wl2_Window *window, Eina_Bool alpha);
+
+/**
+ * Set a given window's transparent property
+ *
+ * @param window The window on which to set the transparent property
+ * @param transparent EINA_TRUE to set window as transparent,
+ *                    EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_transparent_set(Ecore_Wl2_Window *window, Eina_Bool transparent);
+
+// TIZEN_ONLY(20171108) : Get a window's transparent property
+EAPI Eina_Bool ecore_wl2_window_transparent_get(Ecore_Wl2_Window *window);
+//
+
+/**
+ * Set the opaque region of the Ecore_Wl2_Window
+ *
+ * @param win The window
+ * @param x The left point of the region.
+ * @param y The top point of the region.
+ * @param w The width of the region.
+ * @param h The height of the region.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_opaque_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
+
+// TIZEN_ONLY(20160201) : support to handle input rectangle
+EAPI void ecore_wl2_window_input_rect_set(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+EAPI void ecore_wl2_window_input_rect_add(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+EAPI void ecore_wl2_window_input_rect_subtract(Ecore_Wl2_Window *win, Eina_Rectangle *input_rect);
+//
+
+/**
+ * Set the input region of the Ecore_Wl2_Window.
+ *
+ * To set an empty region, pass width and height as 0.
+ *
+ * An empty input region means the entire window surface will accept input.
+ *
+ * @param window The window to set the input region of
+ * @param x The left point of the region.
+ * @param y The top point of the region.
+ * @param w The width of the region.
+ * @param h The height of the region.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_input_region_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
+
+/**
+ * Get if a given window is maximized
+ *
+ * @param window The window to get the maximized state of
+ *
+ * @return EINA_TRUE if window is maximized, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_maximized_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the maximized state of a given window
+ *
+ * @param window The window to set the maximized state of
+ * @param maximized EINA_TRUE to set maximized, EINA_FALSE to unset
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_maximized_set(Ecore_Wl2_Window *window, Eina_Bool maximized);
+
+/**
+ * Get if a given window is fullscreen
+ *
+ * @param window The window to get the fullscreen state of
+ *
+ * @return EINA_TRUE if window is fullscreen, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_fullscreen_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the fullscreen state of a given window
+ *
+ * @param window The window to set the fullscreen state of
+ * @param maximized EINA_TRUE to set fullscreen, EINA_FALSE to unset
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_fullscreen_set(Ecore_Wl2_Window *window, Eina_Bool fullscreen);
+
+/**
+ * Get if a given window is rotated
+ *
+ * @param window The window to get the rotation of
+ *
+ * @return The amount of rotation for this window, or -1 on failure
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_window_rotation_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the rotation of a given window
+ *
+ * @param window The window to set the rotation of
+ * @param rotation The amount of rotation
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_rotation_set(Ecore_Wl2_Window *window, int rotation);
+
+/**
+ * Set the title of a given window
+ *
+ * @param window The window to set the title of
+ * @param title The title of the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_title_set(Ecore_Wl2_Window *window, const char *title);
+
+/**
+ * Set the class of a given window
+ *
+ * @param window The window to set the class of
+ * @param clas The class of the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_class_set(Ecore_Wl2_Window *window, const char *clas);
+
+/**
+ * Get the geometry of a given window
+ *
+ * @brief The window geometry returned here is the window geometry as
+ * recognized by xdg_surface_set_window_geometry. As such, it represents the
+ * "visible bounds" of a window from the user's perspective.
+ *
+ * @param window The window to get the geometry of
+ * @param x The left point of the window geometry
+ * @param y The top point of the window geometry
+ * @param w The width of the window geometry
+ * @param h The height of the window geometry
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_geometry_get(Ecore_Wl2_Window *window, int *x, int *y, int *w, int *h);
+
+/**
+ * Set the geometry of a given window
+ *
+ * @brief The window geometry referenced here is the window geometry as
+ * recognized by xdg_surface_set_window_geometry. As such, it represents the
+ * "visible bounds" of a window from the user's perspective.
+ *
+ * @param window The window to set the geometry of
+ * @param x The left point of the window geometry
+ * @param y The top point of the window geometry
+ * @param w The width of the window geometry
+ * @param h The height of the window geometry
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_geometry_set(Ecore_Wl2_Window *window, int x, int y, int w, int h);
+
+/**
+ * Get the iconified state of a given window
+ *
+ * @param window The window to get the iconified state of
+ *
+ * @return EINA_TRUE if window is iconified, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI Eina_Bool ecore_wl2_window_iconified_get(Ecore_Wl2_Window *window);
+
+/**
+ * Iconify a window
+ *
+ * @param win The window to iconifiy
+ * @param iconified The new iconified state to set
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_iconified_set(Ecore_Wl2_Window *window, Eina_Bool iconified);
+
+// TIZEN_ONLY(20151231) : handling iconic state on tizen
+EAPI void ecore_wl2_window_iconify_state_update(Ecore_Wl2_Window *window, Eina_Bool iconified, Eina_Bool send_event);
+//
+
+/**
+ * Set the type of a given window
+ *
+ * @param window The window to set the type of
+ * @type The Ecore_Wl2_Window_Type to set on the window
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_window_type_set(Ecore_Wl2_Window *window, Ecore_Wl2_Window_Type type);
+
+// TIZEN_ONLY(20171108) : Get the type of a given window
+EAPI Ecore_Wl2_Window_Type ecore_wl2_window_type_get(Ecore_Wl2_Window *window);
+//
+
+/**
+ * Find the output that a given window is on
+ *
+ * @param window The window to find the output for
+ *
+ * @return An Ecore_Wl2_Output if found, or NULL otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Output *ecore_wl2_window_output_find(Ecore_Wl2_Window *window);
+
+/**
+ * Set a buffer transform on a given window
+ *
+ * @param window The window on which to set the buffer transform
+ * @param transform The buffer transform being requested
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_buffer_transform_set(Ecore_Wl2_Window *window, int transform);
+
+/**
+ * Set if window rotation is supported by the window manager
+ *
+ * @param window
+ * @param enabled
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_wm_rotation_supported_set(Ecore_Wl2_Window *window, Eina_Bool enabled);
+
+/**
+ * Get if window rotation is supported by the window manager
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if supported, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_wm_rotation_supported_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set if an application has set window rotation
+ *
+ * @param window
+ * @param set
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_rotation_app_set(Ecore_Wl2_Window *window, Eina_Bool set);
+
+/**
+ * Get if an application has set window rotation
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if set, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_rotation_app_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set preferred rotation on a given window
+ *
+ * @param window
+ * @param rot
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_preferred_rotation_set(Ecore_Wl2_Window *window, int rot);
+
+/**
+ * Get preferred rotation for a given window
+ *
+ * @param window
+ *
+ * @return Given windows preferred rotation
+ *
+ * @ingroup Ecore_Wl2_Window
+ * @since 1.20
+ */
+EAPI int ecore_wl2_window_preferred_rotation_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set a windows available rotations
+ *
+ * @param window
+ * @param rots
+ * @param count
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_available_rotations_set(Ecore_Wl2_Window *window, const int *rots, unsigned int count);
+
+/**
+ * Get a windows available rotations
+ *
+ * @param window
+ * @param rots
+ * @param count
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_available_rotations_get(Ecore_Wl2_Window *window, int **rots, unsigned int *count);
+
+EAPI void ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot, int w, int h, Eina_Bool resize);
+EAPI void ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int rot);
+EAPI void ecore_wl2_window_rotation_change_request_send(Ecore_Wl2_Window *window, int rot);
+EAPI void ecore_wl2_window_rotation_change_done_send(Ecore_Wl2_Window *window, int rot, int w, int h);
+
+// TIZEN_ONLY
+EAPI void ecore_wl2_window_rotation_geometry_set(Ecore_Wl2_Window *win, int rot, int x, int y, int w, int h);
+EAPI void ecore_wl2_window_rotation_changed_callback_set(Ecore_Wl2_Window *win, void *data, void (*func)(Ecore_Wl2_Window *win, int rot, Eina_Bool resize, int w, int h, void *data));
+//
+
+/**
+ * Get list of supported auxiliary window hints
+ *
+ * @param window
+ *
+ * @return An Eina_List of supported auxiliary hints, or NULL otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_List *ecore_wl2_window_aux_hints_supported_get(Ecore_Wl2_Window *window);
+
+/**
+ * Add a supported auxiliary hint to a given window
+ *
+ * @param window
+ * @param id
+ * @param hint
+ * @param val
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_aux_hint_add(Ecore_Wl2_Window *window, int id, const char *hint, const char *val);
+
+/**
+ * Change an auxiliary hint on a given window
+ *
+ * @param window
+ * @param id
+ * @param val
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_aux_hint_change(Ecore_Wl2_Window *window, int id, const char *val);
+
+/**
+ * Delete an auxiliary hint on a given window
+ *
+ * @param window
+ * @param id
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_aux_hint_del(Ecore_Wl2_Window *window, int id);
+
+/**
+ * @brief Get the activated state of a window
+ * @param window The window
+ * @return @c EINA_TRUE if activated
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_activated_get(const Ecore_Wl2_Window *window);
+
+/**
+ * @brief Set the seat for a popup window to be used with grab
+ * @param window The window
+ * @param input The seat
+ *
+ * Use this function for desktop shell requests involving popup grabs which require
+ * a seat for the grab.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_popup_input_set(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input);
+
+/**
+ * Check if a window has a shell surface - without one it can't be visible.
+ *
+ * @param The window to check
+ *
+ * @return Returns true if the window has an associated shell surface.
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.19
+ */
+EAPI Eina_Bool ecore_wl2_window_shell_surface_exists(Ecore_Wl2_Window *win);
+
+// TIZEN_ONLY(171108) : get shell surface of a given window
+EAPI struct zxdg_surface_v6 *ecore_wl2_window_shell_surface_get(Ecore_Wl2_Window *window);
+//
+
+/** @since 1.17 */
+EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *window);
+
+/**
+ * Set if this window should ignore focus requests
+ *
+ * @param window
+ * @param focus_skip
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_focus_skip_set(Ecore_Wl2_Window *window, Eina_Bool focus_skip);
+
+/**
+ * Get if this window ignores focus requests
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if a window should skip focus requests, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_focus_skip_get(Ecore_Wl2_Window *window);
+
+/**
+ * Set the role of a given window
+ *
+ * @param window
+ * @param role
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_role_set(Ecore_Wl2_Window *window, const char *role);
+
+/**
+ * Set if a given window is in floating mode
+ *
+ * @param window
+ * @param floating
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_window_floating_mode_set(Ecore_Wl2_Window *window, Eina_Bool floating);
+
+/**
+ * Get if a given window is in floating mode
+ *
+ * @param window
+ *
+ * @return EINA_TRUE if floating, EINA_FALSE otherwise
+ *
+ * @ingroup Ecore_Wl2_Window_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_window_floating_mode_get(Ecore_Wl2_Window *window);
+
+//TIZEN_ONLY: ecore_wl2: add ecore_wl_window_video_has
+EAPI void ecore_wl2_window_video_has(Ecore_Wl2_Window *window, Eina_Bool has);
+//
+
+/**
+ * @defgroup Ecore_Wl2_Input_Group Wayland Library Input Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Input
+ */
+
+/* TODO: doxy */
+/** @since 1.17 */
+EAPI void ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button);
+
+/* TODO: doxy */
+/** @since 1.17 */
+EAPI void ecore_wl2_input_ungrab(Ecore_Wl2_Input *input);
+
+/* TODO: doxy */
+/** @since 1.17 */
+EAPI struct wl_seat *ecore_wl2_input_seat_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the seat capabilities for a given input.
+ *
+ * @param input The input
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Seat_Capabilities ecore_wl2_input_seat_capabilities_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the wayland's seat id from an input.
+ * @param input The input
+ * @return The seat id
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.19
+ */
+EAPI unsigned int ecore_wl2_input_seat_id_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the display object of an input
+ * @param input The input
+ * @return The display
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Ecore_Wl2_Display *ecore_wl2_input_display_get(const Ecore_Wl2_Input *input);
+
+/**
+ * Get the xkb_keymap object of an input
+ * @param input The input
+ * @return The xkb_keymap object
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI struct xkb_keymap *ecore_wl2_input_keymap_get(const Ecore_Wl2_Input *input);
+
+/**
+ * Get the name of an input
+ * @param input The input
+ * @return The name
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eina_Stringshare *ecore_wl2_input_name_get(Ecore_Wl2_Input *input);
+
+/**
+ * Get the keyboard repeat rate and delay of an input
+ * @param input The input
+ * @param rate Pointer to store the repeat rate (in seconds)
+ * @param rate Pointer to store the repeat delay (in seconds)
+ * @return True if repeat is enabled
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_input_keyboard_repeat_get(const Ecore_Wl2_Input *input, double *rate, double *delay);
+
+/**
+ * Get the Evas_Device for the seat belonging to a window from an input
+ * @param input The input
+ * @param window The window
+ * @return The device object
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eo *ecore_wl2_input_seat_device_get(const Ecore_Wl2_Input *input, const Ecore_Wl2_Window *window);
+
+/**
+ * Retrieves the mouse position of the seat
+ *
+ * @param input The seat
+ * @param x where to return the horizontal position. May be NULL. Returns 0 on error.
+ * @param y where to return the vertical position. May be NULL. Returns 0 on error.
+ * @return @c EINA_TRUE if coords were successfully retrieved
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI Eina_Bool ecore_wl2_input_pointer_xy_get(const Ecore_Wl2_Input *input, int *x, int *y);
+
+/**
+ * Set a given wl_surface to use as the pointer on a seat
+ *
+ * @param input The seat to set this surface as the pointer on
+ * @param surface The surface to use as the pointer
+ * @param hot_x The x coordinate to use as the cursor hot spot
+ * @param hot_y The y coordinate to use as the cursor hot spot
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
+
+/**
+ * Set a specific cursor on a given seat
+ *
+ * @brief This function will try to find a matching cursor inside the existing
+ * cursor theme and set the pointer for the specified seat to be
+ * the specified cursor
+ *
+ * @param input The seat to set the cursor on
+ * @param cursor The name of the cursor to try and set
+ *
+ * @ingroup Ecore_Wl2_Input_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_input_cursor_from_name_set(Ecore_Wl2_Input *input, const char *cursor);
+
+// TIZEN_ONLY(20171207): add functions to set client's custom cursors
+EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface *surface, int hot_x, int hot_y);
+EAPI struct wl_cursor *ecore_wl2_input_cursor_get(Ecore_Wl2_Input *input, const char *cursor_name);
+EAPI void ecore_wl2_input_cursor_size_set(Ecore_Wl2_Input *input, const int size);
+EAPI void ecore_wl2_input_cursor_theme_name_set(Ecore_Wl2_Input *input, const char *cursor_theme_name);
+EAPI void ecore_wl2_input_cursor_default_restore(Ecore_Wl2_Input *input);
+
+EAPI void ecore_wl2_window_pointer_set(Ecore_Wl2_Window *win, struct wl_surface *surface, int hot_x, int hot_y);
+EAPI void ecore_wl2_window_cursor_from_name_set(Ecore_Wl2_Window *win, const char *cursor_name);
+EAPI void ecore_wl2_window_cursor_default_restore(Ecore_Wl2_Window *win);
+//
+
+
+/**
+ * @defgroup Ecore_Wl2_Dnd_Group Wayland Library Drag-n-Drop Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Drag-n-Drop
+ */
+
+/**
+ * Set the types which are supported by a possible drag and drop operation.
+ * This call initializes a data source and offeres the given mimetypes
+ *
+ * @param input the input where to add on the data source
+ *
+ * @param types a null-terminated array of mimetypes
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_dnd_drag_types_set(Ecore_Wl2_Input *input, const char **types);
+
+/**
+ * Start a drag on the given input
+ *
+ * @param input the input to use
+ *
+ * @param window the window which is the origin of the drag operation
+ *
+ * @param drag_window the window which is used as window of the visible hint.
+ * @return The serial for the start_drag request
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI uint32_t ecore_wl2_dnd_drag_start(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, Ecore_Wl2_Window *drag_window);
+
+/**
+ * Call wl_data_source.set_actions on an existing source
+ *
+ * @param input the input to use
+ *
+ * @see ecore_wl2_dnd_drag_start for a more useful function.
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI EAPI void ecore_wl2_dnd_set_actions(Ecore_Wl2_Input *input);
+
+/**
+ * End a drag started by a call to ecore_wl2_dnd_drag_start
+ *
+ * @param input the input object on which the drag was started
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input);
+
+/**
+ * Get the offer which is currently resposible for the clipboard
+ *
+ * @param input the input object to use
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Offer* ecore_wl2_dnd_selection_get(Ecore_Wl2_Input *input);
+
+/**
+ * Set the types which are available from this client
+ * Later the event ECORE_WL2_EVENT_DATA_SOURCE_SEND is emitted,
+ * where the caller of this api must write the data (encoded in the given mimetype) to the fd
+ *
+ * @param input the input to provice this types on
+ *
+ * @param types a null-terminated array of mimetypes supported by the client
+ *
+ * @return serial of request on sucess, 0 on failure
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI uint32_t ecore_wl2_dnd_selection_set(Ecore_Wl2_Input *input, const char **types);
+
+/**
+ * Clear the selection currently setted on this input.
+ *
+ * @param input the input to clear
+ *
+ * @return serial of request on sucess, 0 on failure
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.17
+ */
+EAPI uint32_t ecore_wl2_dnd_selection_clear(Ecore_Wl2_Input *input);
+
+// TIZEN_ONLY(20150703) : support conformant
+EAPI void ecore_wl2_window_conformant_set(Ecore_Wl2_Window *win, unsigned int is_conformant);
+EAPI Eina_Bool ecore_wl2_window_conformant_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for indicator
+EAPI void ecore_wl2_window_indicator_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_wl2_window_indicator_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+EAPI void ecore_wl2_window_indicator_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_State state);
+EAPI Ecore_Wl2_Indicator_State ecore_wl2_window_indicator_state_get(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_window_indicator_opacity_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Opacity_Mode mode);
+EAPI Ecore_Wl2_Indicator_Opacity_Mode ecore_wl2_window_indicator_opacity_get(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_indicator_visible_type_set(Ecore_Wl2_Window *win, Ecore_Wl2_Indicator_Visible_Type type);
+EAPI Ecore_Wl2_Indicator_Visible_Type ecore_wl2_indicator_visible_type_get(Ecore_Wl2_Window *win);
+//
+
+// TIZEN_ONLY(20171108) : add functions for clipboard
+EAPI void ecore_wl2_window_clipboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_wl2_window_clipboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+EAPI void ecore_wl2_window_clipboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Clipboard_State state);
+EAPI Ecore_Wl2_Clipboard_State ecore_wl2_window_clipboard_state_get(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_clipboard_show(Ecore_Wl2_Window *win);
+EAPI void ecore_wl2_clipboard_hide(Ecore_Wl2_Window *win);
+EAPI Eina_Bool ecore_wl2_clipboard_data_only_set(Eina_Bool data_only);
+//
+
+// TIZEN_ONLY(20171108) : add functions for keyboard
+EAPI void ecore_wl2_window_keyboard_geometry_set(Ecore_Wl2_Window *win, int x, int y, int w, int h);
+EAPI Eina_Bool ecore_wl2_window_keyboard_geometry_get(Ecore_Wl2_Window *win, int *x, int *y, int *w, int *h);
+EAPI void ecore_wl2_window_keyboard_state_set(Ecore_Wl2_Window *win, Ecore_Wl2_Virtual_Keyboard_State state);
+EAPI Ecore_Wl2_Virtual_Keyboard_State ecore_wl2_window_keyboard_state_get(Ecore_Wl2_Window *win);
+//
+
+/**
+ * @defgroup Ecore_Wl2_Subsurface_Group Functions to manipulate subsurfaces.
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions to manipulate wayland subsurfaces, using Ecore_Wl2_Subsurface.
+ *
+ * This API is intended to expose Wayland subsurface functionality, although it
+ * should not be necessary for most applications to use it, as soon as we have
+ * means to make Evas automatically switch Evas images to use subsurfaces.
+ *
+ * It can/should be used, for instance, when subsurfaces are needed to be not
+ * in sync with the main window surface.
+ */
+
+/**
+ * Create and return a new subsurface.
+ *
+ * Create a new surface (and subsurface interface), with the parent surface
+ * being the one associated with the given @param win.
+ *
+ * The @param win must be visible, otherwise there will be no surface created
+ * for it yet.
+ *
+ * @return the allocated and initialized Ecore_Wl2_Subsurface object, or
+ * NULL on failure
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI Ecore_Wl2_Subsurface *ecore_wl2_subsurface_new(Ecore_Wl2_Window *window);
+
+/**
+ * Destroy the given subsurface, as well as the surface associated with it.
+ *
+ * @param subsurface the subsurface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_del(Ecore_Wl2_Subsurface *subsurface);
+
+/**
+ * Get the wl_surface for this subsurface
+ *
+ * @param subsurface the subsurface
+ *
+ * @return the wl_surface associated with this subsurface, or NULL on failure
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI struct wl_surface *ecore_wl2_subsurface_surface_get(Ecore_Wl2_Subsurface *subsurface);
+
+/**
+ * Set the position of this subsurface, relative to its parent surface.
+ * If subsurface is defined and the x, y coordinates differ from the currently
+ * tracked position, this also schedules a sub-surface position change.
+ *
+ * @param subsurface the subsurface
+ * @param x coordinate in the parent surface
+ * @param y coordinate in the parent surface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_position_set(Ecore_Wl2_Subsurface *subsurface, int x, int y);
+
+/**
+ * Get the position of this subsurface, relative to its parent surface.
+ * Coordinates will be returned in x and y if non-NULL.
+ *
+ * @param subsurface the subsurface
+ * @param x coordinate in the parent surface, or NULL to ignore
+ * @param y coordinate in the parent surface, or NULL to ignore
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_position_get(Ecore_Wl2_Subsurface *subsurface, int *x, int *y);
+
+/**
+ * Place subsurface on layer above a reference surface
+ *
+ * Moves the @param subsurface to just above the reference @param
+ * surface, changing the z-order.  The reference @param surface must
+ * be either a sibling or parent surface, else a protocol error will
+ * be generated.
+ *
+ * @param subsurface the subsurface
+ * @param surface the sibling reference surface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_place_above(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
+
+/**
+ * Place subsurface on layer below a reference surface
+ *
+ * See ecore_wl2_subsurface_place_above.
+ *
+ * @param subsurface the subsurface
+ * @param surface the sibling reference surface
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_place_below(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
+
+/**
+ * Enables or disables sub-surface synchronization
+ *
+ * When synchronization is enabled, surface commits on the subsurface
+ * will be cached and only applied when the parent surface's state is
+ * applied.  This ensures atomic updates of the parent and all of its
+ * synchronized sub-surfaces.
+ *
+ * When synchronization is disabled, commits will apply to the pending
+ * state directly without caching, just like a normal wl_surface.  If
+ * there are already cached events when this is set, those events are
+ * applied simultaneously with the desync event.
+ *
+ * Attempting to enable synchronization when the subsurface already
+ * thinks it's sync'd, or desync when it believes its desync'd, will
+ * be trivially ignored and will not generate a Wayland event.
+ *
+ * See Wayland's set_desync documentation for further details and
+ * exceptional cases.
+ *
+ * @param subsurface the subsurface
+ * @param sync true to enable synchronization, false to desynchronize
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_sync_set(Ecore_Wl2_Subsurface *subsurface, Eina_Bool sync);
+
+/**
+ * Set an opaque region for the given subsurface.
+ *
+ * This is an optimization hint to the compositor to allow it avoid
+ * redrawing content unnecessarily.  Note that marking transparent
+ * content as opaque will cause repaint artifacts.
+ *
+ * Use a 0x0 region size to unset the opaque region.
+ *
+ * @param subsurface the subsurface
+ * @param x coordinate in the parent surface
+ * @param y coordinate in the parent surface
+ * @param w width to set as opaque
+ * @param h height to set as opaque
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since 1.17
+ */
+EAPI void ecore_wl2_subsurface_opaque_region_set(Ecore_Wl2_Subsurface *subsurface, int x, int y, int w, int h);
+
+/**
+ * @defgroup Ecore_Wl2_Output_Group Wayland Library Output Functions
+ * @ingroup Ecore_Wl2_Group
+ *
+ * Functions that deal with creating, destroying, or interacting with
+ * Wayland Outputs
+ */
+
+/**
+ * Return the DPI of a given output
+ *
+ * This is a simplistic call to get DPI. It does not account for differing
+ * DPI in the x and y axes nor does it account for multihead or xinerama and
+ * xrandr where different parts of the screen may have different DPI etc.
+ *
+ * @param output The output to get the DPI of
+ *
+ * @return the general screen DPI (dots/pixels per inch).
+ *
+ * @ingroup Ecore_Wl2_Output_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_output_dpi_get(Ecore_Wl2_Output *output);
+
+/**
+ * Get the current transform of a given output
+ *
+ * @param output The output to get the transform of
+ *
+ * @return The output's current transform value
+ * @ingroup Ecore_Wl2_Output_Group
+ * @since 1.20
+ */
+EAPI int ecore_wl2_output_transform_get(Ecore_Wl2_Output *output);
+
+/**
+ * Return the version of the display's compositor object
+ *
+ * @param disp the display to get the compositor object version from
+ *
+ * @return the version of the display's compositor object
+ *
+ * @ingroup Ecore_Wl2_Display_Group
+ * @since 1.17
+ */
+EAPI int ecore_wl2_display_compositor_version_get(Ecore_Wl2_Display *disp);
+
+/**
+ * Get the actions available from the data source
+ *
+ * @param offer Offer object to use
+ *
+ * @return or´ed values from Ecore_Wl2_Drag_Action which are describing the available actions
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Drag_Action ecore_wl2_offer_actions_get(Ecore_Wl2_Offer *offer);
+
+/**
+ * Set the actions which are supported by you
+ *
+ * @param offer Offer object to use
+ * @param actions A or´ed value of mutliple Ecore_Wl2_Drag_Action values
+ * @param action the preffered action out of the actions
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_actions_set(Ecore_Wl2_Offer *offer, Ecore_Wl2_Drag_Action actions, Ecore_Wl2_Drag_Action action);
+
+/**
+ * Get action which is set by either the data source or in the last call of actions_set
+ *
+ * @param offer Offer object to use
+ *
+ * @return the prefered action
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Ecore_Wl2_Drag_Action ecore_wl2_offer_action_get(Ecore_Wl2_Offer *offer);
+
+/**
+ * Get the mime types which are given by the source
+ *
+ * @param offer the offer to query
+ *
+ * @return a eina array of strdup´ed strings, this array must NOT be changed or freed
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ */
+EAPI Eina_Array* ecore_wl2_offer_mimes_get(Ecore_Wl2_Offer *offer);
+
+/**
+ * Set mimetypes you are accepting under this offer
+ *
+ * @param offer the offer to use
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_mimes_set(Ecore_Wl2_Offer *offer, Eina_Array *mimes);
+
+/**
+ * Accept a single mime type for an offer
+ *
+ * @param offer the offer to use
+ * @param mime_type the mime type
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_offer_accept(Ecore_Wl2_Offer *offer, const char *mime_type);
+
+/**
+ * Request the data from this offer.
+ * The event ECORE_WL2_EVENT_OFFER_DATA_READY is called when the data is available.
+ * There offer will be not destroyed as long as requested data is not emitted by the event.
+ *
+ * @param offer the offer to use
+ * @param mime the mimetype to receive
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_receive(Ecore_Wl2_Offer *offer, char *mime);
+
+/**
+ * Request the data from this offer on an externally managed fd.
+ * The event ECORE_WL2_EVENT_OFFER_DATA_READY is called when the data is available.
+ * There offer will be not destroyed as long as requested data is not emitted by the event.
+ *
+ * @param offer the offer to use
+ * @param mime the mimetype to receive
+ * @param fd the fd to pass for receiving
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_offer_proxy_receive(Ecore_Wl2_Offer *offer, const char *mime, int fd);
+
+/**
+ * End the use of a proxy received offer. This may invalidate the offer object
+ *
+ * @param offer the offer
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.20
+ */
+EAPI void ecore_wl2_offer_proxy_receive_end(Ecore_Wl2_Offer *offer);
+
+/**
+ * Check if the given offer supports the given mimetype
+ *
+ * @param offer the offer to use
+ * @param mime the mimetype to check
+ *
+ * @return Returns true if the mimetype is supported by this offer, false if not
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI Eina_Bool ecore_wl2_offer_supports_mime(Ecore_Wl2_Offer *offer, const char *mime);
+
+/**
+ * Mark this offer as finished
+ * This will call the dnd_finished event on the source of the sender.
+ *
+ * @param offer the offer to use
+ *
+ * @ingroup Ecore_Wl2_Dnd_Group
+ * @since 1.19
+ */
+EAPI void ecore_wl2_offer_finish(Ecore_Wl2_Offer *offer);
+
+/**
+ * Disable session recovery for any further connections.  Must be called
+ * before connecting.  This is irreversible and not intended for general
+ * use.
+ *
+ * @since 1.19
+ */
+EAPI void ecore_wl2_session_recovery_disable(void);
+
+/**
+ * Commit the surface of a wayland window.
+ *
+ * If flush is set this generates a wl_surface_commit(), otherwise it is
+ * expected that some other call in the very near future (such as
+ * eglSwapBuffers) will cause an implicit flush.
+ *
+ * A surface that has been commit will be in the "pending" state until
+ * the compositor tells us it's time to draw again via a frame callback.
+ *
+ * @surface surface to commit
+ * @flush EINA_TRUE if we need to flush immediately.
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_commit(Ecore_Wl2_Window *window, Eina_Bool flush);
+
+EAPI void ecore_wl2_window_false_commit(Ecore_Wl2_Window *window);
+
+/**
+ * Check if a wayland window's surface is in the pending state.
+ *
+ * A surface is pending if it's been commit but we haven't received a
+ * frame callback for it yet.  This mean's we're not ready to draw yet.
+ *
+ * @return whether the window's surface is pending or not.
+ *
+ * @since 1.21
+ */
+EAPI Eina_Bool ecore_wl2_window_pending_get(Ecore_Wl2_Window *window);
+
+/**
+ * Add a callback that fires when the window's surface_frame callback fires
+ *
+ * @window the window to add a callback on
+ * @cb The callback
+ * @data user data to provide to the callback handler
+ *
+ * @since 1.21
+ */
+EAPI Ecore_Wl2_Frame_Cb_Handle *ecore_wl2_window_frame_callback_add(Ecore_Wl2_Window *window, Ecore_Wl2_Frame_Cb cb, void *data);
+
+/**
+ * delete a callback that fires when the window's surface_frame callback fires
+ *
+ * @window the window to add a callback on
+ * @cb The callback handle
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_frame_callback_del(Ecore_Wl2_Frame_Cb_Handle *handle);
+
+/**
+ * Attach a buffer to a window
+ *
+ * Note that the GL stack my attach buffers to a surface - we should call this
+ * function at that time (with a NULL buffer) to track whether a surface
+ * has a valid buffer.  That is, call with implicit true and buffer NULL at
+ * the time of glSwapBuffers.
+ *
+ * @window the target window
+ * @buffer the buffer to attach
+ * @x x offset from corner
+ * @y y offset from corner
+ * @implicit true if an external library is doing the actual attaching
+ *
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_buffer_attach(Ecore_Wl2_Window *win, void *buffer, int x, int y, Eina_Bool implicit);
+
+/**
+ * Push buffered wayland protocol to compositor
+ *
+ * Wayland protocol is only actually sent when a flush occurs,
+ * so the display should be flushed at appropriate times, such
+ * as after a commit.
+ *
+ * @param display
+ * @since 1.21
+ */
+EAPI void ecore_wl2_display_flush(Ecore_Wl2_Display *display);
+
+EAPI Eina_Bool ecore_wl2_window_resizing_get(Ecore_Wl2_Window *window);
+
+/**
+ * Latch window state at the start of an update
+ *
+ * When async render takes place we continue to dispatch wayland
+ * events from the main loop. We need to defer any changes to
+ * window state from those events until the update is complete.
+ *
+ * Events deferred during an update will automatically fire
+ * immediately after the caller calls ecore_wl2_window_commit.
+ *
+ * @param window
+ * @since 1.21
+ */
+EAPI void ecore_wl2_window_update_begin(Ecore_Wl2_Window *window);
+
+EAPI void ecore_wl2_window_damage(Ecore_Wl2_Window *window, Eina_Rectangle *rects, unsigned int count);
+
+EAPI Eina_Bool ecore_wl2_buffer_init(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer_Type types);
+EAPI Ecore_Wl2_Buffer *ecore_wl2_buffer_create(Ecore_Wl2_Display *ewd, int w, int h, Eina_Bool alpha);
+EAPI void ecore_wl2_buffer_destroy(Ecore_Wl2_Buffer *b);
+EAPI struct wl_buffer *ecore_wl2_buffer_wl_buffer_get(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer *buf);
+EAPI void *ecore_wl2_buffer_map(Ecore_Wl2_Buffer *buf);
+EAPI void ecore_wl2_buffer_unmap(Ecore_Wl2_Buffer *buf);
+EAPI void ecore_wl2_buffer_discard(Ecore_Wl2_Buffer *buf);
+EAPI void ecore_wl2_buffer_unlock(Ecore_Wl2_Buffer *b);
+EAPI void ecore_wl2_buffer_destroy(Ecore_Wl2_Buffer *b);
+
+EAPI Ecore_Wl2_Surface *ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha);
+EAPI void ecore_wl2_surface_destroy(Ecore_Wl2_Surface *surface);
+EAPI void ecore_wl2_surface_reconfigure(Ecore_Wl2_Surface *surface, int w, int h, uint32_t flags, Eina_Bool force);
+EAPI void *ecore_wl2_surface_data_get(Ecore_Wl2_Surface *surface, int *w, int *h);
+EAPI int  ecore_wl2_surface_assign(Ecore_Wl2_Surface *surface);
+EAPI void ecore_wl2_surface_post(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsigned int count);
+EAPI void ecore_wl2_surface_flush(Ecore_Wl2_Surface *surface);
+EAPI void ecore_wl2_window_surface_flush(Ecore_Wl2_Window *window);
+
+// TIZEN_ONLY(20171107): support a tizen_keyrouter interface
+EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
+EAPI Ecore_Wl2_Display *ecore_wl2_connected_display_get(const char *name);
+EAPI Ecore_Wl2_Input *ecore_wl2_input_default_input_get(const Ecore_Wl2_Display *ewd);
+EAPI Eina_Bool ecore_wl2_window_keygrab_set(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int not_mod EINA_UNUSED, int priority EINA_UNUSED, Ecore_Wl2_Window_Keygrab_Mode grab_mode);
+EAPI Eina_Bool ecore_wl2_window_keygrab_unset(Ecore_Wl2_Window *win, const char *key, int mod EINA_UNUSED, int any_mod EINA_UNUSED);
+//
+EAPI Eina_List *ecore_wl2_window_keygrab_list_set(Ecore_Wl2_Window *win, Eina_List *infos);
+EAPI Eina_List *ecore_wl2_window_keygrab_list_unset(Ecore_Wl2_Window *win, Eina_List *infos);
+
+// TIZEN_ONLY(20171107): add ecore_wl2_window_input_get() EAPI
+EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *win);
+//
+// TIZEN_ONLY(20171114): support a pointer warp
+EAPI Eina_Bool ecore_wl2_window_pointer_warp(Ecore_Wl2_Window *win, int x, int y);
+//
+
+//TIZEN_ONLY(20171108): add a new API to ecore_wl2_sync
+EAPI void ecore_wl2_sync(void);
+//
+
+//TIZEN_ONLY(20171115): support output transform
+EAPI Eina_Bool ecore_wl2_window_ignore_output_transform_get(Ecore_Wl2_Window *win);
+//
+
+# endif
+
+# undef EAPI
+# define EAPI
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
index b4e69b5..9ff129b 100644 (file)
@@ -5,8 +5,7 @@
 #ifndef BASE_EXTERNAL_DEVICE_EXTERNAL_INPUT_DEVICE_CONTROLLER_TIZEN_H_
 #define BASE_EXTERNAL_DEVICE_EXTERNAL_INPUT_DEVICE_CONTROLLER_TIZEN_H_
 
-#include <Ecore_Input.h>
-#include <Ecore_Wayland.h>
+#include <Elementary.h>
 
 #include "base/callback.h"
 #include "base/memory/singleton.h"
@@ -30,8 +29,8 @@ class ExternalInputDeviceController {
 
   void SetCallback(const OnKeyDown& callback) { callback_ = callback; };
 
-  void GrabMediaKey(int player_id, Ecore_Wl_Window* evas);
-  void UnGrabMediaKey(Ecore_Wl_Window* evas);
+  void GrabMediaKey(int player_id, Elm_Win* window);
+  void UnGrabMediaKey(Elm_Win* window);
 
  private:
   friend struct base::DefaultSingletonTraits<ExternalInputDeviceController>;
@@ -43,7 +42,7 @@ class ExternalInputDeviceController {
   int player_id_;
   OnKeyDown callback_;
   Ecore_Event_Handler* handler_;
-  Ecore_Wl_Window* wayland_window_;
+  Elm_Win* elm_window_;
 };
 
 }  // namespace base
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/logging_cache.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/logging_cache.h
new file mode 100644 (file)
index 0000000..bc5d838
--- /dev/null
@@ -0,0 +1,26 @@
+
+#ifndef TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_CACHE_H
+#define TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_CACHE_H
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+#ifndef LOG_TAG
+#define LOG_TAG "CHROMIUM_CACHE"
+#endif
+#include <dlog/dlog.h>
+
+#define CACHE_LOGD(fmt, args...) LOGD(fmt, ##args)
+#define CACHE_LOGI(fmt, args...) LOGI(fmt, ##args)
+#define CACHE_LOGW(fmt, args...) LOGW(fmt, ##args)
+#define CACHE_LOGE(fmt, args...) LOGE(fmt, ##args)
+#define CACHE_LOGE_IF(cond, fmt, args...) LOGE_IF(cond, fmt, ##args)
+
+#else
+
+#define CACHE_LOGD(fmt, args...)
+#define CACHE_LOGI(fmt, args...)
+#define CACHE_LOGW(fmt, args...)
+#define CACHE_LOGE(fmt, args...)
+#define CACHE_LOGE_IF(cond, fmt, args...)
+
+#endif
+#endif  // TIZEN_SRC_EWK_EFL_INTEGRATION_BASE_LOGGING_NETWOKR_H
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/memory_sampler/memory_sampler.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/memory_sampler/memory_sampler.h
new file mode 100644 (file)
index 0000000..6279d25
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2014, 2017 Samsung Electronics. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1.  Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *        TODO: Update documentation accordingly to new changes
+ *
+ *  The MemorySampler class samples a number of internal and external memory
+ *  metrics every second while running. Sample data is written to a log file.
+ *  Sampling occurs over a duration specified when started. If duration is set
+ *  to 0 (default), the memory sampler will run indefinitely until the stop
+ *  function is called. MemorySampler allows the option of sampling "in use"
+ *  memory (committed memory minus free list byte count) or committed memory for
+ *  any allocator which keeps a free list. This includes PartitionMalloc and the
+ *  at this time.
+ *  The following memory metrics are recorded:
+ *
+ *      WebCore
+ *          - PartitionMalloc allocations bytes         (in use or committed)
+ *      Task Info
+ *          - Resident size memory (RSIZE)
+ */
+
+#ifndef BASE_MEMORY_SAMPLER_H_
+#define BASE_MEMORY_SAMPLER_H_
+
+#include <stdio.h>
+#include <string>
+#include <sys/types.h>
+
+#include "base/files/file_path.h"
+#include "base/memory/singleton.h"
+#include "base/timer/timer.h"
+
+namespace base {
+
+class WebMemorySampler {
+ public:
+  static WebMemorySampler* GetInstance();
+  void Start(const double interval = 0);
+  void Stop();
+
+ private:
+  WebMemorySampler();
+  ~WebMemorySampler();
+
+  void WriteHeaders();
+  void InitializeTimers(double);
+  std::string ProcessName() const;
+  void SampleTimerFired();
+  void StopTimerFired();
+
+  friend struct base::DefaultSingletonTraits<WebMemorySampler>;
+  std::string separator_;
+  bool is_running_;
+  double running_time_;
+  pid_t pid_;
+
+  FILE* sample_log_file_;
+  base::FilePath sample_log_file_path_;
+
+  base::RepeatingTimer sample_timer_;
+  base::OneShotTimer stop_timer_;
+  DISALLOW_COPY_AND_ASSIGN(WebMemorySampler);
+};
+
+} // namespace base
+
+#endif  // BASE_MEMORY_SAMPLER_H_
index d2e05c9..3f67d4e 100644 (file)
@@ -29,7 +29,7 @@ class BASE_EXPORT MessagePumpEcore : public MessagePump {
  private:
   static void OnWakeup(void* data, void* buffer, unsigned int nbyte);
   static Eina_Bool OnTimerFired(void* data);
-
+  static Eina_Bool OnEcoreEvent(void* data, int ev_type, void* ev);
   // We may make recursive calls to Run, so we save state that needs to be
   // separate between them in this structure type.
   struct RunState;
@@ -49,6 +49,8 @@ class BASE_EXPORT MessagePumpEcore : public MessagePump {
   // phase after delay.
   Ecore_Timer* delayed_work_timer_;
 
+  Ecore_Event_Handler* ecore_event_handler_;
+
   DISALLOW_COPY_AND_ASSIGN(MessagePumpEcore);
 };
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/static_map.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/static_map.h
new file mode 100644 (file)
index 0000000..cb42bc3
--- /dev/null
@@ -0,0 +1,287 @@
+// Copyright (c) 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_STATIC_MAP_H
+#define BASE_STATIC_MAP_H
+
+#include <type_traits>
+#include <unordered_map>
+
+// |StaticMap| is a map which resemebles std::unordered_map (ie. has no element
+// order) but can inline values for given keys for fast access. Because
+// everything is calculated at compile time this has a drawback of using only
+// types which match non-type template parameter for a key type.
+// This can be especially useful for enumeration types where you know you will
+// need to frequently access values for some predefined keys but need some sort
+// of fallback in other cases.
+//
+// Template of declaration of |StaticMap| should contain |KeyType| and
+// |ValueType| (duh) then a |StaticKeys| with template containing KeyType and
+// then values of keys storage you want to inline, then optionally a
+// |DynamicMapType| which will be used when key is not present in static part of
+// the map, this defaults to std::unordered_map. For |DynamicMapType| you can
+// also use |UseDefaultValue| which will return the same value (by const&) for
+// any key. Example declarations:
+//
+// StaticMap<SomeEnumT, size_t, StaticKeys<SomeEnumT, SomeEnumT::Important,
+//           SomeEnumT::EquallyImportant>>
+// - this defines a map from SomeEnumT to size_t, with SomeEnumT::Important and
+// SomeEnumT::EquallyImportant inlined. Both map values are default initialized
+// and as a fallback std::unordered_map<SomeEnumT, size_t> is used.
+// StaticMap<OtherEnumT, Clazz*, StaticKeys<OtherEnumT, OtherEnumT::Quick>,
+//           UseDefaultValue<Clazz*>>
+// - this map will map OtherEnumT to Clazz*, but only allows modification of
+// OtherEnumT::Quick key. Other return nullptr.
+//
+// You can access elements of the map by using operator[], which will behave
+// like normal operator[] when using std::unordered_map fallback; this means no
+// const version. To access inlined elements in const context you can use
+// get<key>(), which will check if key is indeed stored inlined.
+// The fun thing is, with |UseDefaultValue| you get const version of operator[]
+// so you can use it anywhere.
+// To check whether element is present use count().
+//
+// TODO: iterators and other map interfaces.
+
+namespace base {
+
+// Scroll down for |StaticMap| implementation here are utilities
+
+// |DoesTemplateContain| is a type trait (i.e. it defines static boolean member
+// |value|), checking, if the first value template argument is also among the
+// rest of the template parameter pack. This is used as a helper in
+// |IsTemplateSet| type trait to guarantee the static map keys are unique.
+template <class T, T... Tail>
+struct DoesTemplateContain;
+
+template <class T, T Value>
+struct DoesTemplateContain<T, Value> : std::false_type {};
+
+template <class T, T Value, T Head>
+struct DoesTemplateContain<T, Value, Head>
+    : std::integral_constant<bool, Value == Head> {};
+
+template <class T, T Value, T Head, T... Tail>
+struct DoesTemplateContain<T, Value, Head, Tail...>
+    : std::integral_constant<
+          bool,
+          DoesTemplateContain<T, Value, Head>::value ||
+              DoesTemplateContain<T, Value, Tail...>::value> {};
+
+static_assert(!DoesTemplateContain<int, 1>::value, "Test failed");
+static_assert(DoesTemplateContain<int, 1, 1>::value, "Test failed");
+static_assert(!DoesTemplateContain<int, 2, 1>::value, "Test failed");
+static_assert(DoesTemplateContain<int, 1, 1, 1, 1, 1, 1>::value, "Test failed");
+static_assert(DoesTemplateContain<int, 1, 2, 2, 2, 2, 1>::value, "Test failed");
+
+// |IsTemplateSet| is a type trait checking, if the value parameter pack set
+// consists of unique values, that is, it can be used as a set of unique keys in
+// static map. As such, it is used in |StaticKeys| class.
+template <class T, T... Tail>
+struct IsTemplateSet;
+
+template <class T>
+struct IsTemplateSet<T> : std::true_type {};
+
+template <class T, T Head, T... Tail>
+struct IsTemplateSet<T, Head, Tail...>
+    : std::integral_constant<bool,
+                             !DoesTemplateContain<T, Head, Tail...>::value &&
+                                 IsTemplateSet<T, Tail...>::value> {};
+
+static_assert(IsTemplateSet<int>::value, "Test failed");
+static_assert(IsTemplateSet<int, 2>::value, "Test failed");
+static_assert(IsTemplateSet<int, 2, 1>::value, "Test failed");
+static_assert(!IsTemplateSet<int, 1, 1>::value, "Test failed");
+static_assert(!IsTemplateSet<int, 1, 1, 1, 1, 1, 1>::value, "Test failed");
+static_assert(IsTemplateSet<int, 1, 2, 3, 4, 5, 6>::value, "Test failed");
+static_assert(!IsTemplateSet<int, 1, 2, 3, 4, 5, 1>::value, "Test failed");
+
+// Here is |StaticMap| implementation
+
+// |StaticKeys| are used for defining key values which storage should be
+// inlined. |StaticKeys| checks whether provided keys are not duplicated.
+template <class T, T... Values>
+struct StaticKeys {
+  static_assert(IsTemplateSet<T, Values...>::value, "Keys are duplicated!");
+  using KeyType = T;
+};
+
+template <class T>
+struct StaticKeys<T> {
+  // TODO: Make this fail, why use static map without static values...
+  //       Right now it will fail in DynamicMap specialization.
+  //   static_assert(!std::is_same<T,T>::value, "Static keys are empty");
+};
+
+template <class T>
+struct UseDefaultValue {
+  constexpr UseDefaultValue() : value() {}
+
+  template <class... Args>
+  explicit UseDefaultValue(Args&&... args)
+      : value(std::forward<Args>(args)...) {}
+
+  template <class KeyType>
+  const T& operator[](KeyType) const {
+    return value;
+  }
+
+ private:
+  const T value;
+};
+
+template <class K, class V>
+using DefaultDynamicMap = std::unordered_map<K, V>;
+
+// This is only to fail if StaticKeys were not used
+template <class KeyType,
+          class ValueType,
+          class StaticKeysT,
+          class DynamicMapType = DefaultDynamicMap<KeyType, ValueType>,
+          KeyType... keys>
+class StaticMap {
+  static_assert(std::is_same<StaticKeysT, StaticKeys<KeyType, keys...>>::value,
+                "You didn't use StaticKeys to pass compile time keys or the "
+                "type of it's values does not match KeyType");
+};
+
+// |DynamicMapType| version which uses this type for a fallback in case when key
+// is not inlined
+template <class KeyType, class ValueType, class DynamicMapType>
+class StaticMap<KeyType, ValueType, StaticKeys<KeyType>, DynamicMapType> {
+ public:
+  constexpr StaticMap() = default;
+  StaticMap(const StaticMap&) = default;
+  StaticMap(StaticMap&&) = default;
+  ~StaticMap() = default;
+
+  StaticMap& operator=(const StaticMap&) = default;
+  StaticMap& operator=(StaticMap&&) = default;
+
+  template <class... Args>
+  explicit StaticMap(Args&&... rest) : map_(std::forward<Args>(rest)...) {}
+
+  // This will should always fail, because DynamicMap won't provide keys at
+  // compile time
+  template <KeyType V>
+  ValueType& get() {
+    static_assert(!std::is_same<KeyType, decltype(V)>::value,
+                  "There is no such compile time Key!");
+  }
+
+  template <KeyType V>
+  constexpr const ValueType& get() const {
+    static_assert(!std::is_same<KeyType, decltype(V)>::value,
+                  "There is no such compile time Key!");
+  }
+
+  // Below functions will only exist if map_ defines matching operator[]
+  // This ugly monster is used to disable it for const DynamicMapType when this
+  // is not const
+  template <class U = DynamicMapType>
+  auto operator[](KeyType key) -> typename std::enable_if<
+      std::is_same<decltype(std::declval<U>()[key]), ValueType&>::value,
+      ValueType&>::type {
+    return map_[key];
+  }
+
+  template <class U = DynamicMapType>
+  auto operator[](KeyType key) const -> decltype(std::declval<const U>()[key]) {
+    static_assert(std::is_same<decltype(std::declval<const U>()[key]),
+                               const ValueType&>::value,
+                  "DynamicMapType::operator[] must return ValueType& or const "
+                  "ValueType&");
+    return map_[key];
+  }
+
+ private:
+  DynamicMapType map_;
+};
+
+// Contains storage for given inlined key value and otherwise delegates to map_,
+// which could be again this or |DynamicMapType| version.
+template <class KeyType,
+          class ValueType,
+          class DynamicMapType,
+          KeyType key_value_,
+          KeyType... rest_of_keys_>
+class StaticMap<KeyType,
+                ValueType,
+                StaticKeys<KeyType, key_value_, rest_of_keys_...>,
+                DynamicMapType> {
+  // Make sure keys set is ok
+  static const StaticKeys<KeyType, key_value_, rest_of_keys_...> static_keys;
+
+  using InnerMapType = StaticMap<KeyType,
+                                 ValueType,
+                                 StaticKeys<KeyType, rest_of_keys_...>,
+                                 DynamicMapType>;
+
+ public:
+  using size_type = size_t;
+
+  constexpr StaticMap() : value_() {}
+  StaticMap(const StaticMap&) = default;
+  StaticMap(StaticMap&&) = default;
+  ~StaticMap() = default;
+
+  StaticMap& operator=(const StaticMap&) = default;
+  StaticMap& operator=(StaticMap&&) = default;
+
+  template <class T, class... Args>
+  explicit StaticMap(T&& arg, Args&&... rest)
+      : value_(std::forward<T>(arg)), map_(std::forward<Args>(rest)...) {}
+
+  // Compile time conditional on key value
+  template <KeyType V>
+  auto get() -> typename std::enable_if<V == key_value_, ValueType&>::type {
+    return value_;
+  }
+
+  template <KeyType V>
+  auto get() -> typename std::enable_if<V != key_value_, ValueType&>::type {
+    return map_.get<V>();
+  }
+
+  template <KeyType V>
+  constexpr auto get() const ->
+      typename std::enable_if<V == key_value_, const ValueType&>::type {
+    return value_;
+  }
+
+  template <KeyType V>
+  constexpr auto get() const ->
+      typename std::enable_if<V != key_value_, const ValueType&>::type {
+    return map_.get<V>();
+  }
+
+  // Below functions will only exist if map_ defines matching operator[]
+  template <class U = InnerMapType>
+  auto operator[](KeyType key) -> decltype(std::declval<U>()[key]) {
+    if (key == key_value_)
+      return value_;
+    return map_[key];
+  }
+
+  template <class U = InnerMapType>
+  auto operator[](KeyType key) const -> decltype(std::declval<const U>()[key]) {
+    if (key == key_value_)
+      return value_;
+    return map_[key];
+  }
+
+  // This is to mimic std::unordered_map and std::map interfaces
+  size_type count(KeyType key) const {
+    return key == key_value_ ? 1 : map_.count();
+  }
+
+ private:
+  ValueType value_;
+  InnerMapType map_;
+};
+
+}  // namespace base
+
+#endif  // BASE_STATIC_MAP_H
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/system_brightness/system_settings_brightness_tizen.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/system_brightness/system_settings_brightness_tizen.h
new file mode 100644 (file)
index 0000000..4e2880c
--- /dev/null
@@ -0,0 +1,32 @@
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_SYSTEM_BRIGHTNESS_SYSTEM_SETTINGS_TIZEN_H_
+#define BASE_SYSTEM_BRIGHTNESS_SYSTEM_SETTINGS_TIZEN_H_
+#include <device/callback.h>
+#include <device/display.h>
+
+#include "base/callback.h"
+#include "base/memory/singleton.h"
+
+namespace base {
+
+class SystemSettingsBrightnessTizen {
+ public:
+  static SystemSettingsBrightnessTizen* GetInstance();
+
+  int GetBrightness();
+  void SetBrightness(int brightness);
+
+ private:
+  friend struct base::DefaultSingletonTraits<SystemSettingsBrightnessTizen>;
+
+  SystemSettingsBrightnessTizen() { }
+  ~SystemSettingsBrightnessTizen() { }
+
+  DISALLOW_COPY_AND_ASSIGN(SystemSettingsBrightnessTizen);
+};
+
+}
+#endif
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/system_volume/system_volume_control_tizen.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/base/system_volume/system_volume_control_tizen.h
new file mode 100644 (file)
index 0000000..c806a9d
--- /dev/null
@@ -0,0 +1,68 @@
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_SYSTEM_VOLUME_SYSTEM_VOLUME_CONTROL_TIZEN_H_
+#define BASE_SYSTEM_VOLUME_SYSTEM_VOLUME_CONTROL_TIZEN_H_
+
+#include <Ecore.h>
+#include <media/sound_manager.h>
+
+#include "base/callback.h"
+#include "base/memory/singleton.h"
+#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_task_runner_handle.h"
+
+namespace base {
+
+enum VolumeKeyType { VOLUME_KEY_UP, VOLUME_KEY_DOWN, VOLUME_KEY_MUTE };
+
+// Volume change callback
+typedef base::Callback<void(int, double, bool)> VolumeChangedCallback;
+
+class SystemVolumeControlTizen {
+ public:
+  static SystemVolumeControlTizen* GetInstance();
+
+  void SetVolumeChangedCallback(const VolumeChangedCallback& cb, int player_id);
+  void ResetVolumeChangedCallback();
+  void HandleEvent(VolumeKeyType type, bool released);
+  void SetSystemVolume(double volume);
+  bool GrabSystemVolumeKeys();
+  void EndGrabSystemVolumeKeys();
+  bool isVolumeKeyGrabbed() { return isWindowKeygrabbed_; }
+  void* getWindowHandle() { return web_win_; }
+  void setWindowHandle(void* window) { web_win_ = window; }
+
+ private:
+  friend struct base::DefaultSingletonTraits<SystemVolumeControlTizen>;
+
+  static void onVolumeChanged(sound_type_e, unsigned int, void*);
+  void VolumeChanged(int volume, bool init);
+  void UpdateVolume(VolumeKeyType type, bool released);
+  int GetSystemVolume();
+  static Eina_Bool VolumeKeyPressedTimerCb(void* data);
+  void Release();
+
+  SystemVolumeControlTizen();
+  ~SystemVolumeControlTizen();
+
+  VolumeChangedCallback volume_changed_cb_;
+  void* web_win_;
+  VolumeKeyType keyType_;
+  bool is_released_;
+  int max_volume_;
+  Ecore_Timer* VolumeKeyPressTimer_;
+  bool isWindowKeygrabbed_;
+  int player_id_;
+  const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+
+  // NOTE: Weak pointers must be invalidated before all other member variables.
+  base::WeakPtrFactory<SystemVolumeControlTizen> weak_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(SystemVolumeControlTizen);
+};
+
+}  // namespace base
+
+#endif  // BASE_SYSTEM_VOLUME_SYSTEM_VOLUME_CONTROL_TIZEN_H_
index 784e594..a48a38a 100644 (file)
@@ -29,13 +29,19 @@ class CONTENT_EXPORT BrowserAccessibilityEfl
   BrowserAccessibility* GetChildAtPoint(const gfx::Point& point) const;
   void RecalculateHighlightable(bool recalculate_ancestors);
   bool IsChecked() const;
-  bool IsCheckbox() const;
+  bool IsCheckable() const;
   bool IsColorWell() const;
   gchar* GetObjectText() const;
   bool IsStaticText() const;
   bool IsTextObjectType() const;
   void SetInterfaceFromObject(GType, int);
   void SetInterfaceMaskFromObject(int&);
+#if defined(TIZEN_ATK_FEATURE_VD)
+  std::string GetSupplementaryText() const;
+  std::string GetSubTreeSpeechContent() const;
+  std::string GetSpeechContent();
+  bool HasSpeechContent();
+#endif
 
  private:
   bool IsSection() const;
@@ -49,6 +55,11 @@ class CONTENT_EXPORT BrowserAccessibilityEfl
   bool HasText() const;
   bool MoreThanOneKnownChild() const;
   bool IsDocument() const;
+#if defined(TIZEN_ATK_FEATURE_VD)
+  bool HasOnlyTextChildren() const;
+  bool HasOnlyTextAndImageChildren() const;
+  std::string GetChildrenText() const;
+#endif
 
   bool highlightable_;
 };
index 8beed0b..58b9926 100644 (file)
@@ -37,6 +37,9 @@ class CONTENT_EXPORT BrowserAccessibilityManagerEfl
   void InvalidateHighlighted(bool focus_root);
 
  private:
+#if defined(TIZEN_ATK_FEATURE_VD)
+  void NotifyLiveRegionChanged(BrowserAccessibilityEfl* obj);
+#endif
   friend class BrowserAccessibilityManager;
   BrowserAccessibilityAuraLinux* highlighted_obj_;
 
index 0eb97b7..95bcc3f 100644 (file)
@@ -10,6 +10,7 @@
 #include "base/compiler_specific.h"
 #include "cc/output/context_provider.h"
 #include "content/common/content_export.h"
+#include "gpu/skia_bindings/grcontext_for_gles2_interface.h"
 
 namespace content {
 
@@ -33,6 +34,7 @@ class CONTENT_EXPORT EvasGLContextProvider : public cc::ContextProvider {
 
   gpu::Capabilities capabilities_;
   ::gpu::gles2::GLES2ImplementationEfl evasgl_implementation_;
+  std::unique_ptr<skia_bindings::GrContextForGLES2Interface> gr_context_;
   std::unique_ptr<cc::ContextCacheController> cache_controller_;
 
   DISALLOW_COPY_AND_ASSIGN(EvasGLContextProvider);
index 81012e2..7c2a4b0 100644 (file)
@@ -19,7 +19,6 @@
 namespace content {
 
 class EvasGLContextProvider;
-class EvasGLOutputSurfaceClient;
 
 class CONTENT_EXPORT EvasGLDelegatedFrameHostClient {
  public:
@@ -50,20 +49,22 @@ class CONTENT_EXPORT EvasGLDelegatedFrameHost
 #endif
 
  private:
+  using ResourceIdSet = cc::ResourceProvider::ResourceIdSet;
+
   void UnrefResources(const cc::ReturnedResourceArray& resources,
                       cc::BlockingTaskRunner* /* main_thread_task_runner */);
   bool ShouldTransformRootRenderPass(int rotation);
   void TransformRootRenderPass(cc::RenderPass* root_render_pass,
                              const gfx::Rect& bounds,
                              int rotation);
-  void ClearRenderPasses();
+  void ClearRenderPasses(
+      const ResourceIdSet& resources_in_frame = ResourceIdSet());
   void ClearChildId();
 
   EvasGLDelegatedFrameHostClient* client_;
 
   // TODO(prashant.n): Decouple context provider and surface from this class.
   scoped_refptr<EvasGLContextProvider> context_provider_;
-  std::unique_ptr<EvasGLOutputSurfaceClient> output_surface_client_;
   std::unique_ptr<cc::OutputSurface> output_surface_;
   cc::RendererSettings settings_;
   std::unique_ptr<cc::ResourceProvider> resource_provider_;
@@ -73,7 +74,6 @@ class CONTENT_EXPORT EvasGLDelegatedFrameHost
 #endif
 
   cc::RenderPassList render_pass_list_;
-  cc::ResourceProvider::ResourceIdSet resources_in_frame_;
   cc::ReturnedResourceArray returned_resources_;
   std::unique_ptr<cc::DirectRenderer> renderer_;
   SkColor background_color_ = SK_ColorTRANSPARENT;
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/compositor/evasgl_output_surface_client.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/browser/compositor/evasgl_output_surface_client.h
deleted file mode 100644 (file)
index a8e2431..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2015 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_COMPOSITOR_EVASGL_OUTPUT_SURFACE_CLIENT_H_
-#define CONTENT_BROWSER_COMPOSITOR_EVASGL_OUTPUT_SURFACE_CLIENT_H_
-
-#include "cc/output/managed_memory_policy.h"
-#include "cc/output/output_surface_client.h"
-
-namespace content {
-
-class EvasGLOutputSurfaceClient : public cc::OutputSurfaceClient {
- public:
-  EvasGLOutputSurfaceClient() {}
-
-  void SetNeedsRedrawRect(const gfx::Rect& damage_rect) override {}
-  void DidReceiveSwapBuffersAck() override {}
-  void DidReceiveTextureInUseResponses(
-      const gpu::TextureInUseResponses& responses) override {}
-};
-
-}  // namespace content
-
-#endif  // CONTENT_BROWSER_COMPOSITOR_EVASGL_OUTPUT_SURFACE_CLIENT_H_
index 80fb745..e3d0bd0 100644 (file)
 #include "content/public/browser/browser_message_filter.h"
 #include "media/base/tizen/demuxer_efl.h"
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/ranges.h"
+#endif
+
 namespace content {
 
 // Represents the browser process half of an IPC-based demuxer proxy.
@@ -49,6 +53,8 @@ class CONTENT_EXPORT BrowserDemuxerEfl : public BrowserMessageFilter {
 #if defined(OS_TIZEN_TV_PRODUCT)
   void OnDemuxerStateChanged(int demuxer_client_id,
                              const media::DemuxerConfigs& configs);
+  void OnDemuxerBufferedChanged(int demuxer_client_id,
+                                const media::Ranges<base::TimeDelta>& ranges);
 #endif
   void OnReadFromDemuxerAck(int demuxer_client_id,
                             base::SharedMemoryHandle foreign_memory_handle,
index 2322959..a551c9a 100644 (file)
@@ -74,6 +74,7 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
 #if defined(OS_TIZEN_TV_PRODUCT)
 #if defined(TIZEN_TBM_SUPPORT)
   void OnNotifyVideoTexturing(int player_id);
+  void OnControlMediaPacket(int player_id, int mode);
 #endif
   void OnAddAudioTrack(int player_id,
                        const std::string& kind,
@@ -89,6 +90,12 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
                       const std::string& label,
                       const std::string& language,
                       const std::string& id) override;
+  void OnSetActiveTextTrack(int player_id, int id, bool is_in_band);
+  void OnNotifySubtitlePlay(int player_id,
+                            int id,
+                            const std::string& url,
+                            const std::string& lang);
+  void NotifyPlayTrack(int player_id, int id);
   void OnSeekableTimeChange(int player_id,
                             base::TimeDelta min_time,
                             base::TimeDelta max_time) override;
@@ -108,6 +115,11 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
   void OnSetVolume(RenderFrameHost* render_frame_host,
                    int player_id,
                    double volume);
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void OnSystemVolumeChanged(int player_id, double volume, bool init);
+#endif
+
   void OnSetRate(
       RenderFrameHost* render_frame_host, int player_id, double rate);
   void OnInitialize(RenderFrameHost* render_frame_host,
@@ -126,17 +138,19 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
   void OnActivate(RenderFrameHost* render_frame_host, int player_id);
   void OnDeactivate(RenderFrameHost* render_frame_host, int player_id);
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void OnLaunchSystemVolumeController(RenderFrameHost* render_frame_host,
                                       int player_id);
 #endif
 
 #if defined(TIZEN_VIDEO_HOLE)
-  gfx::Rect GetViewportRect() const override;
+  virtual gfx::Rect GetViewportRect(int player_id) const;
   void OnSetGeometry(int player_id, const gfx::RectF& rect);
   void OnWebViewMoved();
 #endif
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void OnCheckHLS(const std::string& url, bool* support);
+#endif
 #if defined(OS_TIZEN_TV_PRODUCT)
   void OnInbandEventTextTrack(int player_id, const std::string& info) override;
   void OnInbandEventTextCue(int player_id,
@@ -147,6 +161,39 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
 
   // Notify the playing video dimension for floating Video feature
   void NotifyPlayingVideoRect(int player_id, const gfx::RectF& rect);
+  void OnRegisterTimeline(int player_id,
+                          const std::string& timeline_selector,
+                          bool* ret);
+  void OnUnRegisterTimeline(int player_id,
+                            const std::string& timeline_selector,
+                            bool* ret);
+  void OnGetTimelinePositions(int player_id,
+                              const std::string& timeline_selector,
+                              uint32_t* units_per_tick,
+                              uint32_t* units_per_second,
+                              int64_t* content_time,
+                              bool* paused);
+  void OnGetSpeed(int player_id, double* speed);
+  void OnGetMrsUrl(int player_id, std::string* url);
+  void OnGetContentId(int player_id, std::string* id);
+  void OnSyncTimeline(int player_id,
+                      const std::string& timeline_selector,
+                      int64_t timeline_pos,
+                      int64_t wallclock_pos,
+                      int tolerance,
+                      bool* ret);
+  void OnSetWallClock(int player_id,
+                      const std::string& wallclock_url,
+                      bool* ret);
+  void OnRegisterTimelineCbInfo(
+      int player_id,
+      const blink::WebMediaPlayer::register_timeline_cb_info_s& info) override;
+  void OnSyncTimelineCbInfo(int player_id,
+                            const std::string& timeline_selector,
+                            int sync) override;
+  void OnMrsUrlChange(int player_id, const std::string& url) override;
+  void OnContentIdChange(int player_id, const std::string& id) override;
+  void OnElementRemove(int player_id);
 #endif
 
   void CleanUpBelongToRenderFrameHost(RenderFrameHost* render_frame_host);
@@ -184,7 +231,11 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
 
   void OnPlayerSuspendRequest(int player_id) override;
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void OnPlayerResourceConflict(int player_id) override;
+#endif
+
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void OnSystemVolumeChange(int player_id, int volume) override;
 #endif
 
@@ -205,7 +256,7 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
   double getAmplifiedVolume(double volume);
 #endif
 #if defined(TIZEN_EXTERNAL_MEDIA_EVENT)
-  Ecore_Wl_Window* GetEvasObject(RenderFrameHost* render_frame_host);
+  Elm_Win* GetElmWindow(RenderFrameHost* render_frame_host);
 #endif
 
   // An array of managed players.
@@ -218,6 +269,10 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl
   media::MediaCapabilityManager<media::LongestConflictStrategy>
       media_capability_manager_;
 
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+  int media_packet_mode_;
+#endif
+
 #if defined(TIZEN_EXTERNAL_MEDIA_EVENT)
   base::ExternalInputDeviceController* external_event_controller_ = nullptr;
 #endif
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_CAPTURE_HANDLER_H_
-#define CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_CAPTURE_HANDLER_H_
+#ifndef CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_RECORDER_HANDLER_H_
+#define CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_RECORDER_HANDLER_H_
 
 #include "base/containers/scoped_ptr_hash_map.h"
 #include "base/memory/singleton.h"
 
 namespace content {
 
-class CONTENT_EXPORT BrowserMediaCaptureHandler {
+class CONTENT_EXPORT BrowserMediaRecorderHandler {
  public:
-  static BrowserMediaCaptureHandler* Create(RenderFrameHost* rfh);
-  BrowserMediaCaptureHandler(RenderFrameHost* render_frame_host);
-  ~BrowserMediaCaptureHandler();
+  static BrowserMediaRecorderHandler* Create(RenderFrameHost* rfh);
+  BrowserMediaRecorderHandler(RenderFrameHost* render_frame_host);
+  ~BrowserMediaRecorderHandler();
 
-  bool StartCaptureThread(const tracked_objects::Location& location);
+  bool StartRecorderThread(const tracked_objects::Location& location);
 
   void StartRecording(int handler_id, std::string recording_format);
   void PauseRecording(int handler_id);
@@ -43,30 +43,24 @@ class CONTENT_EXPORT BrowserMediaCaptureHandler {
   int GetRoutingID();
 
  private:
-  friend struct base::DefaultSingletonTraits<BrowserMediaCaptureHandler>;
-
-  void OnTakePicture(int handler_id,
-                     gfx::Size image_size,
-                     std::string image_format,
-                     std::string image_name);
+  friend struct base::DefaultSingletonTraits<BrowserMediaRecorderHandler>;
 
   void OnStartRecording(int handler_id, std::string recording_format);
-
   void OnPauseRecording(int handler_id);
   void OnResumeRecording(int handler_id);
   void OnStopRecording(int handler_id);
 
-  base::Thread capture_thread_;
+  base::Thread recorder_thread_;
 
   RenderFrameHost* render_frame_host_;
 
   std::map<int, std::unique_ptr<media::MediaRecorderTizen>> camera_handle_;
 
-  base::WeakPtrFactory<BrowserMediaCaptureHandler> weak_factory_;
+  base::WeakPtrFactory<BrowserMediaRecorderHandler> weak_factory_;
 
-  DISALLOW_COPY_AND_ASSIGN(BrowserMediaCaptureHandler);
+  DISALLOW_COPY_AND_ASSIGN(BrowserMediaRecorderHandler);
 };
 
 }  // namespace content
 
-#endif  // CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_CAPTURE_HANDLER_H_
+#endif  // CONTENT_BROWSER_MEDIA_TIZEN_BROWSER_MEDIA_RECORDER_HANDLER_H_
index 03e5dfb..e50c4e1 100644 (file)
@@ -15,11 +15,11 @@ namespace content {
 class BrowserMediaPlayerManagerEfl;
 
 #if defined(ENABLE_TIZEN_MEDIA_RECORDER)
-class BrowserMediaCaptureHandler;
+class BrowserMediaRecorderHandler;
 
 typedef base::ScopedPtrHashMap<uintptr_t,
-                               std::unique_ptr<BrowserMediaCaptureHandler> >
-    MediaCaptureManagerMap;
+                               std::unique_ptr<BrowserMediaRecorderHandler> >
+    MediaRecorderManagerMap;
 #endif
 
 // This class manages all RenderFrame based media related managers at the
@@ -45,11 +45,11 @@ class CONTENT_EXPORT MediaWebContentsObserver : public WebContentsObserver {
 
 #if defined(ENABLE_TIZEN_MEDIA_RECORDER)
  private:
-  BrowserMediaCaptureHandler* GetMediaCaptureManager(
+  BrowserMediaRecorderHandler* GetMediaRecorderManager(
       RenderFrameHost* render_frame_host);
 
   // Map from RenderFrameHost* to BrowserMediaCaptureHandler.
-  MediaCaptureManagerMap media_capture_managers_;
+  MediaRecorderManagerMap media_recorder_managers_;
 #endif
 
   DISALLOW_COPY_AND_ASSIGN(MediaWebContentsObserver);
index 5b44195..bfa42c1 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "base/time/time.h"
 #include "content/common/content_export.h"
+#include "ui/gfx/geometry/rect.h"
 
 namespace content {
 
@@ -58,11 +59,11 @@ class CONTENT_EXPORT EdgeEffect {
   void ShowObject();
   void HideObject();
 
-  void UpdatePosition(int top_height, int bottom_height);
+  void UpdateRect(int top_control_height, int bottom_control_height);
 
  private:
   const std::string GetSourceString(const Direction direction);
-  void UpdatePosition();
+  void UpdateRectImmediately();
   bool IsVisible();
 
   Evas_Object* parent_view_;
@@ -72,10 +73,8 @@ class CONTENT_EXPORT EdgeEffect {
   bool enabled_;
   bool visible_[DIRECTION_SIZE] = { false };
 
-  int position_y_;
-  int height_;
+  gfx::Rect rect_;
   base::Time hide_timestamp_;
-
 };
 
 } // namespace content
index 07ce554..1da34ac 100644 (file)
@@ -6,6 +6,7 @@
 #define EVENT_RESAMPLER
 
 #include <Ecore.h>
+#include <Evas.h>
 #include <queue>
 
 #include "ui/gfx/geometry/point_f.h"
@@ -40,9 +41,13 @@ class EventResampler {
   explicit EventResampler(EventResamplerClient* client);
   ~EventResampler();
 
-  bool HandleTouchMoveEvent(ui::TouchEvent event);
+  bool HandleTouchEvent(ui::TouchEvent event);
   bool HandleGestureEvent(blink::WebGestureEvent& event);
   bool HasActiveAnimator();
+#if defined(OS_TIZEN)
+  void HandleTouchForValidScrollCheck(Evas_Touch_Point_State state);
+  void CountValidScroll(const blink::WebGestureEvent& event);
+#endif
 
  private:
   static Eina_Bool VsyncAnimatorCallback(void* data);
@@ -58,20 +63,31 @@ class EventResampler {
   EventResamplerClient* client_;
 
   Ecore_Animator* vsync_animator_;
-  bool has_pending_touch_move_event_[MAX_TOUCH_COUNT];
+  bool has_pending_touch_move_event_[MAX_TOUCH_COUNT] = { false };
   bool has_pending_scroll_event_;
   bool has_pending_pinch_event_;
 
   // To process without delay if event isn't processed in last callback.
+  bool is_touchmove_processed_in_last_callback_;
   bool is_scroll_processed_in_last_callback_;
   bool is_pinch_processed_in_last_callback_;
 
+  bool is_update_started_;
+
   std::queue<ui::TouchEvent> touch_move_event_queue_[MAX_TOUCH_COUNT];
   blink::WebGestureEvent last_scroll_update_event_;
   blink::WebGestureEvent last_pinch_update_event_;
 
   gfx::PointF pending_scroll_delta_;
+  gfx::Point last_scroll_delta_;
   float pending_pinch_scale_;
+
+#if defined(OS_TIZEN)
+  unsigned valid_scroll_x_count_;
+  unsigned valid_scroll_y_count_;
+  bool prevent_scroll_x_;
+  bool prevent_scroll_y_;
+#endif
 };
 
 }  // namespace
old mode 100755 (executable)
new mode 100644 (file)
index 38ca2c4..54dad19
@@ -128,6 +128,7 @@ class IMContextEfl {
                                          Ecore_IMF_Context* context,
                                          void* eventInfo);
 #endif
+  void SetComposition(const char* buffer);
   // callback handlers
   void OnCommit(void* event_info);
   void OnPreeditChanged(void* data,
@@ -168,6 +169,9 @@ class IMContextEfl {
   // Whether or not is in form tag.
   bool is_in_form_tag_;
 
+  // IME panel is showing or not.
+  bool is_showing_;
+
   // The current soft keyboard mode and layout
   ui::TextInputMode current_mode_;
   ui::TextInputType current_type_;
index 398bd16..ea37e4f 100644 (file)
@@ -6,10 +6,12 @@
 #define CONTENT_BROWSER_RENDERER_HOST_PEPPER_MEDIA_PLAYER_PEPPER_ELEMENTARY_STREAM_HOST_H_
 
 #include <vector>
+
+#include "base/memory/shared_memory.h"
 #include "base/memory/weak_ptr.h"
 #include "content/browser/renderer_host/pepper/media_player/elementary_stream_listener_private.h"
+#include "ppapi/c/samsung/pp_media_player_samsung.h"
 #include "ppapi/host/resource_host.h"
-#include "ppapi/shared_impl/media_player/serialized_es_packet.h"
 
 namespace content {
 
@@ -18,8 +20,7 @@ class BrowserPpapiHost;
 
 class PepperElementaryStreamHost
     : public ppapi::host::ResourceHost,
-      public ElementaryStreamListenerPrivate,
-      public base::SupportsWeakPtr<PepperElementaryStreamHost> {
+      public ElementaryStreamListenerPrivate {
  public:
   PepperElementaryStreamHost(BrowserPpapiHost*, PP_Instance, PP_Resource);
   virtual ~PepperElementaryStreamHost();
@@ -29,25 +30,67 @@ class PepperElementaryStreamHost
   void OnEnoughData() override;
   void OnSeekData(PP_TimeTicks new_position) override;
 
+  void OnSHMCreated(ppapi::host::ReplyMessageContext reply_context,
+                    uint32_t shm_id,
+                    uint32_t shm_size,
+                    std::unique_ptr<base::SharedMemory> shm);
+
  protected:
   int32_t OnResourceMessageReceived(const IPC::Message&,
                                     ppapi::host::HostMessageContext*) override;
 
+  base::WeakPtr<ElementaryStreamListenerPrivate> ListenerAsWeakPtr();
+
   virtual PepperElementaryStreamPrivate* ElementaryStreamPrivate() = 0;
 
  private:
-  int32_t OnAppendPacket(ppapi::host::HostMessageContext*,
-                         const ppapi::SerializedESPacket&);
+  int32_t ValidateShmBuffer(uint32_t shm_id, uint32_t shm_size);
+  int32_t OnGetShm(ppapi::host::HostMessageContext* context,
+                   uint32_t shm_id,
+                   uint32_t shm_size);
+  int32_t OnAppendPacket(ppapi::host::HostMessageContext*, const PP_ESPacket&);
+  int32_t OnAppendPacketSHM(ppapi::host::HostMessageContext*,
+                            const PP_ESPacket&,
+                            uint32_t shm_id,
+                            uint32_t size);
   int32_t OnAppendEncryptedPacket(ppapi::host::HostMessageContext*,
-                                  const ppapi::SerializedEncryptedESPacket&);
+                                  const PP_ESPacket&,
+                                  const PP_ESPacketEncryptionInfo&);
+  int32_t OnAppendEncryptedPacketSHM(ppapi::host::HostMessageContext*,
+                                     const PP_ESPacket&,
+                                     const PP_ESPacketEncryptionInfo&,
+                                     uint32_t shm_id,
+                                     uint32_t size);
   int32_t OnAppendTrustZonePacket(ppapi::host::HostMessageContext* context,
-                                  const ppapi::SerializedESPacket& packet,
+                                  const PP_ESPacket& packet,
                                   const PP_TrustZoneReference& handle);
   int32_t OnFlush(ppapi::host::HostMessageContext*);
   int32_t OnSetDRMInitData(ppapi::host::HostMessageContext*,
                            const std::vector<uint8_t>& type,
                            const std::vector<uint8_t>& init_data);
 
+  void OnPacketAppended(ppapi::host::ReplyMessageContext context,
+                        uint32_t shm_id,
+                        int32_t result);
+
+  void OnEncryptedPacketAppended(ppapi::host::ReplyMessageContext context,
+                                 uint32_t shm_id,
+                                 int32_t result);
+
+  base::WeakPtrFactory<PepperElementaryStreamHost> weak_ptr_factory_;
+
+  // A vector holding our shm buffers, in sync with a similar vector in the
+  // resource. We use a buffer's index in these vectors as its id on both sides
+  // of the proxy. Only add buffers or update them in place so as not to
+  // invalidate these ids.
+  std::vector<std::unique_ptr<base::SharedMemory>> shm_buffers_;
+  // A vector of true/false indicating if a shm buffer is in use by the decoder.
+  // This is parallel to |shm_buffers_|.
+  std::vector<uint8_t> shm_buffer_busy_;
+
+  // Non-owning pointer
+  BrowserPpapiHost* host_;
+
   DISALLOW_COPY_AND_ASSIGN(PepperElementaryStreamHost);
 };
 
index 21a6996..edf610b 100644 (file)
@@ -9,6 +9,7 @@
 #include <memory>
 
 #include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
 #include "base/callback.h"
 #include "ppapi/shared_impl/media_player/es_packet.h"
 
@@ -35,7 +36,8 @@ class PepperElementaryStreamPrivate
   virtual void SetDRMInitData(const std::vector<uint8_t>& type,
                               const std::vector<uint8_t>& initData,
                               const base::Callback<void(int32_t)>&) = 0;
-  virtual void SetListener(ElementaryStreamListenerPrivate* listener) = 0;
+  virtual void SetListener(
+      base::WeakPtr<ElementaryStreamListenerPrivate> listener) = 0;
   virtual void RemoveListener(ElementaryStreamListenerPrivate* listener) = 0;
 
  protected:
index c1d7650..08263a4 100644 (file)
@@ -107,6 +107,12 @@ class PepperMediaPlayerHost : public ppapi::host::ResourceHost {
                                  const std::string& encoding);
   int32_t OnSetSubtitlesDelay(ppapi::host::HostMessageContext*, PP_TimeDelta);
   int32_t OnSetDisplayRect(ppapi::host::HostMessageContext*, const PP_Rect&);
+  int32_t OnSetDisplayMode(ppapi::host::HostMessageContext*,
+                           PP_MediaPlayerDisplayMode);
+  int32_t OnSetVr360Mode(ppapi::host::HostMessageContext*,
+                         PP_MediaPlayerVr360Mode);
+  int32_t OnSetVr360Rotation(ppapi::host::HostMessageContext*, float, float);
+  int32_t OnSetVr360ZoomLevel(ppapi::host::HostMessageContext*, uint32_t);
   int32_t OnSetDRMSpecificData(ppapi::host::HostMessageContext*,
                                PP_MediaPlayerDRMType,
                                PP_MediaPlayerDRMOperation,
index 8d5b85a..4cb5e74 100644 (file)
@@ -97,7 +97,18 @@ class PepperMediaPlayerPrivate
       const PP_Rect& display_rect,
       const PP_FloatRect& crop_ratio_rect,
       const base::Callback<void(int32_t)>& callback) = 0;
-
+  virtual void SetDisplayMode(
+      PP_MediaPlayerDisplayMode display_mode,
+      const base::Callback<void(int32_t)>& callback) = 0;
+  virtual void SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode,
+                            const base::Callback<void(int32_t)>& callback) = 0;
+  virtual void SetVr360Rotation(
+      float,
+      float,
+      const base::Callback<void(int32_t)>& callback) = 0;
+  virtual void SetVr360ZoomLevel(
+      uint32_t,
+      const base::Callback<void(int32_t)>& callback) = 0;
   virtual void SetDRMSpecificData(
       PP_MediaPlayerDRMType,
       PP_MediaPlayerDRMOperation,
index 5bd7277..a42d1cc 100644 (file)
@@ -12,6 +12,7 @@
 #include "base/single_thread_task_runner.h"
 #include "base/synchronization/lock.h"
 #include "content/browser/renderer_host/pepper/media_player/elementary_stream_listener_private.h"
+#include "content/public/browser/browser_thread.h"
 #include "ppapi/c/pp_time.h"
 
 namespace tracked_objects {
@@ -25,7 +26,7 @@ class ElementaryStreamListenerPrivateWrapper {
  public:
   ElementaryStreamListenerPrivateWrapper();
 
-  void SetListener(ElementaryStreamListenerPrivate* listener);
+  void SetListener(base::WeakPtr<ElementaryStreamListenerPrivate> listener);
   void RemoveListener(ElementaryStreamListenerPrivate* listener);
 
   // Called on player deletion and clean-up
@@ -34,6 +35,7 @@ class ElementaryStreamListenerPrivateWrapper {
   // Below 3 functions are called on player thread
   // and deals with values passed by Platform Player API
 
+  // NOLINTNEXTLINE(runtime/int)
   void OnNeedData(unsigned bytes_max);
   void OnEnoughData();
   void OnSeekData(PP_TimeTicks offset);
@@ -44,19 +46,8 @@ class ElementaryStreamListenerPrivateWrapper {
                       const Method& method,
                       const Args&... args);
 
-  // NOLINTNEXTLINE(runtime/int)
-  void NeedData(unsigned bytes_max);
-
-  void EnoughData();
-
-  void SeekData(PP_TimeTicks offset);
-
-  ElementaryStreamListenerPrivate* listener_;
-  base::WeakPtrFactory<ElementaryStreamListenerPrivateWrapper>
-      weak_ptr_factory_;
-  base::WeakPtr<ElementaryStreamListenerPrivateWrapper> weak_ptr_;
-  base::Lock weak_ptr_lock_;
-  scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
+  base::WeakPtr<ElementaryStreamListenerPrivate> listener_;
+  base::Lock listener_lock_;
 
   DISALLOW_COPY_AND_ASSIGN(ElementaryStreamListenerPrivateWrapper);
 };
@@ -66,8 +57,9 @@ void ElementaryStreamListenerPrivateWrapper::DispatchLocked(
     const tracked_objects::Location& from_here,
     const Method& method,
     const Args&... args) {
-  base::AutoLock guard(weak_ptr_lock_);
-  io_task_runner_->PostTask(from_here, base::Bind(method, weak_ptr_, args...));
+  base::AutoLock guard(listener_lock_);
+  BrowserThread::PostTask(BrowserThread::IO, from_here,
+                          base::Bind(method, listener_, args...));
 }
 
 }  // namespace content
index 06705a3..f32e095 100644 (file)
@@ -35,7 +35,7 @@ class PepperElementaryStreamPrivateTizen : public ElementaryStreamT {
   // Called on player thread
   int32_t SourceAttached(PepperPlayerAdapterInterface* player);
 
-  // Called on main thread
+  // Called on IO thread
   void SourceDetached(PepperPlayerAdapterInterface* player);
   // Called on player thread
   int32_t SetEndOfStream();
@@ -73,7 +73,8 @@ class PepperElementaryStreamPrivateTizen : public ElementaryStreamT {
 
   int32_t InitializeDoneOnPlayerThread(PepperPlayerAdapterInterface* player);
 
-  void SetListener(ElementaryStreamListenerPrivate* listener) override;
+  void SetListener(
+      base::WeakPtr<ElementaryStreamListenerPrivate> listener) override;
 
   void RemoveListener(ElementaryStreamListenerPrivate* listener) override;
 
@@ -129,8 +130,7 @@ class PepperElementaryStreamPrivateTizen : public ElementaryStreamT {
   // non-owning pointer
   PepperESDataSourcePrivate* owner_;
 
-  // non-owning pointer
-  ElementaryStreamListenerPrivate* listener_;
+  base::WeakPtr<ElementaryStreamListenerPrivate> listener_;
 
   // Configuration cache, used to store configuration before an attach.
   CodecConfig codec_config_;
@@ -144,14 +144,14 @@ class PepperElementaryStreamPrivateTizen : public ElementaryStreamT {
 template <typename ElementaryStreamT, typename StreamTraits>
 int32_t PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
     SourceAttached(PepperPlayerAdapterInterface* player) {
-  DCHECK(dispatcher() != nullptr && dispatcher()->player() != nullptr);
+  DCHECK(player != nullptr);
 
   int32_t pp_error = InitializeDoneOnPlayerThread(player);
   if (pp_error != PP_OK)
     return pp_error;
 
   if (listener_)
-    dispatcher()->player()->SetListener(StreamTraits::Type, listener_);
+    player->SetListener(StreamTraits::Type, listener_);
 
   return PP_OK;
 }
@@ -159,10 +159,10 @@ int32_t PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
 template <typename ElementaryStreamT, typename StreamTraits>
 void PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
     SourceDetached(PepperPlayerAdapterInterface* player) {
-  DCHECK(dispatcher() != nullptr && dispatcher()->player() != nullptr);
+  DCHECK(player != nullptr);
 
   if (listener_)
-    dispatcher()->player()->RemoveListener(StreamTraits::Type, listener_);
+    player->RemoveListener(StreamTraits::Type, listener_.get());
 }
 
 template <typename ElementaryStreamT, typename StreamTraits>
@@ -300,7 +300,7 @@ int32_t PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
 
 template <typename ElementaryStreamT, typename StreamTraits>
 void PepperElementaryStreamPrivateTizen<ElementaryStreamT, StreamTraits>::
-    SetListener(ElementaryStreamListenerPrivate* listener) {
+    SetListener(base::WeakPtr<ElementaryStreamListenerPrivate> listener) {
   if (dispatcher() && dispatcher()->player())
     dispatcher()->player()->SetListener(StreamTraits::Type, listener);
 
index 2284568..9e22ec0 100644 (file)
@@ -56,6 +56,8 @@ class PepperESDataSourcePrivateTizen : public PepperESDataSourcePrivate {
   int32_t SetDurationOnPlayerThread(PP_TimeDelta duration,
                                     PepperPlayerAdapterInterface* player);
   int32_t SetEndOfStreamOnPlayerThread(PepperPlayerAdapterInterface* player);
+  int32_t ConfigureDrmSessions();
+  void ClearDrmSessions();
   void DetachListeners();
 
   PlatformContext platform_context_;
index da2960d..19dbbd4 100644 (file)
@@ -98,6 +98,16 @@ class PepperMediaPlayerPrivateTizen : public PepperMediaPlayerPrivate {
   void SetDisplayRect(const PP_Rect& display_rect,
                       const PP_FloatRect& crop_ratio_rect,
                       const base::Callback<void(int32_t)>& callback) override;
+  void SetDisplayMode(PP_MediaPlayerDisplayMode display_mode,
+                      const base::Callback<void(int32_t)>& callback) override;
+  void SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode,
+                    const base::Callback<void(int32_t)>& callback) override;
+  void SetVr360Rotation(float horizontal_angle,
+                        float vertical_angle,
+                        const base::Callback<void(int32_t)>& callback) override;
+  void SetVr360ZoomLevel(
+      uint32_t,
+      const base::Callback<void(int32_t)>& callback) override;
 
   void SetDRMSpecificData(
       PP_MediaPlayerDRMType,
@@ -185,8 +195,6 @@ class PepperMediaPlayerPrivateTizen : public PepperMediaPlayerPrivate {
                                                 PepperPlayerAdapterInterface*,
                                                 PP_TextTrackInfo*);
 
-  void SetSubtitleEncodingOnPlayerThread(PepperPlayerAdapterInterface* player);
-
   void OnTimeNeedsUpdate();
 
   void OnStoppedReply(int32_t result);
@@ -205,11 +213,10 @@ class PepperMediaPlayerPrivateTizen : public PepperMediaPlayerPrivate {
 
   PP_Rect display_rect_;
   PP_FloatRect crop_ratio_rect_;
+  PP_MediaPlayerDisplayMode display_mode_;
 
   PP_TimeTicks current_time_;
 
-  std::string player_subtitle_encoding_;
-
   base::WeakPtrFactory<PepperMediaPlayerPrivateTizen> weak_ptr_factory_;
 
   PepperTizenDRMManager drm_manager_;
index 00f5338..7fb6353 100644 (file)
@@ -5,10 +5,12 @@
 #ifndef CONTENT_BROWSER_RENDERER_HOST_PEPPER_MEDIA_PLAYER_TIZEN_PEPPER_MMPLAYER_ADAPTER_H_
 #define CONTENT_BROWSER_RENDERER_HOST_PEPPER_MEDIA_PLAYER_TIZEN_PEPPER_MMPLAYER_ADAPTER_H_
 
+#include <string>
 #include <player.h>
 #include <player_internal.h>
 #include <player_product.h>
 
+#include <atomic>
 #include <memory>
 #include <queue>
 #include <string>
@@ -23,6 +25,54 @@ namespace content {
 
 class BufferedPacket;
 
+class MMPlayerMediaFormat
+    : public base::RefCountedThreadSafe<MMPlayerMediaFormat> {
+ public:
+  virtual media_format_h GetMediaFormat() = 0;
+
+ protected:
+  friend class base::RefCountedThreadSafe<MMPlayerMediaFormat>;
+  MMPlayerMediaFormat() = default;
+  virtual ~MMPlayerMediaFormat() = default;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MMPlayerMediaFormat);
+};
+
+class MMPlayerAudioFormat : public MMPlayerMediaFormat {
+ public:
+  static scoped_refptr<MMPlayerAudioFormat> Create(
+      const PepperAudioStreamInfo& stream_info);
+
+  media_format_h GetMediaFormat() override;
+ private:
+  friend class base::RefCountedThreadSafe<MMPlayerAudioFormat>;
+  MMPlayerAudioFormat(media_format_h handle,
+                      const PepperAudioStreamInfo& stream_info);
+  ~MMPlayerAudioFormat() override;
+
+  std::vector<uint8_t> codec_extradata_;
+  player_media_stream_audio_extra_info_s extra_info_;
+  media::ScopedMediaFormat format_;
+};
+
+class MMPlayerVideoFormat : public MMPlayerMediaFormat {
+ public:
+  static scoped_refptr<MMPlayerVideoFormat> Create(
+      const PepperVideoStreamInfo& stream_info);
+
+  media_format_h GetMediaFormat() override;
+ private:
+  friend class base::RefCountedThreadSafe<MMPlayerVideoFormat>;
+  MMPlayerVideoFormat(media_format_h handle,
+                      const PepperVideoStreamInfo& stream_info);
+  ~MMPlayerVideoFormat() override;
+
+  std::vector<uint8_t> codec_extradata_;
+  player_media_stream_video_extra_info_s extra_info_;
+  media::ScopedMediaFormat format_;
+};
+
 class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
  public:
   PepperMMPlayerAdapter();
@@ -58,12 +108,16 @@ class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
   int32_t SetDisplay(void* display, bool is_windowless) override;
   int32_t SetDisplayRect(const PP_Rect& display_rect,
                          const PP_FloatRect& crop_ratio_rect) override;
+  int32_t SetDisplayMode(PP_MediaPlayerDisplayMode display_mode) override;
+  int32_t SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode) override;
+  int32_t SetVr360Rotation(float horizontal_angle,
+                           float vertical_angle) override;
+  int32_t SetVr360ZoomLevel(uint32_t zoom_level) override;
   int32_t SetDuration(PP_TimeDelta duration) override;
-  int32_t SetExternalSubtitlesPath(const std::string& file_path) override;
+  int32_t SetExternalSubtitlesPath(const std::string& file_path,
+                                   const std::string& encoding) override;
   int32_t SetStreamingProperty(PP_StreamingProperty property,
                                const std::string& data) override;
-  int32_t ValidateSubtitleEncoding(const std::string& encoding) override;
-  int32_t SetSubtitlesEncoding(const std::string& encoding) override;
   int32_t SetSubtitlesDelay(PP_TimeDelta delay) override;
   int32_t SetVideoStreamInfo(const PepperVideoStreamInfo& stream_info) override;
 
@@ -82,12 +136,15 @@ class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
   int32_t GetVideoTracksList(
       std::vector<PP_VideoTrackInfo>* track_list) override;
 
+  bool IsDisplayModeSupported(PP_MediaPlayerDisplayMode display_mode) override;
+
   // Callback registering
   int32_t SetErrorCallback(
       const base::Callback<void(PP_MediaPlayerError)>& callback) override;
 
  private:
   void RegisterMediaCallbacks(PP_ElementaryStream_Type_Samsung type) override;
+  void ClearMediaCallbacks();
 
   void RegisterToBufferingEvents(bool should_register) override;
   void RegisterToMediaEvents(bool should_register) override;
@@ -105,6 +162,11 @@ class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
       unsigned long long bytes);  // NOLINT(runtime/int)
   void OnBufferOverflow(PP_ElementaryStream_Type_Samsung stream);
 
+  void SeekCompleted();
+
+  int32_t UnpreparePlayer();
+  void StopPlayer();
+
   static void OnStreamBufferStatus(
       PP_ElementaryStream_Type_Samsung stream,
       player_media_stream_buffer_status_e status,
@@ -121,6 +183,9 @@ class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
       unsigned long long bytes,  // NOLINT(runtime/int)
       void* user_data);
 
+  int32_t ValidateSubtitleEncoding(const std::string& encoding);
+  int32_t SetSubtitlesEncoding(const std::string& encoding);
+
   // NOLINTNEXTLINE(runtime/int)
   static void OnAudioSeekData(unsigned long long offset, void* user_data);
 
@@ -149,19 +214,21 @@ class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
   static void OnInitializeDone(void* user_data);
   static void OnBufferingEvent(int percent, void* user_data);
 
-  media_format_h GetMediaFormat(PP_ElementaryStream_Type_Samsung stream_type);
+  scoped_refptr<MMPlayerMediaFormat> GetMediaFormat(
+      PP_ElementaryStream_Type_Samsung stream_type);
   std::queue<std::unique_ptr<BufferedPacket>>* GetPacketsBuffer(
       PP_ElementaryStream_Type_Samsung stream_type);
   int32_t PushMediaStream(PP_ElementaryStream_Type_Samsung stream_type,
                           std::unique_ptr<BufferedPacket> pkt);
   void AppendBufferedPackets(PP_ElementaryStream_Type_Samsung stream_type,
                              int64_t bytes);
+  void FlushPacketsOnAppendThread();
+
+  void FlushPacketsAndUpdateConfigs();
 
   player_h player_;
-  media::ScopedMediaFormat audio_format_;
-  media::ScopedMediaFormat video_format_;
-  std::vector<uint8_t> audio_codec_extradata_;
-  std::vector<uint8_t> video_codec_extradata_;
+  scoped_refptr<MMPlayerAudioFormat> audio_format_;
+  scoped_refptr<MMPlayerVideoFormat> video_format_;
 
   std::queue<std::unique_ptr<BufferedPacket>> audio_packets_;
   std::queue<std::unique_ptr<BufferedPacket>> video_packets_;
@@ -170,10 +237,11 @@ class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
   // MM Player is not able to unprepare itself if it did not completed
   // prepare operation. In pull mode complete operation is completed only after
   // sending some packets. So when data source is detached before sending
-  // packets we destroy  and recreate player instead of unpreparing it.
+  // packets we destroy and recreate player instead of unpreparing it.
   //
   // Don't change this value explictly; use Set/UnsetPlayerPreparing instead.
-  bool player_preparing_;
+  enum class PlayerPreparingState { kNone, kPreparing, kPrepared };
+  PlayerPreparingState player_preparing_;
 
   base::Callback<void(int32_t)> stop_callback_;
 
@@ -181,6 +249,16 @@ class PepperMMPlayerAdapter : public PepperPlayerAdapterBase {
   // buffering started event. This flag helps make sure buffering started will
   // always be sent.
   bool buffering_started_;
+
+  bool audio_media_callback_set_;
+  bool video_media_callback_set_;
+
+  std::atomic<bool> packets_flush_requested_;
+  player_state_e target_state_after_seek_;
+  bool es_mode;
+  bool waiting_for_key_frame_;
+
+  std::string player_subtitle_encoding_;
 };
 
 }  // namespace content
index dc943de..801608e 100644 (file)
@@ -18,7 +18,7 @@ class PepperPlayerAdapterBase : public PepperPlayerAdapterInterface {
 
   int32_t Reset() override;
   void SetListener(PP_ElementaryStream_Type_Samsung type,
-                   ElementaryStreamListenerPrivate* listener) override;
+      base::WeakPtr<ElementaryStreamListenerPrivate> listener) override;
   void RemoveListener(PP_ElementaryStream_Type_Samsung type,
                       ElementaryStreamListenerPrivate* listener) override;
   void SetMediaEventsListener(MediaEventsListenerPrivate* listener) override;
@@ -29,6 +29,11 @@ class PepperPlayerAdapterBase : public PepperPlayerAdapterInterface {
   int32_t SetDisplayRectUpdateCallback(
       const base::Callback<void()>& callback) override;
 
+  /* Supported only in MMPlayer */
+  int32_t SetVr360Mode(PP_MediaPlayerVr360Mode);
+  int32_t SetVr360Rotation(float, float);
+  int32_t SetVr360ZoomLevel(uint32_t);
+
  protected:
   enum class PepperPlayerCallbackType {
     DisplayRectUpdateCallback,
index 2a628e0..6aa5531 100644 (file)
@@ -88,17 +88,21 @@ class PepperPlayerAdapterInterface {
   virtual int32_t SetDisplay(void* display, bool is_windowless) = 0;
   virtual int32_t SetDisplayRect(const PP_Rect& display_rect,
                                  const PP_FloatRect& crop_ratio_rect) = 0;
+  virtual int32_t SetDisplayMode(PP_MediaPlayerDisplayMode display_mode) = 0;
+  virtual int32_t SetVr360Mode(PP_MediaPlayerVr360Mode vr360_mode) = 0;
+  virtual int32_t SetVr360Rotation(float horizontal_angle,
+                                   float vertical_angle) = 0;
+  virtual int32_t SetVr360ZoomLevel(uint32_t zoom_level) = 0;
   // Set duration of a current ES media.
   //
   // Please note this might be called before PrepareES. If underlying player
   // needs to set duration after PrepareES, duration must be cached and applied
   // during PrepareES by the adapter.
   virtual int32_t SetDuration(PP_TimeDelta duration) = 0;
-  virtual int32_t SetExternalSubtitlesPath(const std::string& file_path) = 0;
+  virtual int32_t SetExternalSubtitlesPath(const std::string& file_path,
+                                           const std::string& encoding) = 0;
   virtual int32_t SetStreamingProperty(PP_StreamingProperty property,
                                        const std::string& data) = 0;
-  virtual int32_t ValidateSubtitleEncoding(const std::string& encoding) = 0;
-  virtual int32_t SetSubtitlesEncoding(const std::string& encoding) = 0;
   virtual int32_t SetSubtitlesDelay(PP_TimeDelta delay) = 0;
   virtual int32_t SetVideoStreamInfo(
       const PepperVideoStreamInfo& stream_info) = 0;
@@ -122,6 +126,9 @@ class PepperPlayerAdapterInterface {
   virtual int32_t GetVideoTracksList(
       std::vector<PP_VideoTrackInfo>* track_list) = 0;
 
+  virtual bool IsDisplayModeSupported(
+      PP_MediaPlayerDisplayMode display_mode) = 0;
+
   // Callback registering
   virtual int32_t SetErrorCallback(
       const base::Callback<void(PP_MediaPlayerError)>& callback) = 0;
@@ -130,7 +137,7 @@ class PepperPlayerAdapterInterface {
 
   // Listeners registering
   virtual void SetListener(PP_ElementaryStream_Type_Samsung type,
-                           ElementaryStreamListenerPrivate* listener) = 0;
+      base::WeakPtr<ElementaryStreamListenerPrivate> listener) = 0;
   virtual void RemoveListener(PP_ElementaryStream_Type_Samsung type,
                               ElementaryStreamListenerPrivate* listener) = 0;
   virtual void SetMediaEventsListener(MediaEventsListenerPrivate* listener) = 0;
index ba53f3a..9908494 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "content/browser/renderer_host/pepper/media_player/tizen/pepper_player_adapter_base.h"
 
+#include "base/single_thread_task_runner.h"
 #include "base/synchronization/condition_variable.h"
 #include "base/synchronization/lock.h"
 
@@ -49,12 +50,12 @@ class PepperSMPlayerAdapter : public PepperPlayerAdapterBase {
   int32_t SetDisplay(void* display, bool is_windowless) override;
   int32_t SetDisplayRect(const PP_Rect& display_rect,
                          const PP_FloatRect& crop_ratio_rect) override;
+  int32_t SetDisplayMode(PP_MediaPlayerDisplayMode display_mode) override;
   int32_t SetDuration(PP_TimeDelta duration) override;
-  int32_t SetExternalSubtitlesPath(const std::string& file_path) override;
+  int32_t SetExternalSubtitlesPath(const std::string& file_path,
+                                   const std::string& encoding) override;
   int32_t SetStreamingProperty(PP_StreamingProperty property,
                                const std::string& data) override;
-  int32_t ValidateSubtitleEncoding(const std::string& encoding) override;
-  int32_t SetSubtitlesEncoding(const std::string& encoding) override;
   int32_t SetSubtitlesDelay(PP_TimeDelta delay) override;
   int32_t SetVideoStreamInfo(const PepperVideoStreamInfo& stream_info) override;
 
@@ -73,6 +74,8 @@ class PepperSMPlayerAdapter : public PepperPlayerAdapterBase {
   int32_t GetVideoTracksList(
       std::vector<PP_VideoTrackInfo>* track_list) override;
 
+  bool IsDisplayModeSupported(PP_MediaPlayerDisplayMode display_mode) override;
+
   // Callback registering
   int32_t SetErrorCallback(
       const base::Callback<void(PP_MediaPlayerError)>& callback) override;
@@ -98,6 +101,9 @@ class PepperSMPlayerAdapter : public PepperPlayerAdapterBase {
   void RegisterToMediaEvents(bool should_register) override;
   void RegisterToSubtitleEvents(bool should_register) override;
 
+  int32_t ValidateSubtitleEncoding(const std::string& encoding);
+  int32_t SetSubtitlesEncoding(const std::string& encoding);
+
   void OnError(PP_MediaPlayerError error, const char* msg);
   void OnInitComplete();
   void OnInitFailed();
@@ -118,6 +124,8 @@ class PepperSMPlayerAdapter : public PepperPlayerAdapterBase {
   // NOLINTNEXTLINE(runtime/int)
   static bool OnVideoSeekData(unsigned long long offset, void* user_data);
 
+  void SendBufferingEvents();
+
   using ISmPlayerPtr = std::unique_ptr<ISmPlayer, SmPlayerDeleter>;
   ISmPlayerPtr player_;
 
@@ -129,6 +137,9 @@ class PepperSMPlayerAdapter : public PepperPlayerAdapterBase {
 
   bool is_playing_;
   bool external_subs_attached_;
+  PP_MediaPlayerState state_;
+  scoped_refptr<base::SingleThreadTaskRunner> initialization_cb_runner_;
+  base::WeakPtrFactory<PepperSMPlayerAdapter> weak_ptr_factory_;
 };
 
 }  // namespace content
index 0758427..17e8d6a 100644 (file)
@@ -54,6 +54,7 @@ class PepperVideoElementaryStreamPrivateTizen
   explicit PepperVideoElementaryStreamPrivateTizen(
       PepperESDataSourcePrivate* es_data_source);
 
+  void SubmitCodecExtraData(const ppapi::ESPacket* packet);
   void ExtractCodecExtraData(const ppapi::VideoCodecConfig& config);
   void ExtractH264ExtraData(const ppapi::VideoCodecConfig& config);
   void ExtractH265ExtraData(const ppapi::VideoCodecConfig& config);
index ab52ced..d4ac6d8 100644 (file)
@@ -141,8 +141,10 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
   void FocusedNodeChanged(bool is_editable_node,
                           const gfx::Rect& node_bounds_in_screen
 #if defined(OS_TIZEN_TV_PRODUCT)
-                          ,
-                          bool is_radio_or_checkbox
+                          , bool is_radio_or_checkbox
+#endif
+#if defined(USE_WAYLAND)
+                          , bool is_content_editable
 #endif
                           ) override;
 
@@ -190,6 +192,8 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
 
   void ClearCompositorFrame () override;
 
+  bool IsFirstVisuallyNonEmptyPaint() const override;
+
   // ui::GestureEventHelper implementation.
   bool CanDispatchToConsumer(ui::GestureConsumer* consumer) override;
   void DispatchSyntheticTouchEvent(ui::TouchEvent* event) override;
@@ -240,6 +244,11 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
   void HandleGesture(blink::WebGestureEvent&);
   void HandleTouchEvent(ui::TouchEvent*);
 
+  bool GetHorizontalPanningHold() const { return horizontal_panning_hold_; }
+  void SetHorizontalPanningHold(bool hold) { horizontal_panning_hold_ = hold; }
+  bool GetVerticalPanningHold() const { return vertical_panning_hold_; }
+  void SetVerticalPanningHold(bool hold) { vertical_panning_hold_ = hold; }
+
   size_t visible_top_controls_height() const {
     return visible_top_controls_height_;
   }
@@ -272,6 +281,7 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
   }
 
   void SetClearTilesOnHide(bool enable);
+  bool SetCompositingBordersVisiblity(bool enable);
   // |snapshot_area| is relative coordinate system based on Webview.
   // (0,0) is top left corner.
   Evas_Object* GetSnapshot(const gfx::Rect& snapshot_area,
@@ -375,9 +385,21 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
   void SetFocusInOutCallbacks(const base::Callback<void(void)>& on_focus_in,
                               const base::Callback<void(void)>& on_focus_out);
 
+  void SetPageVisibility(bool visible);
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void DrawLabel(Evas_Object* image, Eina_Rectangle rect);
+  void ClearLabels();
+#endif
+
   void RequestSelectionRect() const;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void RequestCanvasFullscreen() const;
+#endif
   void OnSelectionRectReceived(const gfx::Rect& selection_rect) const;
   bool IsFocusedNodeEditable() const { return is_focused_node_editable_; }
+#if defined(USE_WAYLAND)
+  bool IsFocusedNodeContentEditable() const { return is_content_editable_; }
+#endif
   void UpdateSpatialNavigationStatus(bool enable);
   void UpdateHwKeyboardStatus(bool status) {
     is_hw_keyboard_connected_ = status;
@@ -391,6 +413,9 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
   const gfx::Vector2dF& last_scroll_offset() const {
     return last_scroll_offset_;
   }
+#if defined(OS_TIZEN)
+  void UpdatePhysicalBackingSize();
+#endif
 
  protected:
   friend class RenderWidgetHostView;
@@ -482,15 +507,23 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
   Evas_Object* content_image_elm_host_;
   bool evas_gl_initialized_;
   float device_scale_factor_;
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+  std::vector<Evas_Object*> voice_manager_labels_;
+#endif
   bool magnifier_;
 
   // Whether we are currently loading.
   bool is_loading_;
 
+  // Whether a page is visible
+  bool is_visible_;
+
   // If set, it's usually smaller than the view size not to allow top Elm widgets
   // (select picker) to overlap web content.
   gfx::Size custom_viewport_size_;
+#if defined(OS_TIZEN)
+  gfx::Size physical_backing_size_;
+#endif
 
   scoped_refptr<EvasEventHandler> evas_event_handler_;
 
@@ -554,6 +587,8 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
 
   bool touchstart_consumed_;
   bool touchend_consumed_;
+  bool horizontal_panning_hold_;
+  bool vertical_panning_hold_;
   bool is_scrolling_needed_;
 
   FrameStatusMask frame_status_;
@@ -575,6 +610,9 @@ class CONTENT_EXPORT RenderWidgetHostViewEfl
   base::Closure process_snapshot_request_callback_;
 
   bool is_focused_node_editable_;
+#if defined(USE_WAYLAND)
+  bool is_content_editable_;
+#endif
   bool is_hw_keyboard_connected_;
 
   base::WeakPtrFactory<RenderWidgetHostViewEfl> weak_factory_;
index 9d42081..e69c0b6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2013 Samsung Electronics. All rights reserved.
+// Copyright 2013-2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -170,8 +170,6 @@ class CONTENT_EXPORT SelectionControllerEfl {
   bool IsSelectionValid(const gfx::Rect& left_rect,
                         const gfx::Rect& right_rect);
 
-  void QuerySelectionStyle();
-
   void ShowContextMenu();
   void CancelContextMenu(int request_id);
 
index ae1fddd..be9835d 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "base/location.h"
 #include "base/strings/string16.h"
+#include "base/threading/thread.h"
 #include "content/browser/speech/speech_recognizer.h"
 #include "content/public/common/speech_recognition_result.h"
 
@@ -63,12 +64,21 @@ class CONTENT_EXPORT SpeechRecognizerImplTizen : public SpeechRecognizer {
                             void* user_data);
   static void OnError(stt_h stt, stt_error_e reason, void* user_data);
 
+  void HandleRecognitionResult(stt_h stt,
+                               stt_result_event_e event,
+                               const char** data,
+                               int data_count,
+                               const char* msg);
+  void HandleStateChange(stt_h stt, stt_state_e previous, stt_state_e current);
+
   stt_h handle_;
   std::string language_;
   bool is_lang_supported_;
   bool continuous_;
   std::string recognition_type_;
   bool is_aborted_;
+  const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+  base::WeakPtrFactory<SpeechRecognizerImplTizen> weak_factory_;
 };
 
 }  // content
index 8b07ad9..d207a1e 100644 (file)
@@ -41,6 +41,7 @@ class TtsTizen {
   // Get voices one by one from tts engine, append them into a voice list
   void AddVoice(std::string language, tts_voice_type_e name);
   bool IsTtsInitialized() const { return tts_initialized_; }
+  void ChangeTtsDefaultVoice(const std::string, const int);
 
  private:
   // Create and Set tts and tts callback. If any of these failes, tts will not work at all.
index 8392503..f3b7938 100644 (file)
@@ -1,5 +1,5 @@
 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2014-2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -85,7 +85,6 @@ class CONTENT_EXPORT WebContentsViewEfl
   int GetOrientation() const { return orientation_; }
   void SetTouchEventsEnabled(bool);
   void SetPageScaleFactor(float);
-  void QuerySelectionStyle();
 
   void HandleZoomGesture(blink::WebGestureEvent& event);
 
index 79e1c71..3adb4ed 100644 (file)
@@ -20,7 +20,7 @@ class RenderWidgetHost;
 
 class WebDragDestEfl {
  public:
-  WebDragDestEfl(WebContents* web_contents);
+  explicit WebDragDestEfl(WebContents* web_contents);
   ~WebDragDestEfl();
 
   blink::WebDragOperationsMask GetAction() { return drag_action_; }
index 5f9d738..dc16880 100644 (file)
@@ -54,10 +54,6 @@ class WebDragSourceEfl {
   // The tab we're manging the drag for.
   WebContentsImpl* web_contents_;
 
-  // The drop data for the current drag (for drags that originate in the render
-  // view). Non-NULL iff there is a current drag.
-  std::unique_ptr<DropData> drop_data_;
-
   // The image used for depicting the drag, and the offset between the cursor
   // and the top left pixel.
   SkBitmap image_;
index f36b0a9..51cfdad 100644 (file)
@@ -25,6 +25,7 @@
 #include "content/common/gpu/media/tizen_tv_resource_manager.h"
 #include "media/video/picture.h"
 #include "media/video/video_decode_accelerator.h"
+#include "ui/gfx/color_space.h"
 #include "ui/gfx/geometry/size_f.h"
 #include "ui/gl/egl_util.h"
 #include "ui/gl/gl_bindings.h"
@@ -51,15 +52,16 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   // Decoder API
   bool Initialize(const Config& config, Client* client) override;
   void Decode(const media::BitstreamBuffer& bitstream_buffer) override;
-  void AssignPictureBuffers(const std::vector<media::PictureBuffer>& buffers);
+  void AssignPictureBuffers(
+      const std::vector<media::PictureBuffer>& buffers) override;
   void ReusePictureBuffer(int32_t picture_buffer_id) override;
   void Flush() override;
   void Reset() override;
   void Destroy() override;
   bool TryToSetupDecodeOnSeparateThread(
       const base::WeakPtr<Client>& decode_client,
-      const scoped_refptr<base::SingleThreadTaskRunner>&
-          decode_task_runner) override;
+      const scoped_refptr<base::SingleThreadTaskRunner>& decode_task_runner)
+      override;
 
   // Below functions are called from private OMX's threads
   void OnOmxEvent(OMX_HANDLETYPE hComponent,
@@ -79,29 +81,13 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   // Record for decoded pictures that can be sent to PictureReady.
   struct PictureRecord;
 
-  // Record for output buffers.
-  struct OutputRecord {
-    OutputRecord();
-    ~OutputRecord();
-    OMX_BUFFERHEADERTYPE* buf_hdr;
-    bool at_device;  // held by device.
-    bool at_client;  // held by client.
-    bool is_mapped;  // have omx buf assigned to it
-    tbm_surface_h tbm_surf;
-    EGLImageKHR egl_image;  // EGLImageKHR for the output buffer.
-    EGLSyncKHR egl_sync;    // sync the compositor's use of the EGLImage.
-    int32_t picture_id;     // picture buffer id as returned to PictureReady().
-    int32_t texture_id;
-    bool cleared;  // Whether the texture is cleared and safe to render
-                   // from. See TextureManager for details.
-  };
-
   // Describes decoded frame
   struct DecodedVideoFrame {
     // Video frame info
     int32_t timestamp;
     gfx::Size res;
     gfx::Size effective_res;
+    gfx::Size next_res;
     OMX_U32 framerate;
     bool is_eos;
     bool show_frame;
@@ -118,7 +104,7 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
     DecodedVideoFrame();
     DecodedVideoFrame(const DecodedVideoFrame&);
     explicit DecodedVideoFrame(const OMX_BUFFERHEADERTYPE*);
-    bool IsDifferentResolution(const DecodedVideoFrame& other);
+    bool IsChangingResolution(void);
     bool IsValid();
 
    private:
@@ -126,6 +112,37 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
     bool is_valid;
   };
 
+  struct PictureBufferDesc {
+    explicit PictureBufferDesc(DecodedVideoFrame* frame);
+    PictureBufferDesc(void);
+    bool IsValid(void) { return is_valid; }
+    std::string ToString();
+    bool operator!=(const PictureBufferDesc& other);
+    bool operator==(const PictureBufferDesc& other);
+    gfx::Size size;
+    unsigned y_linesize;
+    unsigned u_linesize;
+    unsigned v_linesize;
+
+   private:
+    bool is_valid;
+  };
+
+  // Record for output buffers.
+  struct OutputRecord {
+    OutputRecord();
+    ~OutputRecord();
+    bool at_client;  // held by client.
+    bool is_mapped;  // have texture assigned
+    tbm_surface_h tbm_surf;
+    EGLImageKHR egl_image;  // EGLImageKHR for the output buffer.
+    EGLSyncKHR egl_sync;    // sync the compositor's use of the EGLImage.
+    int32_t picture_id;     // picture buffer id as returned to PictureReady().
+    int32_t texture_id;
+    PictureBufferDesc buffer_desc;
+    bool should_destroy;
+  };
+
   // Input buffer
   struct InputFrameBuffer {
     InputFrameBuffer()
@@ -158,6 +175,21 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
     kPortEnable,
   };
 
+  // Internal state of the decoder.
+  enum State {
+    kUninitialized,  // Initialize() not yet called.
+    kInitializing,   // Initialize() did all synchronous init steps.
+                     // OMX component is initializing asynchronously.
+    kInitialized,    // Initialize() returned true; ready to start decoding.
+    kDecoding,       // DecodeBufferInitial() successful; decoding frames.
+    kResetting,      // Presently resetting.
+    kAfterReset,     // After Reset(), ready to start decoding again.
+    kChangingResolution,  // Performing resolution change, all remaining
+                          // pre-change frames decoded and processed.
+    kDestroying,
+    kError,  // Error in kDecoding state.
+  };
+
   struct InputContext {
     InputContext() : last_pts(0), input_port_state(kPortDisabled) {
       is_error.store(false);
@@ -179,46 +211,39 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
 
   struct OutputContext {
     OutputContext()
-        : decoder_is_flushing(false),
-          decoder_is_resetting(false),
+        : decoder_state(kUninitialized),
+          decoder_is_flushing(false),
           no_decoded_frames(0),
-          decoded_video_info_present(false),
           output_buffers_requested_count(0),
           output_port_state(kPortDisabled) {
       is_error.store(false);
     }
-    std::queue<int> output_records_free;
+    std::list<int> output_records_free;
     OmxOutputBuffer output_buffer;
     DecodedVideoFrame last_frame;
+    State decoder_state;
     bool decoder_is_flushing;
-    bool decoder_is_resetting;
     int no_decoded_frames;
-    bool decoded_video_info_present;
+    // nonzero value means GrowOutputRecordsTask() was started
     int output_buffers_requested_count;
+    PictureBufferDesc output_buffers_requested_desc;
     OmxPortState output_port_state;
+    gfx::ColorSpace color_space;
     // can be changed without output_ctx_lock_ held
     std::atomic<bool> is_error;
   };
 
-  // Internal state of the decoder.
-  enum State {
-    kUninitialized,  // Initialize() not yet called.
-    kInitialized,    // Initialize() returned true; ready to start decoding.
-    kDecoding,       // DecodeBufferInitial() successful; decoding frames.
-    kResetting,      // Presently resetting.
-    kAfterReset,     // After Reset(), ready to start decoding again.
-    kChangingResolution,  // Performing resolution change, all remaining
-                          // pre-change frames decoded and processed.
-    kDestroying,
-    kError,  // Error in kDecoding state.
+  enum InitResult {
+    kInitPending,
+    kInitOk,
+    kInitError,
   };
 
   // Input related functions
   void DecodeBufferTask();
   void DecodeTask(const media::BitstreamBuffer& bitstream_buffer);
   void ScheduleDecodeBufferTaskIfNeeded();
-  bool AdvanceFrameFragment(const uint8_t* data, size_t size, size_t* endpos);
-  bool AppendToInputFrame(const void* data, size_t size);
+  bool AppendAndFlushInputFrame(const void* data, size_t size);
   bool AppendToInputFrameBuffer(const void* data, size_t size);
   // Must be called with input_ctx_lock_ held */
   bool DoEmptyThisBuffer(int idx);
@@ -229,9 +254,11 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
                               std::unique_ptr<EGLSyncKHRRef> egl_sync_ref);
   void DoFillThisBuffer();
   void ProcessLastFrame();
-  bool GrowOutputRecords(DecodedVideoFrame* frame_info, int grow_by);
+  bool GrowOutputRecords();
   void GrowOutputRecordsTask();
-  bool InitTbmSurface(OutputRecord* rec, const DecodedVideoFrame& frame_info);
+  bool ScheduleGrowRecords(const PictureBufferDesc& desc);
+  void MarkRecordsForDeletion(PictureBufferDesc* with_desc);
+  bool InitTbmSurface(OutputRecord* rec, const PictureBufferDesc& desc);
   bool CopyOmxBufToTbm(const DecodedVideoFrame& frame_info,
                        const OutputRecord& rec);
   bool CreateEGLImage(EGLDisplay egl_display,
@@ -243,9 +270,9 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   // OMX related functions
   bool InitializeOmxComponent();
   bool InitializeOmxComponentBasic();
+  InitResult InitializeOmxComponentAsync();
   bool DestroyOmxComponent();
   bool SetOmxDecoderInputType();
-  bool SwitchComponentStateWait(OMX_STATETYPE new_state);
   bool SwitchComponentState(OMX_STATETYPE new_state);
   bool SwitchPortState(PortEnableChange change, OMX_U32 port_index);
   // Event handlers
@@ -266,7 +293,9 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   bool CreateOutputBuffer();
   bool DestroyOutputBuffer();
   bool DestroyInputBuffers();
-  bool DestroyOutputRecords();
+  void DestroyOutputRecords();
+  bool DestroyOutputRecord(int idx);
+  void PruneOutputRecordsTask();
 
   // Other functions
   void NotifyError(Error error);
@@ -277,6 +306,10 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   void ResetDoneTask();
   void DestroyTaskFinish();
   void DestroyTask();
+  void InitTask();
+  InitResult DoInit();
+  void ContinueInitIfNeeded();
+  void SetDecoderState(State new_state);
 
   // Decoder variables
 
@@ -292,6 +325,8 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   base::Thread decoder_output_thread_;
   std::unique_ptr<base::WeakPtrFactory<Client> > client_ptr_factory_;
   base::WeakPtr<Client> client_;
+  base::WaitableEvent init_done_;
+  bool init_success_;
   State decoder_state_;
   bool decoder_flushing_;
 
@@ -299,7 +334,6 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   // Those can be accessed from other threads without
   // any locking.
   media::VideoCodecProfile video_profile_;
-  std::unique_ptr<media::H264Parser> decoder_h264_parser_;
   tbm_bufmgr tbm_bufmgr_;
   base::Callback<bool(void)> make_context_current_;
   EGLDisplay egl_display_;
@@ -316,7 +350,6 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   std::queue<linked_ptr<BitstreamBufferRef> > decoder_input_queue_;
   std::vector<InputFrameBuffer> input_frames_;
   int decoder_current_input_buffer_;
-  bool decoder_partial_frame_pending_;
   int decoder_decode_buffer_tasks_scheduled_;
 
   // Output related variables
@@ -340,8 +373,6 @@ class CONTENT_EXPORT TizenOmxVideoDecodeAccelerator
   OMX_STATETYPE component_state_;
   // state we currently changing to; OMX_StateMax means no info
   OMX_STATETYPE component_req_state_;
-  // Used to wait on child thread for initialization of omx component
-  base::WaitableEvent component_state_changed_;
   int component_flush_requested_;
   bool omx_core_init_done_;
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/media/media_param_traits_efl.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/content/common/media/media_param_traits_efl.h
new file mode 100644 (file)
index 0000000..2b86c4e
--- /dev/null
@@ -0,0 +1,27 @@
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_COMMON_MEDIA_MEDIA_PARAM_TRAITS_EFL_H_
+#define CONTENT_COMMON_MEDIA_MEDIA_PARAM_TRAITS_EFL_H_
+
+#include "base/pickle.h"
+#include "content/common/content_export.h"
+#include "ipc/ipc_param_traits.h"
+#include "media/base/ranges.h"
+
+namespace IPC {
+
+template <>
+struct CONTENT_EXPORT ParamTraits<media::Ranges<base::TimeDelta>> {
+  typedef media::Ranges<base::TimeDelta> param_type;
+  static void Write(base::Pickle* m, const param_type& p);
+  static bool Read(const base::Pickle* m,
+                   base::PickleIterator* iter,
+                   param_type* r);
+  static void Log(const param_type& p, std::string* l);
+};
+
+}  // namespace IPC
+
+#endif  // CONTENT_COMMON_MEDIA_MEDIA_PARAM_TRAITS_EFL_H_
index 47cb757..c00af5b 100644 (file)
 #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
 #include "ui/gfx/geometry/rect_f.h"
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "content/common/media/media_param_traits_efl.h"
+#include "media/base/ranges.h"
+#endif
+
 #undef IPC_MESSAGE_EXPORT
 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
 #define IPC_MESSAGE_START MediaPlayerMsgStart
@@ -67,6 +72,16 @@ IPC_STRUCT_TRAITS_MEMBER(media_packet)
 IPC_STRUCT_TRAITS_END()
 #endif
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+IPC_STRUCT_TRAITS_BEGIN(blink::WebMediaPlayer::register_timeline_cb_info_s)
+IPC_STRUCT_TRAITS_MEMBER(timeline_selector)
+IPC_STRUCT_TRAITS_MEMBER(units_per_tick)
+IPC_STRUCT_TRAITS_MEMBER(units_per_second)
+IPC_STRUCT_TRAITS_MEMBER(content_time)
+IPC_STRUCT_TRAITS_MEMBER(timeline_state)
+IPC_STRUCT_TRAITS_END()
+#endif
+
 // Initialize Efl player.
 IPC_MESSAGE_ROUTED5(MediaPlayerEflHostMsg_Init,
                     int /* player_id */,
@@ -134,6 +149,21 @@ IPC_MESSAGE_ROUTED4(MediaPlayerEflMsg_AddTextTrack,
                     std::string /* label */,
                     std::string /* language */,
                     std::string /* id */)
+// Set Active Text Track
+IPC_MESSAGE_ROUTED3(MediaPlayerEflHostMsg_SetActiveTextTrack,
+                    int /* player_id */,
+                    int /* id */,
+                    bool /*is_in_band*/)
+// notify subtitle play track
+IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_NotifyPlayTrack,
+                    int /* player_id */,
+                    int /* id */)
+// notify subtitle play
+IPC_MESSAGE_ROUTED4(MediaPlayerEflHostMsg_NotifySubtitlePlay,
+                    int /* player_id */,
+                    int /* id */,
+                    std::string /* url */,
+                    std::string /* lang */)
 // Playback seekable time change.
 IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_SeekableTimeChanged,
                     int /* player_id */,
@@ -147,6 +177,9 @@ IPC_MESSAGE_ROUTED1(MediaPlayerEflMsg_DrmError, int /* player_id */)
 // Notify video texturing mode.
 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_NotifyVideoTexturing,
                     int /* player_id */)
+IPC_MESSAGE_ROUTED2(MediaPlayerEflHostMsg_ControlMediaPacket,
+                    int /* player_id */,
+                    int /* control mode */)
 #endif
 
 // Text Track
@@ -160,9 +193,81 @@ IPC_MESSAGE_ROUTED5(MediaPlayerEflMsg_InbandEventTextCue,
                     unsigned int /*id*/,
                     long long int /*startTimeMs*/,
                     long long int /*endTimeMs*/)
+// regist timeline
+IPC_SYNC_MESSAGE_ROUTED2_1(MediaPlayerEflHostMsg_RegisterTimeline,
+                           int /* player_id */,
+                           std::string /* timeline_selector */,
+                           bool /*ret*/)
+
+// unregister timeline
+IPC_SYNC_MESSAGE_ROUTED2_1(MediaPlayerEflHostMsg_UnRegisterTimeline,
+                           int /* player_id */,
+                           std::string /* timeline_selector */,
+                           bool /*ret*/)
+
+// get timeline positions
+IPC_SYNC_MESSAGE_ROUTED2_4(MediaPlayerEflHostMsg_GetTimelinePositions,
+                           int /* player_id */,
+                           std::string /* timeline_selector */,
+                           uint32_t /*units_per_tick*/,
+                           uint32_t /*units_per_second*/,
+                           int64_t /*content_time*/,
+                           bool /* paused*/)
+
+// get speed
+IPC_SYNC_MESSAGE_ROUTED1_1(MediaPlayerEflHostMsg_GetSpeed,
+                           int /* player_id */,
+                           double /* speed */)
+
+// get mrs url
+IPC_SYNC_MESSAGE_ROUTED1_1(MediaPlayerEflHostMsg_GetMrsUrl,
+                           int /* player_id */,
+                           std::string /* url*/)
+
+// get content id
+IPC_SYNC_MESSAGE_ROUTED1_1(MediaPlayerEflHostMsg_GetContentId,
+                           int /* player_id */,
+                           std::string /* content id*/)
+
+// sync timeline
+IPC_SYNC_MESSAGE_ROUTED5_1(MediaPlayerEflHostMsg_SyncTimeline,
+                           int /* player_id */,
+                           std::string /* timeline_selector */,
+                           int64_t /* timeline_pos*/,
+                           int64_t /*wallclock_pos*/,
+                           int /*tolerance*/,
+                           bool /*ret*/)
+
+// set wallclock
+IPC_SYNC_MESSAGE_ROUTED2_1(MediaPlayerEflHostMsg_SetWallClock,
+                           int /* player_id */,
+                           std::string /*wallclock_url */,
+                           bool /*ret*/)
+
+// callback info of sync timeline
+IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_SyncTimelineCb,
+                    int /* player_id */,
+                    std::string /* timeline_selector */,
+                    int /*sync*/)
+
+// callback info of register timeline
+IPC_MESSAGE_ROUTED2(
+    MediaPlayerEflMsg_RegisterTimelineCb,
+    int /* player_id */,
+    blink::WebMediaPlayer::register_timeline_cb_info_s /* cb info */)
+
+IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_MrsUrlChange,
+                    int /* player_id */,
+                    std::string /*url */)
+
+IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_ContentIdChange,
+                    int /* player_id */,
+                    std::string /*id */)
+IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_NotifyElementRemove,
+                    int /* player_id */)
 #endif
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
 // Launch native system volume controller.
 IPC_MESSAGE_ROUTED1(MediaPlayerEflHostMsg_LaunchSystemVolumeController,
                     int /* player_id */)
@@ -193,6 +298,14 @@ IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_TimeUpdate,
                     int /* player_id */,
                     base::TimeDelta /* time */)
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+// Sytem Value Changed.
+IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_SystemVolumeChanged,
+                    int /* player_id */,
+                    double /* volume */,
+                    bool /*first call or not */)
+#endif
+
 // Pause state.
 IPC_MESSAGE_ROUTED2(MediaPlayerEflMsg_PauseStateChanged,
                     int /* player_id */,
@@ -234,10 +347,18 @@ IPC_MESSAGE_ROUTED4(MediaPlayerEflMsg_NewFrameAvailable,
                     base::TimeDelta /* time stamp */)
 
 #if defined(TIZEN_TBM_SUPPORT)
+#if defined(OS_TIZEN_TV_PRODUCT)
+IPC_MESSAGE_ROUTED4(MediaPlayerEflMsg_NewTbmBufferAvailable,
+                    int /* player_id */,
+                    gfx::TbmBufferHandle /* Handle */,
+                    int /* physical index */,
+                    base::TimeDelta /* time stamp */)
+#else
 IPC_MESSAGE_ROUTED3(MediaPlayerEflMsg_NewTbmBufferAvailable,
                     int /* player_id */,
                     gfx::TbmBufferHandle /* Handle */,
                     base::TimeDelta /* time stamp */)
+#endif
 
 // Requests to release tbm buffer.
 IPC_MESSAGE_CONTROL1(MediaPlayerEflHostMsg_ReleaseTbmBuffer,
@@ -279,6 +400,13 @@ IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerReady,
 IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerStateChanged,
                      int /* demuxer_client_id */,
                      media::DemuxerConfigs /* configs */)
+// Inform the media source player about buffered data.
+IPC_MESSAGE_CONTROL2(MediaPlayerEflHostMsg_DemuxerBufferedChanged,
+                     int /* demuxer_client_id */,
+                     media::Ranges<base::TimeDelta> /* buffered */)
+IPC_SYNC_MESSAGE_ROUTED1_1(FrameHostMsg_CheckHLSSupport,
+                           std::string /* url */,
+                           bool /* support */)
 #endif
 
 // Sent when the data was read from the ChunkDemuxer.
 
 #undef IPC_MESSAGE_EXPORT
 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
-#define IPC_MESSAGE_START MediaCaptureMsgStart
+#define IPC_MESSAGE_START MediaRecorderMsgStart
 
 // Media record start.
-IPC_MESSAGE_ROUTED2(MediaCaptureHostMsg_StartRecording,
+IPC_MESSAGE_ROUTED2(MediaRecorderHostMsg_StartRecording,
                     int /* handler id */,
                     std::string /* format*/)
 
 // Media record pause.
-IPC_MESSAGE_ROUTED1(MediaCaptureHostMsg_PauseRecording, int /* handler id */)
+IPC_MESSAGE_ROUTED1(MediaRecorderHostMsg_PauseRecording, int /* handler id */)
 
 // Media record resume.
-IPC_MESSAGE_ROUTED1(MediaCaptureHostMsg_ResumeRecording, int /* handler id */)
+IPC_MESSAGE_ROUTED1(MediaRecorderHostMsg_ResumeRecording, int /* handler id */)
 
 // Media record stop.
-IPC_MESSAGE_ROUTED1(MediaCaptureHostMsg_StopRecording, int /* handler id */)
+IPC_MESSAGE_ROUTED1(MediaRecorderHostMsg_StopRecording, int /* handler id */)
 
-IPC_MESSAGE_ROUTED3(MediaCaptureMsg_MediaCaptureMuxedStream,
+IPC_MESSAGE_ROUTED3(MediaRecorderMsg_MediaRecordMuxedStream,
                     int /* handler id */,
                     base::SharedMemoryHandle /*foreign_memory_handle*/,
                     int /*size*/)
index ccf0b9b..d529251 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2015 Samsung Electronics. All rights reserved.
+// Copyright 2015-2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -37,7 +37,6 @@ class WebContentsViewEflDelegate {
 
   virtual void CancelContextMenu(int request_id) = 0;
 
-  virtual void QuerySelectionStyle() = 0;
   virtual void HandleZoomGesture(blink::WebGestureEvent& event) = 0;
 
   virtual bool UseKeyPadWithoutUserAction() = 0;
index 050608e..fc9df6b 100644 (file)
@@ -92,7 +92,8 @@ class MediaSourceDelegateEfl : public media::DemuxerHost {
                  bool is_seeking_pending_seek);
 
   // Callback for ChunkDemuxer::Seek().
-  void OnDemuxerSeekDone(media::PipelineStatus status);
+  void OnDemuxerSeekDone(base::TimeDelta demuxer_seek_time,
+                         media::PipelineStatus status);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   base::TimeDelta KeyframeBeforeTimestamp(const base::TimeDelta timestamp);
@@ -190,8 +191,6 @@ class MediaSourceDelegateEfl : public media::DemuxerHost {
   bool is_audio_read_fired_;
   bool is_video_read_fired_;
 #if defined(OS_TIZEN_TV_PRODUCT)
-  bool is_framerate_set_;
-  bool is_framerate_changed_;
   media::StreamFramerate::Framerate framerate_ = {0, 0};
 #endif
 
index b2af647..5379d9b 100644 (file)
 #include "ipc/message_filter.h"
 #include "media/base/tizen/demuxer_stream_player_params_efl.h"
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/ranges.h"
+#endif
+
 namespace base {
 class SingleThreadTaskRunner;
 }
@@ -54,6 +58,8 @@ class RendererDemuxerEfl : public IPC::MessageFilter {
 #if defined(OS_TIZEN_TV_PRODUCT)
   void DemuxerStateChanged(int demuxer_client_id,
                            const media::DemuxerConfigs& configs);
+  void DemuxerBufferedChanged(int demuxer_client_id,
+                              const media::Ranges<base::TimeDelta>& ranges);
 #endif
 
   bool ReadFromDemuxerAck(int demuxer_client_id,
index 453afac..df91b5a 100644 (file)
@@ -77,12 +77,37 @@ class RendererMediaPlayerManager : public RenderFrameObserver {
                       const std::string& label,
                       const std::string& language,
                       const std::string& id);
+  void SetActiveTextTrack(int player_id, int id, bool is_in_band);
+  void NotifySubtitlePlay(int player_id,
+                          int id,
+                          const std::string& url,
+                          const std::string& lang);
+  void OnNotifyPlayTrack(int player_id, int id);
   void OnSeekableTimeChange(int player_id,
                             base::TimeDelta min_time,
                             base::TimeDelta max_time);
   void OnDrmError(int player_id);
+  bool RegisterTimeline(int player_id, const std::string& timeline_selector);
+  bool UnRegisterTimeline(int player_id, const std::string& timeline_selector);
+  void GetTimelinePositions(int player_id,
+                            const std::string& timeline_selector,
+                            uint32_t* units_per_tick,
+                            uint32_t* units_per_second,
+                            int64_t* content_time,
+                            bool* paused);
+  double GetSpeed(int player_id_);
+  std::string GetMrsUrl(int player_id);
+  std::string GetContentId(int player_id);
+  bool SyncTimeline(int player_id,
+                    const std::string& timeline_selector,
+                    int64_t timeline_pos,
+                    int64_t wallclock_pos,
+                    int tolerance);
+  bool SetWallClock(int player_id, const std::string& wallclock_url);
+  void NotifyElementRemove(int player_id);
 #if defined(TIZEN_TBM_SUPPORT)
   void NotifyVideoTexturing(int player_id);
+  void ControlMediaPacket(int player_id, int mode);
 #endif
 #endif
 
@@ -113,8 +138,10 @@ class RendererMediaPlayerManager : public RenderFrameObserver {
 #if defined(TIZEN_VIDEO_HOLE)
   void SetMediaGeometry(int player_id, const gfx::RectF& rect);
 #endif
-
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void checkHLSSupport(const blink::WebString& url, bool& support);
+#endif
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void LaunchSystemVolumeController(int player_id);
 #endif
 
@@ -127,6 +154,9 @@ class RendererMediaPlayerManager : public RenderFrameObserver {
 #if defined(TIZEN_TBM_SUPPORT)
   void OnNewTbmBufferAvailable(int player_id,
                                gfx::TbmBufferHandle tbm_handle,
+#if defined(OS_TIZEN_TV_PRODUCT)
+                               int scaler_physical_id,
+#endif
                                base::TimeDelta timestamp);
 #endif
 
@@ -141,6 +171,14 @@ class RendererMediaPlayerManager : public RenderFrameObserver {
                             unsigned int id,
                             long long int start_time,
                             long long int end_time);
+  void OnSyncTimeline(int player_id,
+                      const std::string& timeline_selector,
+                      int sync);
+  void OnRegisterTimeline(
+      int player_id,
+      const blink::WebMediaPlayer::register_timeline_cb_info_s& info);
+  void OnMrsUrlChange(int player_id, const std::string& url);
+  void OnContentIdChange(int player_id, const std::string& id);
 #endif
 
   void OnBufferUpdate(int player_id, int percentage);
@@ -154,10 +192,14 @@ class RendererMediaPlayerManager : public RenderFrameObserver {
                           blink::WebMediaPlayer::ReadyState state);
   void OnNetworkStateChange(int player_id,
                             blink::WebMediaPlayer::NetworkState state);
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void OnSystemVolumeChange(int player_id, int volume);
 #endif
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void OnSystemVolumeChanged(int player_id, double volume, bool init);
+#endif
+
  private:
   std::map<int, blink::WebMediaPlayer*> media_players_;
 #if defined(TIZEN_VIDEO_HOLE)
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_CAPTURE_HANDLER_H_
-#define CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_CAPTURE_HANDLER_H_
+#ifndef CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_RECORDER_HANDLER_H_
+#define CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_RECORDER_HANDLER_H_
 
 #include <map>
 
@@ -24,10 +24,10 @@ class WebString;
 
 namespace content {
 
-class RendererCaptureManager : public RenderFrameObserver {
+class RendererRecorderManager : public RenderFrameObserver {
  public:
-  RendererCaptureManager(RenderFrame* render_frame);
-  ~RendererCaptureManager();
+  RendererRecorderManager(RenderFrame* render_frame);
+  ~RendererRecorderManager();
 
   // RenderFrameObserver overrides.
   void OnDestruct() override;
@@ -53,11 +53,11 @@ class RendererCaptureManager : public RenderFrameObserver {
   std::map<int, blink::WebMediaRecorderHandler*> recorder_handler_map_;
 };
 
-class CONTENT_EXPORT RenderMediaCaptureHandler final
+class CONTENT_EXPORT RenderMediaRecorderHandler final
     : public NON_EXPORTED_BASE(blink::WebMediaRecorderHandler) {
  public:
-  RenderMediaCaptureHandler(RenderFrameObserver* render_frame_observer);
-  ~RenderMediaCaptureHandler() override;
+  RenderMediaRecorderHandler(RenderFrameObserver* render_frame_observer);
+  ~RenderMediaRecorderHandler() override;
 
   bool canSupportMimeType(const blink::WebString& web_type,
                           const blink::WebString& web_codecs) override;
@@ -90,15 +90,15 @@ class CONTENT_EXPORT RenderMediaCaptureHandler final
   int handler_id_;
   bool recording_;
 
-  RendererCaptureManager* manager_;
+  RendererRecorderManager* manager_;
   blink::WebMediaRecorderHandlerClient* media_recorder_handler_client_;
 
   scoped_refptr<base::TaskRunner> task_runner_;
-  base::WeakPtrFactory<RenderMediaCaptureHandler> weak_factory_;
+  base::WeakPtrFactory<RenderMediaRecorderHandler> weak_factory_;
 
-  DISALLOW_COPY_AND_ASSIGN(RenderMediaCaptureHandler);
+  DISALLOW_COPY_AND_ASSIGN(RenderMediaRecorderHandler);
 };
 
 }  // namespace content
 
-#endif  // CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_CAPTURE_HANDLER_H_
+#endif  // CONTENT_RENDERER_MEDIA_TIZEN_RENDERER_MEDIA_RECORDER_HANDLER_H_
index 1774fe8..9d1e78b 100644 (file)
@@ -22,6 +22,8 @@
 #include "third_party/WebKit/public/platform/WebMediaPlayerEncryptedMediaClient.h"
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/tizen/video_playback_mem_opt.h"
+
 #define USE_NO_WAIT_SIGNAL_MEDIA_PACKET_THREAD 1
 #endif
 
@@ -81,6 +83,10 @@ class WebMediaPlayerEfl
   void seek(double seconds) override;
   void setRate(double) override;
   void setVolume(double) override;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void setBrightness(int) override;
+  int getBrightness() override;
+#endif
   blink::WebTimeRanges buffered() const override;
   blink::WebTimeRanges seekable() const override;
   void setSinkId(const blink::WebString& sink_id,
@@ -96,8 +102,13 @@ class WebMediaPlayerEfl
       bool flip_y) override;
 
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
-  unsigned zeroCopyVideoTbmToPlatformTexture(
-                      gpu::gles2::GLES2Interface*, unsigned) override;
+  static void lockScalerDuringNextFrame(media::VideoFrame* video_frame);
+  static base::Timer& DeferredChangeVideoResolutionTimer(void);
+  static void DeferredChangeVideoResolution(WebMediaPlayerEfl* web_player);
+  bool RenderRingBuffer(gpu::gles2::GLES2Interface* gl,
+      unsigned& image_id);
+  bool zeroCopyVideoTbmToPlatformTexture(
+                gpu::gles2::GLES2Interface*, unsigned, unsigned&) override;
   void deleteVideoFrame(unsigned) override;
 #endif
 
@@ -117,7 +128,7 @@ class WebMediaPlayerEfl
   void resume() override;
   double getStartDate() const override;
   void activate() override;
-
+  void deactivate() override;
 #if defined(OS_TIZEN_TV_PRODUCT)
   void setTranslatedURL(const blink::WebString& url) { translated_url_ = url; }
 #endif
@@ -147,7 +158,7 @@ class WebMediaPlayerEfl
       blink::WebContentDecryptionModule* cdm,
       blink::WebContentDecryptionModuleResult result) override;
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void launchSystemVolumeController() override;
 #endif
 
@@ -171,12 +182,15 @@ class WebMediaPlayerEfl
 
 #if defined(TIZEN_TBM_SUPPORT)
   void OnNewTbmBufferAvailable(const gfx::TbmBufferHandle& tbm_handle,
+#if defined(OS_TIZEN_TV_PRODUCT)
+                               int scaler_physical_id,
+#endif
                                base::TimeDelta timestamp,
                                const base::Closure& cb);
 #endif
 
 #if defined(TIZEN_VIDEO_HOLE)
-  void OnDrawableContentRectChanged(gfx::Rect rect);
+  void OnDrawableContentRectChanged(gfx::Rect rect, bool is_video);
 #endif
 
   void OnMediaDataChange(int width, int height, int media);
@@ -212,11 +226,14 @@ class WebMediaPlayerEfl
   void OnAddTextTrack(const std::string& label,
                       const std::string& language,
                       const std::string& id);
+  void setActiveTextTrack(int id, bool is_in_band);
+  void notifyPlayTrack(int id);
   void OnSeekableTimeChange(base::TimeDelta min_time, base::TimeDelta max_time);
   void OnDrmError();
+  void notifyElementRemove() override;
 #endif
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void OnSystemVolumeChange(int volume);
 #endif
 
@@ -243,6 +260,12 @@ class WebMediaPlayerEfl
 
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
   void NotifyVideoTexturing();
+  void ControlMediaPacket(int mode);
+#endif
+
+#if defined(TIZEN_CANVAS_HOLE)
+  void setCanvasHoleEnabled(bool);
+  void notifyCanvasRectChanged(const blink::WebRect&) override;
 #endif
 
 #if defined(USE_NO_WAIT_SIGNAL_MEDIA_PACKET_THREAD)
@@ -256,6 +279,31 @@ class WebMediaPlayerEfl
                             unsigned int id,
                             long long int start_time,
                             long long int end_time);
+  bool registerTimeline(const std::string& timeline_selector) override;
+  bool unRegisterTimeline(const std::string& timeline_selector) override;
+  void getTimelinePositions(const std::string& timeline_selector,
+                            uint32_t* units_per_tick,
+                            uint32_t* units_per_second,
+                            int64_t* content_time,
+                            bool* paused) override;
+  double getSpeed() override;
+  std::string getMrsUrl() override;
+  std::string getContentId() override;
+  bool syncTimeline(const std::string& timeline_selector,
+                    int64_t timeline_pos,
+                    int64_t wallclock_pos,
+                    int tolerance) override;
+  bool setWallClock(const std::string& wallclock_url) override;
+
+  void OnSyncTimeline(const std::string& timeline_selector, int sync);
+  void OnRegisterTimeline(
+      const blink::WebMediaPlayer::register_timeline_cb_info_s& info);
+  void OnMrsUrlChange(const std::string& url);
+  void OnContentIdChange(const std::string& id);
+#endif
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void OnSystemVolumeChanged(double volume, bool init);
 #endif
 
  private:
@@ -314,7 +362,6 @@ class WebMediaPlayerEfl
   media::VideoFrameCompositor* compositor_;
   media::SkCanvasVideoRenderer skcanvas_video_renderer_;
 
-  base::WeakPtrFactory<WebMediaPlayerEfl> weak_factory_;
   std::unique_ptr<content::MediaSourceDelegateEfl> media_source_delegate_;
   MediaPlayerHostMsg_Initialize_Type player_type_;
   blink::WebString content_mime_type_;
@@ -352,12 +399,22 @@ class WebMediaPlayerEfl
   // Whether the video is known to be opaque or not.
   bool opaque_;
   bool is_fullscreen_;
-#if defined(TIZEN_VIDEO_HOLE)
-  bool is_draw_ready_;
-  bool pending_play_;
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
   bool is_video_texturing_;
+  bool timeout_lock_flag_;
+  base::TimeDelta previous_media_packet_timestamp_;
+#ifdef SCALER_DEBUG
+  base::TimeDelta frame_rate_control_timestamp_;
+  base::Time previous_frame_time_;
+#endif
+  int previous_index_;
+  int scaler_lock_mode_;
+  uint32_t scaler_buffer_max_;
+  unsigned duplicated_frame_count_;
 #endif
+#if defined(TIZEN_VIDEO_HOLE)
+  bool is_draw_ready_;
+  bool pending_play_;
   bool is_video_hole_;
 
   // A rectangle represents the geometry of video frame, when computed last
@@ -365,6 +422,10 @@ class WebMediaPlayerEfl
   gfx::RectF last_computed_rect_;
   base::RepeatingTimer layer_bound_update_timer_;
 #endif
+#if defined(TIZEN_CANVAS_HOLE)
+  bool canvas_hole_enabled_;
+  bool canvas_rect_changed_;
+#endif
   gfx::Size natural_size_;
   blink::WebTimeRanges buffered_;
   mutable bool did_loading_progress_;
@@ -376,8 +437,12 @@ class WebMediaPlayerEfl
   // for a transient sound.  Playout volume is derived by volume * multiplier.
   double volume_;
   double volume_multiplier_;
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  int system_brightness_;
+#endif
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool force_update_playback_position_;
+  std::unique_ptr<media::VideoPlaybackMemOpt> video_playback_mem_opt_;
 #endif
 
   // Non-owned pointer to the CdmContext. Updated in the constructor
@@ -396,6 +461,8 @@ class WebMediaPlayerEfl
   base::Lock current_frame_lock_;
 #endif
 
+  base::WeakPtrFactory<WebMediaPlayerEfl> weak_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerEfl);
 };
 
index e346923..dcbb4ec 100644 (file)
@@ -57,7 +57,7 @@ class PepperMediaPlayerRendererHost
                            const PP_Rect& clip_rect);
 
   // Compositor CBs:
-  void OnDrawableContentRectChanged(gfx::Rect rect);
+  void OnDrawableContentRectChanged(gfx::Rect rect, bool);
 
   RendererPpapiHost* renderer_ppapi_host_;
   PepperPluginInstanceImpl* bound_instance_;
@@ -67,6 +67,8 @@ class PepperMediaPlayerRendererHost
   scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
   media::VideoFrameCompositor* compositor_;
 
+  bool needs_paint_;
+
   DISALLOW_COPY_AND_ASSIGN(PepperMediaPlayerRendererHost);
 };
 
index b63bbc1..2765273 100644 (file)
@@ -116,7 +116,7 @@ class GLES2_IMPL_EXPORT GLES2ImplementationEfl : public GLES2Interface,
   std::set<GLuint> textures_;
 
   GLint GetBoundUniformLocation(GLint location);
-  ProgramData& GetProgramData(GLint program = -1);
+  ProgramData& GetProgramData(GLint program);
 };
 
 }  // namespace gles2
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_evasgl_context.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_evasgl_context.h
new file mode 100644 (file)
index 0000000..38b3d4b
--- /dev/null
@@ -0,0 +1,21 @@
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SCOPED_RESTORE_NON_OWNED_EVASGL_CONTEXT_H_
+#define SCOPED_RESTORE_NON_OWNED_EVASGL_CONTEXT_H_
+
+#include <Evas_GL.h>
+
+class ScopedRestoreNonOwnedEvasGLContext {
+ public:
+  ScopedRestoreNonOwnedEvasGLContext();
+  ~ScopedRestoreNonOwnedEvasGLContext();
+
+ private:
+  Evas_GL* evas_gl_;
+  Evas_GL_Context* evas_gl_context_;
+  Evas_GL_Surface* evas_gl_surface_;
+};
+
+#endif  // SCOPED_RESTORE_NON_OWNED_EVASGL_CONTEXT_H_
\ No newline at end of file
index 5a04d61..e662459 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "base/memory/shared_memory_handle.h"
 #include "base/memory/weak_ptr.h"
+#include "gpu/ipc/in_process_command_buffer.h"
 #include "ipc/ipc_sender.h"
 #include "ui/events/latency_info.h"
 
@@ -20,21 +21,18 @@ namespace gpu {
 struct Capabilities;
 class DirectCanvasGpuChannel;
 class GpuChannel;
-class InProcessCommandBuffer;
 struct Mailbox;
 struct SyncToken;
 
 class DirectCanvasCommandBufferStub
-    : public IPC::Sender,
+    : public InProcessCommandBuffer,
+      public IPC::Sender,
       public base::SupportsWeakPtr<DirectCanvasCommandBufferStub>,
       public base::RefCountedThreadSafe<DirectCanvasCommandBufferStub> {
  public:
   DirectCanvasCommandBufferStub(
       DirectCanvasGpuChannel* channel,
-      int32_t route_id,
-      std::unique_ptr<InProcessCommandBuffer> command_buffer,
-      std::unique_ptr<base::SharedMemory> shared_state_shm,
-      gpu::Capabilities* capabilities);
+      int32_t route_id);
 
   // IPC::Sender implementation:
   bool Send(IPC::Message* msg) override;
@@ -43,10 +41,13 @@ class DirectCanvasCommandBufferStub
 
   void FenceSyncRelease(uint64_t release);
 
-  bool SwapBuffersOnGpuThread();
+  bool SwapBuffers();
 
   int32_t route_id() const { return route_id_; }
 
+  void SetSharedStateBuffer(std::unique_ptr<base::SharedMemory> shared_state_shm,
+                            gpu::Capabilities* capabilities);
+
  private:
   friend class base::RefCountedThreadSafe<DirectCanvasCommandBufferStub>;
   ~DirectCanvasCommandBufferStub() override;
@@ -79,7 +80,6 @@ class DirectCanvasCommandBufferStub
                              bool* succeeded);
 
   DirectCanvasGpuChannel* const channel_;
-  std::unique_ptr<InProcessCommandBuffer> command_buffer_;
   int32_t route_id_;
 };
 
index 9d027bf..9133fd6 100644 (file)
@@ -6,7 +6,6 @@
 
 #include "base/memory/shared_memory_handle.h"
 #include "base/memory/weak_ptr.h"
-#include "base/unguessable_token.h"
 #include "ipc/ipc_listener.h"
 #include "ipc/ipc_sender.h"
 
@@ -20,12 +19,12 @@ namespace gpu {
 
 struct Capabilities;
 class DirectCanvasCommandBufferStub;
+class DirectCanvasGpuChannelFilter;
 class GpuChannel;
 
 class DirectCanvasGpuChannel : public IPC::Listener, public IPC::Sender {
  public:
-  DirectCanvasGpuChannel(gpu::GpuChannel* channel,
-                         const base::UnguessableToken& channel_token);
+  DirectCanvasGpuChannel(gpu::GpuChannel* channel);
   ~DirectCanvasGpuChannel() override;
 
   // IPC::Sender implementation:
@@ -59,11 +58,12 @@ class DirectCanvasGpuChannel : public IPC::Listener, public IPC::Sender {
   DirectCanvasCommandBufferStub* LookupCommandBuffer(int32_t route_id);
 
   gpu::GpuChannel* const channel_;
-  base::UnguessableToken channel_token_;
+  scoped_refptr<DirectCanvasGpuChannelFilter> filter_;
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
   scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_;
 
   std::unordered_map<int32_t, scoped_refptr<DirectCanvasCommandBufferStub>> stubs_;
+  base::Lock stubs_lock_;
 
   base::WeakPtrFactory<DirectCanvasGpuChannel> weak_factory_;
   DISALLOW_COPY_AND_ASSIGN(DirectCanvasGpuChannel);
index 6b21147..77f0aae 100644 (file)
@@ -53,6 +53,13 @@ class MEDIA_EXPORT AudioManagerCapi : public AudioManagerBase {
       const std::string& device_id,
       const LogCallback& log_callback) override;
 
+#if defined(TIZEN_PEPPER_EXTENSIONS)
+  AudioOutputStream* MakeLowLatencyOutputStreamPPAPI(
+      const AudioParameters& params,
+      const std::string& device_id,
+      const LogCallback& log_callback) override;
+#endif
+
  protected:
   AudioParameters GetPreferredOutputStreamParameters(
       const std::string& output_device_id,
@@ -72,6 +79,9 @@ class MEDIA_EXPORT AudioManagerCapi : public AudioManagerBase {
 
   int native_input_sample_rate_;
 
+  bool DisableSessionBackwardCompatibility();
+  bool session_backward_compatibility_disabled_;
+
   DISALLOW_COPY_AND_ASSIGN(AudioManagerCapi);
 };
 
index e402c32..e88b375 100644 (file)
@@ -46,6 +46,7 @@ class CapiAudioInputStream final : public AgcAudioStream<AudioInputStream> {
                                 size_t nbytes,
                                 void* user_data);
   void ReadAudioData();
+  void CloseInternal(bool success);
 
   AudioManagerCapi* audio_manager_;
   AudioInputCallback* callback_;
@@ -56,6 +57,13 @@ class CapiAudioInputStream final : public AgcAudioStream<AudioInputStream> {
   base::Thread audio_worker_;
   audio_in_h device_;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  sound_device_list_h device_list_;
+  sound_device_h sound_device_;
+  sound_stream_info_h stream_info_;
+  bool device_added_for_stream_routing_;
+#endif
+
   // Holds the data from the OS.
   AudioBlockFifo fifo_;
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/audio/tizen/mm_player_audio_output.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/audio/tizen/mm_player_audio_output.h
new file mode 100644 (file)
index 0000000..bbeb360
--- /dev/null
@@ -0,0 +1,65 @@
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_AUDIO_TIZEN_MM_PLAYER_AUDIO_OUTPUT_H_
+#define MEDIA_AUDIO_TIZEN_MM_PLAYER_AUDIO_OUTPUT_H_
+
+#include <player.h>
+#include <player_internal.h>
+#include <player_product.h>
+
+#include <atomic>
+
+#include "base/threading/thread.h"
+#include "media/audio/audio_io.h"
+#include "media/base/audio_parameters.h"
+
+namespace media {
+
+class AudioManagerBase;
+
+class MMPlayerAudioOutputStream : public AudioOutputStream {
+ public:
+  MMPlayerAudioOutputStream(const AudioParameters& params,
+                            AudioManagerBase* manager);
+
+  ~MMPlayerAudioOutputStream() override;
+
+  bool Open() override;
+  void Close() override;
+  void Start(AudioSourceCallback* callback) override;
+  void Stop() override;
+  void SetVolume(double volume) override;
+  void GetVolume(double* volume) override;
+  void HandleError();
+
+ private:
+  static void OnBufferStatusCB(
+      player_media_stream_buffer_status_e status,
+      unsigned long long nbytes,  // NOLINT(runtime/int)
+      void* user_data);
+  void OnBufferStatus(player_media_stream_buffer_status_e status,
+                      unsigned long long nbytes);  // NOLINT(runtime/int)
+
+  void PushPacketsRoutine();
+
+  enum State { kInError = 0, kIsOpened, kIsStarted, kIsStopped, kIsClosed };
+
+  const AudioParameters params_;
+  AudioManagerBase* manager_;
+  player_h player_handle_;
+  std::atomic<double> volume_;
+  std::vector<uint8_t> buffer_;
+  State state_;
+  AudioSourceCallback* source_callback_;
+  std::unique_ptr<AudioBus> audio_bus_;
+  base::Thread push_packets_thread_;
+  std::atomic<bool> push_packets_;
+
+  DISALLOW_COPY_AND_ASSIGN(MMPlayerAudioOutputStream);
+};
+
+}  // namespace media
+
+#endif  // MEDIA_AUDIO_TIZEN_MM_PLAYER_AUDIO_OUTPUT_H_
index c403fff..5fb47ec 100644 (file)
@@ -8,6 +8,10 @@
 #include "base/memory/shared_memory_handle.h"
 #include "media/base/tizen/demuxer_stream_player_params_efl.h"
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "media/base/ranges.h"
+#endif
+
 namespace media {
 
 // Defines the client callback interface.
@@ -19,6 +23,10 @@ class MEDIA_EXPORT DemuxerEflClient {
 #if defined(OS_TIZEN_TV_PRODUCT)
   // Called when the demuxer state changed.
   virtual void OnDemuxerStateChanged(const DemuxerConfigs& params) = 0;
+
+  // Called whenever data buffered by the demuxer has changed.
+  virtual void OnDemuxerBufferedChanged(
+      const media::Ranges<base::TimeDelta>& ranges) = 0;
 #endif
 
   // Called in response to RequestDemuxerData().
index 0702b89..3032bbe 100644 (file)
@@ -61,9 +61,10 @@ class LongestConflictStrategy {
         s -= m;
         m -= h;
 
-        char buffer[100];
-        sprintf(buffer, "%d:%02d:%02d.%06d", (int)h.count(), (int)m.count(),
-                (int)s.count(), (int)us.count());
+        const int BUF_SIZE = 100;
+        char buffer[BUF_SIZE];
+        snprintf(buffer, BUF_SIZE, "%d:%02d:%02d.%06d", (int)h.count(),
+            (int)m.count(), (int)s.count(), (int)us.count());
         o << "\n    " << info.player << ' ' << buffer;
       }
       return o;
@@ -83,4 +84,4 @@ class LongestConflictStrategy {
 };
 }
 
-#endif  // MEDIA_BASE_TIZEN_LONGEST_CONFLICT_STRATEGY_H_
\ No newline at end of file
+#endif  // MEDIA_BASE_TIZEN_LONGEST_CONFLICT_STRATEGY_H_
index 13451eb..372654c 100644 (file)
@@ -282,15 +282,17 @@ class DescriptorType {
 // slots for a given media type
 template <typename T>
 class RangeView {
-  const T* ptr{nullptr};
-  size_t size{0};
+  const T* ptr_{nullptr};
+  size_t size_{0};
 
  public:
   RangeView() = default;
-  RangeView(const T* ptr, size_t size) : ptr{ptr}, size{size} {}
+  RangeView(const T* ptr, size_t size) : ptr_{ptr}, size_{size} {}
 
-  const T* begin() const { return ptr; }
-  const T* end() const { return ptr + size; }
+  const T* begin() const { return ptr_; }
+  const T* end() const { return ptr_ + size_; }
+  size_t size() const { return size_; }
+  bool empty() const { return size_ == 0; }
 };
 
 }  // detail
index b55554c..c2c8f48 100644 (file)
@@ -70,12 +70,23 @@ class MediaCapabilityManagerBase {
     // then the tag is true_type, with false_type otherwise
     template <class CapabilityType>
     struct MediaTypeTag {
+      template <class T> using no_cvr = typename std::decay<T>::type;
+
+      // This compares the decayed type of CapabilityType::kMediaType
+      // ('const MediaType' turned into to 'MediaType') to the
+      // enum type of MediaType
+      using types_match = std::is_same<
+          no_cvr<decltype(CapabilityType::kMediaType)>,
+          MediaType
+      >;
+
       using type = typename std::conditional<
-          std::is_same<decltype(CapabilityType::kMediaType),
-                       MediaType>::value &&
-              CapabilityType::kMediaType == media_type,
+          types_match::value &&
+          (CapabilityType::kMediaType == media_type),
+
           std::true_type,
-          std::false_type>::type;
+          std::false_type
+      >::type;
     };
 
     // false_type-tagged version of GetActiveSlots - does nothing
index 495b4e9..ef6d90f 100644 (file)
 #include "ui/gfx/geometry/rect_f.h"
 #endif
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+// For compile: this macro will be removed when mmplayer remove the macro
+#define WAIT_HBBTV_REMOVE
+#include <player_product.h>
+#include "base/memory/ref_counted.h"
+#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/web_contents_delegate.h"
+#include "content/public/common/web_preferences.h"
+#endif
+
 namespace media {
 
 class VideoPlaneManagerTizen;
@@ -73,11 +83,49 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   void Seek(base::TimeDelta time) override;
   void SetVolume(double volume) override;
   base::TimeDelta GetCurrentTime() override;
-
+#if defined(OS_TIZEN_TV_PRODUCT)
+  static void CheckHLSSupport(const std::string& url, bool* support);
+#endif
   void EnteredFullscreen() override;
   void ExitedFullscreen() override;
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void UpdateActiveTextTrack(int) override;
+  void SetActiveTextTrack(int, bool) override;
+  void SubtitleDataCB(unsigned long long, unsigned, const uint8_t*, unsigned);
+  void NotifySubtitleData(int track_id,
+                          double time_stamp,
+                          const uint8_t* data,
+                          unsigned size);
+  void NotifySubtitleState(int state, double time_stamp = 0.0);
+  void NotifySubtitlePlay(int id,
+                          const std::string& url,
+                          const std::string& lang) override;
+  void NotifyStopTrack();
+  void NotifyPlayTrack();
+
   void OnPlayerPreloading();
+  bool RegisterTimeline(const std::string& timeline_selector) override;
+  void OnRegisterTimeline(const char* timeline_selector,
+                          uint32_t units_per_tick,
+                          uint32_t units_per_second,
+                          int64_t content_time,
+                          ETimelineState timeline_state);
+  bool UnRegisterTimeline(const std::string& timeline_selector) override;
+  void GetTimelinePositions(const std::string& timeline_selector,
+                            uint32_t* units_per_tick,
+                            uint32_t* units_per_second,
+                            int64_t* content_time,
+                            bool* paused) override;
+  double GetSpeed() override;
+  std::string GetMrsUrl() override;
+  std::string GetContentId() override;
+  bool SyncTimeline(const std::string& timeline_selector,
+                    int64_t timeline_pos,
+                    int64_t wallclock_pos,
+                    int tolerance) override;
+  void OnSyncTimeline(const char* timeline_selector, int sync);
+  bool SetWallClock(const std::string& wallclock_url) override;
+  void ElementRemove() override;
 #endif
 
   double GetStartDate() override;
@@ -88,7 +136,7 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
-  void OnInbandEvent(int event_type, void* event_data);
+  void OnOtherEvent(int event_type, void* event_data);
 #endif
 
   void ExecuteDelayedPlayerState();
@@ -102,10 +150,8 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   void OnResumeComplete(bool success);
   void OnInitComplete(bool success);
   void OnMediaPacketUpdated(media_packet_h packet);
+#if !defined(OS_TIZEN_TV_PRODUCT)
   void OnInterrupted(player_interrupted_code_e code);
-
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
-  void LaunchSystemVolumeController() override;
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
@@ -143,7 +189,7 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool CheckLiveStreaming() const;
   bool GetLiveStreamingDuration(int64_t* min, int64_t* max) const;
-  bool GetDashLiveDuration(int64_t* duration) const;
+  bool GetDashLiveDuration(int64_t* duration);
   void StartSeekableTimeUpdateTimer();
   void StopSeekableTimeUpdateTimer();
   void OnSeekableTimeUpdateTimerFired();
@@ -159,12 +205,24 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   std::string MapMediaTrackKind(const std::string& role, const int size);
   bool GetUserPreferAudioLanguage(std::string& prefer_audio_lang);
   void UpdatePreferAudio();
-
+  void appendUrlHighBitRate(const std::string& url);
   void HandleTextTrack(const std::string& info);
   void HandleTextCue(const std::string& info,
                      unsigned int id,
                      long long int start_time,
                      long long int end_time);
+  void HandleRegisterTimeline(const char* timeline_selector,
+                              uint32_t units_per_tick,
+                              uint32_t units_per_second,
+                              int64_t content_time,
+                              ETimelineState timeline_state);
+  void HandleSyncTimeline(const char* timeline_selector, int sync);
+
+  void HandleMrsUrlChange(const std::string& mrsUrl);
+  void HandlePeriodIdChange(const std::string& contentId);
+  std::string ParseDashKeyword(const std::string& keyword);
+  void ParseDashInfo();
+  void ReadyStateChange(bool is_player_started);
 #endif
 
   void PlaybackCompleteUpdate();
@@ -178,6 +236,7 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   void PushDelayedPlayerState(int new_state);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void HandleBufferingStatusOnTV(int percent);
   bool SetMediaDRMInfo(const std::string&, int, const std::string&, int);
   bool SetDrmInfo(std::string& drmInfo);
   static void OnResourceConflict(void* user_data);
@@ -186,11 +245,6 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   bool IsMuted(void);
 #endif
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
-  int GetSystemMediaVolume();
-  void UpdateSystemMediaVolume();
-#endif
-
   const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
 
   GURL url_;
@@ -202,7 +256,6 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   bool is_seeking_;
   bool is_resuming_;
   bool is_initialized_;
-  bool is_fullscreen_;
   bool error_occured_;
 
   base::TimeDelta duration_;
@@ -210,8 +263,6 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   base::TimeDelta seek_duration_;
   base::TimeDelta pending_seek_duration_;
   base::TimeDelta stored_seek_time_during_resume_;
-  double playback_rate_;
-  double pending_playback_rate_;
   bool is_getting_cookies_;
   bool pending_prepare_;
   std::string cookies_;
@@ -228,16 +279,28 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   std::deque<int> delayed_player_state_queue_;
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  int subtitle_state_;
+  int active_text_track_id_;
+  bool is_inband_text_track_;
   bool is_live_stream_;
   StreamType stream_type_;
   base::RepeatingTimer seekable_time_update_timer_;
   base::TimeDelta min_seekable_time_;
   base::TimeDelta max_seekable_time_;
   bool is_player_prepared_;
+  bool is_player_started_;
+  bool need_report_buffering_state_;
+  bool is_buffering_compeleted_;
+  int player_ready_state_;
   bool is_player_seek_available_;
   std::string prefer_audio_lang_;
   int prefer_audio_adaptionset_idx_;
   int last_prefer_audio_adaptionset_idx_;
+  std::string hbbtv_url_;
+  int marlin_handle_;
+  std::string compound_url_;
+  std::string mrsUrl_;
+  std::string contentId_;
 #endif
 
   int current_progress_;
@@ -257,10 +320,6 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi
   // NOTE: Weak pointers must be invalidated before all other member variables.
   base::WeakPtrFactory<MediaPlayerBridgeCapi> weak_factory_;
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
-  int system_media_volume_;
-#endif
-
   DISALLOW_COPY_AND_ASSIGN(MediaPlayerBridgeCapi);
 };
 
index 7723419..a8b2a8b 100644 (file)
@@ -14,6 +14,7 @@
 #include "media/base/tizen/video_plane_controller_capi.h"
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+#include "base/synchronization/waitable_event.h"
 #include "content/public/browser/web_contents_delegate.h"
 #define USE_DIRECT_CALL_MEDIA_PACKET_THREAD 1
 #endif
@@ -40,6 +41,11 @@ const int MIXER_SCREEN_HEIGHT = 1080;
 const int MIXER_SCREEN_WIDTH = 1920;
 #endif
 
+const double kInvalidPlayRate = -12345.0;
+const double kPrecisionUnit = 0.00001;
+#define DOUBLE_EQUAL(a, b) \
+  (((a) - (b) > -kPrecisionUnit) && ((a) - (b) < kPrecisionUnit))
+
 class MEDIA_EXPORT MediaPlayerEfl : public MediaPlayerInterfaceEfl {
  public:
   static MediaPlayerEfl* CreatePlayer(int player_id,
@@ -76,6 +82,14 @@ class MEDIA_EXPORT MediaPlayerEfl : public MediaPlayerInterfaceEfl {
 
   virtual void Initialize() {}
 
+  virtual void EnteredFullscreen();
+  virtual void ExitedFullscreen();
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void OnSystemVolumeChanged(int player_id, double volume, bool init);
+  bool SetSystemVolume(double volume);
+#endif
+
 #if defined(TIZEN_SOUND_FOCUS)
   // APIs for Sound Focus Manager
   void SetResumePlayingBySFM(bool resume_playing) override {
@@ -85,11 +99,47 @@ class MEDIA_EXPORT MediaPlayerEfl : public MediaPlayerInterfaceEfl {
   void OnFocusReleased(bool resume_playing) override;
 #endif
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void SetActiveTextTrack(int, bool) {}
+  virtual void UpdateActiveTextTrack(int) {}
+  virtual void NotifySubtitlePlay(int id,
+                                  const std::string& url,
+                                  const std::string& lang) {}
+  bool CheckMarlinEnable();
+  bool CheckHighBitRate();
+  virtual bool RegisterTimeline(const std::string& timeline_selector) {
+    return false;
+  }
+  virtual bool UnRegisterTimeline(const std::string& timeline_selector) {
+    return false;
+  }
+  virtual void GetTimelinePositions(const std::string& timeline_selector,
+                                    uint32_t* units_per_tick,
+                                    uint32_t* units_per_second,
+                                    int64_t* content_time,
+                                    bool* paused) {}
+  virtual double GetSpeed() { return 0.0; }
+  virtual std::string GetMrsUrl() { return ""; }
+  virtual std::string GetContentId() { return ""; }
+  virtual bool SyncTimeline(const std::string& timeline_selector,
+                            int64_t timeline_pos,
+                            int64_t wallclock_pos,
+                            int tolerance) {
+    return false;
+  }
+  virtual bool SetWallClock(const std::string& wallclock_url) { return false; }
+  virtual void ElementRemove() {}
+#endif
+
   double GetStartDate() override {
     return std::numeric_limits<double>::quiet_NaN();
   }
   void OnPlayerSuspendRequest() const;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void OnPlayerResourceConflict() const;
+#endif
+
   bool ShouldSeekAfterResume() const override {
     return should_seek_after_resume_;
   }
@@ -109,7 +159,9 @@ class MEDIA_EXPORT MediaPlayerEfl : public MediaPlayerInterfaceEfl {
       MediaPlayerEfl* media_player) const;
 
 #if defined(OS_TIZEN_TV_PRODUCT)
-  bool PlaybackNotificationEnabled() { return playback_notification_enabled_; }
+  bool SubtitleNotificationEnabled();
+  bool PlaybackNotificationEnabled();
+  void UpdateCurrentTime(base::TimeDelta current_time);
   content::WebContentsDelegate* GetWebContentsDelegate();
   void NotifyPlaybackState(int state,
                            const std::string& url = "",
@@ -119,23 +171,34 @@ class MEDIA_EXPORT MediaPlayerEfl : public MediaPlayerInterfaceEfl {
                            std::string* drmInfo = NULL);
 #endif
 
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
+  int GetSystemMediaVolume();
+  void UpdateSystemMediaVolume();
+  void LaunchSystemVolumeController() override;
+#endif
+
   player_h player_;
   int width_;
   int height_;
   bool is_paused_;
   bool should_seek_after_resume_;
+  bool is_fullscreen_;
+
+  double playback_rate_;
+  double pending_playback_rate_;
 
 #if defined(TIZEN_SOUND_FOCUS)
   bool should_be_resumed_by_sound_focus_manager_;
 #endif
 
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
+  int system_media_volume_;
+#endif
+
  private:
   // Player ID assigned to this player.
   int player_id_;
   MediaTypeFlags media_type_;
-#if defined(OS_TIZEN_TV_PRODUCT)
-  bool playback_notification_enabled_;
-#endif
 
 #if TIZEN_MM_DEBUG_VIDEO_DUMP_DECODED_FRAME == 1
   std::unique_ptr<FrameDumper> frameDumper;
index 8b6daf9..3240674 100644 (file)
@@ -85,6 +85,29 @@ class MediaPlayerInterfaceEfl
   // Return whether the player should call seek after resume
   virtual bool ShouldSeekAfterResume() const = 0;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void SetActiveTextTrack(int, bool) = 0;
+  virtual void NotifySubtitlePlay(int id,
+                                  const std::string& url,
+                                  const std::string& lang) = 0;
+  virtual bool RegisterTimeline(const std::string& timeline_selector) = 0;
+  virtual bool UnRegisterTimeline(const std::string& timeline_selector) = 0;
+  virtual void GetTimelinePositions(const std::string& timeline_selector,
+                                    uint32_t* units_per_tick,
+                                    uint32_t* units_per_second,
+                                    int64_t* content_time,
+                                    bool* paused) = 0;
+  virtual double GetSpeed() = 0;
+  virtual std::string GetMrsUrl() = 0;
+  virtual std::string GetContentId() = 0;
+  virtual bool SyncTimeline(const std::string& timeline_selector,
+                            int64_t timeline_pos,
+                            int64_t wallclock_pos,
+                            int tolerance) = 0;
+  virtual bool SetWallClock(const std::string& wallclock_url) = 0;
+  virtual void ElementRemove() = 0;
+#endif
+
 #if defined(TIZEN_VIDEO_HOLE)
   virtual void SetGeometry(const gfx::RectF&) = 0;
   virtual void OnWebViewMoved() = 0;
@@ -98,7 +121,7 @@ class MediaPlayerInterfaceEfl
 
   virtual bool HasConfigs() const = 0;
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   // Launch native system volume controller.
   virtual void LaunchSystemVolumeController() = 0;
 #endif
index 95dccd4..346ef81 100644 (file)
@@ -67,7 +67,7 @@ class MEDIA_EXPORT MediaPlayerManager {
   virtual void ReleaseKeyGrab(int player_id){};
 #endif
 #if defined(TIZEN_VIDEO_HOLE)
-  virtual gfx::Rect GetViewportRect() const = 0;
+  virtual gfx::Rect GetViewportRect(int player_id) const = 0;
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
@@ -85,6 +85,7 @@ class MEDIA_EXPORT MediaPlayerManager {
                               const std::string& label,
                               const std::string& language,
                               const std::string& id) = 0;
+  virtual void NotifyPlayTrack(int player_id, int id) = 0;
   virtual void OnSeekableTimeChange(int player_id,
                                     base::TimeDelta min_time,
                                     base::TimeDelta max_time) = 0;
@@ -96,14 +97,32 @@ class MEDIA_EXPORT MediaPlayerManager {
                                     long long int start_time,
                                     long long int end_time) = 0;
   virtual void OnDrmError(int player_id) = 0;
+  virtual void OnRegisterTimelineCbInfo(
+      int player_id,
+      const blink::WebMediaPlayer::register_timeline_cb_info_s& info) = 0;
+  virtual void OnSyncTimelineCbInfo(int player_id,
+                                    const std::string& timeline_selector,
+                                    int sync) = 0;
+  virtual void OnMrsUrlChange(int player_id, const std::string& url) = 0;
+  virtual void OnContentIdChange(int player_id, const std::string& id) = 0;
 #endif
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   virtual void OnSystemVolumeChange(int player_id, int volume) = 0;
 #endif
 
   virtual content::WebContents* GetWebContents(int player_id) = 0;
   virtual void OnPlayerSuspendRequest(int player_id) = 0;
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+  virtual void OnPlayerResourceConflict(int player_id) = 0;
+#endif
+
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  virtual void OnSystemVolumeChanged(int player_id,
+                                     double volume,
+                                     bool init) = 0;
+#endif
 };
 
 }  // namespace media
index 0ee338f..4a59986 100644 (file)
@@ -19,6 +19,7 @@
 
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+#include "base/static_map.h"
 #include <player_product.h>
 #endif
 
@@ -44,6 +45,10 @@ class MediaPacket {
   media_packet_h Get() const;
   virtual std::string ToString() const;
 
+  base::TimeDelta GetTimeStamp() const { return timestamp_; }
+  base::TimeDelta GetTimeDuration() const { return time_duration_; }
+  media::DemuxerStream::Type GetType() const { return type_; }
+
  protected:
   virtual bool Prepare(ScopedMediaPacket& packet);
   void SetMediaPacket(ScopedMediaPacket packet);
@@ -127,10 +132,6 @@ class MEDIA_EXPORT MediaSourcePlayerCapi
 
   bool HasConfigs() const override;
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
-  void LaunchSystemVolumeController() override;
-#endif
-
  protected:
   void Release() override;
   void OnMediaError(MediaError error_type) override;
@@ -145,6 +146,9 @@ class MEDIA_EXPORT MediaSourcePlayerCapi
 
   player_state_e GetPlayerState();
   void HandlePrepareComplete();
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void PlayInternal();
+#endif
 
   // For internal seeks.
   void SeekInternal();
@@ -214,15 +218,28 @@ class MEDIA_EXPORT MediaSourcePlayerCapi
   static void OnMediaPacketUpdated(media_packet_h packet, void* user_data);
   static void OnPlaybackComplete(void* user_data);
   static void OnPlayerError(int error_code, void* user_data);
+#if defined(OS_TIZEN_TV_PRODUCT)
+  static void OnResourceConflict(void* user_data);
+  static void OnGetPositionBeforeConflict(ulong position, void* user_data);
+#endif
   static void OnInterrupted(player_interrupted_code_e code, void* user_data);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   void UpdateResolution(int width, int height, int media_type);
-#endif
+  void SavePositionBeforeConflict(ulong pos) {
+    position_before_conflict_ = pos;
+  }
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
-  int GetSystemMediaVolume();
-  void UpdateSystemMediaVolume();
+  void StartWaitingForData();
+  void FinishWaitingForData();
+  void OnDemuxerBufferedChanged(
+      const media::Ranges<base::TimeDelta>& ranges) override;
+  std::pair<base::TimeDelta, base::TimeDelta> FindBufferedRange(
+      base::TimeDelta start,
+      base::TimeDelta end) const;
+  void UncheckedUpdateReadyState();
+  void UpdateReadyState();
+  base::TimeDelta CalculateLastFrameDuration() const;
 #endif
 
   // CAPI player state handling APIs.
@@ -241,7 +258,6 @@ class MEDIA_EXPORT MediaSourcePlayerCapi
   const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
 
   base::TimeDelta duration_;
-  double playback_rate_;
 
   bool player_prepared_;
   bool paused_by_buffering_logic_;
@@ -261,7 +277,6 @@ class MEDIA_EXPORT MediaSourcePlayerCapi
   base::TimeDelta seek_offset_;
   MediaSeekState seek_state_;
 
-  bool is_fullscreen_;
   bool is_video_hole_;
   double volume_;
 #if defined(TIZEN_VIDEO_HOLE)
@@ -276,6 +291,19 @@ class MEDIA_EXPORT MediaSourcePlayerCapi
   std::string hdr_info_;
   bool is_demuxer_state_reported_;
   base::TimeDelta cached_current_time_;
+  ulong position_before_conflict_;
+
+  media::Ranges<base::TimeDelta> demuxer_buffered_ranges_;
+  base::TimeDelta official_playback_position_;
+  blink::WebMediaPlayer::ReadyState reported_ready_state_;
+
+  // first -> pts, second -> duration
+  base::StaticMap<DemuxerStream::Type,
+                  std::pair<base::TimeDelta, base::TimeDelta>,
+                  base::StaticKeys<DemuxerStream::Type,
+                                   DemuxerStream::AUDIO,
+                                   DemuxerStream::VIDEO>>
+      last_frames_;
 #endif
 
   std::array<ChannelData, kCapiPlayerChannelCount> channel_data_;
@@ -285,10 +313,6 @@ class MEDIA_EXPORT MediaSourcePlayerCapi
   base::RepeatingTimer current_time_update_timer_;
   base::WeakPtrFactory<MediaSourcePlayerCapi> weak_factory_;
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
-  int system_media_volume_;
-#endif
-
   DISALLOW_COPY_AND_ASSIGN(MediaSourcePlayerCapi);
 };
 
index b8581cb..2c4bfd8 100644 (file)
@@ -37,6 +37,8 @@ class SuspendingMediaSourcePlayer : public DemuxerEflClient, public DemuxerEfl {
   void OnDemuxerDurationChanged(base::TimeDelta duration) override;
 #if defined(OS_TIZEN_TV_PRODUCT)
   void OnDemuxerStateChanged(const DemuxerConfigs& params) override;
+  void OnDemuxerBufferedChanged(
+      const media::Ranges<base::TimeDelta>& ranges) override;
 #endif
 
   // DemuxerEfl interface
@@ -96,6 +98,24 @@ class SuspendingMediaPlayer : public MediaPlayerInterfaceEfl,
   base::TimeDelta GetCurrentTime() override;
   void EnteredFullscreen() override;
   void ExitedFullscreen() override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool RegisterTimeline(const std::string& timeline_selector) override;
+  bool UnRegisterTimeline(const std::string& timeline_selector) override;
+  void GetTimelinePositions(const std::string& timeline_selector,
+                            uint32_t* units_per_tick,
+                            uint32_t* units_per_second,
+                            int64_t* content_time,
+                            bool* paused) override;
+  double GetSpeed() override;
+  std::string GetMrsUrl() override;
+  std::string GetContentId() override;
+  bool SyncTimeline(const std::string& timeline_selector,
+                    int64_t timeline_pos,
+                    int64_t wallclock_pos,
+                    int tolerance) override;
+  bool SetWallClock(const std::string& wallclock_url) override;
+  void ElementRemove();
+#endif
 
 #if defined(TIZEN_SOUND_FOCUS)
   // SoundFocusClient interface
@@ -124,7 +144,7 @@ class SuspendingMediaPlayer : public MediaPlayerInterfaceEfl,
   void OnWebViewMoved() override;
 #endif
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void LaunchSystemVolumeController() override;
 #endif
 
@@ -153,8 +173,12 @@ class SuspendingMediaPlayer : public MediaPlayerInterfaceEfl,
   void OnResumeComplete(int player_id) override;
   void OnSuspendComplete(int player_id) override;
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  void OnSystemVolumeChanged(int player_id, double volume, bool init);
+#endif
+
 #if defined(TIZEN_VIDEO_HOLE)
-  gfx::Rect GetViewportRect() const override;
+  gfx::Rect GetViewportRect(int player_id) const override;
 #endif
 
 #if defined(TIZEN_TBM_SUPPORT)
@@ -179,6 +203,11 @@ class SuspendingMediaPlayer : public MediaPlayerInterfaceEfl,
                       const std::string& language,
                       const std::string& id) override;
 
+  void NotifyPlayTrack(int player_id, int id) override;
+  void SetActiveTextTrack(int id, bool is_in_band) override;
+  void NotifySubtitlePlay(int id,
+                          const std::string& url,
+                          const std::string& lang) override;
   void OnSeekableTimeChange(int player_id,
                             base::TimeDelta min_time,
                             base::TimeDelta max_time) override;
@@ -191,6 +220,15 @@ class SuspendingMediaPlayer : public MediaPlayerInterfaceEfl,
                             long long int end_time) override;
 
   void OnDrmError(int player_id) override;
+
+  void OnRegisterTimelineCbInfo(
+      int player_id,
+      const blink::WebMediaPlayer::register_timeline_cb_info_s& info) override;
+  void OnSyncTimelineCbInfo(int player_id,
+                            const std::string& timeline_selector,
+                            int sync) override;
+  void OnMrsUrlChange(int player_id, const std::string& mrsurl) override;
+  void OnContentIdChange(int player_id, const std::string& contentId) override;
 #endif
 
   void StorePosition(const base::TimeDelta& position);
@@ -201,13 +239,17 @@ class SuspendingMediaPlayer : public MediaPlayerInterfaceEfl,
 
   void OnPlayerSuspendRequest(int player_id) override;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void OnPlayerResourceConflict(int player_id) override;
+#endif
+
   bool ShouldSeekAfterResume() const override {
     return player_->ShouldSeekAfterResume();
   }
 
   bool HasConfigs() const override { return player_->HasConfigs(); }
 
-#if defined(TIZEN_MULTIMEDIA_SUPPORT)
+#if defined(TIZEN_NATIVE_SYSTEM_VOLUME_CONTROL_SUPPORT)
   void OnSystemVolumeChange(int player_id, int volume) override;
 #endif
 
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/video_playback_mem_opt.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/chromium_impl/media/base/tizen/video_playback_mem_opt.h
new file mode 100644 (file)
index 0000000..9728d28
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef VIDEO_PLAYBACK_MEM_OPT_H_
+#define VIDEO_PLAYBACK_MEM_OPT_H_
+
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+
+namespace media {
+
+class VideoPlaybackMemOpt {
+  public:
+    VideoPlaybackMemOpt(
+        base::TimeDelta gc_interval_sec =
+            base::TimeDelta::FromSeconds(2),
+        base::TimeDelta malloc_trim_interval_sec =
+            base::TimeDelta::FromSeconds(30));
+
+    ~VideoPlaybackMemOpt() = default;
+
+    void Start();
+    void Stop();
+
+  private:
+    void StartMallocTrim();
+    void StopMallocTrim();
+    void StartJsGcIfNeeded();
+    void StopJsGcIfNeeded();
+
+    static void JsGcIfNeededTimerFired();
+    static void MallocTrimTimerFired();
+    static void DoJsGcIfNeeded();
+    static void DoMallocTrim();
+
+    const base::TimeDelta gc_interval_sec_;
+    const base::TimeDelta malloc_trim_interval_sec_;
+    base::RepeatingTimer js_gc_timer_;
+    base::RepeatingTimer malloc_trim_timer_;
+};
+
+} // namespace media
+
+#endif // VIDEO_PLAYBACK_MEM_OPT_H_
index d7e4e24..c73e4c6 100644 (file)
 #include "media/mojo/interfaces/image_capture.mojom.h"
 #include "ui/gfx/gpu_memory_buffer.h"
 
+#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
+#include <recorder.h>
+#endif
+
 namespace media {
 
 struct VideoCaptureFormat;
@@ -79,7 +83,6 @@ class CameraHandle final {
  public:
   static CameraHandle* GetInstance();
 
-  camera_h GetCameraHandle() { return camera_handle_; };
   camera_device_e GetDeviceName() { return device_name_; };
 
   bool IsValid();
@@ -105,6 +108,40 @@ class CameraHandle final {
 
   std::unique_ptr<PhotoCapabilities> capabilities_;
 
+#if defined(ENABLE_TIZEN_MEDIA_RECORDER)
+  // Recorder API
+  int CreateVideoRecorder(recorder_h* recorder_handle) {
+    return recorder_create_videorecorder(camera_handle_, recorder_handle);
+  };
+#endif
+
+  int CameraStartCapture(camera_capturing_cb capturingCB,
+                         camera_capture_completed_cb completedCB,
+                         void* data);
+  int CameraSetCaptureFormat(camera_pixel_format_e format);
+  int CameraSetCaptureResolution(int width, int height);
+
+  // camera apis
+  int CameraStartPreview();
+  int CameraStopPreview();
+  int CameraSetStreamFlip(camera_flip_e flip);
+
+  // getter
+  camera_attr_fps_e CameraGetPreviewFps();
+
+  // setter
+  int CameraSetDisplay(camera_display_type_e type, camera_display_h display);
+  int CameraSetPreviewResolution(int width, int height);
+  int CameraSetPreviewFormat(camera_pixel_format_e format);
+  int CameraSetPreviewFps(camera_attr_fps_e fps);
+
+  // callbacks
+  int CameraSetPreviewCb(camera_preview_cb callback, void* data);
+  int CameraUnsetPreviewCb();
+  int CameraSetMediapacketPreviewCb(camera_media_packet_preview_cb callback,
+                                    void* data);
+  int CameraUnsetMediapacketPreviewCb();
+
  private:
   CameraHandle();
   ~CameraHandle();
index b39c6af..765eaf9 100644 (file)
@@ -78,7 +78,7 @@ class VideoCaptureDeviceTizen : public VideoCaptureDevice,
 
   void SetErrorState(const char* reason, const tracked_objects::Location& location);
 
-  camera_h camera_;
+  CameraHandle* camera_instance_;
   std::unique_ptr<VideoCaptureDevice::Client> client_;
   std::unique_ptr<VideoCaptureDevice::Client::Buffer> buffer_;
   base::Lock capturing_state_lock_;
@@ -87,7 +87,7 @@ class VideoCaptureDeviceTizen : public VideoCaptureDevice,
   base::Thread worker_;  // Thread used for reading data from the device.
 
   bool is_capturing_;
-  bool use_media_packet_;
+  bool using_media_packet_;
   InternalState state_;
   base::TimeTicks first_ref_time_;
 
index 5fbc756..4a9fca1 100644 (file)
@@ -57,9 +57,11 @@ class LibavVideoDecoderTizen : public VideoDecoder {
   void Stop();
 
   // Callback called from within FFmpeg to allocate a buffer based on
-  // the dimensions of |codec_context|. See AVCodecContext.get_buffer
+  // the dimensions of |codec_context|. See AVCodecContext.get_buffer2
   // documentation inside FFmpeg.
-  int GetVideoBuffer(AVCodecContext* codec_context, AVFrame* frame);
+  int GetVideoBuffer(struct AVCodecContext* codec_context,
+                     AVFrame* frame,
+                     int flags);
 
  private:
   enum DecoderState { kUninitialized, kNormal, kDecodeFinished, kError };
index dba5d8a..cca2e3d 100644 (file)
 
 enum class ClipboardDataTypeEfl;
 class EWebView;
-class SkBitmap;
 
 class UI_BASE_EXPORT ClipboardHelperEfl {
  public:
   using ExecCommandCallback = base::Callback<void(const char*, const char*)>;
   static ClipboardHelperEfl* GetInstance();
-  static Eina_Bool SelectionGetCb(void* data,
-                                  Evas_Object* obj,
-                                  Elm_Selection_Data* ev);
-
   void SetData(const std::string& data, ClipboardDataTypeEfl type);
   void Clear();
   bool CanPasteFromClipboardApp() const;
   bool CanPasteFromSystemClipboard() const {
-  // FIXME(g.ludwikowsk): this function should work differently for richtext
-  // and normal inputs
-  return !clipboard_contents_.empty() ||
-         !clipboard_image_contents_path_.empty();
+    // FIXME(g.ludwikowsk): for now it is the same as CanPasteFromClipboardApp,
+    // but we should also take into account that if there are only images in
+    // clipboard and we are in a text input then we can't paste, but can show
+    // clipboard window (like in tizen 2.4)
+    return CanPasteFromClipboardApp();
   }
   bool IsFormatAvailable(const ui::Clipboard::FormatType& format) const;
   void RefreshClipboard();
   bool RetrieveClipboardItem(std::string* data,
                              ClipboardDataTypeEfl format) const;
-  bool RetrieveImage(SkBitmap* bitmap) const;
 
-  // SetWebviewEditCallback needs a callback to EWebView's ExecuteEditCommand
+  // OnWebviewFocusIn needs a callback to EWebView's ExecuteEditCommand
   // function, because we can't include eweb_view.h header in chromium_impl
   // directory to call ExecuteEditCommand directly.
   // We also keep a pointer to EWebView instance associated with the callback,
   // to know if we should reset exec_commnad_callback_ when that EWebView is
   // destroyed.
-  void SetWebviewEditCallback(ExecCommandCallback edit_command_callback,
-      EWebView* webview);
-  void MaybeInvalidateEditCallback(EWebView* webview);
+  void OnWebviewFocusIn(EWebView* webview,
+                        Evas_Object* source,
+                        bool is_content_editable,
+                        ExecCommandCallback exec_command_callback);
+  void MaybeInvalidateActiveWebview(EWebView* webview);
   void OpenClipboardWindow(EWebView* webview, bool richly_editable);
   void CloseClipboardWindow();
   bool IsClipboardWindowOpened() const {
@@ -56,19 +53,30 @@ class UI_BASE_EXPORT ClipboardHelperEfl {
     // ::CbhmOnNameOwnerChanged
     return clipboard_window_opened_;
   }
-
-  void SetSource(Evas_Object* obj) { source_widget_ = obj; }
-  void SetAppVisibleState(bool visible) {
-    accept_clipboard_app_events_ = visible;
+  void SetContentEditable(bool is_content_editable) {
+    is_content_editable_ = is_content_editable;
   }
 
  private:
   friend struct base::DefaultSingletonTraits<ClipboardHelperEfl>;
 
+  static Eina_Bool SelectionGetCbHTML(void* data,
+                                      Evas_Object* obj,
+                                      Elm_Selection_Data* ev);
+  static Eina_Bool SelectionGetCbText(void* data,
+                                      Evas_Object* obj,
+                                      Elm_Selection_Data* ev);
+  static Eina_Bool SelectionGetCbAppHTML(void* data,
+                                         Evas_Object* obj,
+                                         Elm_Selection_Data* ev);
+  static Eina_Bool SelectionGetCbAppText(void* data,
+                                         Evas_Object* obj,
+                                         Elm_Selection_Data* ev);
+
   static bool Base64ImageTagFromImagePath(const std::string& path,
                                           std::string* image_html);
-  static bool ImagePathFromEflMarkup(const std::string& markup,
-                                     std::string* image_path);
+  static bool ConvertImgTagToBase64(const std::string& tag,
+                                    std::string* out_tag);
 
   static void CbhmOnNameOwnerChanged(void* data,
                                      const char* bus,
@@ -76,12 +84,23 @@ class UI_BASE_EXPORT ClipboardHelperEfl {
                                      const char* new_id);
   static void OnClipboardItemClicked(void* data,
                                      const Eldbus_Message* msg);
+  static void GetClipboardTextPost(ClipboardHelperEfl* self);
 
   ClipboardHelperEfl();
   ~ClipboardHelperEfl();
 
-  bool ProcessClipboardAppEvent(const std::string& data, Elm_Sel_Format format);
-  bool ProcessRefreshEvent(const std::string& data, Elm_Sel_Format format);
+  void RefreshClipboardForApp();
+  void ProcessClipboardAppEvent(Elm_Selection_Data* ev, Elm_Sel_Format format);
+
+  const std::string& clipboard_html() const {
+    return paste_from_clipboard_app_
+               ? clipboard_contents_html_from_clipboard_app_
+               : clipboard_contents_html_;
+  }
+  const std::string& clipboard_text() const {
+    return paste_from_clipboard_app_ ? clipboard_contents_from_clipboard_app_
+                                     : clipboard_contents_;
+  }
 
   void CbhmEldbusInit();
   void CbhmEldbusDeinit();
@@ -92,17 +111,19 @@ class UI_BASE_EXPORT ClipboardHelperEfl {
   // (multiple webviews)?
   Evas_Object* source_widget_;
 
-  // These are clipboard contents for various formats.
+  std::string clipboard_contents_html_;
+  std::string clipboard_contents_html_from_clipboard_app_;
   std::string clipboard_contents_;
-  std::string clipboard_image_contents_path_;
+  std::string clipboard_contents_from_clipboard_app_;
 
   // Clipboard app integration:
   Eldbus_Proxy* eldbus_proxy_;
   Eldbus_Connection* cbhm_conn_;
   ExecCommandCallback exec_command_callback_;
   bool clipboard_window_opened_;
-  bool paste_on_next_clipboard_event_;
+  bool paste_from_clipboard_app_;
   bool accept_clipboard_app_events_;
+  bool is_content_editable_;
   EWebView* last_webview_;
 
   DISALLOW_COPY_AND_ASSIGN(ClipboardHelperEfl);
index 0640bdf..8ecf5a3 100644 (file)
@@ -33,7 +33,6 @@ class PersonalDataManagerFactory : public PersonalDataManagerObserver {
  public:
   static PersonalDataManagerFactory* GetInstance();
 
-  void PersonalDataManagerAdd(content::BrowserContext* ctx);
   void PersonalDataManagerRemove(content::BrowserContext* ctx);
   PersonalDataManager* PersonalDataManagerForContext(
       content::BrowserContext* ctx);
index 9f3d76a..74d22e4 100644 (file)
@@ -23,6 +23,7 @@ class AppCacheService;
 class BrowserContext;
 class DOMStorageContext;
 struct LocalStorageUsageInfo;
+struct SessionStorageUsageInfo;
 class StoragePartition;
 }
 namespace disk_cache {
@@ -35,11 +36,12 @@ class BrowsingDataRemoverEfl {
  public:
   // Mask used for Remove.
   enum RemoveDataMask {
-    REMOVE_LOCAL_STORAGE = 1 << 0,
-    REMOVE_INDEXEDDB     = 1 << 1,
-    REMOVE_WEBSQL        = 1 << 2,
-    REMOVE_FILE_SYSTEMS  = 1 << 3,
-    REMOVE_APPCACHE      = 1 << 4,
+    REMOVE_LOCAL_STORAGE   = 1 << 0,
+    REMOVE_INDEXEDDB       = 1 << 1,
+    REMOVE_WEBSQL          = 1 << 2,
+    REMOVE_FILE_SYSTEMS    = 1 << 3,
+    REMOVE_APPCACHE        = 1 << 4,
+    REMOVE_SESSION_STORAGE = 1 << 5,
   };
 
   static BrowsingDataRemoverEfl* CreateForUnboundedRange(content::BrowserContext*);
@@ -71,6 +73,12 @@ class BrowsingDataRemoverEfl {
   // Callback to deal with the list gathered in ClearLocalStorageOnUIThread.
   void OnGotLocalStorageUsageInfo(const std::vector<content::LocalStorageUsageInfo>&);
 
+  // Invoked on the UI thread to delete session storage.
+  void ClearSessionStorageOnUIThread();
+
+  // Callback to deal with the list gathered in ClearSessionStorageOnUIThread.
+  void OnGotSessionStorageUsageInfo(const std::vector<content::SessionStorageUsageInfo>&);
+
   // Invoked on the IO thread to delete all storage types managed by the quota
   // system: AppCache, Databases, FileSystems.
   void ClearQuotaManagedDataOnIOThread();
@@ -132,6 +140,7 @@ class BrowsingDataRemoverEfl {
 
   bool waiting_for_clear_cache_;
   bool waiting_for_clear_local_storage_;
+  bool waiting_for_clear_session_storage_;
   bool waiting_for_clear_quota_managed_data_;
 
   // Tracking how many origins need to be deleted, and whether we're finished
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/gamepad/gamepad_platform_data_fetcher_tizen_tv.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/gamepad/gamepad_platform_data_fetcher_tizen_tv.h
new file mode 100644 (file)
index 0000000..4f759da
--- /dev/null
@@ -0,0 +1,73 @@
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_TIZEN_TV_H_
+#define TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_TIZEN_TV_H_
+
+#include <accessory/GamepadEntry.h>
+#include <accessory/IGamepad.h>
+#include <accessory/OCICommon.h>
+#include <accessory/GamepadCallback.h>
+#include <memory>
+#include <string>
+#include "tizen_src/ewk/efl_integration/browser/gamepad/oci_gamepad_item.h"
+#include "device/gamepad/gamepad_data_fetcher.h"
+#include "device/gamepad/gamepad_standard_mappings.h"
+#include "third_party/WebKit/public/platform/WebGamepads.h"
+
+namespace device {
+
+class GamepadPlatformDataFetcherTizenTV
+    : public device::GamepadDataFetcher,
+      public gamepad::CGamepadManagerCallback {
+ public:
+  typedef device::GamepadDataFetcherFactoryImpl<GamepadPlatformDataFetcherTizenTV,
+                                    device::GAMEPAD_SOURCE_TIZEN_TV>
+  Factory;
+  GamepadPlatformDataFetcherTizenTV();
+  ~GamepadPlatformDataFetcherTizenTV() override;
+
+  // GamepadDataFetcher implementation.
+  void GetGamepadData(bool devices_changed_hint) override;
+  GamepadSource source() override;
+
+ protected:
+  virtual void t_OnCallback(int type,
+                            void* pparam1,
+                            void* pparam2,
+                            void* pparam3);
+
+ private:
+
+  void ReadTizenDeviceData(size_t index);
+  void EnumerateTizenDevices();
+
+  void InitTizenDevice();
+  void Initialize();
+  void InitMapping(size_t index);
+
+  // Notice: [in] uid, [out] pid, [out] vid
+  void GetPidVid(const char* uid, std::string* pid, std::string* vid);
+  void UTF8toUTF16(blink::WebUChar utf_16_str[],
+                   size_t utf_16_str_size,
+                   std::string str,
+                   size_t str_length);
+
+  // Functions to map from device data to standard layout.
+  static void MapperTizenStyleGamepad(const blink::WebGamepad& input,
+                                      blink::WebGamepad* mapped);
+
+  // Data that's returned to the consumer.
+  blink::WebGamepads data_;
+
+  gamepad::IGamepadManager* gamepad_manager_;
+  std::array<std::unique_ptr<OCIGamepadItem>,
+             blink::WebGamepads::itemsLengthCap> gamepad_items_;
+
+  DISALLOW_COPY_AND_ASSIGN(GamepadPlatformDataFetcherTizenTV);
+};
+
+}  // namespace content
+
+#endif  // TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_GAMEPAD_PLATFORM_DATA_FETCHER_TIZEN_TV_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/gamepad/oci_gamepad_item.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/gamepad/oci_gamepad_item.h
new file mode 100644 (file)
index 0000000..6443898
--- /dev/null
@@ -0,0 +1,82 @@
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_OCI_GAMEPAD_ITEM_H_
+#define TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_OCI_GAMEPAD_ITEM_H_
+
+#include <accessory/GamepadEntry.h>
+#include <accessory/IGamepad.h>
+#include <accessory/OCICommon.h>
+#include <memory>
+#include "base/macros.h"
+#include "third_party/WebKit/public/platform/WebGamepads.h"
+
+namespace device {
+
+class OCIGamepadItem : public gamepad::CGamepadCallback {
+ public:
+  ~OCIGamepadItem() override;
+
+  // OCIGamepadItem implementation.
+  const char* GetUID();
+  const char* GetGamepadName();
+  size_t GetItemIndex();
+
+  // change the device data.
+  void RefreshOCIGamepadData();
+
+  // static function for create OCIGamepadItem, used by
+  // GamepadPlatformDataFetcherTizenTV
+  static std::unique_ptr<OCIGamepadItem> Create(IGamepadManager* manager,
+                                                OCIDevInfo* dev_info,
+                                                blink::WebGamepad* pad,
+                                                int index);
+
+ protected:
+  // Cannot follow google naming style, because it's override from
+  // CGamepadCallback
+  void t_OnCallback(int type,
+                            void* pparam1,
+                            void* pparam2,
+                            void* pparam3) override;
+
+ private:
+  float range_tizen_axis_value_abs_z_;
+  float range_tizen_axis_value_abs_rz_;
+
+  float range_tizen_axis_value_abs_x_;
+  float range_tizen_axis_value_abs_y_;
+  float range_tizen_axis_value_abs_rx_;
+  float range_tizen_axis_value_abs_ry_;
+
+  static const size_t kOCIGamepadItemsLength = 16;
+  OCIControllerEvent events_[kOCIGamepadItemsLength];
+
+  explicit OCIGamepadItem(IGamepadManager* manager,
+                          OCIDevInfo* info,
+                          blink::WebGamepad* pad);
+  bool CreateDevice();
+  void DestroyDevice();
+  void SetOCIGamepadItemIndex(size_t index);
+
+  void InitAxisRangeTizen();
+  void InitAxisRangeTizen(int code, float* range);
+  void RefreshOCIGamepadDataEachEvent(const OCIControllerEvent& event,
+                                      const int index);
+  static size_t s_oci_gamepaditem_num_;
+  static const float kRangeTizenAxisValueAbsZRz;
+  static const float kRangeTizenAxisValueAbsXYRxRy;
+
+  IGamepadManager* manager_;
+  OCIDevInfo info_;
+  IGamepad* gamepad_;
+  blink::WebGamepad* pad_;
+  size_t index_;
+
+  DISALLOW_COPY_AND_ASSIGN(OCIGamepadItem);
+};
+
+}  // namespace content
+
+#endif  // TIZEN_SRC_EWK_EFL_INTEGRATION_BROWSER_GAMEPAD_OCI_GAMEPAD_ITEM_H_
index 1dc448c..c8c767f 100644 (file)
@@ -41,6 +41,9 @@ class JavaScriptDialogManagerEfl: public content::JavaScriptDialogManager {
   void CancelDialogs(content::WebContents* web_contents,
                      bool suppress_callbacks,
                      bool reset_state) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void OnDialogClosed(content::WebContents* web_contents) override;
+#endif
 
   void SetPopupSize(int width, int height);
   bool IsShowing();
index f7eb925..3bdb9e0 100644 (file)
@@ -40,7 +40,7 @@ class GinNativeBoundObject
       const std::string& name,
       int32_t holder);
   void AddName() { ++names_count_; }
-  void RemoveName() { --names_count_; }
+  void RemoveName() { --names_count_; }  // LCOV_EXCL_LINE
   Evas_Object* GetView() const { return obj_; }
   Ewk_View_Script_Message_Cb CallBack() const { return callback_; }
   const char* Name() const { return name_.c_str(); }
index f193ba8..c0c90e8 100644 (file)
@@ -34,7 +34,7 @@ namespace browser_net {
 class PredictorEfl {
  public:
   explicit PredictorEfl();
-  ~PredictorEfl();
+  virtual ~PredictorEfl();
 
   virtual void InitNetworkPredictor(
       content::BrowserContextEfl* browser_context_efl);
@@ -170,4 +170,4 @@ class PredictorEfl {
 
 }  // namespace browser_net
 
-#endif  // TIZEN_SRC_EWK_EFL_INTEGRATION_PREDICTOR_EFL_H_
\ No newline at end of file
+#endif  // TIZEN_SRC_EWK_EFL_INTEGRATION_PREDICTOR_EFL_H_
index 24b20ec..c9e5494 100644 (file)
 class EWebView;
 class SkBitmap;
 
+namespace leveldb {
+class DB;
+}
+
 namespace content {
 class WebContents;
 
@@ -45,15 +49,16 @@ struct PersistentNotificationData {
   ~PersistentNotificationData();
 };
 
-class NotificationControllerEfl: public PlatformNotificationService {
+class NotificationControllerEfl : public PlatformNotificationService {
  public:
   NotificationControllerEfl();
   ~NotificationControllerEfl() override;
 
   // Adds a new notification received from engine to a list
-  void NotificationAdd(uint64_t notification_id, const GURL& origin,
-      const base::string16& replace_id,
-      std::unique_ptr<DesktopNotificationDelegate> delegate);
+  void NotificationAdd(uint64_t notification_id,
+                       const GURL& origin,
+                       const base::string16& replace_id,
+                       std::unique_ptr<DesktopNotificationDelegate> delegate);
 
   bool NotificationClosed(uint64_t notification_id, bool by_user);
 
@@ -65,13 +70,17 @@ class NotificationControllerEfl: public PlatformNotificationService {
   // Notification engine that notification was displayed
   bool NotificationDisplayed(uint64_t notification_id);
 
+  bool PersistentNotificationClicked(BrowserContext* browser_context,
+                                     const char* id,
+                                     const char* origin);
+
   // sets the permission for a particular pending notification
   void SetPermissionForNotification(
       Ewk_Notification_Permission_Request* notification,
       bool allowed);
 
   // Adds permission to map
-  void AddPermission(const GURL origin, bool allowed);
+  void PutPermission(const GURL& origin, bool allowed);
 
   // Removes all stored permissions
   void ClearPermissions();
@@ -82,19 +91,23 @@ class NotificationControllerEfl: public PlatformNotificationService {
   // Checks if the notification is already present.
   // If present returns the notification id of the notification else false
   bool IsNotificationPresent(const GURL& origin,
-      const base::string16& replaceid, uint64_t& notification_id);
+                             const base::string16& replace_id,
+                             uint64_t& notification_id);
 
-  void RequestPermission(WebContents* web_contents,
-                         const GURL& requesting_frame,
-                         const base::Callback<void(
-                             blink::mojom::PermissionStatus)>& result_callback);
+  void RequestPermission(
+      WebContents* web_contents,
+      const GURL& requesting_frame,
+      const base::Callback<void(blink::mojom::PermissionStatus)>&
+          result_callback);
 
   void SetNotificationCallbacks(Ewk_Notification_Show_Callback show_callback,
-      Ewk_Notification_Cancel_Callback close_callback, void* user_data);
+                                Ewk_Notification_Cancel_Callback close_callback,
+                                void* user_data);
 
   /* PlatformNotificationService */
   blink::mojom::PermissionStatus CheckPermissionOnUIThread(
-      BrowserContext* browser_context, const GURL& origin,
+      BrowserContext* browser_context,
+      const GURL& origin,
       int render_process_id) override;
 
   // Checks if |origin| has permission to display Web Notifications. This method
@@ -131,9 +144,8 @@ class NotificationControllerEfl: public PlatformNotificationService {
 
   // Closes the persistent notification identified by
   // |persistent_notification_id|. This method must be called on the UI thread.
-  void ClosePersistentNotification(
-      BrowserContext* browser_context,
-      const std::string& notification_id) override;
+  void ClosePersistentNotification(BrowserContext* browser_context,
+                                   const std::string& notification_id) override;
 
   // Writes the ids of all currently displaying persistent notifications for the
   // given |browser_context| to |displayed_notifications|. Returns whether the
@@ -148,17 +160,21 @@ class NotificationControllerEfl: public PlatformNotificationService {
 #endif
 
  private:
-  blink::mojom::PermissionStatus CheckPermissionForOrigin(
-      const GURL &origin) const;
+  bool InitializePermissionDatabase(bool clear = false);
+  blink::mojom::PermissionStatus CheckPermissionForOrigin(const GURL& origin);
 
   bool DefaultShowCallback(uint64_t tag,
+                           const std::string& notification_id,
+                           const GURL& origin,
                            const char* title,
                            const char* body,
                            const SkBitmap& icon,
-                           const SkBitmap& badge);
+                           const SkBitmap& badge,
+                           bool is_persistent);
   bool DefaultCancelCallback(uint64_t tag);
 
-  IDMap<NotificationData, IDMapOwnPointer> notifications_map_; // This stores the notifications displayed to the user
+  // This stores the notifications displayed to the user.
+  IDMap<NotificationData, IDMapOwnPointer> notifications_map_;
   IDMap<PersistentNotificationData, IDMapOwnPointer>
       persistent_notification_map_;
 
@@ -169,13 +185,15 @@ class NotificationControllerEfl: public PlatformNotificationService {
   Ewk_Notification_Cancel_Callback notification_cancel_callback_;
   void* notification_callback_user_data_;
 
-  std::map<uint64_t, int> keymapper_;
+  std::unique_ptr<leveldb::DB> permissions_db_;
+
+  std::map<uint64_t, int> key_mapper_;
   EWebView* web_view_;
   base::WeakPtrFactory<NotificationControllerEfl> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(NotificationControllerEfl);
 };
 
-} //namespace
+}  // namespace content
 
-#endif // NOTIFICATION_CONTROLLER_EFL_H
+#endif  // NOTIFICATION_CONTROLLER_EFL_H
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.h
new file mode 100644 (file)
index 0000000..03a754a
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_
+#define EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_
+
+#if defined(TIZEN_AUTOFILL_SUPPORT)
+
+#include <vector>
+
+#include "base/callback.h"
+#include "base/memory/ref_counted.h"
+
+class GURL;
+
+namespace autofill {
+struct PasswordForm;
+}  // namespace autofill
+
+namespace password_manager {
+class PasswordStore;
+}  // namespace password_manager
+
+namespace password_helper {
+
+typedef base::Callback<void(
+    const std::vector<std::unique_ptr<autofill::PasswordForm>>& results)>
+    GetLoginsCallback;
+
+// Get all password forms from the password store.
+void GetLogins(const scoped_refptr<password_manager::PasswordStore>& store,
+               const GetLoginsCallback& callback);
+
+// Removes password form which is matched with |origin] from the password store.
+void RemoveLogin(const scoped_refptr<password_manager::PasswordStore>& store,
+                 const GURL& origin);
+
+// Removes all password forms from the password store.
+void RemoveLogins(const scoped_refptr<password_manager::PasswordStore>& store);
+
+}  // namespace password_helper
+
+#endif  // TIZEN_AUTOFILL_SUPPORT
+#endif  // EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/payments/payment_data.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/payments/payment_data.h
new file mode 100644 (file)
index 0000000..9ef3c66
--- /dev/null
@@ -0,0 +1,81 @@
+// Copyright 2017 Samsung Electronics Inc. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PAYMENT_DATA_H_
+#define PAYMENT_DATA_H_
+
+#include "browser/payments/payment_request_dialog_efl.h"
+#include "components/payments/payment_request.h"
+
+namespace payments {
+
+class PaymentData {
+ public:
+  PaymentData(PaymentRequestDialogEfl* dialog) {
+    dialog_ = dialog;
+    ResetFlags();
+  }
+
+  void ResetFlags() {
+    shipping_profile_selected_ = payer_phone_selected_ = payer_email_selected_ =
+        credit_card_selected_ = false;
+  }
+
+  bool IsPaymentDataReady() {
+    bool ready = credit_card_selected_;
+    if (dialog_->request_->spec()->request_shipping())
+      ready = ready && shipping_profile_selected_;
+    if (dialog_->request_->spec()->request_payer_phone())
+      ready = ready && payer_phone_selected_;
+    if (dialog_->request_->spec()->request_payer_email())
+      ready = ready && payer_email_selected_;
+    return ready;
+  }
+
+  void SetSelectedPhone(autofill::AutofillProfile* profile) {
+    dialog_->request_->state()->SetSelectedContactProfile(profile);
+    payer_phone_selected_ = true;
+    CheckAndEnablePayButton();
+  }
+
+  void SetSelectedEmail(autofill::AutofillProfile* profile) {
+    dialog_->request_->state()->SetSelectedContactProfile(profile);
+    payer_email_selected_ = true;
+    CheckAndEnablePayButton();
+  }
+
+  void SetSelectedShippingAddress(autofill::AutofillProfile* profile) {
+    dialog_->request_->state()->SetSelectedShippingProfile(profile);
+    shipping_profile_selected_ = true;
+    CheckAndEnablePayButton();
+  }
+
+  void SetSelectedCreditCard(autofill::CreditCard* card) {
+    dialog_->request_->state()->SetSelectedCreditCard(card);
+    credit_card_selected_ = true;
+    CheckAndEnablePayButton();
+  }
+
+  void SetSelectedShippingOption(const std::string& id) {
+    dialog_->request_->state()->SetSelectedShippingOption(id);
+  }
+
+  void CheckAndEnablePayButton() {
+    if (dialog_->pay_button_ && IsPaymentDataReady())
+      elm_object_disabled_set(dialog_->pay_button_, false);
+  }
+
+ private:
+  // Flags that are enabled when respective profiles are selected.
+  bool shipping_profile_selected_;
+  bool payer_phone_selected_;
+  bool payer_email_selected_;
+  bool credit_card_selected_;
+
+  PaymentRequestDialogEfl* dialog_;
+};
+
+}  // namespace payments
+
+#endif  // PAYMENT_DATA_H_
index 51f8754..112ac4d 100644 (file)
@@ -20,12 +20,14 @@ class PaymentRequestDialog;
 class PaymentRequestDelegateEfl : public PaymentRequestDelegate {
  public:
   explicit PaymentRequestDelegateEfl(content::WebContents* web_contents);
-  ~PaymentRequestDelegateEfl() override {}
+  ~PaymentRequestDelegateEfl() override;
 
   void ShowDialog(PaymentRequest* request) override;
   void CloseDialog() override;
   autofill::PersonalDataManager* GetPersonalDataManager() override;
 
+  const std::string& GetApplicationLocale() const override;
+
  protected:
   // Reference to the dialog so that we can satisfy calls to CloseDialog(). This
   // reference is invalid once CloseDialog() has been called on it, because the
@@ -35,6 +37,7 @@ class PaymentRequestDelegateEfl : public PaymentRequestDelegate {
  private:
   // Not owned but outlives the PaymentRequest object that owns this.
   content::WebContents* web_contents_;
+  const std::string app_locale_;
 
   DISALLOW_COPY_AND_ASSIGN(PaymentRequestDelegateEfl);
 };
index 1e75f35..9c2fcd6 100644 (file)
@@ -7,9 +7,27 @@
 
 #include <Elementary.h>
 #include <Evas.h>
+#include <ecore-1/Ecore.h>
 #include <string>
 
+#include "base/guid.h"
 #include "base/macros.h"
+#include "browser/autofill/personal_data_manager_factory.h"
+#include "components/autofill/core/browser/autofill_country.h"
+#include "components/autofill/core/browser/autofill_experiments.h"
+#include "components/autofill/core/browser/autofill_metrics.h"
+#include "components/autofill/core/browser/autofill_profile.h"
+#include "components/autofill/core/browser/autofill_test_utils.h"
+#include "components/autofill/core/browser/field_types.h"
+#include "components/autofill/core/browser/form_structure.h"
+#include "components/autofill/core/browser/personal_data_manager_observer.h"
+#include "components/autofill/core/browser/webdata/autofill_table.h"
+#include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
+#include "components/autofill/core/common/autofill_clock.h"
+#include "components/autofill/core/common/autofill_constants.h"
+#include "components/autofill/core/common/autofill_pref_names.h"
+#include "components/autofill/core/common/autofill_switches.h"
+#include "components/autofill/core/common/form_data.h"
 #include "components/payments/payment_request_dialog.h"
 
 class EWebView;
@@ -21,6 +39,84 @@ class WebContents;
 namespace payments {
 
 class PaymentRequest;
+class PaymentRequestDialogEfl;
+struct LayoutIdData;
+class PaymentData;
+
+enum ContextPopupItemType { TYPE_NONE = 0, MONTH, YEAR, BILLING_ADDR };
+
+struct CtxpopupItemData {
+  PaymentRequestDialogEfl* dialog;
+  Evas_Object* btn;
+  Evas_Object* ctxpopup;
+  std::string data;
+  ContextPopupItemType type;
+  std::string guid;  // set only for type BILLING_ADDR
+};
+
+struct OrderSummaryItemData {
+  PaymentRequestDialogEfl* dialog;
+  std::string label;
+  std::string currency;
+  std::string value;
+  bool is_shipping_type;
+  int id;
+};
+
+struct AutofillGenlistItemData {
+  PaymentRequestDialogEfl* dialog;
+  Evas_Object* radio;
+  std::string data;
+  std::string guid;
+  int id;
+};
+
+struct ShippingOptionItemData {
+  PaymentRequestDialogEfl* dialog;
+  Evas_Object* radio;
+  std::string shipping_type;
+  std::string currency;
+  std::string value;
+  std::string option_id;
+  int id;
+  bool selected;
+};
+
+enum CreditCardType {
+  CARD_UNKNOWN = 0,    // sad
+  CARD_VISA = 1,       // if (number[0] == '4')
+  CARD_AMEX = 2,       // first_two_digits == 34 || first_two_digits == 37
+  CARD_MASTERCARD = 3  // first_two_digits >= 51 && first_two_digits <= 55
+};
+
+enum LayoutId {
+  LAYOUT_NONE = 0,
+  LAYOUT_ORDER_SUMMARY = 1,
+  LAYOUT_SHIPPING_ADDR = 2,
+  LAYOUT_SHIPPING_OPTION = 3,
+  LAYOUT_PAYMENT_METHOD = 4,
+  LAYOUT_PHONE_NUMBER = 5,
+  LAYOUT_EMAIL_ADDR = 6
+};
+
+enum ShippingAddressFieldType {
+  COUNTRY = 1,
+  NAME = 2,
+  ORGANISATION = 3,
+  STREETADDRESS = 4,
+  POSTALTOWN = 5,
+  COUNTY = 6,
+  POSTCODE = 7,
+  PHONENUMBER = 8,
+  NONE = 9
+};
+
+struct ItemData {
+  PaymentRequestDialogEfl* dialog;
+  ShippingAddressFieldType type;
+  Evas_Object* dropdown;
+  Evas_Object* entry;
+};
 
 class PaymentRequestDialogEfl : public PaymentRequestDialog {
  public:
@@ -29,32 +125,338 @@ class PaymentRequestDialogEfl : public PaymentRequestDialog {
 
   void ShowDialog() override;
   void CloseDialog() override;
+
+  void InitializeOrResetData();
+
+  // Deletes popup and conformant
   void Close();
 
+  // Layout parts of main layout
+  Evas_Object* AddHeaderLayout();
+  Evas_Object* AddOrderSummaryLayout();
+  Evas_Object* AddShippingAddressLayout();
+  Evas_Object* AddShippingOptionLayout();
+  Evas_Object* AddPaymentMethodLayout();
+  Evas_Object* AddPhoneNumberLayout();
+  Evas_Object* AddEmailAddressLayout();
+
+  // Child layouts of main layouts
+  void AddCardInputLayout();
+  void ShippingAddressInputLayout();
+  void ContactPhoneNumberInputLayout();
+  void ContactEmailAddressInputLayout();
+  void EnablePayButton();
+  void ShowCvcInputLayout();
+  void ShowPaymentProcessingPopup();
+
+  void GetCardNumberFromSelectedItem(const std::string& number,
+                                     std::string& phone_number_to_display);
+  void AppendItemToContextPopup(PaymentRequestDialogEfl* dialog,
+                                Evas_Object* btn,
+                                Evas_Object* ctxpopup,
+                                std::string data,
+                                ContextPopupItemType type = TYPE_NONE,
+                                std::string guid = std::string());
+  void ShippingAppendItemToContextPopup(PaymentRequestDialogEfl* dialog,
+                                        Evas_Object* btn,
+                                        Evas_Object* ctxpopup,
+                                        std::string data);
+  void ClearCtxpopupDataList();
+  void ClearAllDataLists();
+  CreditCardType CheckCreditCardType(const char* number);
+  CreditCardType CheckCreditCardTypeFromDisplayStr(const char* display_str);
+  Evas_Object* GetLayoutObjForLayoutId(LayoutId id);
+  void ShrinkLayoutForLayoutId(LayoutId id);
+  void ExpandLayoutForLayoutId(LayoutId id);
+  void AddExpandAndShrinkButtons(Evas_Object* layout,
+                                 LayoutIdData* layout_data);
+  void UpdateOrderTotalValueForShippingOption(void* data);
+  void SetCountries();
+
   Evas_Object* AddButton(Evas_Object* layout,
                          const std::string& text,
                          const std::string& part,
                          Evas_Smart_Cb callback);
+  Evas_Object* AddCustomButton(Evas_Object* layout,
+                               const std::string& text,
+                               const std::string& part,
+                               Evas_Smart_Cb callback);
+  void AddOverlayButton(const std::string& part, LayoutIdData* data);
+  Evas_Object* AddDropDownButton(const std::string& text,
+                                 const std::string& part);
   Evas_Object* AddCloseButton(Evas_Object* layout,
                               const std::string& part,
                               Evas_Smart_Cb callback);
-  static void CancelButtonCallback(void* data,
-                                   Evas_Object* obj,
-                                   void* event_info);
-  static void CloseButtonCallback(void* data,
+  autofill::PersonalDataManager* GetPersonalDataManager() const {
+    return personal_data_manager_;
+  }
+
+  // Callbacks
+  static Eina_Bool HideProgressCb(void* data);
+  static Eina_Bool ProgressCompleteCb(void* data);
+  static void CancelShippingAddressButtonCb(void* data,
+                                            Evas_Object* obj,
+                                            void* event_info);
+  static void FinishedShippingAddressButtonCb(void* data,
+                                              Evas_Object* obj,
+                                              void* event_info);
+  static void CancelButtonCb(void* data, Evas_Object* obj, void* event_info);
+  static void CancelCreditCardButtonCb(void* data,
+                                       Evas_Object* obj,
+                                       void* event_info);
+  static void DetailsButtonCb(void* data, Evas_Object* obj, void* event_info);
+  static void AddCardCb(void* data, Evas_Object* obj, void* event_info);
+  static void LayoutExpandButtonClickedCb(void* data,
+                                          Evas_Object* obj,
+                                          void* event_info);
+  static void LayoutShrinkButtonClickedCb(void* data,
+                                          Evas_Object* obj,
+                                          void* event_info);
+  static void OverlayButtonClickedCb(void* data,
+                                     Evas_Object* obj,
+                                     void* event_info);
+  static void PayButtonCb(void* data, Evas_Object* obj, void* event_info);
+  static void OkButtonCb(void* data, Evas_Object* obj, void* event_info);
+  static void CreditCardDoneButtonCb(void* data,
+                                     Evas_Object* obj,
+                                     void* event_info);
+  static void ShowCtxPopupMonthCb(void* data,
                                   Evas_Object* obj,
                                   void* event_info);
-  static void AddCardCallback(void* data, Evas_Object* obj, void* event_info);
-  static void PayButtonCallback(void* data, Evas_Object* obj, void* event_info);
-  static void OkButtonCallback(void* data, Evas_Object* obj, void* event_info);
+  static void ShowCtxPopupYearCb(void* data,
+                                 Evas_Object* obj,
+                                 void* event_info);
+  static void ShowCtxPopupBillCb(void* data,
+                                 Evas_Object* obj,
+                                 void* event_info);
+  static void ShowCtxPopupCountryRegionCb(void* data,
+                                          Evas_Object* obj,
+                                          void* event_info);
+  static void ValidateCardNumberCb(void* data,
+                                   Evas_Object* obj,
+                                   void* event_info);
+  static void ShippingNameCb(void* data, Evas_Object* obj, void* event_info);
+  static void ShippingAddressFieldValueChangedCb(void* data,
+                                                 Evas_Object* obj,
+                                                 void* event_info);
+  static void ValidateCardNameCb(void* data,
+                                 Evas_Object* obj,
+                                 void* event_info);
+  static void AddCardNameCb(void* data, Evas_Object* obj, void* event_info);
+  static void AddCardNumberCb(void* data, Evas_Object* obj, void* event_info);
+  static void CtxpopupItemCb(void* data, Evas_Object* obj, void* event_info);
+  static void ShippingCtxpopupItemCb(void* data,
+                                     Evas_Object* obj,
+                                     void* event_info);
+  static char* ShippingAddressInputTextGetCb(void* data,
+                                             Evas_Object* obj,
+                                             const char* part);
+  static Evas_Object* ShippingAddressInputContentGetCb(void* data,
+                                                       Evas_Object* obj,
+                                                       const char* part);
+  static void ItemSelectedCb(void* data, Evas_Object* obj, void* event_info);
+  static void DismissedCb(void* data, Evas_Object* obj, void* event_info);
+  static void AddPhoneNumberCb(void* data, Evas_Object* obj, void* event_info);
+  static void AddEmailAddressCb(void* data, Evas_Object* obj, void* event_info);
+  static void AddContactInfoCb(void* data, Evas_Object* obj, void* event_info);
+  static void AddShippingAddressInfoCb(void* data,
+                                       Evas_Object* obj,
+                                       void* event_info);
+  static void CancelAddPhoneNumberButtonCb(void* data,
+                                           Evas_Object* obj,
+                                           void* event_info);
+  static void FinishedAddPhoneNumberButtonCb(void* data,
+                                             Evas_Object* obj,
+                                             void* event_info);
+  static void CancelAddEmailAddressButtonCb(void* data,
+                                            Evas_Object* obj,
+                                            void* event_info);
+  static void FinishedAddEmailAddressButtonCb(void* data,
+                                              Evas_Object* obj,
+                                              void* event_info);
+
+  static void CvcEntryChangedCb(void* data, Evas_Object* obj, void* event_info);
+  static void CancelCvcButtonCb(void* data, Evas_Object* obj, void* event_info);
+  static void ConfirmCvcButtonCb(void* data,
+                                 Evas_Object* obj,
+                                 void* event_info);
+
+  static void CreditCardGenlistItemClickCb(void* data,
+                                           Evas_Object* obj,
+                                           void* event_info);
+  static void PhoneGenlistItemClickCb(void* data,
+                                      Evas_Object* obj,
+                                      void* event_info);
+  static void EmailGenlistItemClickCb(void* data,
+                                      Evas_Object* obj,
+                                      void* event_info);
+  static Evas_Object* ContactsContentGetCb(void* data,
+                                           Evas_Object* obj,
+                                           const char* part);
+  static Evas_Object* ShippingContentGetCb(void* data,
+                                           Evas_Object* obj,
+                                           const char* part);
+  static Eina_Bool ContactsDbSyncCb(void* data);
+  static Eina_Bool ShippingDbSyncCb(void* data);
+  static Evas_Object* CreditCardContentGetCb(void* data,
+                                             Evas_Object* obj,
+                                             const char* part);
+  static Eina_Bool CreditCardDbSyncCb(void* data);
+  static char* OrderSummaryTextGetCb(void* data,
+                                     Evas_Object* obj,
+                                     const char* part);
+  static void OrderSummaryGenlistItemClickCb(void* data,
+                                             Evas_Object* obj,
+                                             void* event_info);
+  static char* ShippingOptionTextGetCb(void* data,
+                                       Evas_Object* obj,
+                                       const char* part);
+  static void ShippingOptionGenlistItemClickCb(void* data,
+                                               Evas_Object* obj,
+                                               void* event_info);
+  static void ShippingAddressItemClickCb(void* data,
+                                         Evas_Object* obj,
+                                         void* event_info);
+  static Evas_Object* ShippingOptionContentGetCb(void* data,
+                                                 Evas_Object* obj,
+                                                 const char* part);
 
  private:
   PaymentRequest* request_;
 
   EWebView* web_view_;
-  Evas_Object* native_view_;
+  Evas_Object* conformant_;
   Evas_Object* popup_;
 
+  friend class PaymentData;
+
+  typedef struct CardDetailsAdded {
+    CardDetailsAdded() { ResetValues(); }
+    void ResetValues() {
+      card_name_added_ = card_number_added_ = card_month_added_ =
+          card_year_added_ = card_billaddr_added_ = false;
+    }
+    bool IsAllValuesAdded() {
+      return card_name_added_ && card_number_added_ && card_month_added_ &&
+             card_year_added_ && card_billaddr_added_;
+    }
+    bool card_name_added_;
+    bool card_number_added_;
+    bool card_month_added_;
+    bool card_year_added_;
+    bool card_billaddr_added_;
+  };
+
+  typedef struct ContactInfoDetails {
+    std::string contact_phone_number_;
+    std::string contact_email_address_;
+    std::string contact_name_;
+  };
+
+  struct ShippingAddressData {
+    std::string shippingCountry;
+    std::string shippingName;
+    std::string shippingOrganisation;
+    std::string shippingStreetAddress;
+    std::string shippingPostalTown;
+    std::string shippingCounty;
+    std::string shippingPostcode;
+    std::string shippingPhonenumber;
+  };
+
+  CreditCardType card_type_;
+  CardDetailsAdded card_details_added_;
+  autofill::CreditCard credit_card_;
+  std::unique_ptr<PaymentData> payment_data_;
+  std::unique_ptr<ContactInfoDetails> contact_info_details_;
+  std::unique_ptr<ShippingAddressData> shipping_address_data_;
+  std::unique_ptr<autofill::AutofillProfile> contact_info_profile_;
+  std::unique_ptr<autofill::AutofillProfile> shipping_info_profile_;
+
+  using CountryVector = std::vector<std::unique_ptr<autofill::AutofillCountry>>;
+  CountryVector countries_;
+
+  // Data lists
+  std::vector<AutofillGenlistItemData*> credit_card_number_data_list_;
+  std::vector<AutofillGenlistItemData*> phone_number_data_list_;
+  std::vector<AutofillGenlistItemData*> shipping_address_data_list_;
+  std::vector<AutofillGenlistItemData*> email_address_data_list_;
+  std::vector<ShippingOptionItemData*> shipping_option_data_list_;
+  std::vector<OrderSummaryItemData*> order_summary_data_list_;
+  std::vector<CtxpopupItemData*> ctxpopup_data_list_;
+  std::vector<ItemData*> item_data_list_;
+  std::vector<LayoutIdData*> layout_id_data_list_;
+
+  // Autofill Profiles and Credit Card list
+  std::vector<autofill::CreditCard*> credit_card_list_;
+  std::vector<autofill::AutofillProfile*> web_contact_info_profiles_list_;
+  std::vector<autofill::AutofillProfile*> contact_info_profiles_list_;
+  std::vector<autofill::AutofillProfile*> web_shipping_data_profile_list_;
+  std::vector<autofill::AutofillProfile*> shipping_data_profile_list_;
+
+  // Layouts
+  Evas_Object* main_layout_;
+  Evas_Object* header_layout_;
+  Evas_Object* container_layout_;
+  Evas_Object* order_summary_layout_;
+  Evas_Object* shipping_address_layout_;
+  Evas_Object* shipping_address_input_layout_;
+  Evas_Object* shipping_option_layout_;
+  Evas_Object* payment_method_layout_;
+  Evas_Object* contact_phone_number_input_layout_;
+  Evas_Object* contact_email_address_input_layout_;
+  Evas_Object* contact_phone_number_layout_;
+  Evas_Object* contact_email_address_layout_;
+  Evas_Object* card_input_layout_;
+  Evas_Object* cvc_layout_;
+  Evas_Object* progress_layout_;
+
+  // Entries
+  Evas_Object* card_name_entry_;
+  Evas_Object* card_number_entry_;
+  Evas_Object* contact_phone_number_entry_;
+  Evas_Object* contact_email_address_entry_;
+  Evas_Object* shipping_name_entry_;
+  Evas_Object* shipping_street_entry_;
+  Evas_Object* shipping_postaltown_entry_;
+  Evas_Object* shipping_postcode_entry_;
+  Evas_Object* shipping_phone_entry_;
+  Evas_Object* cvc_entry_;
+
+  // Genlists
+  Evas_Object* credit_card_genlist_;
+  Evas_Object* order_summary_genlist_;
+  Evas_Object* contact_genlist_;
+  Evas_Object* shipping_genlist_;
+  Evas_Object* shipping_input_genlist_;
+
+  // Radio group
+  Evas_Object* credit_card_radio_group_;
+  Evas_Object* contact_radio_group_;
+  Evas_Object* shipping_radio_group_;
+  Evas_Object* shipping_options_radio_group_;
+  Evas_Object* order_summary_radio_group_;
+
+  // Buttons
+  Evas_Object* details_button_;
+  Evas_Object* pay_button_;
+
+  LayoutId curr_expanded_layout_id_;
+  autofill::PersonalDataManager* personal_data_manager_;
+  int card_number_length_;
+  bool main_layout_expanded_;
+
+  // edj paths
+  base::FilePath payment_edj_path_;
+  base::FilePath add_email_address_path_;
+  base::FilePath add_phone_number_path_;
+  base::FilePath cvc_edj_path_;
+
+  // Ecore timers
+  Ecore_Timer* db_sync_timer_;
+  Ecore_Timer* progress_timer_;
+  Ecore_Timer* payment_complete_timer_;
+
   DISALLOW_COPY_AND_ASSIGN(PaymentRequestDialogEfl);
 };
 
index 4b9178c..15320eb 100644 (file)
@@ -28,9 +28,11 @@ class  ResourceThrottleEfl : public content::ResourceThrottle {
     controller()->Resume();
   }
 
+  /* LCOV_EXCL_START */
   void Ignore() {
     controller()->CancelAndIgnore();
   }
+  /* LCOV_EXCL_STOP */
 
  private:
   net::URLRequest& request_;
index e43c116..f9d885f 100644 (file)
@@ -49,12 +49,6 @@ class FormNavigablePicker : public SelectPickerBase {
                                      Evas_Object* obj,
                                      const char* emission,
                                      const char* source);
-  static Eina_Bool EcoreEventFilterCallback(void* data,
-                                            void* loop_data,
-                                            int type,
-                                            void* event);
-
-  Ecore_Event_Filter* ecore_events_filter_;
   struct FormNavigatorInfo {
     int count;
     int index;
index 7300d24..73b32eb 100644 (file)
@@ -35,6 +35,10 @@ class SelectPickerEfl : public FormNavigablePicker {
 
  private:
   static Evas_Object* IconGetCallback(void*, Evas_Object*, const char*);
+  static void ShowPickerDoneCallback(void* data,
+                                     Evas_Object*,
+                                     const char*,
+                                     const char*);
   void DestroyRadioList();
 #if defined(TIZEN_ATK_SUPPORT)
   void AddAtkObject();
@@ -53,6 +57,13 @@ class SelectPickerEfl : public FormNavigablePicker {
                                       Elm_Access_Action_Info* action_info);
 #endif
 
+  static Eina_Bool EcoreEventFilterCallback(void* data,
+                                            void* loop_data,
+                                            int type,
+                                            void* event);
+
+  Ecore_Event_Filter* ecore_events_filter_;
+
   Evas_Object* radio_main_;
 #if defined(TIZEN_ATK_SUPPORT)
   Evas_Object* prev_button_;
index ba80c4f..defe8ee 100644 (file)
@@ -36,7 +36,8 @@ class SelectPickerBase {
  protected:
   explicit SelectPickerBase(EWebView* web_view,
                             int selected_index,
-                            bool is_multiple_selection);
+                            bool is_multiple_selection,
+                            Elm_Genlist_Item_Scrollto_Type scrollto_type);
   virtual const char* GetItemStyle() const;
   virtual void Init(const std::vector<content::MenuItem>& items,
                     const gfx::Rect& bounds) = 0;
@@ -56,18 +57,20 @@ class SelectPickerBase {
   int selected_index_;
   bool is_multiple_selection_;
   Elm_Genlist_Item_Class* item_class_;
+  Elm_Genlist_Item_Scrollto_Type scrollto_type_;
 #if defined(TIZEN_ATK_SUPPORT)
   Elm_Object_Item* first_item_;
   Elm_Object_Item* selected_item_;
 #endif
-
  private:
   static void ItemSelectedCallback(void*, Evas_Object*, void*);
   static void MenuItemActivatedCallback(void*, Evas_Object*, void*);
   static void MenuItemDeactivatedCallback(void*, Evas_Object*, void*);
+  static void Resize(void* data, Evas* e, Evas_Object* obj, void* event_info);
   void InitializeItemClass();
   void InitializeGroupClass();
   void DestroyPopupList();
+  void ScrollSelectedItemTo();
 
   Elm_Genlist_Item_Class* group_class_;
   std::vector<GenlistCallbackData*> select_picker_data_;
index da82d36..d3bfcec 100644 (file)
@@ -6,6 +6,7 @@
 #define EWK_EFL_INTEGRATION_BROWSER_SELECT_PICKER_SELECT_PICKER_TV_H_
 
 #include "browser/select_picker/form_navigable_picker.h"
+#include "ui/gfx/geometry/point.h"
 
 class SelectPickerEflTv : public FormNavigablePicker {
  public:
@@ -20,6 +21,9 @@ class SelectPickerEflTv : public FormNavigablePicker {
             const gfx::Rect& bounds) override;
   void CreateAndPopulatePopupList(
       const std::vector<content::MenuItem>& items) override;
+
+ private:
+  void CoordinatePopupPosition(const gfx::Point& origin);
 };
 
 #endif  // EWK_EFL_INTEGRATION_BROWSER_SELECT_PICKER_SELECT_PICKER_TV_H_
index 69a6919..27b13ee 100644 (file)
@@ -30,7 +30,7 @@ class GenlistCallbackData {
   ~GenlistCallbackData();
 
   void SetSelection(bool selected);
-  void ScrollToTop();
+  void ScrollTo(Elm_Genlist_Item_Scrollto_Type type);
   int GetIndex() const;
   const base::string16& GetLabel() const;
 #if defined(TIZEN_ATK_SUPPORT)
index ecaa016..98b1c22 100644 (file)
@@ -17,8 +17,14 @@ class SelectPickerEflWearable : public SelectPickerBase {
  protected:
   void Init(const std::vector<content::MenuItem>& items,
             const gfx::Rect& bounds) override;
+  void ItemSelected(GenlistCallbackData* data, void* event_info) override;
   void CreateAndPopulatePopupList(
       const std::vector<content::MenuItem>& items) override;
+
+ private:
+#if defined(OS_TIZEN)
+  static void HWBackKeyCallback(void* data, Evas_Object* obj, void* event_info);
+#endif
 };
 
 #endif  // EWK_EFL_INTEGRATION_BROWSER_SELECT_PICKER_SELECT_PICKER_WEARABLE_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/webui/version_ui_efl.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/webui/version_ui_efl.h
new file mode 100644 (file)
index 0000000..636b4a9
--- /dev/null
@@ -0,0 +1,21 @@
+// Copyright (c) 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BROWSER_WEBUI_VERSION_UI_EFL_H_
+#define BROWSER_WEBUI_VERSION_UI_EFL_H_
+
+#include "base/macros.h"
+#include "content/public/browser/web_ui_controller.h"
+
+// The WebUI handler for chrome://version.
+class VersionUIEfl : public content::WebUIController {
+ public:
+  explicit VersionUIEfl(content::WebUI* web_ui);
+  ~VersionUIEfl() override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(VersionUIEfl);
+};
+
+#endif  // BROWSER_WEBUI_VERSION_UI_EFL_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/webui/web_ui_controller_factory_efl.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/browser/webui/web_ui_controller_factory_efl.h
new file mode 100644 (file)
index 0000000..84d44d1
--- /dev/null
@@ -0,0 +1,36 @@
+// Copyright (c) 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BROWSER_WEBUI_WEB_UI_CONTROLLER_FACTORY_EFL_H_
+#define BROWSER_WEBUI_WEB_UI_CONTROLLER_FACTORY_EFL_H_
+
+#include "base/memory/singleton.h"
+#include "content/public/browser/web_ui.h"
+#include "content/public/browser/web_ui_controller_factory.h"
+
+class WebUIControllerFactoryEfl : public content::WebUIControllerFactory {
+ public:
+  content::WebUI::TypeID GetWebUIType(content::BrowserContext* browser_context,
+                                      const GURL& url) const override;
+  bool UseWebUIForURL(content::BrowserContext* browser_context,
+                      const GURL& url) const override;
+  bool UseWebUIBindingsForURL(content::BrowserContext* browser_context,
+                              const GURL& url) const override;
+  content::WebUIController* CreateWebUIControllerForURL(
+      content::WebUI* web_ui,
+      const GURL& url) const override;
+
+  static WebUIControllerFactoryEfl* GetInstance();
+
+ protected:
+  WebUIControllerFactoryEfl();
+  ~WebUIControllerFactoryEfl() override;
+
+ private:
+  friend struct base::DefaultSingletonTraits<WebUIControllerFactoryEfl>;
+
+  DISALLOW_COPY_AND_ASSIGN(WebUIControllerFactoryEfl);
+};
+
+#endif  // BROWSER_WEBUI_WEB_UI_CONTROLLER_FACTORY_EFL_H_
index b10277b..787ae64 100644 (file)
@@ -78,6 +78,9 @@ class BrowserContextEfl
   std::unique_ptr<ZoomLevelDelegate> CreateZoomLevelDelegate(
       const base::FilePath& partition_path);
   bool IsOffTheRecord() const override;
+#if defined(OS_TIZEN)
+  void SetOffTheRecord(bool incognito) { incognito_ = incognito; }
+#endif
   URLRequestContextGetterEfl* GetRequestContextEfl() {
     return request_context_getter_.get();
   }
@@ -145,7 +148,7 @@ class BrowserContextEfl
   static void ReadCertificateAndAdd(const std::string* certificate_path);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
-  static void SetEMPCertificatePathOnFileThread(
+  static void SetEMPCertificatePathOnIOThread(
       const std::string* emp_ca_path,
       const std::string* default_ca_path);
   static bool ReadEMPCertificateAndAdd(const std::string* certificate_path);
@@ -164,7 +167,7 @@ class BrowserContextEfl
   base::ScopedTempDir temp_dir_;
   bool temp_dir_creation_attempted_;
   std::unique_ptr<PrefService> user_pref_service_;
-  const bool incognito_;
+  bool incognito_;
   std::unique_ptr<net::NetworkDelegate> network_delegate_for_getter_;
   std::unique_ptr<SSLHostStateDelegateEfl> ssl_host_state_delegate_;
   std::unique_ptr<PermissionManager> permission_manager_;
index 186eb2b..185ac1a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -12,7 +12,7 @@ class CommandLineEfl {
 public:
   static void Init(int argc, char *argv[]);
 
-  static void Shutdown() {};
+  static void Shutdown();
 
   // Get default set of arguments for Tizen port of chromium.
   static content::MainFunctionParams GetDefaultPortParams();
@@ -21,27 +21,25 @@ public:
   // chromium process type (browser, renderer, zygote, etc).
   static void AppendProcessSpecificArgs(base::CommandLine& command_line);
 
-  static void AppendSwitch(std::string);
-
   static void AppendMemoryOptimizationSwitches(base::CommandLine* command_line);
 
-  // Chromium content API expects const char**, but EWK API provides
-  // us only with char*
-  static const char** GetArgv() { return (const char **)argv_; };
+  // Do not call them apart from ContentMainRunner::Initialize() since they
+  // will become invalid after that.
+  static const char** GetArgv() { return const_cast<const char**>(argv_); };
   static int GetArgc() { return argc_; };
 
-private:
+ private:
   static void AppendUserArgs(base::CommandLine& command_line);
 
-  // Original process argument array provided thorugh EWK API, unfortunately
-  // chromium has a nasty habit of messig them up. Please do not rely on those
+  // Original process argument array provided through EWK API, unfortunately
+  // chromium has a nasty habit of messing them up. Please do not rely on those
   // values, use original_arguments_ instead.
   static int argc_;
   static char** argv_;
 
   // Original arguments passed by the user from command line. Added to all
   // chromium processes. They should remain unchanged until engine shutdown.
-  typedef std::vector<std::string> ArgumentVector;
+  typedef std::vector<char*> ArgumentVector;
   static ArgumentVector original_arguments_;
 
   static bool is_initialized_;
index 98cc7ad..c780175 100644 (file)
@@ -24,6 +24,7 @@ class ContentClientEfl : public content::ContentClient {
   base::StringPiece GetDataResource(
       int resource_id,
       ui::ScaleFactor scale_factor) const override;
+  base::RefCountedMemory* GetDataResourceBytes(int resource_id) const override;
   bool CanSendWhileSwappedOut(const IPC::Message* message) override;
   void AddPepperPlugins(
       std::vector<content::PepperPluginInfo>* plugins) override;
index 6e4db0f..952deac 100644 (file)
@@ -48,6 +48,11 @@ CONTENT_EXPORT extern const char kLimitMemoryAllocationInScheduleDelayedWork[];
 // Allow Trusted Pepper Plugins to be loaded in WebBrowser/ubrowser,
 // which is used for development purposes.
 CONTENT_EXPORT extern const char kEnableTrustedPepperPlugins[];
+
+// Additional Trusted Pepper Plugins search paths.
+// Useful for development purposes. Multiple files can be used by separating
+// them with a semicolon (;).
+CONTENT_EXPORT extern const char kTrustedPepperPluginsSearchPaths[];
 #endif
 
 #if defined(OS_TIZEN_TV_PRODUCT)
index fa3b4d5..fcc4f87 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2015 Samsung Electronics. All rights reserved.
+// Copyright 2015-2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -14,7 +14,6 @@
 #include "ipc/ipc_channel_handle.h"
 #include "ipc_message_start_ewk.h"
 #include "private/ewk_hit_test_private.h"
-#include "private/ewk_text_style_private.h"
 #include "private/ewk_wrt_private.h"
 #include "public/ewk_hit_test_internal.h"
 #include "public/ewk_view_internal.h"
@@ -47,6 +46,7 @@ IPC_STRUCT_TRAITS_BEGIN(WebPreferencesEfl)
   IPC_STRUCT_TRAITS_MEMBER(shrinks_viewport_content_to_fit)
   IPC_STRUCT_TRAITS_MEMBER(javascript_can_open_windows_automatically_ewk)
   IPC_STRUCT_TRAITS_MEMBER(hw_keyboard_connected)
+  IPC_STRUCT_TRAITS_MEMBER(link_effect_enabled)
 IPC_STRUCT_TRAITS_END()
 
 IPC_STRUCT_TRAITS_BEGIN(Hit_Test_Params::Node_Data)
@@ -90,29 +90,6 @@ IPC_STRUCT_TRAITS_BEGIN(CacheParamsEfl)
   IPC_STRUCT_TRAITS_MEMBER(cache_max_dead_capacity)
 IPC_STRUCT_TRAITS_END()
 
-IPC_STRUCT_TRAITS_BEGIN(SelectionStylePrams)
-  IPC_STRUCT_TRAITS_MEMBER(underline_state)
-  IPC_STRUCT_TRAITS_MEMBER(italic_state)
-  IPC_STRUCT_TRAITS_MEMBER(bold_state)
-  IPC_STRUCT_TRAITS_MEMBER(bg_color)
-  IPC_STRUCT_TRAITS_MEMBER(color)
-  IPC_STRUCT_TRAITS_MEMBER(font_size)
-  IPC_STRUCT_TRAITS_MEMBER(order_list_state)
-  IPC_STRUCT_TRAITS_MEMBER(un_order_list_state)
-  IPC_STRUCT_TRAITS_MEMBER(text_align_center_state)
-  IPC_STRUCT_TRAITS_MEMBER(text_align_left_state)
-  IPC_STRUCT_TRAITS_MEMBER(text_align_right_state)
-  IPC_STRUCT_TRAITS_MEMBER(text_align_full_state)
-  IPC_STRUCT_TRAITS_MEMBER(has_composition)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(SelectionColor)
-  IPC_STRUCT_TRAITS_MEMBER(r)
-  IPC_STRUCT_TRAITS_MEMBER(g)
-  IPC_STRUCT_TRAITS_MEMBER(b)
-  IPC_STRUCT_TRAITS_MEMBER(a)
-IPC_STRUCT_TRAITS_END()
-
 IPC_ENUM_TRAITS(blink::WebNavigationPolicy)
 IPC_ENUM_TRAITS(blink::WebNavigationType)
 
@@ -197,9 +174,9 @@ IPC_MESSAGE_ROUTED1(EwkViewMsg_GetMHTMLData,
                     int /* callback id */)
 
 IPC_MESSAGE_ROUTED3(EwkViewMsg_DoHitTest,
-                    int, /* horizontal position */
-                    int, /* vertical position */
-                    Ewk_Hit_Test_Mode /* mode */)
+                           int, /* horizontal position */
+                           int, /* vertical position */
+                           Ewk_Hit_Test_Mode /* mode */)
 
 IPC_MESSAGE_ROUTED4(EwkViewMsg_DoHitTestAsync,
                     int, /* horizontal position */
@@ -213,8 +190,6 @@ IPC_MESSAGE_ROUTED0(EwkViewMsg_SetBrowserFont)
 IPC_MESSAGE_ROUTED0(EwkViewMsg_SuspendScheduledTask)
 IPC_MESSAGE_ROUTED0(EwkViewMsg_ResumeScheduledTasks)
 
-IPC_MESSAGE_ROUTED0(EwkViewMsg_GetSelectionStyle)
-
 IPC_MESSAGE_ROUTED1(EwkViewMsg_SetMainFrameScrollbarVisible, bool /* visible */)
 
 IPC_MESSAGE_ROUTED1(EwkViewMsg_GetMainFrameScrollbarVisible,
@@ -242,6 +217,9 @@ IPC_MESSAGE_ROUTED2(EwkHostMsg_DidEdgeScrollBy,
                     gfx::Point, /* offset */
                     bool /* handled */)
 
+IPC_MESSAGE_ROUTED0(EwkViewMsg_SuspendNetworkLoading)
+IPC_MESSAGE_ROUTED0(EwkViewMsg_ResumeNetworkLoading)
+
 IPC_ENUM_TRAITS(blink::WebScrollbar::Orientation)
 IPC_MESSAGE_ROUTED2(EwkViewHostMsg_ScrollbarThumbPartFocusChanged,
                     blink::WebScrollbar::Orientation, /* orientation */
@@ -249,15 +227,17 @@ IPC_MESSAGE_ROUTED2(EwkViewHostMsg_ScrollbarThumbPartFocusChanged,
 
 IPC_MESSAGE_ROUTED0(EwkHostMsg_RunArrowScroll);
 
-IPC_MESSAGE_ROUTED2(EwkViewMsg_RequestHitTestForMouseLongPress,
+IPC_MESSAGE_ROUTED3(EwkViewMsg_RequestHitTestForMouseLongPress,
+                    int, /* render_id */
                     int, /* view x */
                     int /* view y */)
 
 IPC_MESSAGE_ROUTED1(EwkViewMsg_SetFloatVideoWindowState, bool /* Enable */)
 
-IPC_MESSAGE_CONTROL4(EwkViewHostMsg_RequestHitTestForMouseLongPressACK,
+IPC_MESSAGE_CONTROL5(EwkViewHostMsg_RequestHitTestForMouseLongPressACK,
                      int,  /* render view id */
                      GURL, /* hit url */
+                     int,  /* render id */
                      int,  /* view x */
                      int /* view y */)
 
@@ -275,15 +255,13 @@ IPC_MESSAGE_ROUTED1(EwkHostMsg_MoveFocusToBrowser, int /* direction */);
 IPC_MESSAGE_ROUTED1(EwkViewMsg_PlainTextGet,
                     int /* callback id */)
 
-IPC_MESSAGE_ROUTED1(EwkViewMsg_SelectionTextStyleState,
-                    SelectionStylePrams /* params */)
-
 IPC_MESSAGE_ROUTED1(EwkSettingsMsg_UpdateWebKitPreferencesEfl, WebPreferencesEfl)
 
-IPC_MESSAGE_ROUTED2(EwkHostMsg_HandleTapGestureWithContext,
-                    bool /* is_link */,
+IPC_MESSAGE_ROUTED1(EwkHostMsg_HandleTapGestureWithContext,
                     bool /* is_editable_content */)
 
+IPC_MESSAGE_ROUTED0(EwkHostMsg_PlayLinkEffect)
+
 IPC_MESSAGE_ROUTED2(EwkHostMsg_PlainTextGetContents,
                     std::string, /* contentText */
                     int /* callback id */)
@@ -313,6 +291,15 @@ IPC_MESSAGE_ROUTED4(EwkViewMsg_SetBackgroundColor,
                     int, /* blue */
                     int /* alpha */)
 
+IPC_MESSAGE_ROUTED1(EwkViewMsg_GetBackgroundColor, int /* callback id */)
+
+IPC_MESSAGE_ROUTED5(EwkHostMsg_GetBackgroundColor,
+                    int, /* red */
+                    int, /* green */
+                    int, /* blue */
+                    int, /* alpha */
+                    int /* callback id */)
+
 // Notifies the browser to form submit
 IPC_MESSAGE_ROUTED1(EwkHostMsg_FormSubmit, GURL)
 
@@ -341,6 +328,11 @@ IPC_MESSAGE_ROUTED2(EwkHostMsg_WebAppCapableGet,
 IPC_MESSAGE_ROUTED1(EwkViewMsg_SetVideoHole, bool /* Enable */)
 #endif
 
+#if defined(TIZEN_CANVAS_HOLE)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_SetCanvasHole,
+                    std::string /* url */)
+#endif
+
 IPC_SYNC_MESSAGE_CONTROL1_1(EwkHostMsg_DecideNavigationPolicy,
                             NavigationPolicyParams,
                             bool /*handled*/)
@@ -382,6 +374,12 @@ IPC_MESSAGE_ROUTED4(EwkHostMsg_InstallApp,
 
 IPC_MESSAGE_ROUTED0(EwkHostMsg_DidNotAllowScript)
 
+IPC_MESSAGE_ROUTED1(EwkViewMsg_IsVideoPlaying, int /* calback id */)
+
+IPC_MESSAGE_ROUTED2(EwkHostMsg_IsVideoPlaying,
+                    bool, /* isplaying */
+                    int /* calback id */)
+
 IPC_MESSAGE_ROUTED0(EwkViewMsg_QueryNumberFieldAttributes)
 IPC_MESSAGE_ROUTED2(EwkHostMsg_DidChangeNumberFieldAttributes,
                     bool /* is_minimum_negative*/,
@@ -398,3 +396,19 @@ IPC_MESSAGE_ROUTED1(EwkMsg_SetAllowInsecureContent, bool /* allowed */)
 
 IPC_MESSAGE_ROUTED0(EwkViewMsg_QueryInputType)
 IPC_MESSAGE_ROUTED1(EwkHostMsg_DidChangeInputType, bool /* is_password_input */)
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+IPC_MESSAGE_ROUTED0(EwkViewMsg_Play360Video)
+IPC_MESSAGE_ROUTED0(EwkViewMsg_Pause360Video)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_360VideoDuration, int /* calback id */)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_360VideoCurrentTime, int /* calback id */)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_Set360VideoCurrentTime,
+                    double /* current time */)
+IPC_MESSAGE_ROUTED2(EwkHostMsg_360VideoDuration,
+                    double, /* duration */
+                    int /* calback id */)
+IPC_MESSAGE_ROUTED2(EwkHostMsg_360VideoCurrentTime,
+                    double, /* current time */
+                    int /* calback id */)
+IPC_MESSAGE_ROUTED1(EwkViewMsg_SetPreferTextLang, std::string /*prefer lang*/)
+#endif
index 8cc5413..b42c6ae 100644 (file)
@@ -14,6 +14,7 @@
 #include "base/macros.h"
 #include "base/files/file_path.h"
 #include "content/public/common/pepper_plugin_info.h"
+#include "url/gurl.h"
 
 namespace base {
 template <typename T> struct DefaultSingletonTraits;
@@ -48,14 +49,16 @@ class TrustedPepperPluginInfoCache {
   void GetPlugins(std::vector<content::PepperPluginInfo>* plugins) const;
 
   // Searches cached pepper plugins whether there is plugin which supports
-  // given |mime_type|.
+  // given |mime_type| or |url|. If |mime_type| is empty, method tries to find
+  // plugin basing on |url| extension.
   //
   // If plugin was found function returns true and sets |found_plugin|
   // information for plugin found. Otherwise function returns false and
-  // doesn't touch |found_plugin| agrument
+  // doesn't touch |found_plugin| argument.
   //
   // |found_plugin| must be *non-null* pointer
-  bool FindPlugin(const std::string& mime_type,
+  bool FindPlugin(std::string mime_type,
+                  const GURL& url,
                   content::PepperPluginInfo* found_plugin) const;
 
  private:
index 9c2e992..1ee6a30 100644 (file)
@@ -26,6 +26,8 @@ class VersionInfo {
 
   // Default user agent
   std::string DefaultUserAgent() const;
+  // Get chromium version number
+  std::string GetVersionNumber() const { return CHROMIUM_VERSION; }
   // E.g. "Chrome/a.b.c.d"
   std::string VersionForUserAgent() const;
   // OS type. E.g. "Windows", "Linux", "FreeBSD", ...
index 8411d34..370af16 100644 (file)
@@ -14,6 +14,7 @@ struct WebPreferencesEfl {
       IsMobileProfile() || IsWearableProfile() ? true : false;
   bool javascript_can_open_windows_automatically_ewk = true;
   bool hw_keyboard_connected = false;
+  bool link_effect_enabled = true;
 };
 
 #endif // WEB_PREFERENCES_EFL_H
index 8c0c35a..1796154 100644 (file)
@@ -18,6 +18,9 @@
 #include "net/cookies/cookie_options.h"
 #include "net/cookies/cookie_util.h"
 #include "public/ewk_cookie_manager.h"
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+#include "public/ewk_cookie_manager_product.h"
+#endif
 #include "url/gurl.h"
 
 namespace content {
@@ -95,6 +98,11 @@ class CookieManager : public base::RefCountedThreadSafe<CookieManager> {
   bool IsFileSchemeCookiesAllowed();
   void SetAcceptFileSchemeCookies(bool accept);
 
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+  void SetCookiesChangedCallback(Ewk_Cookie_Manager_Changes_Watch_Cb callback,
+                                 void* data);
+#endif
+
  private:
   friend class base::RefCountedThreadSafe<CookieManager>;
   struct EwkGetHostCallback;
@@ -104,6 +112,12 @@ class CookieManager : public base::RefCountedThreadSafe<CookieManager> {
   void DeleteCookiesOnIOThread(const std::string& url,
                                const std::string& cookie_name);
 
+#if defined(OS_TIZEN_TV_PRODUCT) || defined(TIZEN_DESKTOP_SUPPORT)
+  void SetCookiesChangedCallbackOnIOThread(
+      Ewk_Cookie_Manager_Changes_Watch_Cb callback,
+      void* data);
+#endif
+
   bool AllowCookies(const GURL& url,
                     const GURL& first_party_url,
                     bool setting_cookie);
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/dvb_protocol_handler.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/dvb_protocol_handler.h
new file mode 100644 (file)
index 0000000..ced828d
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMIUM_IMPL_NET_URL_REQUEST_DVB_PROTOCOL_HANDLER_H_
+#define CHROMIUM_IMPL_NET_URL_REQUEST_DVB_PROTOCOL_HANDLER_H_
+
+#include "base/macros.h"
+#include "net/url_request/url_request_job_factory.h"
+
+namespace net {
+
+class URLRequestJob;
+
+// Implements a ProtocolHandler for Dvb jobs.
+class DvbProtocolHandler: public URLRequestJobFactory::ProtocolHandler {
+ public:
+  DvbProtocolHandler() = default;
+  URLRequestJob* MaybeCreateJob(
+      URLRequest* request,
+      NetworkDelegate* network_delegate) const override;
+  bool IsSafeRedirectTarget(const GURL& location) const override;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(DvbProtocolHandler);
+};
+}  // namespace net
+
+#endif // CHROMIUM_IMPL_NET_URL_REQUEST_DVB_PROTOCOL_HANDLER_H_
index 0759abc..ad6ee13 100644 (file)
@@ -7,6 +7,8 @@
 
 #include "base/memory/singleton.h"
 
+class EWebView;
+
 // This singleton class initializes atk-bridge and
 // registers an implementation of AtkUtil class.
 // Global class that every accessible application
 class EWebAccessibilityUtil {
  public:
   static EWebAccessibilityUtil* GetInstance();
-  void ToggleBrowserAccessibility(bool mode);
+  void ToggleBrowserAccessibility(bool mode, EWebView* ewebview);
 #if defined(TIZEN_ATK_FEATURE_VD)
   bool IsDeactivatedByApp() const { return deactivated_by_app_; }
-  void Deactivate(bool deactivated) { deactivated_by_app_ = deactivated; }
+  void Deactivate(bool deactivated);
 #endif
 
  private:
index 61d1884..94248bd 100644 (file)
@@ -23,6 +23,7 @@ struct Ewk_Wrt_Message_Data;
 
 namespace content {
 class BrowserContextEfl;
+struct LocalStorageUsageInfo;
 }
 
 class EWebContextNotificationCallback {
@@ -39,6 +40,7 @@ class EWebContextNotificationCallback {
 
   bool HasShowCallback() const { return show_cb_ != nullptr; }
   bool HasCancelCallback() const { return cancel_cb_ != nullptr; }
+  /* LCOV_EXCL_START */
   bool RunShowCallback(Ewk_Notification* request) {
     if (context_ && HasShowCallback()) {
       show_cb_(context_, request, user_data_);
@@ -53,6 +55,7 @@ class EWebContextNotificationCallback {
     }
     return false;
   }
+  /* LCOV_EXCL_STOP */
 
  private:
   Ewk_Context* context_;
@@ -99,22 +102,6 @@ class EwkPushMessageCallback {
   void* user_data_;
 };
 
-#if defined(OS_TIZEN_TV_PRODUCT)
-class EwkCheckAccessiblePathCallback {
- public:
-  EwkCheckAccessiblePathCallback(
-      Ewk_Context_Check_Accessible_Path_Callback callback,
-      void* user_data)
-      : callback_(callback), user_data_(user_data) {}
-  bool TriggerCallback(const std::string& url_spec,
-                       const std::string& tizen_app_id) const;
-
- private:
-  Ewk_Context_Check_Accessible_Path_Callback callback_;
-  void* user_data_;
-};
-#endif
-
 class EWebContext {
  public:
   content::BrowserContextEfl* browser_context() const { return browser_context_.get(); }
@@ -164,8 +151,15 @@ class EWebContext {
       const GURL& url,
       Ewk_Web_Application_Cache_Usage_For_Origin_Get_Callback callback,
       void* user_data);
+  void GetLocalStorageUsageForOrigin(
+      const GURL& origin,
+      Ewk_Web_Storage_Usage_Get_Callback callback,
+      void* user_data);
   void GetAllOriginsWithWebDB(Ewk_Web_Database_Origins_Get_Callback callback, void* user_data);
   void WebDBDelete(const GURL& host);
+  void GetWebDBUsageForOrigin(const GURL& origin,
+                              Ewk_Web_Database_Usage_Get_Callback callback,
+                              void* user_data);
   void IndexedDBDelete();
   void WebStorageDelete();
   void WebStorageDeleteForOrigin(const GURL& origin);
@@ -188,6 +182,11 @@ class EWebContext {
 
   void ClearCandidateData();
   void ClearPasswordData();
+  void ClearPasswordDataForUrl(const char* url);
+  void GetPasswordDataList(
+      Ewk_Context_Form_Password_Data_List_Get_Callback callback,
+      void* user_data);
+
   EwkFaviconDatabase* GetFaviconDatabase() const {
     return ewk_favicon_database_.get();
   }
@@ -205,16 +204,17 @@ class EWebContext {
   bool NotificationCancelCallback(uint64_t notification_id);
 
   const std::string& GetInjectedBundlePath() const { return injected_bundle_path_; }
+  /* LCOV_EXCL_START */
   const std::string& GetTizenAppId() const { return tizen_app_id_; }
   const std::string& GetWidgetTheme() const { return widget_theme_; }
   const std::string& GetWidgetEncodedBundle() const { return widget_encoded_bundle_; }
   double GetWidgetScale() const { return widget_scale_; }
+  /* LCOV_EXCL_STOP */
 
   bool SetExtensibleAPI(const std::string& api_name, bool enable);
   bool GetExtensibleAPI(const std::string& api_name);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
-  bool ShouldAllowRequest(const net::URLRequest& request);
   void SetCheckAccessiblePathCallback(
       Ewk_Context_Check_Accessible_Path_Callback callback,
       void* user_data);
@@ -234,6 +234,13 @@ class EWebContext {
       void* user_data);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void SetInterceptRequestCancelCallback(
+      Ewk_Context* ewk_context,
+      Ewk_Context_Intercept_Request_Callback callback,
+      void* user_data);
+#endif
+
+#if defined(OS_TIZEN_TV_PRODUCT)
   void SetMaxURLChars(size_t max_chars);
 #endif
 
@@ -271,11 +278,16 @@ class EWebContext {
   void SetMaxRefreshRate(int max_refresh_rate);
 
  private:
-  EWebContext(bool incognito);
-  EWebContext(const std::string& injectedBundlePath);
   EWebContext(bool incognito, const std::string& injectedBundlePath);
   ~EWebContext();
-  void SetNetworkCacheEnableOnIOThread(bool enable);
+  void SetNetworkCacheEnableOnIOThread(
+        bool enable,
+        net::URLRequestContextGetter* url_context);
+  static void LocalStorageUsageForOrigin(
+      const GURL& origin,
+      Ewk_Web_Storage_Usage_Get_Callback callback,
+      void* user_data,
+      const std::vector<content::LocalStorageUsageInfo>& local_storage);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
   // For process which are preloaded and with unknown app id
@@ -313,7 +325,6 @@ class EWebContext {
   std::unique_ptr<EwkMimeOverrideCallback> mime_override_callback_;
   int m_pixmap;
 #if defined(OS_TIZEN_TV_PRODUCT)
-  std::unique_ptr<EwkCheckAccessiblePathCallback> check_accessible_path_callback_;
   Ewk_Application_Type application_type_;
 #endif
 #if defined(OS_TIZEN_TV_PRODUCT)
index cb2f225..6d005fc 100644 (file)
 #include "public/ewk_value_product.h"
 #endif
 
+namespace base {
+class FilePath;
+}
+
 namespace content {
 class RenderFrameHost;
 class RenderViewHost;
@@ -124,26 +128,46 @@ class WebViewCallback {
     return false;
   }
 
+  /* LCOV_EXCL_START */
   void Run(Evas_Object* webview, CallbackParameter param) {
     if (IsCallbackSet())
       callback_(webview, param, user_data_);
   }
+  /* LCOV_EXCL_STOP */
 
  private:
   CallbackPtr callback_;
   void* user_data_;
 };
 
+class BackgroundColorGetCallback {
+ public:
+  BackgroundColorGetCallback(Ewk_View_Background_Color_Get_Callback func,
+                             void* user_data)
+      : func_(func), user_data_(user_data) {}
+
+  void Run(Evas_Object* webview, int r, int g, int b, int a) {
+    if (func_)
+      func_(webview, r, g, b, a, user_data_);
+  }
+
+ private:
+  Ewk_View_Background_Color_Get_Callback func_;
+  void* user_data_;
+};
+
 class WebApplicationIconUrlGetCallback {
  public:
   WebApplicationIconUrlGetCallback(Ewk_Web_App_Icon_URL_Get_Callback func, void *user_data)
     : func_(func), user_data_(user_data)
   {}
+  /* LCOV_EXCL_START */
   void Run(const std::string &url) {
     if (func_) {
       (func_)(url.c_str(), user_data_);
     }
   }
+  /* LCOV_EXCL_STOP */
 
  private:
   Ewk_Web_App_Icon_URL_Get_Callback func_;
@@ -155,6 +179,7 @@ class WebApplicationIconUrlsGetCallback {
   WebApplicationIconUrlsGetCallback(Ewk_Web_App_Icon_URLs_Get_Callback func, void *user_data)
     : func_(func), user_data_(user_data)
   {}
+  /* LCOV_EXCL_START */
   void Run(const std::map<std::string, std::string> &urls) {
     if (func_) {
       Eina_List *list = NULL;
@@ -165,6 +190,7 @@ class WebApplicationIconUrlsGetCallback {
       (func_)(list, user_data_);
     }
   }
+  /* LCOV_EXCL_STOP */
 
  private:
   Ewk_Web_App_Icon_URLs_Get_Callback func_;
@@ -176,17 +202,87 @@ class WebApplicationCapableGetCallback {
   WebApplicationCapableGetCallback(Ewk_Web_App_Capable_Get_Callback func, void *user_data)
     : func_(func), user_data_(user_data)
   {}
+  /* LCOV_EXCL_START */
   void Run(bool capable) {
     if (func_) {
       (func_)(capable ? EINA_TRUE : EINA_FALSE, user_data_);
     }
   }
+  /* LCOV_EXCL_STOP */
 
  private:
   Ewk_Web_App_Capable_Get_Callback func_;
   void *user_data_;
 };
 
+class IsVideoPlayingCallback {
+ public:
+  IsVideoPlayingCallback(Ewk_Is_Video_Playing_Callback func, void* user_data)
+      : func_(func), user_data_(user_data) {}
+  /* LCOV_EXCL_START */
+  void Run(Evas_Object* obj, bool isplaying) {
+    if (func_) {
+      (func_)(obj, isplaying ? EINA_TRUE : EINA_FALSE, user_data_);
+    }
+  }
+  /* LCOV_EXCL_STOP */
+
+ private:
+  Ewk_Is_Video_Playing_Callback func_;
+  void* user_data_;
+};
+
+class DidChangeThemeColorCallback {
+ public:
+  DidChangeThemeColorCallback() : callback_(nullptr), user_data_(nullptr) {}
+
+  void Set(Ewk_View_Did_Change_Theme_Color_Callback callback, void* user_data) {
+    callback_ = callback;
+    user_data_ = user_data;
+  }
+  void Run(Evas_Object* o, const SkColor& color) {
+    if (callback_)
+      callback_(o, SkColorGetR(color), SkColorGetG(color), SkColorGetB(color),
+                SkColorGetA(color), user_data_);
+  }
+
+ private:
+  Ewk_View_Did_Change_Theme_Color_Callback callback_;
+  void* user_data_;
+};
+
+class Video360DurationCallback {
+ public:
+  Video360DurationCallback(Ewk_360_Video_Duration_Callback func,
+                           void* user_data)
+      : func_(func), user_data_(user_data) {}
+  void Run(Evas_Object* obj, double duration) {
+    if (func_) {
+      (func_)(obj, duration, user_data_);
+    }
+  }
+
+ private:
+  Ewk_360_Video_Duration_Callback func_;
+  void* user_data_;
+};
+
+class Video360CurrentTimeCallback {
+ public:
+  Video360CurrentTimeCallback(Ewk_360_Video_CurrentTime_Callback func,
+                              void* user_data)
+      : func_(func), user_data_(user_data) {}
+  void Run(Evas_Object* obj, double current_time) {
+    if (func_) {
+      (func_)(obj, current_time, user_data_);
+    }
+  }
+
+ private:
+  Ewk_360_Video_CurrentTime_Callback func_;
+  void* user_data_;
+};
+
 class GetBitmapFromCachedResourceCallback {
  public:
   GetBitmapFromCachedResourceCallback(
@@ -199,10 +295,12 @@ class GetBitmapFromCachedResourceCallback {
         canvas_(canvas),
         user_data_(user_data) {}
 
+  /* LCOV_EXCL_START */
   void Run(Evas_Object* view, Evas_Object* image) {
     if (callback_)
       callback_(view, image_url_.c_str(), image, user_data_);
   }
+  /* LCOV_EXCL_STOP */
 
   Evas* GetCanvas() { return canvas_; }
 
@@ -265,6 +363,7 @@ class EWebView {
   const GURL& GetURL() const;
   const GURL& GetOriginalURL() const;
   void SetClearTilesOnHide(bool enable);
+  bool SetCompositingBordersVisiblity(bool enable);
   void Reload();
   void ReloadBypassingCache();
   Eina_Bool CanGoBack();
@@ -277,6 +376,10 @@ class EWebView {
   void Suspend();
   void Resume();
   void Stop();
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void SuspendNetworkLoading();
+  void ResumeNetworkLoading();
+#endif
   double GetTextZoomFactor() const;
   void SetTextZoomFactor(double text_zoom_factor);
   double GetPageZoomFactor() const;
@@ -306,8 +409,10 @@ class EWebView {
 #endif
   bool SetUserAgent(const char* userAgent);
   bool SetUserAgentAppName(const char* application_name);
+#if defined(OS_TIZEN)
   bool SetPrivateBrowsing(bool incognito);
   bool GetPrivateBrowsing() const;
+#endif
   const char* GetUserAgent() const;
   const char* GetUserAgentAppName() const;
   const char* CacheSelectedText();
@@ -327,10 +432,7 @@ class EWebView {
                 const char* unreachable_uri = NULL,
                 bool should_replace_current_entry = false);
 
-  void InvokeLoadError(const GURL& url,
-                       int error_code,
-                       bool is_cancellation,
-                       const std::string& error_description);
+  void InvokeLoadError(const GURL& url, int error_code, bool is_cancellation);
   void SetViewAuthCallback(Ewk_View_Authentication_Callback callback,
                            void* user_data);
   void InvokeAuthCallback(LoginDelegateEfl* login_delegate, const GURL& url, const std::string& realm);
@@ -346,6 +448,9 @@ class EWebView {
   void ShowContextMenu(const content::ContextMenuParams&);
   void CancelContextMenu(int request_id);
   void SetScale(double scale_factor);
+  void SetScaleChangedCallback(Ewk_View_Scale_Changed_Callback callback,
+      void* user_data);
+
   bool GetScrollPosition(int* x, int* y) const;
   void SetScroll(int x, int y);
   void SetSmoothScroll(int x, int y, const long& duration);
@@ -363,8 +468,6 @@ class EWebView {
                            Ewk_Top_Control_State current,
                            bool animate);
   void MoveCaret(const gfx::Point& point);
-  void QuerySelectionStyle();
-  void OnQuerySelectionStyleReply(const SelectionStylePrams& params);
   void SelectFocusedLink();
   bool GetSelectionRange(Eina_Rectangle* left_rect, Eina_Rectangle* right_rect);
   Eina_Bool ClearSelection();
@@ -457,6 +560,11 @@ class EWebView {
 
   bool GetMHTMLData(Ewk_View_MHTML_Data_Get_Callback callback, void* user_data);
   void OnMHTMLContentGet(const std::string& mhtml_content, int callback_id);
+  bool SavePageAsMHTML(const std::string& path,
+                       Ewk_View_Save_Page_Callback callback,
+                       void* user_data);
+
+  void SetReaderMode(Eina_Bool enable);
   bool IsFullscreen();
   void ExitFullscreen();
   double GetScale();
@@ -471,12 +579,17 @@ class EWebView {
   void GetPageScaleRange(double *min_scale, double *max_scale);
   void SetDrawsTransparentBackground(bool enabled);
   bool SetBackgroundColor(int red, int green, int blue, int alpha);
+  bool GetBackgroundColor(Ewk_View_Background_Color_Get_Callback callback,
+                          void* user_data);
+  void OnGetBackgroundColor(int r, int g, int b, int a, int callback_id);
   void GetSessionData(const char **data, unsigned *length) const;
   bool RestoreFromSessionData(const char *data, unsigned length);
   void ShowFileChooser(content::RenderFrameHost* render_frame_host,
                        const content::FileChooserParams&);
   void SetBrowserFont();
   bool IsDragging() const;
+  bool IsVideoPlaying(Ewk_Is_Video_Playing_Callback callback, void* user_data);
+  void InvokeIsVideoPlayingCallback(bool is_playing, int callback_id);
 
   bool SetMainFrameScrollbarVisible(bool visible);
   bool GetMainFrameScrollbarVisible(
@@ -510,6 +623,11 @@ class EWebView {
   bool GetLinkMagnifierEnabled() const;
   void SetLinkMagnifierEnabled(bool enabled);
 
+  bool GetHorizontalPanningHold() const;
+  void SetHorizontalPanningHold(bool hold);
+  bool GetVerticalPanningHold() const;
+  void SetVerticalPanningHold(bool hold);
+
 #if defined(OS_TIZEN_TV_PRODUCT)
   void SetCursorByClient(bool enable);
   bool SetMixedContents(bool allow);
@@ -535,6 +653,9 @@ class EWebView {
 #if defined(TIZEN_VIDEO_HOLE)
   void SetVideoHoleSupport(bool enable);
 #endif
+#if defined(TIZEN_CANVAS_HOLE)
+  void SetCanvasHoleSupport(const char* url);
+#endif
 #if defined(TIZEN_MULTIMEDIA_SUPPORT)
   void OpenMediaPlayer(const std::string& url, const std::string& cookie);
 #endif
@@ -576,7 +697,23 @@ class EWebView {
       void* user_data);
   void ReplyBeforeUnloadConfirmPanel(Eina_Bool result);
   bool SetVisibility(bool enable);
+  bool SetPageVisibility(Ewk_Page_Visibility_State page_visibility_state);
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void NotifySubtitleState(int state, double time_stamp);
+  void NotifySubtitlePlay(int active_track_id,
+                          const char* url,
+                          const char* lang);
+  void NotifySubtitleData(int track_id,
+                          double time_stamp,
+                          const uint8_t* data,
+                          unsigned int size);
+  void UpdateCurrentTime(double current_time);
+  double GetCurrentTime() { return current_time_; }
+  void SetMarlinEnable(Eina_Bool is_enable);
+  bool GetMarlinEnable();
+  void SetSubtitleLang(const char* lang_list);
+  void SetHighBitRate(Eina_Bool is_high_bitrate);
+  bool IsHighBitRate();
   void AddDynamicCertificatePath(std::string host, std::string cert_path);
   std::vector<std::string> NotifyPlaybackState(int state,
                                                const char* url,
@@ -597,6 +734,18 @@ class EWebView {
   void OnMouseMove();
   void ShowContextMenuWithLongPressed(const GURL& url, int x, int y);
   void ClearAllTilesResources();
+  void RequestCanvasFullscreen();
+  void DrawLabel(Evas_Object* image, Eina_Rectangle rect);
+  void ClearLabels();
+  void Play360Video();
+  void Pause360Video();
+  void Video360Duration(Ewk_360_Video_Duration_Callback callback,
+                        void* user_data);
+  void Video360CurrentTime(Ewk_360_Video_Duration_Callback callback,
+                           void* user_data);
+  void Set360VideoCurrentTime(double current_time);
+  void Invoke360VideoDurationCallback(double duration, int callback_id);
+  void Invoke360VideoCurrentTimeCallback(double current_time, int callback_id);
 #endif
 
 #if defined(TIZEN_ATK_FEATURE_VD)
@@ -631,6 +780,12 @@ class EWebView {
   void OnSelectionRectReceived(const gfx::Rect& selection_rect) const;
   void HwKeyboardStatusChanged(const std::string& device_name,
                                Eina_Bool enable);
+
+  void SetDidChangeThemeColorCallback(
+      Ewk_View_Did_Change_Theme_Color_Callback callback,
+      void* user_data);
+  void DidChangeThemeColor(const SkColor& color);
+
 #if defined(TIZEN_ATK_SUPPORT)
   void UpdateSpatialNavigationStatus(Eina_Bool enable);
   bool CheckLazyInitializeAtk() {
@@ -643,6 +798,20 @@ class EWebView {
   void UpdateSwipeToRefreshController(bool enabled);
   void SyncAcceptLanguages(const std::string& accept_languages);
 
+  // Changes viewport without resizing Evas_Object representing webview
+  // and its corresponding RWHV to let Blink renders custom viewport
+  // while showing picker.
+  void AdjustViewPortHeightToPopupMenu(bool is_popup_menu_visible);
+
+  void ScrollFocusedNodeIntoView();
+
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool UseEarlyRWI() { return use_early_rwi_; }
+  bool RWIInfoShowed() { return rwi_info_showed_; }
+  GURL RWIURL() { return rwi_gurl_; }
+  void OnDialogClosed();
+#endif
+
  private:
   static void NativeViewResize(void* data,
                                Evas* e,
@@ -675,11 +844,6 @@ class EWebView {
 
   JavaScriptDialogManagerEfl* GetJavaScriptDialogManagerEfl();
 
-  // Changes viewport without resizing Evas_Object representing webview
-  // and its corresponding RWHV to let Blink renders custom viewport
-  // while showing picker.
-  void AdjustViewPortHeightToPopupMenu(bool is_popup_menu_visible);
-
   void ShowContextMenuInternal(const content::ContextMenuParams&);
 
   void UpdateWebkitPreferencesEfl(content::RenderViewHost*);
@@ -695,14 +859,23 @@ class EWebView {
                                         Evas_Object* object,
                                         void* event_info);
 
-  void ScrollFocusedNodeIntoView();
-
   void UpdateContextMenuWithParams(const content::ContextMenuParams& params);
 
   static void OnViewFocusIn(void* data, Evas*, Evas_Object*, void*);
   static void OnViewFocusOut(void* data, Evas*, Evas_Object*, void*);
   void ChangeScroll(int& x, int& y);
 
+  void GenerateMHTML(Ewk_View_Save_Page_Callback callback,
+                     void* user_data,
+                     const base::FilePath& file_path);
+  void MHTMLGenerated(Ewk_View_Save_Page_Callback callback,
+                      void* user_data,
+                      const base::FilePath& file_path,
+                      int64_t file_size);
+  static base::FilePath GenerateMHTMLFilePath(const GURL& url,
+                                              const std::string& title,
+                                              const std::string& base_path);
+
 #if defined(OS_TIZEN_TV_PRODUCT)
   void GetMousePosition(gfx::Point&);
 #endif
@@ -717,7 +890,6 @@ class EWebView {
 
   scoped_refptr<WebViewEvasEventHandler> evas_event_handler_;
   scoped_refptr<Ewk_Context> context_;
-  scoped_refptr<Ewk_Context> old_context_;
   std::unique_ptr<content::WebContents> web_contents_;
   std::unique_ptr<content::WebContentsDelegateEfl> web_contents_delegate_;
   std::string pending_url_request_;
@@ -764,12 +936,17 @@ class EWebView {
   IDMap<MainFrameScrollbarVisibleGetCallback, IDMapOwnPointer>
       main_frame_scrollbar_visible_callback_map_;
 
+  IDMap<BackgroundColorGetCallback, IDMapOwnPointer>
+      background_color_get_callback_map_;
+
   gfx::Size contents_size_;
   double progress_;
   mutable std::string title_;
   Hit_Test_Params hit_test_params_;
   base::WaitableEvent hit_test_completion_;
   double page_scale_factor_;
+  double x_delta_;
+  double y_delta_;
   bool is_suspended_;
 
   WebViewCallback<Ewk_View_Geolocation_Permission_Callback,
@@ -782,8 +959,11 @@ class EWebView {
       Ewk_Notification_Permission_Request*> notification_permission_callback_;
   WebViewCallback<Ewk_Quota_Permission_Request_Callback,
       const _Ewk_Quota_Permission_Request*> quota_request_callback_;
+  WebViewCallback<Ewk_View_Scale_Changed_Callback, double> scale_changed_cb_;
   WebViewCallback<Ewk_View_Authentication_Callback, _Ewk_Auth_Challenge*>
       authentication_cb_;
+  DidChangeThemeColorCallback did_change_theme_color_callback_;
+
 #if defined(PWE_SUPPORT)
   AppInstallationRequestCallback app_installation_request_cb_;
 #endif
@@ -800,7 +980,7 @@ class EWebView {
   std::unique_ptr<ScrollDetector> scroll_detector_;
 
   // Manages injecting native objects.
-  std::unique_ptr<content::GinNativeBridgeDispatcherHost>
+  scoped_refptr<content::GinNativeBridgeDispatcherHost>
       gin_native_bridge_dispatcher_host_;
 
   std::map<const _Ewk_Quota_Permission_Request*, content::QuotaPermissionContext::PermissionCallback> quota_permission_request_map_;
@@ -808,6 +988,9 @@ class EWebView {
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool is_processing_edge_scroll_;
   bool context_menu_show_;
+  double current_time_;
+  bool is_marlin_enable_;
+  bool is_high_bitrate_;
   base::OneShotTimer mouse_long_press_timer_;
 #endif
 
@@ -817,6 +1000,12 @@ class EWebView {
 
   bool is_initialized_;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool use_early_rwi_;
+  bool rwi_info_showed_;
+  GURL rwi_gurl_;
+#endif
+
   std::unique_ptr<_Ewk_Back_Forward_List> back_forward_list_;
 
   static content::WebContentsEflDelegate::WebContentsCreateCallback
@@ -832,10 +1021,14 @@ class EWebView {
 
   std::map<int64_t, WebViewAsyncRequestHitTestDataCallback*> hit_test_callback_;
 
-  bool custom_viewport_needs_update_;
-
   std::unique_ptr<SelectPickerBase> select_picker_;
 
+  IDMap<IsVideoPlayingCallback, IDMapOwnPointer> is_video_playing_callback_map_;
+  IDMap<Video360DurationCallback, IDMapOwnPointer>
+      video360_duration_callback_map_;
+  IDMap<Video360CurrentTimeCallback, IDMapOwnPointer>
+      video360_currenttime_callback_map_;
+
   IDMap<GetBitmapFromCachedResourceCallback, IDMapOwnPointer>
       get_bitmap_from_cached_resource_callback_map_;
   Ecore_Event_Handler* add_device_handler_;
index 33939db..dcfe2fa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Samsung Electronics. All rights reserved.
+ * Copyright (C) 2014-2016 Samsung Electronics. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -28,8 +28,6 @@
 #include "private/ewk_console_message_private.h"
 #include "private/ewk_error_private.h"
 #include "private/ewk_context_menu_private.h"
-#include "private/ewk_custom_handlers_private.h"
-#include "private/ewk_text_style_private.h"
 #include "private/ewk_geolocation_private.h"
 #include "private/ewk_certificate_info_private.h"
 #include "private/ewk_certificate_private.h"
@@ -71,8 +69,6 @@ enum CallbackType {
   LoadStarted,
   LoadFinished,
   LoadProgress,
-  LoadProgressStarted,
-  LoadProgressFinished,
   MenuBarVisible,
   PopupBlocked,
   ProvisionalLoadFailed,
@@ -100,8 +96,6 @@ enum CallbackType {
   MediaControlRotateExit,
 #endif
   UserMediaPermission,
-  RegisterProtocolHandler,
-  UnregisterProtocolHandler,
   IMEInputPanelShow,
   IMEInputPanelHide,
   IMECandidatePanelShow,
@@ -117,8 +111,11 @@ enum CallbackType {
 #if defined(OS_TIZEN_TV_PRODUCT)
   ContextMenuShow,
   ContextMenuHide,
+  PopupMenuShow,
+  PopupMenuHide,
 #endif
   LoadNonEmptyLayoutFinished,
+  VideoPlayingURL,
   PopupReplyWaitStart,
   PopupReplyWaitFinish,
   FrameRendered,
@@ -140,7 +137,6 @@ enum CallbackType {
 #if defined(TIZEN_ATK_FEATURE_VD)
   AtkKeyEventNotHandled,
 #endif
-  TextStyleState,
   TextSelectionMode,
   SaveSessionData,
   UndoSize,
@@ -173,6 +169,13 @@ enum CallbackType {
   HoverOverLink,
   HoverOutLink,
   VideoResized,
+  SubtitlePlay,
+  SubtitlePause,
+  SubtitleStop,
+  SubtitleResume,
+  SubtitleSeekStart,
+  SubtitleSeekComplete,
+  SubtitleNotifyData,
 #endif
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
   VideoTexturing,
@@ -181,6 +184,7 @@ enum CallbackType {
   DidNotAllowScript,
   FocusIn,
   FocusOut,
+  ReaderMode,
   RendererStatusChanged,
   FormRepostWarningShow,
   BeforeFormRepostWarningShow,
@@ -244,11 +248,8 @@ DECLARE_EWK_VIEW_CALLBACK(DownloadJobFinished, "download,finished", Ewk_Download
 DECLARE_EWK_VIEW_CALLBACK(DownloadJobRequested, "download,request", Ewk_Download_Job*);
 DECLARE_EWK_VIEW_CALLBACK(NewFormSubmissionRequest, "form,submission,request", Ewk_Form_Submission_Request*);
 DECLARE_EWK_VIEW_CALLBACK(FaviconChanged, "favicon,changed", void);
-DECLARE_EWK_VIEW_CALLBACK(LoadError, "load,error", Ewk_Error*);
 DECLARE_EWK_VIEW_CALLBACK(ProvisionalLoadFailed, "load,provisional,failed", Ewk_Error*);
 DECLARE_EWK_VIEW_CALLBACK(NavigationPolicyDecision, "policy,decision,navigation", Ewk_Navigation_Policy_Decision*);
-DECLARE_EWK_VIEW_CALLBACK(TextFound, "text,found", unsigned*);
-DECLARE_EWK_VIEW_CALLBACK(TooltipTextUnset, "tooltip,text,unset", void);
 DECLARE_EWK_VIEW_CALLBACK(Vibrate, "vibrate", uint32_t*);
 */
 
@@ -263,8 +264,7 @@ DECLARE_EWK_VIEW_CALLBACK(TitleChange, "title,changed", const char*);
 DECLARE_EWK_VIEW_CALLBACK(URLChanged, "url,changed", const char*);
 DECLARE_EWK_VIEW_CALLBACK(URIChanged, "uri,changed", const char*);
 DECLARE_EWK_VIEW_CALLBACK(LoadProgress, "load,progress", double*);
-DECLARE_EWK_VIEW_CALLBACK(LoadProgressStarted, "load,progress,started", void);
-DECLARE_EWK_VIEW_CALLBACK(LoadProgressFinished, "load,progress,finished", void);
+DECLARE_EWK_VIEW_CALLBACK(TooltipTextUnset, "tooltip,text,unset", void);
 DECLARE_EWK_VIEW_CALLBACK(TooltipTextSet, "tooltip,text,set", const char*);
 DECLARE_EWK_VIEW_CALLBACK(EnterFullscreen, "fullscreen,enterfullscreen", void);
 DECLARE_EWK_VIEW_CALLBACK(ExitFullscreen, "fullscreen,exitfullscreen", void);
@@ -274,8 +274,6 @@ DECLARE_EWK_VIEW_CALLBACK(MediaControlRotateHorizontal, "mediacontrol,rotate,hor
 DECLARE_EWK_VIEW_CALLBACK(MediaControlRotateExit, "mediacontrol,rotate,exit", void);
 #endif
 DECLARE_EWK_VIEW_CALLBACK(UserMediaPermission, "usermedia,permission,request", _Ewk_User_Media_Permission_Request*);
-DECLARE_EWK_VIEW_CALLBACK(RegisterProtocolHandler, "protocolhandler,registration,requested", Ewk_Custom_Handlers_Data*);
-DECLARE_EWK_VIEW_CALLBACK(UnregisterProtocolHandler, "protocolhandler,unregistration,requested", Ewk_Custom_Handlers_Data*);
 DECLARE_EWK_VIEW_CALLBACK(IMEInputPanelShow, "editorclient,ime,opened", void);
 DECLARE_EWK_VIEW_CALLBACK(IMEInputPanelHide, "editorclient,ime,closed", void);
 DECLARE_EWK_VIEW_CALLBACK(IMECandidatePanelShow, "editorclient,candidate,opened", void);
@@ -297,6 +295,8 @@ DECLARE_EWK_VIEW_CALLBACK(ContextMenuItemSelected, "contextmenu,selected", _Ewk_
 #if defined(OS_TIZEN_TV_PRODUCT)
 DECLARE_EWK_VIEW_CALLBACK(ContextMenuShow, "contextmenu,show", _Ewk_Context_Menu*);
 DECLARE_EWK_VIEW_CALLBACK(ContextMenuHide, "contextmenu,hide", _Ewk_Context_Menu*);
+DECLARE_EWK_VIEW_CALLBACK(PopupMenuShow, "popup,menu,show", void);
+DECLARE_EWK_VIEW_CALLBACK(PopupMenuHide, "popup,menu,hide", void);
 #endif
 DECLARE_EWK_VIEW_CALLBACK(NavigationPolicyDecision, "policy,navigation,decide", _Ewk_Policy_Decision*);
 DECLARE_EWK_VIEW_CALLBACK(TextFound, "text,found", unsigned int*);
@@ -304,6 +304,7 @@ DECLARE_EWK_VIEW_CALLBACK(TextSelectionMode, "textselection,mode", bool*);
 DECLARE_EWK_VIEW_CALLBACK(NewWindowPolicyDecision, "policy,newwindow,decide", _Ewk_Policy_Decision*);
 DECLARE_EWK_VIEW_CALLBACK(LoadNonEmptyLayoutFinished, "load,nonemptylayout,finished", void);
 DECLARE_EWK_VIEW_CALLBACK(PopupBlocked, "popup,blocked", Eina_Stringshare*);
+DECLARE_EWK_VIEW_CALLBACK(VideoPlayingURL, "video,playing,url", const char*);
 DECLARE_EWK_VIEW_CALLBACK(PopupReplyWaitStart, "popup,reply,wait,start", void*);
 DECLARE_EWK_VIEW_CALLBACK(PopupReplyWaitFinish, "popup,reply,wait,finish", void*);
 DECLARE_EWK_VIEW_CALLBACK(FrameRendered, "frame,rendered", void*);
@@ -334,7 +335,6 @@ DECLARE_EWK_VIEW_CALLBACK(AtkKeyEventNotHandled,
                           "atk,keyevent,nothandled",
                           int*);
 #endif
-DECLARE_EWK_VIEW_CALLBACK(TextStyleState, "text,style,state", _Ewk_Text_Style*);
 DECLARE_EWK_VIEW_CALLBACK(SaveSessionData, "save,session,data", void);
 DECLARE_EWK_VIEW_CALLBACK(UndoSize, "undo,size", size_t*);
 DECLARE_EWK_VIEW_CALLBACK(RedoSize, "redo,size", size_t*);
@@ -364,6 +364,17 @@ DECLARE_EWK_VIEW_CALLBACK(DidBlockInsecureContent,
 DECLARE_EWK_VIEW_CALLBACK(HoverOverLink, "hover,over,link", const char*);
 DECLARE_EWK_VIEW_CALLBACK(HoverOutLink, "hover,out,link", const char*);
 DECLARE_EWK_VIEW_CALLBACK(VideoResized, "notify,video,resized", void*);
+DECLARE_EWK_VIEW_CALLBACK(SubtitlePlay, "notify,subtitle,play", void*);
+DECLARE_EWK_VIEW_CALLBACK(SubtitlePause, "notify,subtitle,pause", void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleStop, "notify,subtitle,stop", void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleResume, "notify,subtitle,resume", void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleSeekStart,
+                          "notify,subtitle,seek,start",
+                          double*);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleSeekComplete,
+                          "notify,subtitle,seek,completed",
+                          void);
+DECLARE_EWK_VIEW_CALLBACK(SubtitleNotifyData, "on,subtitle,data", void*);
 #endif
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
 DECLARE_EWK_VIEW_CALLBACK(VideoTexturing, "notify,video,texturing", void);
@@ -376,6 +387,7 @@ DECLARE_EWK_VIEW_CALLBACK(WindowResizable, "window,resizable", bool*);
 DECLARE_EWK_VIEW_CALLBACK(DidNotAllowScript, "did,not,allow,script", void);
 DECLARE_EWK_VIEW_CALLBACK(FocusOut, "webview,focus,out", void);
 DECLARE_EWK_VIEW_CALLBACK(FocusIn, "webview,focus,in", void);
+DECLARE_EWK_VIEW_CALLBACK(ReaderMode, "reader,mode", bool*);
 DECLARE_EWK_VIEW_CALLBACK(RendererStatusChanged, "renderer,status,changed", bool*);
 DECLARE_EWK_VIEW_CALLBACK(FormRepostWarningShow, "form,repost,warning,show", _Ewk_Form_Repost_Decision_Request*);
 DECLARE_EWK_VIEW_CALLBACK(BeforeFormRepostWarningShow, "before,repost,warning,show", _Ewk_Form_Repost_Decision_Request*);
index 5621cdd..04e6e9f 100644 (file)
@@ -21,10 +21,12 @@ class PermissionPopup {
 
   virtual ~PermissionPopup() { }
 
+  /* LCOV_EXCL_START */
   std::string GetMessage() const { return popup_message_; }
   std::string GetOrigin() const {
     return origin_->GetURL().spec();
   }
+  /* LCOV_EXCL_STOP */
   virtual void SendDecidedPermission(Evas_Object*, bool decide) = 0;
 
  private:
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_autofill_credit_card_private.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_autofill_credit_card_private.h
new file mode 100644 (file)
index 0000000..d21269c
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EWK_AUTOFILL_CREDIT_CARD_PRIVATE_H_
+#define EWK_AUTOFILL_CREDIT_CARD_PRIVATE_H_
+
+#include <map>
+#include <string>
+
+#include "base/strings/utf_string_conversions.h"
+
+enum DataType {
+  CREDIT_CARD_ID = 0,
+  CREDIT_CARD_NAME_FULL,
+  CREDIT_CARD_NUMBER,
+  CREDIT_CARD_EXP_MONTH,
+  CREDIT_CARD_EXP_4_DIGIT_YEAR,
+  MAX_AUTOFILL
+};
+
+struct _Ewk_Autofill_CreditCard {
+ public:
+  _Ewk_Autofill_CreditCard();
+  ~_Ewk_Autofill_CreditCard();
+
+  typedef std::map<DataType, std::string> AutofillDataMap;
+
+  unsigned getCreditCardID() const;
+  void setCreditCardID(unsigned id);
+  std::string getData(DataType name) const;
+  base::string16 get16Data(DataType name) const;
+
+  void setData(DataType name, const std::string& value);
+
+ private:
+  unsigned m_creditCardID_;
+  AutofillDataMap m_data;
+};
+
+#endif /*EWK_AUTOFILL_CREDIT_CARD_PRIVATE_H_*/
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_credit_card_private.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_credit_card_private.h
new file mode 100644 (file)
index 0000000..25c1e34
--- /dev/null
@@ -0,0 +1,117 @@
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ewk_context_form_autofill_credit_card_private_h
+#define ewk_context_form_autofill_credit_card_private_h
+
+#if defined(TIZEN_AUTOFILL_SUPPORT)
+
+#include <Evas.h>
+#include <tizen.h>
+
+struct Ewk_Context;
+
+typedef struct _Ewk_Autofill_CreditCard Ewk_Autofill_CreditCard;
+typedef void (*Ewk_Context_Form_Autofill_CreditCard_Changed_Callback)(
+    void* data);
+
+class EwkContextFormAutofillCreditCardManager {
+ public:
+  /**
+   * Gets a list of all existing credit_cards
+   *
+   * The obtained credit_card must be deleted by
+   * ewk_autofill_credit_card_delete.
+   * @param context context object
+   *
+   * @return @c Eina_List of Ewk_Autofill_CreditCard @c NULL otherwise
+   * @see ewk_autofill_credit_card_delete
+   */
+  static Eina_List* priv_form_autofill_credit_card_get_all(
+      Ewk_Context* context);
+
+  /**
+   * Gets the existing credit_card for given index
+   *
+   * The obtained credit_card must be deleted by
+   * ewk_autofill_credit_card_delete.
+   *
+   * @param context context object
+   * @param id credit_card id
+   *
+   * @return @c Ewk_Autofill_CreditCard if credit_card exists, @c NULL otherwise
+   * @see ewk_autofill_credit_card_delete
+   */
+  static Ewk_Autofill_CreditCard* priv_form_autofill_credit_card_get(
+      Ewk_Context* context,
+      unsigned id);
+
+  /**
+   * Sets the given credit_card for the given id
+   *
+   * Data can be added to the created credit_card by
+   * ewk_autofill_credit_card_data_set.
+   *
+   * @param context context object
+   * @param credit_card id
+   * @param credit_card Ewk_Autofill_CreditCard
+   *
+   * @return @c EINA_TRUE if the credit_card data is set successfully, @c
+   * EINA_FALSE otherwise
+   * @see ewk_autofill_credit_card_new
+   * @see ewk_context_form_autofill_credit_card_add
+   */
+  static Eina_Bool priv_form_autofill_credit_card_set(
+      Ewk_Context* context,
+      unsigned id,
+      Ewk_Autofill_CreditCard* credit_card);
+
+  /**
+   * Saves the created credit_card into permenant storage
+   *
+   * The credit_card used to save must be created by
+   * ewk_autofill_credit_card_new.
+   * Data can be added to the created credit_card by
+   * ewk_autofill_credit_card_data_set.
+   *
+   * @param context context object
+   * @param credit_card Ewk_Autofill_CreditCard
+   *
+   * @return @c EINA_TRUE if the credit_card data is saved successfully, @c
+   * EINA_FALSE otherwise
+   * @see ewk_autofill_credit_card_new
+   */
+  static Eina_Bool priv_form_autofill_credit_card_add(
+      Ewk_Context* context,
+      Ewk_Autofill_CreditCard* credit_card);
+
+  /**
+   * Removes Autofill Form credit_card completely
+   *
+   * @param context context object
+   * @param id credit_card id
+   *
+   * @return @c EINA_TRUE if the credit_card data is removed successfully, @c
+   * EINA_FALSE otherwise
+   * @see ewk_context_form_autofill_credit_card_get_all
+   */
+  static Eina_Bool
+  priv_form_autofill_credit_card_remove(Ewk_Context* context, unsigned id);
+
+  /**
+   * Sets callback function on credit_cards changed
+   *
+   * @param callback pointer to callback function
+   * @param user_data user data returned on callback
+   *
+   * @see ewk_context_form_autofill_credit_card_changed_callback_set
+   */
+  static void priv_form_autofill_credit_card_changed_callback_set(
+      Ewk_Context_Form_Autofill_CreditCard_Changed_Callback callback,
+      void* user_data);
+};
+
+#endif  // TIZEN_AUTOFILL_SUPPORT
+
+#endif  // ewk_context_form_autofill_credit_card_private_h
index 2ca81aa..70eb8e1 100644 (file)
@@ -28,7 +28,8 @@ struct Ewk_Context : public base::RefCounted<Ewk_Context> {
   static Ewk_Context* IncognitoContext();
   static void DefaultContextRelease();
   static Ewk_Context* Create(bool incognito = false);
-  static Ewk_Context* Create(const std::string& injectedBundlePath);
+  static Ewk_Context* Create(bool incognito,
+                             const std::string& injectedBundlePath);
   static void Delete(Ewk_Context*);
 
   // Get related class
@@ -76,9 +77,14 @@ struct Ewk_Context : public base::RefCounted<Ewk_Context> {
   // Application Cache
   void GetAllOriginsWithApplicationCache(
       Ewk_Web_Application_Cache_Origins_Get_Callback callback, void* user_data);
-  void GetApplicationCacheUsage(const GURL& url,
+  void GetApplicationCacheUsage(
+      const GURL& url,
       Ewk_Web_Application_Cache_Usage_For_Origin_Get_Callback callback,
       void* user_data);
+  void GetLocalStorageUsageForOrigin(
+      const GURL& origin,
+      Ewk_Web_Storage_Usage_Get_Callback callback,
+      void* user_data);
   void DeleteAllApplicationCache();
   void DeleteApplicationCacheForSite(const GURL& url);
 
@@ -86,6 +92,9 @@ struct Ewk_Context : public base::RefCounted<Ewk_Context> {
   void GetAllOriginsWithWebDB(Ewk_Web_Database_Origins_Get_Callback callback,
       void* user_data);
   void WebDBDelete(const GURL& host);
+  void GetWebDBUsageForOrigin(const GURL& origin,
+                              Ewk_Web_Database_Usage_Get_Callback callback,
+                              void* userData);
 
   // Indexed DB
   void IndexedDBDelete();
@@ -119,6 +128,10 @@ struct Ewk_Context : public base::RefCounted<Ewk_Context> {
 
   // Password
   void ClearPasswordData();
+  void ClearPasswordDataForUrl(const char* url);
+  void GetPasswordDataList(
+      Ewk_Context_Form_Password_Data_List_Get_Callback callback,
+      void* user_data);
 
   // Extensible
   bool SetExtensibleAPI(const std::string& api_name, bool enable);
@@ -167,6 +180,12 @@ struct Ewk_Context : public base::RefCounted<Ewk_Context> {
       void* user_data);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void SetContextInterceptRequestCancelCallback(
+      Ewk_Context_Intercept_Request_Callback callback,
+      void* user_data);
+#endif
+
+#if defined(OS_TIZEN_TV_PRODUCT)
   void SetMaxURLChars(size_t max_chars);
 #endif
 
@@ -196,7 +215,7 @@ struct Ewk_Context : public base::RefCounted<Ewk_Context> {
   EWebContext* impl;
 
   Ewk_Context(bool incognito);
-  Ewk_Context(const std::string& injectedBundlePath);
+  Ewk_Context(bool incognito, const std::string& injectedBundlePath);
   ~Ewk_Context();
   friend class base::RefCounted<Ewk_Context>;
 
index c329d17..734f79e 100644 (file)
@@ -11,13 +11,12 @@ struct Ewk_Custom_Handlers_Data {
  public:
   Ewk_Custom_Handlers_Data();
   Ewk_Custom_Handlers_Data(const char* protocol, const char* baseUrl,
-      const char* full_url, const char* handler_title = NULL);
+      const char* full_url);
   ~Ewk_Custom_Handlers_Data();
 
   Eina_Stringshare* getTarget() const;
   Eina_Stringshare* getBaseUrl() const;
   Eina_Stringshare* getUrl() const;
-  Eina_Stringshare* getTitle() const;
   Ewk_Custom_Handlers_State getResult() const;
   void setResult(Ewk_Custom_Handlers_State result_);
 
@@ -25,7 +24,6 @@ struct Ewk_Custom_Handlers_Data {
   Eina_Stringshare* target;
   Eina_Stringshare* base_url;
   Eina_Stringshare* url;
-  Eina_Stringshare* title;
   Ewk_Custom_Handlers_State result;
 };
 
index 488a198..31b5ba9 100644 (file)
@@ -7,6 +7,10 @@
 #define ewk_error_private_h
 
 #include <Eina.h>
+#include "net/base/net_errors.h"
+
+int ConvertErrorCode(int error_code);
+const char* GetDescriptionFromErrorCode(int error_code);
 
 struct _Ewk_Error {
   int error_code;
@@ -15,14 +19,12 @@ struct _Ewk_Error {
   Eina_Stringshare* description;
   Eina_Stringshare* domain;
 
-  _Ewk_Error(int error_code_in,
-             bool is_cancellation_in,
-             const char* url_in,
-             const char* description_in)
-      : error_code(error_code_in),
+  _Ewk_Error(int error_code_in, bool is_cancellation_in, const char* url_in)
+      : error_code(ConvertErrorCode(error_code_in)),
         is_cancellation(is_cancellation_in),
         url(eina_stringshare_add(url_in)),
-        description(eina_stringshare_add(description_in)),
+        description(
+            eina_stringshare_add(GetDescriptionFromErrorCode(error_code_in))),
         // Chromium always reports "net" as error domain anyways,
         // so we just hardcode it.
         domain(eina_stringshare_add("net")) {}
index 1518d91..5b61dc1 100644 (file)
@@ -14,9 +14,11 @@ struct EwkFaviconDatabase {
   explicit EwkFaviconDatabase(EWebContext* eweb_context)
     : eweb_context_(eweb_context) {}
 
+  /* LCOV_EXCL_START */
   Evas_Object* GetIcon(const char* page_url, Evas* evas) const {
     return eweb_context_->AddFaviconObject(page_url, evas);
   }
+  /* LCOV_EXCL_STOP */
 
  private:
   EWebContext* eweb_context_;
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_main_private.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_main_private.h
deleted file mode 100644 (file)
index 0fba387..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2013 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ewk_main_private_h
-#define ewk_main_private_h
-
-#include <string>
-#include <tizen.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Returns home directory.
- *
- * If home directory is not previously set by ewk_home_directory_set() then
- * the content of $HOME variable is returned.
- * If $HOME is not set then "/tmp" is returned.
- *
- * @return home directory
- */
-EXPORT_API const char* ewk_home_directory_get();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // ewk_main_private_h
-
index c098d4f..a17f99e 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
+#include "ewk_suspendable_object.h"
 #include "private/ewk_security_origin_private.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
@@ -49,27 +50,20 @@ struct Ewk_Notification {
 
 };
 
-struct Ewk_Notification_Permission_Request {
+struct Ewk_Notification_Permission_Request : public Ewk_Suspendable_Object {
  public:
   Ewk_Notification_Permission_Request(
-      Evas_Object* webview,
       const base::Callback<void(blink::mojom::PermissionStatus)>& callback,
       const GURL& source_origin);
   ~Ewk_Notification_Permission_Request();
 
-  Evas_Object* GetWebviewEvasObject() const;
   const _Ewk_Security_Origin* GetSecurityOrigin() const;
-  bool IsDecided() const;
-  bool IsSuspended() const;
-  bool SetSuspend(bool suspend) const;
-  bool Reply(bool allow);
 
  private:
-  Evas_Object* webview_;
   std::unique_ptr<_Ewk_Security_Origin> origin_;
   base::Callback<void(blink::mojom::PermissionStatus)> callback_;
-  bool decided_;
-  mutable bool suspended_;
+
+  void runCallback(bool allowed) override;
 
   DISALLOW_COPY_AND_ASSIGN(Ewk_Notification_Permission_Request);
 };
index 5ed6527..5954054 100644 (file)
@@ -29,28 +29,43 @@ struct Ewk_Settings {
     bool autofillProfileForm() const { return m_autofillProfileForm; }
     void setAutofillProfileForm(bool enable) { m_autofillProfileForm = enable; }
     bool textSelectionEnabled() const { return m_textSelectionEnabled; }
-    void setTextSelectionEnabled(bool enable) { m_textSelectionEnabled = enable; }
+    void setTextSelectionEnabled(bool enable) {
+      m_textSelectionEnabled = enable;
+    }  // LCOV_EXCL_LINE
     bool autoClearTextSelection() const { return m_autoClearTextSelection; }
-    void setAutoClearTextSelection(bool enable) { m_autoClearTextSelection = enable; }
+    void setAutoClearTextSelection(bool enable) {
+      m_autoClearTextSelection = enable;
+    }  // LCOV_EXCL_LINE
     bool autoSelectWord() const { return m_autoSelectWord; }
-    void setAutoSelectWord(bool enable) { m_autoSelectWord = enable; }
+    void setAutoSelectWord(bool enable) {
+      m_autoSelectWord = enable;
+    }  // LCOV_EXCL_LINE
     bool edgeEffectEnabled() const { return m_edgeEffectEnabled; }
     void setEdgeEffectEnabled(bool enable);
     void setTextZoomEnabled(bool enable);
     bool textZoomEnabled() const { return m_preferences.text_zoom_enabled; }
-    void setLoadRemoteImages(bool loadRemoteImages) { m_loadRemoteImages = loadRemoteImages; }
+    void setLoadRemoteImages(bool loadRemoteImages) {
+      m_loadRemoteImages = loadRemoteImages;
+    }  // LCOV_EXCL_LINE
     bool loadRemoteImages() const { return m_loadRemoteImages; }
     void setCurrentLegacyFontSizeMode(Ewk_Legacy_Font_Size_Mode mode);
     Ewk_Legacy_Font_Size_Mode currentLegacyFontSizeMode() const { return m_currentLegacyFontSizeMode; }
-    void setPasteImageUriEnabled(bool enable) { m_pasteImageUriEnabled = enable; }
+    void setPasteImageUriEnabled(bool enable) {
+      m_pasteImageUriEnabled = enable;
+    }  // LCOV_EXCL_LINE
     bool pasteImageUriEnabled() const {return m_pasteImageUriEnabled;}
     bool defaultKeypadEnabled() const { return m_defaultKeypadEnabled; }
-    void setEnableDefaultKeypad(bool flag) { m_defaultKeypadEnabled = flag; }
+    void setEnableDefaultKeypad(bool flag) {
+      m_defaultKeypadEnabled = flag;
+    }  // LCOV_EXCL_LINE
     bool useKeyPadWithoutUserAction() const { return m_useKeyPadWithoutUserAction; }
-    void setUseKeyPadWithoutUserAction(bool enable) { m_useKeyPadWithoutUserAction = enable; }
+    void setUseKeyPadWithoutUserAction(bool enable) {
+      m_useKeyPadWithoutUserAction = enable;
+    }  // LCOV_EXCL_LINE
     bool textStyleStateState() const { return m_textStyleState; }
-    void setTextStyleStateState(bool enable) { m_textStyleState = enable; }
-    void setSpdyEnabled(bool flag);
+    void setTextStyleStateState(bool enable) {
+      m_textStyleState = enable;
+    }  // LCOV_EXCL_LINE
     void setDetectContentsAutomatically(bool enable) { m_detectContentsAutomatically = enable; }
     bool detectContentsAutomatically() const { return m_detectContentsAutomatically; }
 
@@ -62,8 +77,6 @@ struct Ewk_Settings {
     WebPreferencesEfl& getPreferencesEfl() { return m_preferences_efl; }
     const WebPreferencesEfl& getPreferencesEfl() const { return m_preferences_efl; }
 
-    void setCacheBuilderEnabled(bool enable) { m_cacheBuilderEnabled = enable; }
-
     /* ewk_extra_features related */
     void setLongPressEnabled(bool enable) { m_longPressEnabled = enable; }
     bool getLongPressEnabled() const { return m_longPressEnabled; }
@@ -83,12 +96,16 @@ struct Ewk_Settings {
     bool getAllowRestrictedURLEnabled() const { return m_allowRestrictedURL; }
     void setURLBarHideEnabled(bool enable) { m_URLBarHide = enable; }
     bool getURLBarHideEnabled() const { return m_URLBarHide; }
-    void setLinkEffectEnabled(bool enable) { m_linkEffectEnabled = enable; }
-    bool getLinkEffectEnabled() const { return m_linkEffectEnabled; }
+    /* LCOV_EXCL_START */
     void setSwipeToRefreshEnabled(bool enable) {
       m_swipeToRefreshEnabled = enable;
     }
+    /* LCOV_EXCL_STOP */
     bool getSwipeToRefreshEnabled() const { return m_swipeToRefreshEnabled; }
+    void setTouchFocusEnabled(bool enable) {
+      m_touchFocusEnabled = enable;
+    }  // LCOV_EXCL_LINE
+    bool touchFocusEnabled() const { return m_touchFocusEnabled; }
 
   private:
     content::WebPreferences m_preferences;
@@ -110,7 +127,6 @@ struct Ewk_Settings {
     bool m_detectContentsAutomatically;
 
     Evas_Object* m_evas_object;
-    bool m_cacheBuilderEnabled;
 
     /* ewk_extra_features related */
     bool m_longPressEnabled;
@@ -122,8 +138,8 @@ struct Ewk_Settings {
     bool m_openPanelEnabled;
     bool m_allowRestrictedURL;
     bool m_URLBarHide;
-    bool m_linkEffectEnabled;
     bool m_swipeToRefreshEnabled;
+    bool m_touchFocusEnabled;
 };
 
 #endif // ewk_settings_private_h
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_text_style_private.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/private/ewk_text_style_private.h
deleted file mode 100644 (file)
index 069551c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2013 Samsung Electronics. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ewk_text_style_private_h
-#define ewk_text_style_private_h
-
-#include <string>
-#include <vector>
-
-#include <Eina.h>
-#include <Evas.h>
-
-#include <ui/gfx/geometry/point.h>
-
-struct SelectionColor {
-  int r;
-  int g;
-  int b;
-  int a;
-};
-
-struct SelectionStylePrams {
-  int underline_state;
-  int italic_state;
-  int bold_state;
-  SelectionColor bg_color;
-  SelectionColor color;
-  std::string font_size;
-  int order_list_state;
-  int un_order_list_state;
-  int text_align_center_state;
-  int text_align_left_state;
-  int text_align_right_state;
-  int text_align_full_state;
-  int has_composition;
-};
-
-struct _Ewk_Text_Style {
-  _Ewk_Text_Style(const SelectionStylePrams& params, const gfx::Point& start_point, const gfx::Point& end_point) {
-    selectionParams = params;
-
-    position.startPoint.x = start_point.x();
-    position.startPoint.y = start_point.y();
-    position.endPoint.x = end_point.x();
-    position.endPoint.y = end_point.y();
-
-    bgColor = params.bg_color;
-    color = params.color;
-    fontSize = eina_stringshare_add(params.font_size.c_str());
-    hasComposition = params.has_composition;
-  }
-
-  ~_Ewk_Text_Style() {
-    eina_stringshare_del(fontSize);
-  }
-
-  SelectionStylePrams selectionParams;
-  Eina_Stringshare* fontSize;
-  Eina_Bool hasComposition;
-
-  struct {
-    Evas_Point startPoint;
-    Evas_Point endPoint;
-  } position;
-
-  SelectionColor bgColor;
-  SelectionColor color;
-};
-
-#endif
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_autofill_credit_card_internal.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/efl_integration/public/ewk_autofill_credit_card_internal.h
new file mode 100644 (file)
index 0000000..451645a
--- /dev/null
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2017 Samsung Electronics.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * @file    ewk_autofill_credit_card_internal.h
+ * @brief   This file describes the Ewk Autofill CreditCard API.
+ */
+
+#ifndef ewk_autofill_credit_card_internal_h
+#define ewk_autofill_credit_card_internal_h
+
+#include <Eina.h>
+#include <tizen.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup WEBVIEW
+ * @{
+ */
+
+/**
+ * @if MOBILE
+ * \enum   _Ewk_Autofill_Credit_Card_Data_Type
+ * @brief  Enumeration that provides an option to autofill credit_card data types.
+ *
+ * @since_tizen 4.0
+ * @endif
+ */
+
+enum _Ewk_Autofill_Credit_Card_Data_Type {
+  EWK_CREDIT_CARD_ID = 0,
+  EWK_CREDIT_CARD_NAME_FULL,
+  EWK_CREDIT_CARD_NUMBER,
+  EWK_CREDIT_CARD_EXP_MONTH,
+  EWK_CREDIT_CARD_EXP_4_DIGIT_YEAR,
+  EWK_MAX_CREDIT_CARD
+};
+
+/**
+ * @if MOBILE
+ * @brief Enumeration that creates a type name for the Ewk_Autofill_Credit_Card_Data_Type.
+ *
+ * @since_tizen 4.0
+ * @endif
+ */
+typedef enum _Ewk_Autofill_Credit_Card_Data_Type Ewk_Autofill_Credit_Card_Data_Type;
+
+/**
+ * @if MOBILE
+ * @brief The structure type that creates a type name for #Ewk_Autofill_CreditCard.
+ *
+ * @since_tizen 4.0
+ * @endif
+ */
+typedef struct _Ewk_Autofill_CreditCard Ewk_Autofill_CreditCard;
+
+/**
+ * @if MOBILE
+ * @brief Creates a new credit_card
+ *
+ * The created credit_card must be deleted by ewk_autofill_credit_card_delete
+ *
+ * @since_tizen 4.0
+ *
+ * @return @c Ewk_Autofill_CreditCard if new credit_card is successfully created,
+           @c NULL otherwise
+ *
+ * @see ewk_autofill_credit_card_data_set
+ * @see ewk_autofill_credit_card_delete
+ * @endif
+ */
+EXPORT_API Ewk_Autofill_CreditCard* ewk_autofill_credit_card_new(void);
+
+/**
+ * @if MOBILE
+ * @brief Deletes a given credit_card
+ *
+ * The API will delete the a particular credit_card only from the memory.
+ * To remove the credit_card permenantly use
+ * ewk_context_form_autofill_credit_card_remove
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] credit_card name
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_get
+ * @see ewk_context_form_autofill_credit_card_remove
+ * @endif
+ */
+EXPORT_API void ewk_autofill_credit_card_delete(Ewk_Autofill_CreditCard* card);
+
+/**
+ * @if MOBILE
+ * @brief Sets the data in the credit_card created by ewk_autofill_credit_card_new
+ *
+ * The data set by this function is set locally. To save it to database use
+ * ewk_context_form_autofill_credit_card_add
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] credit_card contains the credit_card data
+ * @param[in] type type of attribute to be set
+ * @param[in] value value of the attribute
+ *
+ * @see ewk_autofill_credit_card_data_get
+ * @see Ewk_Autofill_Credit_Card_Data_Type
+ * @see ewk_context_form_autofill_credit_card_add
+ * @endif
+ */
+EXPORT_API void ewk_autofill_credit_card_data_set(Ewk_Autofill_CreditCard* card, Ewk_Autofill_Credit_Card_Data_Type type, const char* value);
+
+/**
+ * @if MOBILE
+ * @brief Gets the id attribute value from a given credit_card
+ *
+ * The credit_card obtained from ewk_context_form_autofill_credit_card_get will be used
+ * to get the credit_cardid
+ *
+ * @param[in] credit_card name of credit_card
+ *
+ * @since_tizen 4.0
+ *
+ * @return @c Value of attribute (unsigned), @c 0 otherwise
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_get
+ * @see ewk_context_form_autofill_credit_card_get_all
+ * @endif
+ */
+EXPORT_API unsigned ewk_autofill_credit_card_id_get(Ewk_Autofill_CreditCard* card);
+
+/**
+ * @if MOBILE
+ * @brief Gets the attribute value from a given credit_card
+ *
+ * The credit_card obtained from ewk_context_form_autofill_credit_card_get will be used
+ * to get the data
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] credit_card name of credit_card
+ * @param[in] type name of attribute
+ *
+ * @return @c Value of attribute (Eina_Stringshare*), @c NULL otherwise
+ * The string should be released with eina_stringshare_del()
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_get
+ * @see ewk_context_form_autofill_credit_card_get_all
+ * @endif
+ */
+EXPORT_API Eina_Stringshare* ewk_autofill_credit_card_data_get(Ewk_Autofill_CreditCard* credit_card, Ewk_Autofill_Credit_Card_Data_Type type);
+
+/**
+* @}
+*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ewk_autofill_credit_card_internal_h
+
index b58b80b..fcdf1f3 100644 (file)
@@ -369,6 +369,126 @@ typedef void (*Ewk_Context_Intercept_Request_Callback)(Ewk_Context* ewk_context,
 EXPORT_API void ewk_context_intercept_request_callback_set(Ewk_Context* ewk_context, Ewk_Context_Intercept_Request_Callback callback, void* user_data);
 
 /**
+ * @brief   Sets Ewk_Context_Intercept_Request_Cancel_Callback
+ *
+ * @details Sets Ewk_Context_Intercept_Request_Cancel_Callback to give a chance to
+ *          notify intercept resource request to client when url request is cancelled.
+ *
+ * @remarks Pass NULL pointer as @a callback to reset current callback.
+ *
+ *
+ * @param[in] ewk_context Ewk_Context object to intercept requests
+ * @param[in] callback New callback, NULL resets current callback
+ * @param[in] user_data User data passed to @a callback
+ *
+ * @see Ewk_Context_Intercept_Request_Callback
+ */
+
+typedef  Ewk_Context_Intercept_Request_Callback Ewk_Context_Intercept_Request_Cancel_Callback;
+
+EXPORT_API void ewk_context_intercept_request_cancel_callback_set(Ewk_Context* ewk_context, Ewk_Context_Intercept_Request_Cancel_Callback callback, void* user_data);
+
+/**
+ * @brief Gets the enabled state of background music.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if background music is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_background_music_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of background music.
+ *
+ * @details This function allows the application to continue playing instead of pausing when it moves to the background.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable background music
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_background_music_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
+ * @brief Gets the enabled state of blocking multimedia on call.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if blocking multimedia on call is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_block_multimedia_on_call_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of blocking multimedia on call.
+ *
+ * @details The application can set the flag to allow or disallow media playback during active call.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable blocking multimedia on call
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_block_multimedia_on_call_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
+ * @brief Gets the enabled state of rotation lock.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if rotation lock is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_rotation_lock_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of rotation lock.
+ *
+ * @details The application can use this function to lock the auto screen rotation feature.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable rotation lock
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_rotation_lock_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
+ * @brief Gets the enabled state of sound overlap.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ *
+ * @return @c EINA_TRUE if sound overlap is enabled, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_sound_overlap_get(Ewk_Context* context);
+
+/**
+ * @brief Sets the enabled state of sound overlap.
+ *
+ * @details The application can set the flag to allow or disallow the sound overlap with other apps.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context The context object
+ * @param[in] enable Enable or disable sound overlap
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
+ */
+EXPORT_API Eina_Bool ewk_context_sound_overlap_set(Ewk_Context* context, Eina_Bool enable);
+
+/**
 * @}
 */
 
index 983cf81..59e3a40 100644 (file)
@@ -44,6 +44,7 @@
 #define ewk_context_internal_h
 
 #include "ewk_application_cache_manager_internal.h"
+#include "ewk_autofill_credit_card_internal.h"
 #include "ewk_context.h"
 #include "ewk_favicon_database_internal.h"
 #include "ewk_notification_internal.h"
@@ -167,14 +168,6 @@ typedef void (*Ewk_Web_Database_Quota_Get_Callback)(uint64_t quota, void* user_d
 //typedef void (*Ewk_Web_Database_Path_Get_Callback)(const char* path, void* user_data);
 
 /**
- * Callback for ewk_context_web_storage_origins_get.
- *
- * @param origins web storage origins
- * @param user_data user_data will be passsed when ewk_context_web_storage_origins_get is called
- */
-typedef void (*Ewk_Web_Storage_Origins_Get_Callback)(Eina_List* origins, void* user_data);
-
-/**
  * Callback for didStartDownload
  *
  * @param download_url url to download
@@ -199,10 +192,17 @@ typedef Eina_Bool (*Ewk_Context_Override_Mime_For_Url_Callback)(const char* url,
 /*
  * Callback for changed profiles.
  *
- * @param user_data user_data will be passsed when download is started
+ * @param data user data will be passed when autofill profile is changed
  */
 typedef void (*Ewk_Context_Form_Autofill_Profile_Changed_Callback)(void *data);
 
+/*
+ * Callback for changed credit_cards.
+ *
+ * @param data user data will be passed when credit card is changed
+ */
+typedef void (*Ewk_Context_Form_Autofill_CreditCard_Changed_Callback)(void *data);
+
 /**
  * Requests for freeing origins.
  *
@@ -532,7 +532,7 @@ EXPORT_API void ewk_context_form_autofill_profile_changed_callback_set(
  * The obtained profile must be deleted by ewk_autofill_profile_delete.
  *
  * @param context context object
- * @param profile id
+ * @param id profile id
  *
  * @return @c Ewk_Autofill_Profile if profile exists, @c NULL otherwise
  * @see ewk_autofill_profile_delete
@@ -540,6 +540,108 @@ EXPORT_API void ewk_context_form_autofill_profile_changed_callback_set(
 EXPORT_API Ewk_Autofill_Profile* ewk_context_form_autofill_profile_get(Ewk_Context* context, unsigned id);
 
 /**
+ * Sets callback for credit_cards change notification.
+ *
+ * @param callback pointer to callback function
+ * @param user_data user data returned on callback
+ *
+ */
+EXPORT_API void ewk_context_form_autofill_credit_card_changed_callback_set(
+    Ewk_Context_Form_Autofill_CreditCard_Changed_Callback callback,
+    void* user_data);
+
+/**
+ * @if MOBILE
+ * @brief Saves the created credit_card into permenant storage
+ *
+ * The credit_card used to save must be created by ewk_autofill_credit_card_new.
+ * Data can be added to the created credit_card by ewk_autofill_credit_card_data_set.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] credit_card Ewk_Autofill_CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is saved successfully, otherwise
+ *         @c EINA_FALSE
+ *
+ * @see ewk_autofill_credit_card_new
+ * @endif
+ */
+EXPORT_API Eina_Bool ewk_context_form_autofill_credit_card_add(Ewk_Context* context, Ewk_Autofill_CreditCard* credit_card);
+
+/**
+ * @if MOBILE
+ * @brief Gets the existing credit_card for given index
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] id CreditCard
+ *
+ * @return @c Ewk_Autofill_CreditCard if credit_card exists, otherwise @c NULL
+ *
+ * @see ewk_autofill_credit_card_delete
+ * @endif
+ */
+EXPORT_API Ewk_Autofill_CreditCard* ewk_context_form_autofill_credit_card_get(Ewk_Context* context, unsigned id);
+
+/**
+ * @if MOBILE
+ * @brief Gets a list of all existing credit_cards
+ *
+ * The obtained credit_card must be deleted by ewk_autofill_credit_card_delete.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ *
+ * @return @c Eina_List of Ewk_Autofill_CreditCard, otherwise @c NULL
+ *
+ * @see ewk_autofill_credit_card_delete
+ * @endif
+ */
+EXPORT_API Eina_List* ewk_context_form_autofill_credit_card_get_all(Ewk_Context* context);
+
+/**
+ * @if MOBILE
+ * @brief Sets the given credit_card for the given id
+ *
+ * Data can be added to the created credit_card by ewk_autofill_credit_card_data_set.
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] id CreditCard
+ * @param[in] credit_card Ewk_Autofill_CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is set successfully, otherwise
+ *         @c EINA_FALSE
+ *
+ * @see ewk_autofill_credit_card_new
+ * @see ewk_context_form_autofill_credit_card_add
+ * @endif
+ */
+EXPORT_API Eina_Bool ewk_context_form_autofill_credit_card_set(Ewk_Context* context, unsigned id, Ewk_Autofill_CreditCard* credit_card);
+
+/**
+ * @if MOBILE
+ * @brief Removes Autofill Form credit_card completely
+ *
+ * @since_tizen 4.0
+ *
+ * @param[in] context Context object
+ * @param[in] id CreditCard
+ *
+ * @return @c EINA_TRUE if the credit_card data is removed successfully, otherwise
+           @c EINA_FALSE
+ *
+ * @see ewk_context_form_autofill_credit_card_get_all
+ * @endif
+ */
+EXPORT_API Eina_Bool ewk_context_form_autofill_credit_card_remove(Ewk_Context* context, unsigned id);
+
+/**
  * Get tizen extensible api enable state
  *
  * @param context context object
@@ -698,6 +800,17 @@ EXPORT_API Ewk_Storage_Manager *ewk_context_storage_manager_get(const Ewk_Contex
  */
 EXPORT_API Eina_Bool ewk_context_web_database_delete_all(Ewk_Context* context);
 
+/**
+ * Sets app_control.
+ *
+ * @param context context object
+ * @param app_control app_control handle.
+ *
+ * @return @c EINA_TRUE if successful, @c EINA_FALSE otherwise
+ *
+ */
+EXPORT_API Eina_Bool ewk_context_app_control_set(const Ewk_Context* context, void* app_control);
+
 EXPORT_API Eina_Bool ewk_context_notification_callbacks_set(Ewk_Context* context,
     Ewk_Context_Notification_Show_Callback show_callback,
     Ewk_Context_Notification_Cancel_Callback cancel_callback, void* user_data);
index b41c786..b2e5cbf 100644 (file)
@@ -43,7 +43,7 @@ extern "C" {
  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
  */
 enum _Ewk_Context_Menu_Item_Tag{
-    EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION = 0,  /**< No action */
+    EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION = 0,
     EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW,  /**< Open link in new window */
     EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_LINK_TO_DISK,  /**< Download link to disk */
     EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_TO_CLIPBOARD,  /**< Copy link to clipboard */
@@ -51,88 +51,88 @@ enum _Ewk_Context_Menu_Item_Tag{
     EWK_CONTEXT_MENU_ITEM_TAG_OPEN_IMAGE_IN_CURRENT_WINDOW,  /**< Open image in current window */
     EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_IMAGE_TO_DISK,  /**< Download image to disk */
     EWK_CONTEXT_MENU_ITEM_TAG_COPY_IMAGE_TO_CLIPBOARD,  /**< Copy image to clipboard */
-    EWK_CONTEXT_MENU_ITEM_TAG_OPEN_FRAME_IN_NEW_WINDOW,  /**< Open frame in new window */
+    EWK_CONTEXT_MENU_ITEM_TAG_OPEN_FRAME_IN_NEW_WINDOW,
     EWK_CONTEXT_MENU_ITEM_TAG_COPY,  /**< Copy */
-    EWK_CONTEXT_MENU_ITEM_TAG_GO_BACK,  /**< Go back */
-    EWK_CONTEXT_MENU_ITEM_TAG_GO_FORWARD,  /**< Go forward */
-    EWK_CONTEXT_MENU_ITEM_TAG_STOP,  /**< Stop */
-    EWK_CONTEXT_MENU_ITEM_TAG_SHARE,  /**< Share */
-    EWK_CONTEXT_MENU_ITEM_TAG_RELOAD,  /**< Reload */
+    EWK_CONTEXT_MENU_ITEM_TAG_GO_BACK,
+    EWK_CONTEXT_MENU_ITEM_TAG_GO_FORWARD,
+    EWK_CONTEXT_MENU_ITEM_TAG_STOP,
+    EWK_CONTEXT_MENU_ITEM_TAG_SHARE,
+    EWK_CONTEXT_MENU_ITEM_TAG_RELOAD,
     EWK_CONTEXT_MENU_ITEM_TAG_CUT,  /**< Cut  */
     EWK_CONTEXT_MENU_ITEM_TAG_PASTE,  /**< Paste */
-    EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_GUESS,  /**< Spelling guess */
-    EWK_CONTEXT_MENU_ITEM_TAG_NO_GUESSES_FOUND,  /**< Guess found */
-    EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_SPELLING,  /**< Ignore spelling */
-    EWK_CONTEXT_MENU_ITEM_TAG_LEARN_SPELLING,  /**< Learn spelling */
-    EWK_CONTEXT_MENU_ITEM_TAG_OTHER,  /**< Other */
-    EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_IN_SPOTLIGHT,  /**< Search in spotlight */
+    EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_GUESS,
+    EWK_CONTEXT_MENU_ITEM_TAG_NO_GUESSES_FOUND,
+    EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_SPELLING,
+    EWK_CONTEXT_MENU_ITEM_TAG_LEARN_SPELLING,
+    EWK_CONTEXT_MENU_ITEM_TAG_OTHER,
+    EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_IN_SPOTLIGHT,
     EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_WEB,  /**< Search web */
-    EWK_CONTEXT_MENU_ITEM_TAG_LOOK_UP_IN_DICTIONARY,  /**< Look up in dictionary */
-    EWK_CONTEXT_MENU_ITEM_TAG_OPEN_WITH_DEFAULT_APPLICATION,  /**< Open with default application */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_ACTUAL_SIZE,  /**< PDF actual size */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_IN,  /**< PDF zoom in */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_OUT,  /**< PDF zoom out */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_AUTO_SIZE,  /**< PDF auto size */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE,  /**< PDF single page */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACTING_PAGES,  /**< PDF facting page */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_CONTINUOUS,  /**< PDF continuous */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_NEXT_PAGE,  /**< PDF next page */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_PREVIOUS_PAGE,  /**< PDF previous page */
+    EWK_CONTEXT_MENU_ITEM_TAG_LOOK_UP_IN_DICTIONARY,
+    EWK_CONTEXT_MENU_ITEM_TAG_OPEN_WITH_DEFAULT_APPLICATION,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_ACTUAL_SIZE,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_IN,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_OUT,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_AUTO_SIZE,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACTING_PAGES,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_CONTINUOUS,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_NEXT_PAGE,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_PREVIOUS_PAGE,
     EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK,  /**< Open link */
-    EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_GRAMMAR,  /**< Ignore grammar */
-    EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU,  /**< Spelling menu */
-    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SPELLING_PANEL,  /**< Show spelling panel */
-    EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING,  /**< Check spelling */
-    EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING_WHILE_TYPING,  /**< Check spelling white typing */
-    EWK_CONTEXT_MENU_ITEM_TAG_CHECK_GRAMMAR_WITH_SPELLING,  /**< Check grammar with spelling */
-    EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU,  /**< Font menu */
-    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_FONTS,  /**< Show fonts */
-    EWK_CONTEXT_MENU_ITEM_TAG_BOLD,  /**< Bold */
-    EWK_CONTEXT_MENU_ITEM_TAG_ITALIC,  /**< Italic */
-    EWK_CONTEXT_MENU_ITEM_TAG_UNDERLINE,  /**< Underline */
-    EWK_CONTEXT_MENU_ITEM_TAG_OUTLINE,  /**< Outline */
-    EWK_CONTEXT_MENU_ITEM_TAG_STYLES,  /**< Style */
-    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_COLORS,  /**< Show colors */
-    EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU,  /**< Speech menu */
-    EWK_CONTEXT_MENU_ITEM_TAG_START_SPEAKING,  /**< Start speaking */
-    EWK_CONTEXT_MENU_ITEM_TAG_STOP_SPEAKING,  /**< Stop speaking */
-    EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU,  /**< Writing direction menu */
-    EWK_CONTEXT_MENU_ITEM_TAG_DEFAULT_DIRECTION,  /**< Default direction */
-    EWK_CONTEXT_MENU_ITEM_TAG_LEFT_TO_RIGHT,  /**< Left to right */
-    EWK_CONTEXT_MENU_ITEM_TAG_RIGHT_TO_LEFT,  /**< Right to left */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE_SCROLLING,  /**< PDF single page scrolling */
-    EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACING_PAGES_SCROLLING,  /**< PDF facing page scrolling */
+    EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_GRAMMAR,
+    EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU,
+    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SPELLING_PANEL,
+    EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING,
+    EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING_WHILE_TYPING,
+    EWK_CONTEXT_MENU_ITEM_TAG_CHECK_GRAMMAR_WITH_SPELLING,
+    EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU,
+    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_FONTS,
+    EWK_CONTEXT_MENU_ITEM_TAG_BOLD,
+    EWK_CONTEXT_MENU_ITEM_TAG_ITALIC,
+    EWK_CONTEXT_MENU_ITEM_TAG_UNDERLINE,
+    EWK_CONTEXT_MENU_ITEM_TAG_OUTLINE,
+    EWK_CONTEXT_MENU_ITEM_TAG_STYLES,
+    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_COLORS,
+    EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU,
+    EWK_CONTEXT_MENU_ITEM_TAG_START_SPEAKING,
+    EWK_CONTEXT_MENU_ITEM_TAG_STOP_SPEAKING,
+    EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU,
+    EWK_CONTEXT_MENU_ITEM_TAG_DEFAULT_DIRECTION,
+    EWK_CONTEXT_MENU_ITEM_TAG_LEFT_TO_RIGHT,
+    EWK_CONTEXT_MENU_ITEM_TAG_RIGHT_TO_LEFT,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE_SCROLLING,
+    EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACING_PAGES_SCROLLING,
     EWK_CONTEXT_MENU_ITEM_TAG_INSPECT_ELEMENT,  /**< Inspect element */
-    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU,  /**< Text direction menu */
-    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_DEFAULT,  /**< Text direction default */
-    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_LEFT_TO_RIGHT,  /**< Text direction left to right */
-    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT,  /**< Text direction right to left */
-    EWK_CONTEXT_MENU_ITEM_TAG_CORRECT_SPELLING_AUTOMATICALLY,  /**< Correct spelling automatically */
-    EWK_CONTEXT_MENU_ITEM_TAG_SUBSTITUTIONS_MENU,  /**< Substitutions menu */
-    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SUBSTITUTIONS,  /**< Show substitutions */
-    EWK_CONTEXT_MENU_ITEM_TAG_SMART_COPY_PASTE,  /**< Smart copy paste */
-    EWK_CONTEXT_MENU_ITEM_TAG_SMART_QUOTES,  /**< Smart quotes */
-    EWK_CONTEXT_MENU_ITEM_TAG_SMART_DASHES,  /**< Smart dashes */
-    EWK_CONTEXT_MENU_ITEM_TAG_SMART_LINKS,  /**< Smart links */
-    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_REPLACEMENT,  /**< Text replacement */
-    EWK_CONTEXT_MENU_ITEM_TAG_TRANSFORMATIONS_MENU,  /**< Transformation menu */
-    EWK_CONTEXT_MENU_ITEM_TAG_MAKE_UPPER_CASE,  /**< Make upper case */
-    EWK_CONTEXT_MENU_ITEM_TAG_MAKE_LOWER_CASE,  /**< Make lower case */
-    EWK_CONTEXT_MENU_ITEM_TAG_CAPITALIZE,  /**< Capitalize */
-    EWK_CONTEXT_MENU_ITEM_TAG_CHANGE_BACK,  /**< Change back */
-    EWK_CONTEXT_MENU_ITEM_TAG_OPEN_MEDIA_IN_NEW_WINDOW,  /**< Open media in new window */
-    EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD,  /**< Copy media link to clipboard */
-    EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS,  /**< Toggle media controls */
-    EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_LOOP,  /**< Toggle media loop */
-    EWK_CONTEXT_MENU_ITEM_TAG_ENTER_VIDEO_FULLSCREEN,  /**< Enter video fullscreen */
-    EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_PLAY_PAUSE,  /**< Media play pause */
-    EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_MUTE,  /**< Media mute */
-    EWK_CONTEXT_MENU_ITEM_TAG_DICTATION_ALTERNATIVE,  /**< Dictation alternative */
+    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU,
+    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_DEFAULT,
+    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_LEFT_TO_RIGHT,
+    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT,
+    EWK_CONTEXT_MENU_ITEM_TAG_CORRECT_SPELLING_AUTOMATICALLY,
+    EWK_CONTEXT_MENU_ITEM_TAG_SUBSTITUTIONS_MENU,
+    EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SUBSTITUTIONS,
+    EWK_CONTEXT_MENU_ITEM_TAG_SMART_COPY_PASTE,
+    EWK_CONTEXT_MENU_ITEM_TAG_SMART_QUOTES,
+    EWK_CONTEXT_MENU_ITEM_TAG_SMART_DASHES,
+    EWK_CONTEXT_MENU_ITEM_TAG_SMART_LINKS,
+    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_REPLACEMENT,
+    EWK_CONTEXT_MENU_ITEM_TAG_TRANSFORMATIONS_MENU,
+    EWK_CONTEXT_MENU_ITEM_TAG_MAKE_UPPER_CASE,
+    EWK_CONTEXT_MENU_ITEM_TAG_MAKE_LOWER_CASE,
+    EWK_CONTEXT_MENU_ITEM_TAG_CAPITALIZE,
+    EWK_CONTEXT_MENU_ITEM_TAG_CHANGE_BACK,
+    EWK_CONTEXT_MENU_ITEM_TAG_OPEN_MEDIA_IN_NEW_WINDOW,
+    EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD,
+    EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS,
+    EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_LOOP,
+    EWK_CONTEXT_MENU_ITEM_TAG_ENTER_VIDEO_FULLSCREEN,
+    EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_PLAY_PAUSE,
+    EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_MUTE,
+    EWK_CONTEXT_MENU_ITEM_TAG_DICTATION_ALTERNATIVE,
     EWK_CONTEXT_MENU_ITEM_TAG_SELECT_ALL,  /**< Select all */
     EWK_CONTEXT_MENU_ITEM_TAG_SELECT_WORD,  /**< Select word */
     EWK_CONTEXT_MENU_ITEM_TAG_TEXT_SELECTION_MODE,  /**< Text selection mode */
-    EWK_CONTEXT_MENU_ITEM_TAG_CLIPBOARD,  /**< Clipboard */
-    EWK_CONTEXT_MENU_ITEM_TAG_DRAG,  /**< Drag */
+    EWK_CONTEXT_MENU_ITEM_TAG_CLIPBOARD,
+    EWK_CONTEXT_MENU_ITEM_TAG_DRAG,
     EWK_CONTEXT_MENU_ITEM_TAG_TRANSLATE,  /**< Translate */
     EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_DATA,  /**< Copy lnk data */
     EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG = 10000  /**< If app want to add customized item, use enum value after #EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG */
index 68ff729..9ebe460 100644 (file)
@@ -81,12 +81,13 @@ extern "C" {
 EXPORT_API void ewk_set_arguments(int argc, char** argv);
 
 /**
+* Deprecated.
 * Set home directory.
 *
 * If new path is NULL or empty string, home directory is considered as not set.
 *
 */
-EXPORT_API void ewk_home_directory_set(const char* path);
+EINA_DEPRECATED EXPORT_API void ewk_home_directory_set(const char* path);
 
 #ifdef __cplusplus
 }
index 9c2b088..e9b1619 100644 (file)
@@ -115,6 +115,18 @@ EXPORT_API unsigned ewk_media_subtitle_data_size_get(Ewk_Media_Subtitle_Data *da
 */
 EXPORT_API const void* ewk_media_subtitle_data_get(Ewk_Media_Subtitle_Data *data);
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+Ewk_Media_Subtitle_Info* ewkMediaSubtitleInfoCreate(int id, const char* url,
+const char* lang, const char* label);
+
+void ewkMediaSubtitleInfoDelete(Ewk_Media_Subtitle_Info* data);
+
+Ewk_Media_Subtitle_Data* ewkMediaSubtitleDataCreate(int id, double timestamp,
+const void* data, unsigned size);
+
+void ewkMediaSubtitleDataDelete(Ewk_Media_Subtitle_Data* data);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
index 0548b5c..efd4df4 100644 (file)
@@ -238,22 +238,26 @@ EXPORT_API Eina_Bool ewk_settings_scan_malware_enabled_get(const Ewk_Settings* s
 /**
  * Requests to enable/disable spdy.
  *
+ * @deprecated Deprecated since Tizen 4.0.
+ *
  * @param settings param not needed, only present for API compatibility
  *
  * @param spdy_enabled @c EINA_TRUE to enable the spdy @c EINA_FALSE to disable
  *
  * @return always @c EINA_TRUE, only present for API compatibility
  */
-EXPORT_API Eina_Bool ewk_settings_spdy_enabled_set(Ewk_Settings *settings, Eina_Bool spdy_enabled);
+EINA_DEPRECATED EXPORT_API Eina_Bool ewk_settings_spdy_enabled_set(Ewk_Settings *settings, Eina_Bool spdy_enabled);
 
 /**
  * Get spdy enabled/disabled state.
  *
+ * @deprecated Deprecated since Tizen 4.0.
+ *
  * @param settings param not needed, only present for API compatibility
  *
  * @return @c EINA_TRUE if enabled or @c EINA_FALSE if disabled
  */
-EXPORT_API Eina_Bool ewk_settings_spdy_enabled_get(Ewk_Settings *settings);
+EINA_DEPRECATED EXPORT_API Eina_Bool ewk_settings_spdy_enabled_get(Ewk_Settings *settings);
 
 /**
  * Requests to set the performance features of soup enable/disable.
index b7cc216..20ad24d 100644 (file)
@@ -37,6 +37,23 @@ extern "C" {
 typedef struct _Ewk_User_Media_Permission_Request Ewk_User_Media_Permission_Request;
 
 /**
+ * enum   _Ewk_User_Media_Device_Type
+ * @brief   Contains device type option for media permission request
+ *
+ */
+enum _Ewk_User_Media_Device_Type {
+    EWK_USER_MEDIA_DEVICE_TYPE_NONE = 0,
+    EWK_USER_MEDIA_DEVICE_TYPE_MICROPHONE = 1,                     /* MicroPhone type */
+    EWK_USER_MEDIA_DEVICE_TYPE_CAMERA = 2,                         /* Camera type */
+    EWK_USER_MEDIA_DEVICE_TYPE_MICROPHONE_AND_CAMERA = 3           /* Both MicroPhone and Camera. */
+};
+
+/**
+ * @brief The enum type that creates a type name for _Ewk_User_Media_Device_Type.
+ */
+typedef enum _Ewk_User_Media_Device_Type Ewk_User_Media_Device_Type;
+
+/**
  * Requests for getting origin of local media permission request.
  *
  * @param request Ewk_User_Media_Permission_Request object to get origin for
@@ -73,6 +90,26 @@ EXPORT_API Eina_Bool ewk_user_media_permission_request_suspend(Ewk_User_Media_Pe
  */
 EXPORT_API void ewk_user_media_permission_reply(Ewk_User_Media_Permission_Request* request, Eina_Bool allow);
 
+/**
+ * Requests for getting message of local media permission request.
+ *
+ * @param request Ewk_User_Media_Permission_Request object to get message for
+ *        userMedia permission request
+ *
+ * @return message of userMedia permission request
+ */
+EXPORT_API const char* ewk_user_media_permission_request_message_get(const Ewk_User_Media_Permission_Request* request);
+
+/**
+ * Get the type of device type for media permission request message.
+ *
+ * @param request Ewk_User_Media_Permission_Request object to get message for
+ *        userMedia permission request
+ *
+ * @return The type of device type, MicroPhone, Camera, or both of them.
+ */
+EXPORT_API Ewk_User_Media_Device_Type ewk_user_media_permission_request_device_type_get(const Ewk_User_Media_Permission_Request* request);
+
 #ifdef __cplusplus
 }
 #endif
index d95702a..7938b27 100644 (file)
@@ -683,7 +683,10 @@ typedef void (*Ewk_View_Script_Message_Cb)(Evas_Object* o, Ewk_Script_Message me
  *
  * @since_tizen 3.0
  *
- * @remarks Certainly, specify privileges of using native API to users,
+ * @remarks Note that injected objects will not appear in JavaScript
+ *          until the page is next (re)loaded.
+ *
+ *          Certainly, specify privileges of using native API to users,
  *          if using native API affects system settings, stability or security.
  *          Privilege display name & description which will be noticed to user.
  *
index 30eded5..d76dda0 100644 (file)
@@ -486,6 +486,29 @@ EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
 EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
 
 /**
+ * @brief Gets whether horizontal panning is holding.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to get whether horizontal panning is holding
+ *
+ * @return @c EINA_TRUE if horizontal panning is holding
+ *         @c EINA_FALSE if not or on failure
+ */
+EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
+
+/**
+ * @brief Sets to hold horizontal panning.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to set to hold horizontal panning
+ * @param[in] hold @c EINA_TRUE to hold horizontal panning
+ *        @c EINA_FALSE not to hold
+ */
+EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
+
+/**
  * @brief Gets whether vertical panning is holding.
  *
  * @since_tizen 2.3
@@ -1066,6 +1089,11 @@ EXPORT_API double ewk_view_page_zoom_get(const Evas_Object *o);
 /**
  * Sets zoom factor of the current page.
  *
+ * @note ewk_view_page_zoom_set internally might use older page than current
+ *       one, if you called it immediately after ewk_view_url_set. To be safe
+ *       from such race, use it from inside 'url,changed' callback, which can
+ *       be registered on ewk_view.
+ *
  * @param o view object to set the zoom level
  * @param zoom_factor a new level to set
  *
index 902939f..cbeb3da 100644 (file)
@@ -506,7 +506,7 @@ EXPORT_API Evas_Object* ewk_view_favicon_get(const Evas_Object* ewkView);
  * @param item view object to resume new url loading
  *
  */
-EXPORT_API void ewk_view_resume_network_loading(Evas_Object* item);
+EXPORT_API void ewk_view_resume_network_loading(Evas_Object* ewkView);
 
 EXPORT_API void ewk_view_poweroff_suspend(Evas_Object *item);
 
@@ -516,7 +516,7 @@ EXPORT_API void ewk_view_poweroff_suspend(Evas_Object *item);
  * @param item view object to suspend url loading
  *
  */
-EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* item);
+EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* ewkView);
 
 /**
  * This function should be use for browser edge scroll.
@@ -625,6 +625,21 @@ EXPORT_API Eina_Bool ewk_view_stop_video(Evas_Object* o, Ewk_Stop_Video_Callback
  */
 EXPORT_API Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView, Evas_Object* window, Eina_Bool enable, Eina_Bool isVideoWindow);
 
+/**
+ * @brief Sets the support of canvas hole, Use H/W overlay for video quality of WebGL 360 degree.
+ * Also, The WebBrowser provisionally want to show plane 360 video through canvas hole.
+ *
+ * @since_tizen 3.0
+ *
+ * @note Should be used after ewk_view_url_set().
+ *
+ * @param[in] o the view object
+ * @param[in] url string (ex. "youtube.com")
+ *
+ * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EXPORT_API Eina_Bool ewk_view_set_support_canvas_hole(Evas_Object* ewkView, const char* url);
+
 #if defined(TIZEN_PEPPER_EXTENSIONS)
 
 /**
@@ -676,6 +691,29 @@ EXPORT_API void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view,
 EXPORT_API Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled);
 
 /**
+ * @brief Gets whether horizontal panning is holding.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to get whether horizontal panning is holding
+ *
+ * @return @c EINA_TRUE if horizontal panning is holding
+ *         @c EINA_FALSE if not or on failure
+ */
+EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
+
+/**
+ * @brief Sets to hold horizontal panning.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to set to hold horizontal panning
+ * @param[in] hold @c EINA_TRUE to hold horizontal panning
+ *        @c EINA_FALSE not to hold
+ */
+EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
+
+/**
  * @brief Gets whether vertical panning is holding.
  *
  * @since_tizen 2.3
@@ -726,7 +764,6 @@ EXPORT_API void ewk_view_widget_pepper_extension_callback_set(Evas_Object* ewk_v
 */
 EXPORT_API void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value widget_pepper_ext_info);
 
-#if defined(OS_TIZEN_TV_PRODUCT)
 /**
 * Set the translated url to media player.
 *
@@ -747,7 +784,35 @@ EXPORT_API Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const ch
 */
 
 EXPORT_API Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload);
-#endif
+
+/**
+* Set app enable marlin or not.
+*
+* @param ewkView view object
+* @param is_enable   if app enable marlin drm
+*
+* @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+*/
+EXPORT_API Eina_Bool ewk_view_marlin_enable_set(Evas_Object* ewkView, Eina_Bool is_enable);
+
+/**
+* Set the selected text track language to media player.
+*
+* @param ewkView view object
+* @param lang_list comma separated three_digit_language code. (For example "eng,deu")
+*
+*/
+EXPORT_API void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list);
+
+/**
+* Set the if use high bit rate to media player.
+*
+* @param ewkView view object
+* @param is_high  if app use high bit rate
+*
+*/
+EXPORT_API void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool is_high_bitrate);
+
 
 /**
  * @brief Sends key event.
@@ -1000,6 +1065,27 @@ EXPORT_API void ewk_view_add_dynamic_certificate_path(const Evas_Object *ewkView
  */
 EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
 
+/**
+ * remove custom header
+ *
+ * @param o view object to remove custom header
+ *
+ * @param name custom header name to remove the custom header
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EXPORT_API Eina_Bool ewk_view_custom_header_remove(const Evas_Object* o, const char* name);
+
+/**
+ * Returns application name string.
+ *
+ * @param o view object to get the application name
+ *
+ * @return @c application name. The returned string @b should be freed by
+ *         eina_stringshare_del() after use.
+ */
+EXPORT_API const char* ewk_view_application_name_for_user_agent_get(const Evas_Object* o);
+
 /*
  * Get cookies associated with an URL.
  *
@@ -1094,6 +1180,15 @@ EXPORT_API Eina_Bool ewk_view_custom_encoding_set(Evas_Object* o, const char* en
 EXPORT_API void ewk_view_force_layout(const Evas_Object* o);
 
 /**
+* Gets the video's timestamp.
+*
+* @param o view object to get the video's timestamp
+*
+* @return timestamp value
+*/
+EXPORT_API double ewk_view_media_current_time_get(const Evas_Object *o);
+
+/**
 * Creates a type name for the callback function used to get video current time.
 *
 * @param o view object
@@ -1112,6 +1207,7 @@ typedef void (*Ewk_View_Video_Current_Time_Get_Callback)(Evas_Object *o, double
 */
 EXPORT_API void ewk_media_current_time_get(const Evas_Object* o, Ewk_View_Video_Current_Time_Get_Callback callback, void *user_data);
 
+
 /**
 * @brief Enforces web page to close
 *
@@ -1128,10 +1224,75 @@ EXPORT_API Eina_Bool ewk_view_page_close(Evas_Object* o);
 *
 * @param ewkView view object
 */
-
 EXPORT_API void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView);
 
 /**
+* Request canvas to be shown in full-screen.
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_request_canvas_fullscreen(Evas_Object* ewkView);
+
+/**
+* play 360 video in the view
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_360video_play(Evas_Object* ewkView);
+
+/**
+* pause 360 video in the view
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_360video_pause(Evas_Object* ewkView);
+
+/**
+ * Callback for ewk_view_360video_duration
+ *
+ * @param o view object
+ * @param duration 360 video's duration
+ * @param user_data user_data will be passsed when ewk_view_360video_duration is called
+ */
+typedef void (*Ewk_360_Video_Duration_Callback)(Evas_Object* o, double duration, void* user_data);
+
+/**
+* get duration of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @return duration of the video
+*/
+EXPORT_API void ewk_view_360video_duration(Evas_Object* ewkView, Ewk_360_Video_Duration_Callback callback, void* user_data);
+
+/**
+ * Callback for ewk_view_360video_current_time
+ *
+ * @param o view object
+ * @param current_time 360 video's current time
+ * @param user_data user_data will be passsed when ewk_view_360video_current_time is called
+ */
+typedef void (*Ewk_360_Video_CurrentTime_Callback)(Evas_Object* o, double current_time, void* user_data);
+
+/**
+* get current time of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @return current time of the video
+*/
+EXPORT_API void ewk_view_360video_current_time(Evas_Object* ewkView, Ewk_360_Video_CurrentTime_Callback callback, void* user_data);
+
+/**
+* set current time of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @param current_time set current time
+*/
+EXPORT_API void ewk_view_360video_set_current_time(Evas_Object* ewkView, double current_time);
+
+/**
  * Requests execution of the given script in the main frame and subframes of the page.
  *
  * The result value for the execution can be retrieved from the asynchronous callback.
@@ -1155,6 +1316,28 @@ EXPORT_API Eina_Bool ewk_view_script_execute_all_frames(Evas_Object *o, const ch
 EXPORT_API void ewk_view_floating_window_state_changed(const Evas_Object *o, Eina_Bool status);
 
 /**
+ * @brief Draw the evas image object for the VoiceManager
+ *
+ * @since_tizen 3.0
+ *
+ * @param[in] view the view object
+ * @param[in] image evas image obejct for drawing
+ * @param[in] rect rectangle of image object for drawing
+ */
+EXPORT_API void ewk_view_voicemanager_label_draw(Evas_Object* view, Evas_Object* image, Eina_Rectangle rect);
+
+/**
+ * @brief Hide and remove all labels for the VoiceManager
+ *
+ * @details All labels are cleared on mouse down.
+ *
+ * @since_tizen 3.0
+ *
+ * @param[in] view the view object
+ */
+EXPORT_API void ewk_view_voicemanager_labels_clear(Evas_Object* view);
+
+/**
 * @}
 */
 
index 305ed5f..0979ce5 100644 (file)
@@ -29,6 +29,10 @@ namespace network_hints {
 class PrescientNetworkingDispatcher;
 }
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+class RenderViewObserverEfl;
+#endif
+
 struct Ewk_Wrt_Message_Data;
 
 class WrtUrlParseImpl;
@@ -70,13 +74,13 @@ class ContentRendererClientEfl : public content::ContentRendererClient {
                         blink::WebNavigationPolicy default_policy,
                         bool is_redirect) override;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
   bool WillSendRequest(blink::WebFrame* frame,
                        ui::PageTransition transition_type,
                        const blink::WebURL& url,
                        GURL* new_url,
                        bool& is_decrypted_file) override;
 
-#if defined(OS_TIZEN_TV_PRODUCT)
   bool GetFileDecryptedDataBuffer(const GURL& url,
                                   std::vector<char>* data) override;
 
@@ -91,6 +95,7 @@ class ContentRendererClientEfl : public content::ContentRendererClient {
     floating_video_window_on_ = enable;
   }
   bool FloatingVideoWindowOn() override { return floating_video_window_on_; }
+  void RenderViewDestroyed() override;
 #endif
 
   void DidCreateScriptContext(
@@ -130,7 +135,9 @@ class ContentRendererClientEfl : public content::ContentRendererClient {
       override;
 
   bool shutting_down() const { return shutting_down_; }
-  void set_shutting_down(bool shutting_down) { shutting_down_ = shutting_down; }
+  void set_shutting_down(bool shutting_down) {
+    shutting_down_ = shutting_down;
+  }  // LCOV_EXCL_LINE
 
 #if defined(TIZEN_PEPPER_EXTENSIONS)
   bool IsPluginAllowedToUseCompositorAPI(const GURL& url) override;
@@ -148,6 +155,8 @@ class ContentRendererClientEfl : public content::ContentRendererClient {
   bool javascript_can_open_windows_;
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool floating_video_window_on_;
+  // Deletes itself when render_view is destroyed.
+  RenderViewObserverEfl* render_view_observer_;
 #endif
   bool shutting_down_;
 };
index 5194e5b..7eb624e 100644 (file)
@@ -42,8 +42,13 @@ class ContentSettingsClientEfl
 #if defined(OS_TIZEN_TV_PRODUCT)
   bool allowInsecureContent(bool allowed_per_settings);
   void OnSetAllowInsecureContent(bool allow);
+  ContentSettingsClientEfl* getParentClient(RenderFrame* render_frame);
+  bool getAllowInsecureContent(const ContentSettingsClientEfl* client);
+  void setMixedContentState(ContentSettingsClientEfl* client, bool state);
+  bool getMixedContentState(const ContentSettingsClientEfl* client);
 
   // Insecure content may be permitted for the duration of this render view.
+  ContentSettingsClientEfl* parent_client_;
   bool mixed_content_state_;
   bool allow_insecure_content_;
 #endif
index 34f7784..31144bd 100644 (file)
@@ -37,6 +37,9 @@ class PluginPlaceholderAvplayer
 
   // WebViewPlugin::Delegate method.
   v8::Local<v8::Value> GetV8Handle(v8::Isolate*) override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool PluginIsAvplayer() { return true; }
+#endif
   void OnUnobscuredRectUpdate(const gfx::Rect& unobscured_rect) override;
   void NotifyTransparentChanged();
 
index a36ebc7..2d2d97d 100644 (file)
@@ -40,6 +40,9 @@ class PluginPlaceholderHole : public plugins::PluginPlaceholderBase,
   v8::Local<v8::Value> GetV8Handle(v8::Isolate*) override;
   v8::Local<v8::Object> GetV8ScriptableObject(
       v8::Isolate* isolate) const override;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  bool PluginIsAvplayer() { return false; }
+#endif
   void OnUnobscuredRectUpdate(const gfx::Rect& unobscured_rect) override;
 
   // From v8 to c++.
index e8af509..30a92ff 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2014-2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -49,6 +49,9 @@ class RenderViewObserverEfl: public content::RenderViewObserver {
   bool OnMessageReceived(const IPC::Message& message) override;
   void OnDestruct() override;
   void DidCreateDocumentElement(blink::WebLocalFrame* frame) override;
+#if defined(OS_TIZEN)
+  void PlayLinkEffect() override;
+#endif
 
   //Changes in PageScaleFactorLimits are applied when layoutUpdated is called
   //So using this notification to update minimum and maximum page scale factor values
@@ -62,19 +65,21 @@ class RenderViewObserverEfl: public content::RenderViewObserver {
   void OnSetSmoothScroll(const int& x, const int& y, const long& duration);
 #if defined(OS_TIZEN_TV_PRODUCT)
   void OnEdgeScrollBy(gfx::Point offset, gfx::Point mouse_position);
-  void OnRequestHitTestForMouseLongPress(int view_x, int view_y);
+  void OnRequestHitTestForMouseLongPress(int render_id, int view_x, int view_y);
 #endif
 #if defined(TIZEN_ATK_FEATURE_VD)
   void MoveFocusToBrowser(int direction) override;
 #endif
   void OnUseSettingsFont();
   void OnPlainTextGet(int plain_text_get_callback_id);
-  void OnGetSelectionStyle();
-  void OnDoHitTest(int x, int y, Ewk_Hit_Test_Mode mode);
+  void OnDoHitTest(int x,
+                   int y,
+                   Ewk_Hit_Test_Mode mode);
   void OnDoHitTestAsync(int view_x, int view_y, Ewk_Hit_Test_Mode mode, int64_t request_id);
   bool DoHitTest(int view_x, int view_y, Ewk_Hit_Test_Mode mode, Hit_Test_Params* params);
   void OnPrintToPdf(int width, int height, const base::FilePath& filename);
   void OnGetMHTMLData(int callback_id);
+  void OnGetBackgroundColor(int callback_id);
   void OnSetDrawsTransparentBackground(bool enabled);
   void OnSetBackgroundColor(int red, int green, int blue, int alpha);
   void OnWebAppIconUrlGet(int callback_id);
@@ -84,9 +89,14 @@ class RenderViewObserverEfl: public content::RenderViewObserver {
   void CheckContentsSize();
   void OnSuspendScheduledTasks();
   void OnResumeScheduledTasks();
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void OnSuspendNetworkLoading();
+  void OnResumeNetworkLoading();
+#endif
   void OnSetMainFrameScrollbarVisible(bool visible);
   void OnGetMainFrameScrollbarVisible(int callback_id);
   void OnUpdateWebKitPreferencesEfl(const WebPreferencesEfl&);
+  void OnIsVideoPlaying(int callback_id);
   void OnUpdateFocusedNodeBounds();
   void OnQueryInputType();
 
@@ -97,10 +107,18 @@ class RenderViewObserverEfl: public content::RenderViewObserver {
 #if defined(TIZEN_VIDEO_HOLE)
   void OnSetVideoHole(bool enable);
 #endif
-
+#if defined(TIZEN_CANVAS_HOLE)
+  void OnSetCanvasHole(const std::string url);
+#endif
 #if defined(OS_TIZEN_TV_PRODUCT)
   void OnSetTranslatedUrl(const std::string url, bool* result);
   void OnSetFloatVideoWindowState(bool enable);
+  void OnPlay360Video();
+  void OnPause360Video();
+  void On360VideoDuration(int callback_id);
+  void On360VideoCurrentTime(int callback_id);
+  void OnSet360VideoCurrentTime(double current_time);
+  void OnSetPreferTextLang(const std::string& lang);
 #endif
   blink::WebElement GetFocusedElement();
   void OnSetTextZoomFactor(float zoom_factor);
index 8eb0a96..1442685 100644 (file)
@@ -20,6 +20,7 @@
 #include "url_request_interceptor_efl.h"
 
 namespace net {
+class CertVerifier;
 class HostResolver;
 class NetLog;
 }
@@ -62,6 +63,19 @@ class URLRequestContextGetterEfl : public net::URLRequestContextGetter {
       void* user_data);
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void SetInterceptRequestCancelCallback(
+      Ewk_Context* ewk_context,
+      Ewk_Context_Intercept_Request_Callback callback,
+      void* user_data);
+#endif
+
+#if defined(USE_NSS_CERTS) && defined(OS_TIZEN_TV_PRODUCT)
+  void SetMessageLoopForNSSHttpIO();
+#endif
+
+  void NotifyContextShuttingDown();
+
+#if defined(OS_TIZEN_TV_PRODUCT)
   void UpdateWebAppDiskCachePath(const std::string& app_id);
 #endif
 
@@ -77,6 +91,7 @@ class URLRequestContextGetterEfl : public net::URLRequestContextGetter {
       bool persist_session_cookies);
 
   bool ignore_certificate_errors_;
+  bool shut_down_;
   base::FilePath base_path_;
 #if defined(OS_TIZEN_TV_PRODUCT)
   int cache_max_bytes_;
@@ -92,11 +107,16 @@ class URLRequestContextGetterEfl : public net::URLRequestContextGetter {
   std::unique_ptr<net::NetworkDelegate> network_delegate_;
   std::unique_ptr<net::URLRequestContextStorage> storage_;
   std::unique_ptr<net::URLRequestContext> url_request_context_;
+  std::unique_ptr<net::CertVerifier> cert_verifier_;
   ProtocolHandlerMap protocol_handlers_;
   URLRequestInterceptorScopedVector request_interceptors_;
   URLRequestInterceptorEFL* request_interceptor_efl_;
   URLRequestInterceptorEFL::InterceptRequestCallbackWithData
       intercept_request_callback_with_data_;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  URLRequestInterceptorEFL::InterceptRequestCallbackWithData
+      intercept_request_cancel_callback_with_data_;
+#endif
   base::WeakPtrFactory<URLRequestContextGetterEfl> weak_ptr_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetterEfl);
index 9d7d9b7..0f6823c 100644 (file)
@@ -32,7 +32,14 @@ class URLRequestInterceptorEFL : public net::URLRequestInterceptor {
   };
 
   URLRequestInterceptorEFL(
-      InterceptRequestCallbackWithData intercept_request_callback_with_data);
+      InterceptRequestCallbackWithData intercept_request_callback_with_data
+#if defined(OS_TIZEN_TV_PRODUCT)
+      ,
+      InterceptRequestCallbackWithData
+          intercept_request_cancel_callback_with_data
+#endif
+      );
+
   ~URLRequestInterceptorEFL() override;
 
   net::URLRequestJob* MaybeInterceptRequest(
@@ -41,10 +48,20 @@ class URLRequestInterceptorEFL : public net::URLRequestInterceptor {
 
   void SetInterceptRequestCallback(
       InterceptRequestCallbackWithData intercept_request_callback_with_data);
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void SetInterceptRequestCancelCallback(
+      InterceptRequestCallbackWithData
+          intercept_request_cancel_callback_with_data);
 
+  void NotifyInterceptRequestDestroy(
+      _Ewk_Intercept_Request* intercept_request) const;
+#endif
  private:
   InterceptRequestCallbackWithData intercept_request_callback_with_data_;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  InterceptRequestCallbackWithData intercept_request_cancel_callback_with_data_;
+#endif
   DISALLOW_COPY_AND_ASSIGN(URLRequestInterceptorEFL);
 };
 
index 57cb094..1bddd06 100644 (file)
@@ -14,6 +14,7 @@
 #include "net/url_request/url_request_job.h"
 
 #include "private/ewk_intercept_request_private.h"
+#include "url_request_interceptor_efl.h"
 
 namespace net {
 class URLRequest;
@@ -24,6 +25,9 @@ class URLRequestJobEFL : public net::URLRequestJob {
  public:
   URLRequestJobEFL(net::URLRequest* request,
                    net::NetworkDelegate* network_delegate,
+#if defined(OS_TIZEN_TV_PRODUCT)
+                   const content::URLRequestInterceptorEFL* interceptor,
+#endif
                    _Ewk_Intercept_Request* intercept_request);
 
   // URLRequestJob:
@@ -68,6 +72,9 @@ class URLRequestJobEFL : public net::URLRequestJob {
   size_t ReadData(net::IOBuffer* buf, int buf_size);
   size_t ReadChunkedData(net::IOBuffer* buf, int buf_size);
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  const content::URLRequestInterceptorEFL* interceptor_;
+#endif
   std::unique_ptr<_Ewk_Intercept_Request> intercept_request_;
   net::HttpResponseInfo response_info_;
 
index c2528b2..4b60e60 100644 (file)
@@ -44,14 +44,19 @@ class WebContentsDelegateEfl
   WebContentsDelegateEfl(EWebView*);
   ~WebContentsDelegateEfl();
 
+  void AddNewContents(WebContents* source,
+                      WebContents* new_contents,
+                      WindowOpenDisposition disposition,
+                      const gfx::Rect& initial_rect,
+                      bool user_gesture,
+                      bool* was_blocked) override;
+
   WebContents* OpenURLFromTab(WebContents* source,
       const content::OpenURLParams& params) override;
   void NavigationStateChanged(WebContents* source,
                               InvalidateTypes changed_flags) override;
 
   void LoadProgressChanged(WebContents* source, double progress) override;
-  void LoadingStateChanged(WebContents* source,
-                           bool to_different_document) override;
 
   bool ShouldCreateWebContents(
       WebContents*,
@@ -68,7 +73,7 @@ class WebContentsDelegateEfl
       WebContents* source,
       const WebContentsUnresponsiveState& unresponsive_state) override;
   void RendererResponsive(WebContents* source) override;
-
+  void NotifyUrlForPlayingVideo(const GURL& url) override;
   void CloseContents(WebContents* source) override;
 
   void EnterFullscreenModeForTab(content::WebContents* web_contents,
@@ -98,17 +103,6 @@ class WebContentsDelegateEfl
   void RequestMediaAccessDeny(const MediaStreamRequest& request,
     const MediaResponseCallback& callback);
 #endif
-
-  void RegisterProtocolHandler(WebContents* web_contents,
-                               const std::string& protocol,
-                               const GURL& url,
-                               bool user_gesture) override;
-
-  void UnregisterProtocolHandler(WebContents* web_contents,
-                                 const std::string& protocol,
-                                 const GURL& url,
-                                 bool user_gesture) override;
-
   void FindReply(WebContents* web_contents,
                  int request_id,
                  int number_of_matches,
@@ -123,6 +117,8 @@ class WebContentsDelegateEfl
   void QueryNumberFieldAttributes() override;
   void WillImePanelShow() override;
 
+  void SetTooltipText(const base::string16& text) override;
+
   void RequestCertificateConfirm(WebContents* web_contents, int cert_error,
       const net::SSLInfo& ssl_info, const GURL& url, ResourceType resource_type,
       bool overridable,
@@ -131,6 +127,8 @@ class WebContentsDelegateEfl
 
   void VisibleSecurityStateChanged(WebContents* source) override;
 
+  void ActivateContents(WebContents* contents) override;
+
   EWebView* web_view() const { return web_view_; }
   WebContents& web_contents() const { return web_contents_; }
 
@@ -203,10 +201,29 @@ class WebContentsDelegateEfl
   bool PreHandleGestureEvent(WebContents* source,
                              const blink::WebGestureEvent& event) override;
 
+#if defined(TIZEN_MEDIA_FULLSCREEN_SLIDER_SUPPORT)
+  // Allows delegates to handle keyboard events before sending to the renderer.
+  // Returns true if the |event| was handled. Otherwise, if the |event| would be
+  // handled in HandleKeyboardEvent() method as a normal keyboard shortcut,
+  // |*is_keyboard_shortcut| should be set to true.
+  bool PreHandleKeyboardEvent(WebContents* source,
+                              const NativeWebKeyboardEvent& event,
+                              bool* is_keyboard_shortcut) override;
+#endif
+
   void TitleWasSet(content::NavigationEntry* entry,
                    bool explicit_set) override;
 
 #if defined(OS_TIZEN_TV_PRODUCT)
+  void UpdateCurrentTime(double current_time) override;
+  void NotifySubtitleState(int state, double time_stamp) override;
+  void NotifySubtitlePlay(int active_track_id,
+                          const std::string& url,
+                          const std::string& lang) override;
+  void NotifySubtitleData(int track_id,
+                          double time_stamp,
+                          const uint8_t* data,
+                          unsigned int size) override;
   void UpdateTargetURL(WebContents* source, const GURL& url) override;
   void NotifyPlaybackState(int state,
                            const std::string& url,
@@ -215,6 +232,8 @@ class WebContentsDelegateEfl
                            std::string* translatedURL,
                            std::string* drmInfo) override;
   void NotifyPlayingVideoRect(const gfx::RectF& rect);
+  bool GetMarlinEnable() override;
+  bool IsHighBitRate() override;
 #endif
 
 #if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
@@ -230,6 +249,11 @@ class WebContentsDelegateEfl
       const base::string16& error_description,
       bool was_ignored_by_handler) override;
 
+  void DidChangeThemeColor(SkColor color) override;
+
+  void SetReaderMode(Eina_Bool enable);
+  void OnRecognizeArticleResult(bool is_article,
+                                const base::string16& page_url) override;
   void DidFailLoad(RenderFrameHost* render_frame_host,
                    const GURL& validated_url,
                    int error_code,
@@ -259,13 +283,16 @@ class WebContentsDelegateEfl
 #endif
 
  private:
+  void NotifyFrameRendered();
   void ShowRepostFormWarningDialog(content::WebContents* source) override;
   void OnGetContentSecurityPolicy(IPC::Message* reply_msg);
   void OnWrtPluginMessage(const Ewk_Wrt_Message_Data& data);
   void OnWrtPluginSyncMessage(const Ewk_Wrt_Message_Data& data,
                               IPC::Message* reply);
+  void OnHandleTapGestureWithContext(bool is_content_editable);
   void OnDidChangeNumberFieldAttributes(bool is_minimum_negative,
                                         bool is_step_integer);
+  void OnIsVideoPlayingGet(bool is_playing, int callback_id);
   void OnDidGetManifest(Ewk_View_Request_Manifest_Callback callback,
                         void* user_data,
                         const GURL& manifest_url,
@@ -278,6 +305,8 @@ class WebContentsDelegateEfl
 #if defined(OS_TIZEN_TV_PRODUCT)
   // If RWI server is started, show port info after finish load.
   void ShowInspectorPortInfo();
+  void On360VideoDuration(double duration, int callback_id);
+  void On360VideoCurrentTime(double current_time, int callback_id);
 #endif
 
   EWebView* web_view_;
@@ -308,6 +337,7 @@ class WebContentsDelegateEfl
   int frame_data_output_rect_width_;
   std::unique_ptr<FaviconDownloader> favicon_downloader_;
   std::unique_ptr<_Ewk_Certificate_Policy_Decision> certificate_policy_decision_;
+  bool reader_mode_;
   base::WeakPtrFactory<WebContentsDelegateEfl> weak_ptr_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(WebContentsDelegateEfl);
index 6d9ea18..8bbed6e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2015 Samsung Electronics. All rights reserved.
+// Copyright 2015-2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -33,8 +33,6 @@ class WebContentsViewEflDelegateEwk
 
   void CancelContextMenu(int request_id) override;
 
-  void QuerySelectionStyle() override;
-
   void HandleZoomGesture(blink::WebGestureEvent& event) override;
 
   bool UseKeyPadWithoutUserAction() override;
index a94a45c..6fab49f 100644 (file)
@@ -5,8 +5,42 @@
 #ifndef WRT_FILE_PROTOCOL_HANDLER
 #define WRT_FILE_PROTOCOL_HANDLER
 
+#include "base/memory/ref_counted.h"
 #include "net/url_request/url_request_job_factory.h"
 
-net::URLRequestJobFactory::ProtocolHandler* GetWrtFileProtocolHandler();
+class GURL;
+
+namespace base {
+class TaskRunner;
+}
+
+namespace net {
+
+class NetworkDelegate;
+class URLRequestJob;
+
+class WrtFileProtocolHandler
+    : public URLRequestJobFactory::ProtocolHandler {
+ public:
+  explicit WrtFileProtocolHandler(
+      const scoped_refptr<base::TaskRunner>& file_task_runner)
+      : file_task_runner_(file_task_runner) {}
+  ~WrtFileProtocolHandler() override {}
+  URLRequestJob* MaybeCreateJob(
+      URLRequest* request,
+      NetworkDelegate* network_delegate) const override;
+  /* LCOV_EXCL_START */
+  bool IsSafeRedirectTarget(const GURL& location) const override {
+    return false;
+  }
+  /* LCOV_EXCL_STOP */
+
+ private:
+  bool GetWrtParsedUrl(const GURL& url, GURL& parsed_url) const;
+  const scoped_refptr<base::TaskRunner> file_task_runner_;
+  DISALLOW_COPY_AND_ASSIGN(WrtFileProtocolHandler);
+};
+
+}  // namespace net
 
 #endif  // WRT_FILE_PROTOCOL_HANDLER
index 4b9f759..ad087e9 100644 (file)
 #include "base/callback.h"
 #include "content/public/browser/browser_message_filter.h"
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+#include "public/ewk_context_product.h"
+#endif
+
 namespace net {
 class URLRequest;
 }
@@ -21,6 +25,22 @@ struct Ewk_Wrt_Message_Data;
 
 class WrtWidgetHostMessageFilter;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+class EwkCheckAccessiablePathCallback {
+ public:
+  EwkCheckAccessiablePathCallback(
+      Ewk_Context_Check_Accessible_Path_Callback callback,
+      void* user_data)
+      : callback_(callback), user_data_(user_data) {}
+  bool TriggerCallback(const std::string& url_spec,
+                       const std::string& tizen_app_id) const;
+
+ private:
+  Ewk_Context_Check_Accessible_Path_Callback callback_;
+  void* user_data_;
+};
+#endif
+
 class WrtWidgetHost {
  public:
   static WrtWidgetHost* Get();
@@ -36,6 +56,15 @@ class WrtWidgetHost {
 
   std::string TizenAppId() const;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  void SetTizenAppId(const std::string& tizen_app_id);
+  bool ShouldAllowRequest(const net::URLRequest& request);
+
+  void SetCheckAccessiablePathCallback(
+      Ewk_Context_Check_Accessible_Path_Callback callback,
+      void* user_data);
+#endif
+
  private:
   friend class WrtWidgetHostMessageFilter;
 
@@ -49,6 +78,11 @@ class WrtWidgetHost {
   base::AtomicSequenceNumber callback_id_generator_;
   callbacks_type callbacks_;
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  std::string tizen_app_id_;
+  std::unique_ptr<EwkCheckAccessiablePathCallback> check_accessiable_path_callback_;
+#endif
+
   DISALLOW_COPY_AND_ASSIGN(WrtWidgetHost);
 };
 
index bac98f9..7b584e8 100644 (file)
 #include <device/haptic.h>
 #endif
 
+#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT)
+#include <privacy-privilege-manager/privacy_privilege_manager.h>
+#endif
+
 class Browser {
  public:
   enum GUILevel {
@@ -62,6 +66,14 @@ class Browser {
   Evas_Object* CreateControlButtons(Evas_Object*);
   void DidStartInspectorServer(unsigned port);
 
+#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT)
+  void CheckApplicationPermission(const char* privilege);
+  static void OnPermissionCheckResult(ppm_call_cause_e cause,
+                               ppm_request_result_e result,
+                               const char* privilege,
+                               void* user_data);
+#endif
+
   static void OnToolboxWindowDelRequest(void* data, Evas_Object*, void*);
   static void OnWindowElementClicked(void* data, Evas_Object*, void*);
   static void OnWindowClose(void* data, Evas_Object*, void*);
index 6f25589..d1a46d8 100644 (file)
@@ -111,12 +111,11 @@ class Window {
 #if defined(OS_TIZEN_TV_PRODUCT)
   static void On_Notify_Subtitle_Play(void*, Evas_Object*, void*);
   static void On_Notify_Subtitle_Stop(void*, Evas_Object*, void*);
-  static void On_Notify_Video_Pause(void*, Evas_Object*, void*);
-  static void On_Notify_Video_Resume(void*, Evas_Object*, void*);
-  static void On_Notify_Video_Seek_Start(void*, Evas_Object*, void*);
-  static void On_Notify_Video_Seek_Completed(void*, Evas_Object*, void*);
+  static void On_Notify_Subtitle_Pause(void*, Evas_Object*, void*);
+  static void On_Notify_Subtitle_Resume(void*, Evas_Object*, void*);
+  static void On_Notify_Subtitle_Seek_Start(void*, Evas_Object*, void*);
+  static void On_Notify_Subtitle_Seek_Completed(void*, Evas_Object*, void*);
   static void On_Subtitle_Data(void*, Evas_Object*, void*);
-  static void current_time_call(Evas_Object*, double, void*);
   static void On_Video_Playback_Load(void*, Evas_Object*, void*);
   static void On_Video_Playback_Ready(void*, Evas_Object*, void*);
   static void On_Video_Playback_Start(void*, Evas_Object*, void*);
index 83d8422..ece0bea 100644 (file)
@@ -83,7 +83,9 @@ class WindowUI {
   static void OnInspectorShow(void* data, Evas_Object*, void*);
   static void OnInspectorServerStart(void* data, Evas_Object* obj, void*);
   static void OnUseGoogleDataProxy(void* data, Evas_Object* obj, void*);
+#if !defined(OS_TIZEN)
   static void OnRotate(void* data, Evas_Object*, void*);
+#endif
   static void OnSelectMouseInput(void* data, Evas_Object*, void*);
   static void OnSelectTouchInput(void* data, Evas_Object*, void*);
   static void OnStartTracing(void* data, Evas_Object*, void*);
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_api_result_locked.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_api_result_locked.h
new file mode 100644 (file)
index 0000000..4b75f51
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UTC_BLINK_API_RESULT_LOCKED_H_
+#define UTC_BLINK_API_RESULT_LOCKED_H_
+
+#include <mutex>
+
+template <typename T>
+class ApiResultLocked {
+ public:
+  ApiResultLocked() : is_set_(false) {}
+
+  void operator=(const T& t) { Set(t); }
+  void Set(const T& t) {
+    lock_.lock();
+    result_ = t;
+    is_set_ = true;
+    lock_.unlock();
+  }
+  T Get() {
+    lock_.lock();
+    auto t = result_;
+    lock_.unlock();
+    return t;
+  }
+  bool IsSet() {
+    lock_.lock();
+    auto is_set = is_set_;
+    lock_.unlock();
+    return is_set;
+  }
+
+ private:
+  bool is_set_;
+  T result_;
+  std::mutex lock_;
+};
+
+#endif  // UTC_BLINK_API_RESULT_LOCKED_H_
index 179326c..8b5fc64 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2014 Samsung Electronics. All rights reserved.
+// Copyright 2014-2016 Samsung Electronics. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -111,7 +111,7 @@ protected:
     };
 
     utc_blink_ewk_base();
-    virtual ~utc_blink_ewk_base();
+    ~utc_blink_ewk_base() override;
 
     void SetLogJavascript(bool enabled) { log_javascript = enabled; }
 
@@ -132,6 +132,10 @@ protected:
      */
     bool CompareEvasImageWithResource(Evas_Object* image_object, const char* resource, int pixel_fuzziness) const;
 
+    // Adds allow-file-access-from-files param to Chromium.
+    // Must be called within PreSetUp to be taken into account.
+    void AllowFileAccessFromFiles();
+
     /**
      * Generates proper path for resource file
      *
@@ -213,7 +217,7 @@ protected:
      * @retval true if timeout was handled by method, false otherwise.
      *         If method returns false then main application event loop will be stopped with error.
      */
-    virtual bool TimeOut() { return false; }
+    virtual bool TimeOut();
 
     /**
      * Override this method if you need to handle "load,finished" ewk callback.
@@ -231,7 +235,7 @@ protected:
      * @retval true if "load,error" was handled by method, false otherwise.
      *         If method returns false then main application event loop will be stopped with error.
      */
-    virtual bool LoadError(Evas_Object* webview, Ewk_Error *error) { EventLoopStop(LoadFailure); return false; }
+    virtual bool LoadError(Evas_Object* webview, Ewk_Error* error);
 
     /**
      * Override this method if you need to handle "load,progress" ewk callback.
@@ -239,16 +243,6 @@ protected:
     virtual void LoadProgress(Evas_Object* webview, double progress) {}
 
     /**
-     * Override this method if you need to handle "load,progress,started" ewk callback.
-     */
-    virtual void LoadProgressStarted(Evas_Object* webview) {}
-
-    /**
-     * Override this method if you need to handle "load,progress,finished" ewk callback.
-     */
-    virtual void LoadProgressFinished(Evas_Object* webview) {}
-
-    /**
      * Override this method if you need to handle "console,message" ewk callback.
      */
     virtual void ConsoleMessage(Evas_Object* webview, const Ewk_Console_Message*);
@@ -263,6 +257,44 @@ protected:
 
     /**
      * Sets a (test) job that should be performed during main loop.
+     * @param [in] job_function  name of function (static void method of test
+     * class)
+     *                           that will be called from main loop
+     *
+     * @note If exit from main loop depends on code included in body of callback
+     *       that could be called before program enters main loop
+     *       there could be a race codition.
+     *       Example: exit from main loop is a result of call to
+     * ewk_view_text_selection_clear.
+     *
+     *       in TEST_F body:
+     *       > ASSERT_EQ(EINA_TRUE,
+     * ewk_view_text_selection_clear(GetEwkWebView()));
+     *       > ASSERT_EQ(Success, EventLoopStart());
+     *
+     *       It would be better to:
+     *       1. define a additional callback, and move there testing code
+     *       2. set additional callback with SetTestJob to be called from main
+     * loop
+     *       3. result of code called in callback store in auxiliary field of
+     * class
+     *       and test later
+     *       Example:
+     *
+     *       in class definition:
+     *       > static void job_selection_clear(utc_blink_ewk_base *data)
+     *       > {
+     *       >   utc_blink_cb_textselection_mode *owner =
+     *       >       static_cast<utc_blink_cb_textselection_mode *>(data);
+     *       >   owner->result_text_selection_clear =
+     * ewk_view_text_selection_clear(owner->GetEwkWebView());
+     *       > }
+     *
+     *       in TEST_F body:
+     *       >
+     *       > SetTestJob(utc_blink_cb_textselection_mode::job_selection_clear);
+     *       > ASSERT_EQ(Success, EventLoopStart());
+     *       > ASSERT_EQ(EINA_TRUE, result_text_selection_clear);
      */
     void SetTestJob(utc_blink_ewk_job_cb_t job_function)
     {
@@ -323,19 +355,6 @@ private:
     static void load_progress_cb(void* data, Evas_Object* webview, void* event_info);
 
     /**
-     * Default "load,progress,started" event callback, will call LoadProgressStarted method
-     *
-     * @see LoadProgressStarted
-     */
-    static void load_progress_started_cb(void* data, Evas_Object* webview, void* event_info);
-    /**
-     * Default load,progress,finished" event callback, will call LoadProgressFinished method
-     *
-     * @see LoadProgressFinished
-     */
-    static void load_progress_finished_cb(void* data, Evas_Object* webview, void* event_info);
-
-    /**
      * Default "console,message" event callback, will call ConsoleMessage method
      */
     static void console_message_cb(utc_blink_ewk_base*, Evas_Object*, Ewk_Console_Message*);
@@ -391,6 +410,8 @@ private:
 
     Ecore_Job* test_job;
     utc_blink_ewk_job_cb_t test_job_function;
+
+    std::vector<char*> argv;
 };
 
 #endif // UTC_BLINK_EWK_BASE_HUTC_BLINK_EWK_BASE_H
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_context_form_autofill_credit_card_utils.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_context_form_autofill_credit_card_utils.h
new file mode 100644 (file)
index 0000000..86e2144
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright 2017 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UTC_BLINK_EWK_CONTEXT_FORM_AUTOFILL_CREDIT_CARD_UTILS_H
+#define UTC_BLINK_EWK_CONTEXT_FORM_AUTOFILL_CREDIT_CARD_UTILS_H
+
+#include "utc_blink_ewk_base.h"
+
+const unsigned     TEST_AUTOFILL_CREDIT_CARD_ID                    =   12345;
+const char* const  TEST_AUTOFILL_CREDIT_CARD_NAME_FULL             =   "Mr. Smith";
+const char* const  TEST_AUTOFILL_CREDIT_CARD_NUMBER                =   "411111111111111";
+const char* const  TEST_AUTOFILL_CREDIT_CARD_EXP_4_DIGIT_YEAR      =   "2018";
+const char* const  TEST_AUTOFILL_CREDIT_CARD_EXP_MONTH             =   "01";
+
+Ewk_Autofill_CreditCard* getTestEwkAutofillCreditCard();
+
+bool checkOne(Ewk_Autofill_CreditCard* cardToCheck, const char* reference,
+              Ewk_Autofill_CreditCard_Data_Type kind, const char* errMessage);
+bool checkIfCreditCardContainsTestData(Ewk_Autofill_CreditCard* cardToCheck);
+
+class utc_blink_ewk_context_form_autofill_credit_card_base
+    : public utc_blink_ewk_base {
+ protected:
+  void PostSetUp() override;
+
+  void PreTearDown() override;
+
+ private:
+  void RemoveTestCreditCard() {
+    Ewk_Autofill_CreditCard* card =
+        ewk_context_form_autofill_credit_card_get(ewk_context_default_get(),
+                                              TEST_AUTOFILL_CREDIT_CARD_ID);
+    if (card) {
+      ewk_context_form_autofill_credit_card_remove(ewk_context_default_get(),
+                                               TEST_AUTOFILL_CREDIT_CARD_ID);
+      ewk_autofill_credit_card_delete(card);
+      EventLoopWait(3.0);
+      card =
+          ewk_context_form_autofill_credit_card_get(ewk_context_default_get(),
+                                                TEST_AUTOFILL_CREDIT_CARD_ID);
+      ASSERT_TRUE(card);
+    }
+  }
+};
+
+#endif //UTC_BLINK_EWK_CONTEXT_FORM_AUTOFILL_CREDIT_CARD_UTILS_H
index 26dc4ae..2264eb1 100644 (file)
@@ -28,14 +28,9 @@ bool checkIfProfileContainsTestData(Ewk_Autofill_Profile* profileToCheck);
 class utc_blink_ewk_context_form_autofill_profile_base
     : public utc_blink_ewk_base {
  protected:
-  void PostSetUp() override {
-    EventLoopWait(3.0);
-    RemoveTestProfile();
-  }
+  void PostSetUp() override;
 
-  void PreTearDown() override {
-    RemoveTestProfile();
-  }
+  void PreTearDown() override;
 
  private:
   void RemoveTestProfile() {
index 519d2cd..046652f 100644 (file)
@@ -9,20 +9,22 @@
 
 class utc_blink_ewk_hit_test_request_base : public utc_blink_ewk_base {
 protected:
-  void LoadFinished(Evas_Object* webview)
-  {
-    EventLoopStop(utc_blink_ewk_base::Success);
-  }
-
-  virtual void CheckHitTest(Ewk_Hit_Test* hit_test) {}
-
-  static void hit_test_result(Evas_Object* o, int x, int y, int mode, Ewk_Hit_Test* hit_test, void* user_data)
-  {
-    utc_blink_ewk_hit_test_request_base* owner = static_cast<utc_blink_ewk_hit_test_request_base*>(user_data);
-    ASSERT_TRUE(owner);
-
-    owner->EventLoopStop(Success);
-    owner->CheckHitTest(hit_test);
+ void LoadFinished(Evas_Object* webview) override
+
+     virtual void CheckHitTest(Ewk_Hit_Test* hit_test) {}
+
+ static void hit_test_result(Evas_Object* o,
+                             int x,
+                             int y,
+                             int mode,
+                             Ewk_Hit_Test* hit_test,
+                             void* user_data) {
+   utc_blink_ewk_hit_test_request_base* owner =
+       static_cast<utc_blink_ewk_hit_test_request_base*>(user_data);
+   ASSERT_TRUE(owner);
+
+   owner->EventLoopStop(Success);
+   owner->CheckHitTest(hit_test);
   }
 
 };
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_intercept_request_get_base.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_intercept_request_get_base.h
new file mode 100644 (file)
index 0000000..3a9cb83
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_GET_BASE_H_
+#define EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_GET_BASE_H_
+
+#include "utc_blink_ewk_base.h"
+
+#include <atomic>
+
+class utc_blink_ewk_intercept_request_get_base : public utc_blink_ewk_base {
+ protected:
+  static const std::string kInterceptURL;
+
+  utc_blink_ewk_intercept_request_get_base();
+  ~utc_blink_ewk_intercept_request_get_base() override;
+
+  void LoadFinished(Evas_Object* webview) override;
+  void pos_test();
+  void neg_test();
+  virtual void test_func(Ewk_Intercept_Request* intercept_request) = 0;
+
+ private:
+  static void callback_positive(Ewk_Context* /*ctx*/,
+                                Ewk_Intercept_Request* intercept_request,
+                                void* user_data);
+  static void callback_negative(Ewk_Context* /*ctx*/,
+                                Ewk_Intercept_Request* /*intercept_request*/,
+                                void* user_data);
+
+  std::atomic<bool> api_executed_;
+};
+
+#endif  // EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_GET_BASE_H_
diff --git a/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_intercept_request_response_base.h b/vendor/brightray/vendor/libchromiumcontent/src/tizen_src/ewk/unittest/utc_blink_ewk_intercept_request_response_base.h
new file mode 100644 (file)
index 0000000..f08a45a
--- /dev/null
@@ -0,0 +1,72 @@
+// Copyright 2016 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can b
+// found in the LICENSE file.
+
+#ifndef EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_RESPONSE_BASE_H_
+#define EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_RESPONSE_BASE_H_
+
+#include "utc_blink_ewk_base.h"
+
+#include <string>
+
+#include "utc_blink_api_result_locked.h"
+
+class utc_blink_ewk_intercept_request_response_base
+    : public utc_blink_ewk_base {
+ protected:
+  utc_blink_ewk_intercept_request_response_base();
+  ~utc_blink_ewk_intercept_request_response_base() override;
+
+  virtual void pos_func(Ewk_Intercept_Request* intercept_request) = 0;
+  virtual bool neg_func(Ewk_Intercept_Request* intercept_request) = 0;
+  virtual std::string get_js_title_test() = 0;
+
+  void PostSetUp() override;
+  void PreTearDown() override;
+  void LoadFinished(Evas_Object* webview) override;
+
+  void pos_test();
+  void neg_test();
+
+  const char* body_ajax_response_;
+  const char* custom_response_status_text_;
+  bool intercept_request_null_;
+
+ private:
+  struct ewk_callback_results {
+    bool status_set_;
+    bool header_add_content_type_;
+    bool header_add_content_length_;
+    bool header_add_access_control_;
+    bool body_set_;
+  };
+
+  static const char* kInterceptURL;
+  static const char* kInterceptAjaxURL;
+  static const char* kBodyAjaxPart1;
+  static const char* kBodyAjaxPart2;
+  static const char* kBodyAjaxPart3;
+
+  void check_results(ApiResultLocked<ewk_callback_results>& results);
+  void construct_page();
+
+  static void title_changed(void* data, Evas_Object* webview, void* event_info);
+
+  static void intercept_request_callback_response_header_add(
+      Ewk_Context* /*ctx*/,
+      Ewk_Intercept_Request* intercept_request,
+      void* user_data);
+
+  static void intercept_request_callback_response_header_add_null(
+      Ewk_Context* /*ctx*/,
+      Ewk_Intercept_Request* intercept_request,
+      void* user_data);
+
+  ApiResultLocked<ewk_callback_results> page_ewk_results_;
+  ApiResultLocked<ewk_callback_results> ajax_ewk_results_;
+  ApiResultLocked<Eina_Bool> neg_api_result_;
+  std::string first_title_;
+  std::string body_ajax_;
+};
+
+#endif  // EWK_UNITTEST_UTC_BLINK_EWK_INTERCEPT_REQUEST_RESPONSE_BASE_H_
index cdda6ee..8f3791a 100644 (file)
@@ -13,56 +13,22 @@ class utc_blink_ewk_notification_test_base : public utc_blink_ewk_base
   {}
 
   /* Common setup */
-  void PostSetUp() override
-  {
-    ewk_view_notification_permission_callback_set(GetEwkWebView(),
-        reinterpret_cast<Ewk_View_Notification_Permission_Callback>(
-            notification_permission_request_callback),
-        this);
-    ewk_notification_callbacks_set(
-        reinterpret_cast<Ewk_Notification_Show_Callback>(notification_show_callback),
-        reinterpret_cast<Ewk_Notification_Cancel_Callback>(notification_cancel_callback),
-        this);
-  }
+  void PostSetUp() override;
+  void PreTearDown() override;
 
-  void PreTearDown() override
-  {
-    ewk_view_notification_permission_callback_set(GetEwkWebView(), NULL, NULL);
-    ewk_notification_callbacks_reset();
+  void NotificationShow(Ewk_Notification* notification) override {}
 
-    if (security_origins) {
-      // if it fails, than other TCs can produce false negatives/positives
-      EXPECT_EQ(EINA_TRUE, ewk_notification_policies_removed(security_origins));
+  void NotificationCancel(uint64_t notificationId) override {}
 
-      void* data = NULL;
-
-      EINA_LIST_FREE(security_origins, data) {
-        Ewk_Security_Origin* origin = static_cast<Ewk_Security_Origin*>(data);
-        ewk_security_origin_free(origin);
-      }
-    }
-  }
-
-  virtual void NotificationShow(Ewk_Notification* notification)
-  {
-  }
-
-  virtual void NotificationCancel(uint64_t notificationId)
-  {
-  }
-
-  virtual Eina_Bool NotificationPermissionRequest(Evas_Object* webview, Ewk_Notification_Permission_Request* request)
-  {
-    //allow the notification by default
-    EXPECT_EQ(EINA_TRUE, ewk_notification_permission_reply(request, EINA_TRUE));
-    return EINA_TRUE;
-  }
+  Eina_Bool NotificationPermissionRequest(
+      Evas_Object* webview,
+      Ewk_Notification_Permission_Request* request) override;
 
   static Eina_Bool notification_permission_request_callback(Evas_Object* webview, Ewk_Notification_Permission_Request* request, utc_blink_ewk_notification_test_base* owner)
   {
     utc_message("[notification_permission_request_callback] :: ");
     if (!owner) {
-      EINA_FALSE;
+      return EINA_FALSE;
     }
 
     if (!request) {
index f8c06b4..34a5c17 100644 (file)
@@ -250,6 +250,20 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
   // clipboard to contain a bitmap, HTML markup representing the image, a URL to
   // the image, and the image's alt text. Having the types follow this order
   // maximizes the amount of data that can be extracted by various programs.
+#if defined(OS_TIZEN)
+  // On Tizen, it is required that HTML content should be written to clipboard
+  // after type TEXT. So that when Copy-Paste operation is performed on markup
+  // content, it should be rendered as-is.
+  enum ObjectType {
+    CBF_TEXT,
+    CBF_HTML,
+    CBF_RTF,
+    CBF_BOOKMARK,
+    CBF_WEBKIT,
+    CBF_SMBITMAP,  // Bitmap from shared memory.
+    CBF_DATA,      // Arbitrary block of bytes.
+  };
+#else
   enum ObjectType {
     CBF_SMBITMAP,  // Bitmap from shared memory.
     CBF_HTML,
@@ -259,6 +273,7 @@ class UI_BASE_EXPORT Clipboard : NON_EXPORTED_BASE(public base::ThreadChecker) {
     CBF_WEBKIT,
     CBF_DATA,      // Arbitrary block of bytes.
   };
+#endif
 
   // ObjectMap is a map from ObjectType to associated data.
   // The data is organized differently for each ObjectType. The following
index 7b66665..ff0bd5f 100644 (file)
@@ -566,7 +566,7 @@ DOM_KEY_MAP_DECLARATION {
   DOM_KEY_MAP("XF86SimpleMenu",       XF86SimpleMenu,            0x2797),
   DOM_KEY_MAP("XF86More",             XF86More,                  0x27A4),
   DOM_KEY_MAP("XF86FactoryMode",      XF86FactoryMode,           0x27A5),
-  DOM_KEY_MAP("XF86Sleep",            XF86Sleep,                 0x005F),
+  DOM_KEY_MAP("XF86Sleep",            XF86Sleep,                 0x27A6),
   DOM_KEY_MAP("XF86TV",               XF86TV,                    0x27A9),
   DOM_KEY_MAP("XF86DTV",              XF86DTV,                   0x27AA),
   DOM_KEY_MAP("XF86STBPower",         XF86STBPower,              0x27AB),
@@ -647,6 +647,15 @@ DOM_KEY_MAP_DECLARATION {
   DOM_KEY_MAP("XF86PlayBack",         XF86PlayBack,              0x280C),
   DOM_KEY_MAP("XF86ExtraApp",         XF86ExtraApp,              0x280D),
   DOM_KEY_MAP("XF86Color",            XF86Color,                 0x2891),
+  DOM_KEY_MAP("XF86Alarm",            XF86Alarm,                 0x28B2),
+  DOM_KEY_MAP("XF86HotelMovies",      XF86HotelMovies,           0x28FE),
+  DOM_KEY_MAP("XF86HotelLanguage",    XF86HotelLanguage,         0x28FF),
+  DOM_KEY_MAP("XF86HotelTVGuide",     XF86HotelTVGuide,          0x2900),
+  DOM_KEY_MAP("XF86HotelAppsGuest",   XF86HotelAppsGuest,        0x2901),
+  DOM_KEY_MAP("XF86NoiseReduction",   XF86NoiseReduction,        0x2917),
+  DOM_KEY_MAP("XF86Help",             XF86Help,                  0x2918),
+  DOM_KEY_MAP("XF86NR",               XF86NR,                    0x2919),
+  DOM_KEY_MAP("XF86HotelRoomControl", XF86HotelRoomControl,      0x291A),
   DOM_KEY_MAP("Select",               Select,                    0x000D),
   DOM_KEY_MAP("Clear",                Clear,                     0x002E),
 #endif
index a6fc0b3..63bd4b7 100644 (file)
 
 namespace ui {
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+enum NativeKeyCode {
+  // TV RC device OK key
+  RC_DIVCE_KEYCODE_OK = 0x24,
+};
+#endif
+
 enum KeyboardCode {
   VKEY_CANCEL = 0x03,
   VKEY_BACK = 0x08,
@@ -73,7 +80,9 @@ enum KeyboardCode {
   VKEY_SNAPSHOT = 0x2C,
   VKEY_INSERT = 0x2D,
   VKEY_DELETE = 0x2E,
+#if !defined(OS_TIZEN_TV_PRODUCT)
   VKEY_HELP = 0x2F,
+#endif
   VKEY_0 = 0x30,
   VKEY_1 = 0x31,
   VKEY_2 = 0x32,
@@ -376,6 +385,17 @@ enum KeyboardCode {
   VKEY_PLAY_BACK = 0x280C,
   VKEY_EXTRA = 0x280D,
   VKEY_COLOR = 0x2891,
+
+  VKEY_ALARM = 0x28B2,
+  VKEY_HOTEL_MOVIES = 0x28FE,
+  VKEY_HOTEL_LANGUAGE = 0x28FF,
+  VKEY_HOTEL_TV_GUIDE = 0x2900,
+  VKEY_HOTEL_APPS_GUEST = 0x2901,
+  VKEY_NOISE_REDUCTION = 0x2917,
+  VKEY_HELP = 0x2918,
+  VKEY_NR = 0x2919,
+  VKEY_HOTEL_ROOM_CONTROL = 0x291A,
+
   // TV IME "Select" key, no X Server keycode, 0xFF60 ISF code.
   VKEY_IME_DONE = 0xFF60,
   // TV IME "Cancel" key, no X Server keycode, 0xFF69 ISF code.
index 9708f8f..65a8d33 100644 (file)
@@ -35,6 +35,14 @@ enum GpuMemoryBufferType {
   GPU_MEMORY_BUFFER_TYPE_LAST = OZONE_NATIVE_PIXMAP
 };
 
+#if defined(TIZEN_TBM_SUPPORT)
+enum MediaPacketMode {
+  MEDIA_PACKET_NORMAL_MODE,
+  MEDIA_PACKET_RING_BUFFER_MODE
+  /* Reserved */
+};
+#endif
+
 using GpuMemoryBufferId = GenericSharedMemoryId;
 
 struct GFX_EXPORT GpuMemoryBufferHandle {
index ad57772..92c181d 100644 (file)
@@ -38,7 +38,7 @@
 // 'views' and with our Chrome UI code where the elements are also called
 // 'views'.
 
-#if defined(USE_AURA) || defined(USE_EFL)
+#if defined(USE_AURA) || defined(USE_EFL) || defined(USE_ELECTRON)
 class SkRegion;
 namespace aura {
 class Window;
@@ -131,7 +131,7 @@ typedef void* NativeCursor;
 typedef ui::ViewAndroid* NativeView;
 typedef ui::WindowAndroid* NativeWindow;
 typedef jobject NativeEvent;
-#elif defined(USE_EFL)
+#elif defined(USE_EFL) || defined(USE_ELECTRON)
 typedef ui::Cursor NativeCursor;
 typedef void* NativeView;
 typedef void* NativeWindow;
@@ -168,7 +168,7 @@ typedef void* NativeViewAccessible;
 #endif
 
 // A constant value to indicate that gfx::NativeCursor refers to no cursor.
-#if defined(USE_AURA) || defined(USE_EFL)
+#if defined(USE_AURA) || defined(USE_EFL) || defined(USE_ELECTRON)
 const int kNullCursor = 0;
 #else
 const gfx::NativeCursor kNullCursor = static_cast<gfx::NativeCursor>(NULL);
index d86e863..430e081 100644 (file)
 
 namespace ui {
 
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+enum TzGPUmode {
+  NONSECURE_MODE,
+  SECURE_MODE
+};
+#endif
+
 GL_EXPORT const char* GetEGLErrorString(uint32_t error);
 
 // Returns the last EGL error as a string.
 GL_EXPORT const char* GetLastEGLErrorString();
 
+#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT)
+// Setup secure mode of the trust zone.
+GL_EXPORT void SetSecureModeGPU(TzGPUmode gpu_mode);
+#endif
 }  // namespace ui
 
 #endif  // UI_GL_EGL_UTIL_H_
index de8df34..4ac3e47 100644 (file)
@@ -238,6 +238,14 @@ URL_EXPORT void EncodeURIComponent(const char* input,
                                    int length,
                                    CanonOutput* output);
 
+URL_EXPORT bool CompareSchemeComponent(const char* spec,
+                            const Component& component,
+                            const char* compare_to);
+
+URL_EXPORT bool CompareSchemeComponent(const base::char16* spec,
+                            const Component& component,
+                            const char* compare_to);
+
 }  // namespace url
 
 #endif  // URL_URL_UTIL_H_
index 35b18b7..c341c90 100644 (file)
@@ -4462,10 +4462,12 @@ class V8_EXPORT Date : public Object {
    */
   static void DateTimeConfigurationChangeNotification(Isolate* isolate);
 
+#if defined(OS_TIZEN_TV_PRODUCT)
   /**
    * Sets time offset for Date object
    */
   static void SetTimeOffset(double time_offset);
+#endif
 
  private:
   static void CheckCast(v8::Value* obj);
@@ -7164,6 +7166,10 @@ class V8_EXPORT Isolate {
   Isolate& operator=(const Isolate&) = delete;
   void* operator new(size_t size) = delete;
   void operator delete(void*, size_t) = delete;
+#if defined(OS_TIZEN_TV_PRODUCT)
+  uint64_t GetExternalMemorySize();
+  void GCExternalAllocationMemory();
+#endif
 
  private:
   template <class K, class V, class Traits>
index 72c1d9a..23d8b79 100644 (file)
@@ -87,27 +87,54 @@ inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
 }
 
 inline void NoBarrier_Store(volatile Atomic8* ptr, Atomic8 value) {
+#if defined(ADDRESS_SANITIZER)
+  *ptr = value;
+#else
   __atomic_store_n(ptr, value, __ATOMIC_RELAXED);
+#endif
 }
 
 inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
+#if defined(ADDRESS_SANITIZER)
+  *ptr = value;
+#else
   __atomic_store_n(ptr, value, __ATOMIC_RELAXED);
+#endif
 }
 
 inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
+#if defined(ADDRESS_SANITIZER)
+  *ptr = value;
+#else
   __atomic_store_n(ptr, value, __ATOMIC_RELEASE);
+#endif
 }
 
 inline Atomic8 NoBarrier_Load(volatile const Atomic8* ptr) {
+#if defined(ADDRESS_SANITIZER)
+  Atomic8 value = *ptr;
+  return value;
+#else
   return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+#endif
 }
 
 inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
+#if defined(ADDRESS_SANITIZER)
+  Atomic32 value = *ptr;
+  return value;
+#else
   return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+#endif
 }
 
 inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
+#if defined(ADDRESS_SANITIZER)
+  Atomic32 value = *ptr;
+  return value;
+#else
   return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
+#endif
 }
 
 #if defined(V8_HOST_ARCH_64_BIT)
@@ -150,19 +177,37 @@ inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
 }
 
 inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
+#if defined(ADDRESS_SANITIZER)
+  *ptr = value;
+#else
   __atomic_store_n(ptr, value, __ATOMIC_RELAXED);
+#endif
 }
 
 inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
+#if defined(ADDRESS_SANITIZER)
+   *ptr = value;
+#else
   __atomic_store_n(ptr, value, __ATOMIC_RELEASE);
+#endif
 }
 
 inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
+#if defined(ADDRESS_SANITIZER)
+  Atomic64 value = *ptr;
+  return value;
+#else
   return __atomic_load_n(ptr, __ATOMIC_RELAXED);
+#endif
 }
 
 inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
+#if defined(ADDRESS_SANITIZER)
+  Atomic64 value = *ptr;
+  return value;
+#else
   return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
+#endif
 }
 
 #endif  // defined(V8_HOST_ARCH_64_BIT)
index 3b52b2c..ed17512 100644 (file)
@@ -283,9 +283,6 @@ class V8_BASE_EXPORT Time final : public time_internal::TimeBase<Time> {
   // Contains the NULL time. Use Time::Now() to get the current time.
   Time() : TimeBase(0) {}
 
-  // Sets time offset
-  static void SetTimeOffset(double time_offset);
-
   // Returns the current time. Watch out, the system might adjust its clock
   // in which case time will actually go backwards. We don't guarantee that
   // times are increasing, or that two calls to Now() won't be the same.
index 747a4f0..bea0891 100644 (file)
@@ -8702,6 +8702,11 @@ class JSDate: public JSObject {
 
   DECLARE_CAST(JSDate)
 
+#if defined(OS_TIZEN_TV_PRODUCT)
+  // Sets time offset
+  static void SetTimeOffset(double time_offset);
+#endif
+
   // Returns the time value (UTC) identifying the current time.
   static double CurrentTimeValue(Isolate* isolate);
 
index a228608..6617a29 100644 (file)
@@ -262,6 +262,24 @@ enum CategoryGroupEnabledFlags {
                     name);                                                     \
   }
 
+#if !defined(ENABLE_TRACE_EVENT)
+// Remove the macro function to add a trace event.
+#undef INTERNAL_TRACE_EVENT_ADD
+#define INTERNAL_TRACE_EVENT_ADD(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED(...)
+#undef INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP
+#define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(...)
+#undef INTERNAL_TRACE_EVENT_CALL_STATS_SCOPED
+#define INTERNAL_TRACE_EVENT_CALL_STATS_SCOPED(...)
+#endif
+
 namespace v8 {
 namespace internal {
 
index fc8f110..499e5f1 100644 (file)
@@ -38,6 +38,12 @@ class Decoder {
         end_(end),
         error_pc_(nullptr),
         error_pt_(nullptr) {}
+  Decoder(const byte* start, const byte* pc, const byte* end)
+      : start_(start),
+        pc_(pc),
+        end_(end),
+        error_pc_(nullptr),
+        error_pt_(nullptr) {}
 
   virtual ~Decoder() {}
 
@@ -185,8 +191,13 @@ class Decoder {
 
   // Consume {size} bytes and send them to the bit bucket, advancing {pc_}.
   void consume_bytes(uint32_t size, const char* name = "skip") {
-    TRACE("  +%d  %-20s: %d bytes\n", static_cast<int>(pc_ - start_), name,
-          size);
+#if DEBUG
+    if (name) {
+      // Only trace if the name is not null.
+      TRACE("  +%d  %-20s: %d bytes\n", static_cast<int>(pc_ - start_), name,
+            size);
+    }
+#endif
     if (checkAvailable(size)) {
       pc_ += size;
     } else {